diff --git a/src/components/CscMainMenuTop.vue b/src/components/CscMainMenuTop.vue
index af6aee10..cad73b17 100644
--- a/src/components/CscMainMenuTop.vue
+++ b/src/components/CscMainMenuTop.vue
@@ -72,6 +72,8 @@ export default {
this.hasSubscriberProfileAttribute(PROFILE_ATTRIBUTE_MAP.huntGroups) ||
this.hasSubscriberProfileAttribute(PROFILE_ATTRIBUTE_MAP.playAnnounceBeforeCallSetup) ||
this.hasSubscriberProfileAttribute(PROFILE_ATTRIBUTE_MAP.playAnnounceToCallee)
+ const hasExtensionSettingsSubmenus = this.isPbxEnabled &&
+ this.hasSomeSubscriberProfileAttributes(PROFILE_ATTRIBUTES_MAP.pbxExtensionSettings)
return [
{
to: '/user/dashboard',
@@ -250,8 +252,7 @@ export default {
{
icon: 'settings',
label: this.$t('Extension Settings'),
- visible: this.isPbxEnabled &&
- this.hasSomeSubscriberProfileAttributes(PROFILE_ATTRIBUTES_MAP.pbxSettings),
+ visible: hasExtensionSettingsSubmenus,
children: [
{
to: '/user/extension-settings/call-queues',
@@ -270,6 +271,13 @@ export default {
icon: 'dialpad',
label: this.$t('Auto Attendant'),
visible: this.isPbxEnabled && this.hasSubscriberProfileAttribute(PROFILE_ATTRIBUTE_MAP.autoAttendant)
+ },
+ {
+ to: '/user/extension-settings/conference',
+ icon: 'groups',
+ label: this.$t('Conference'),
+ visible: this.isPbxAdmin &&
+ this.hasSomeSubscriberProfileAttributes(PROFILE_ATTRIBUTES_MAP.pbxSettingsConference)
}
]
},
diff --git a/src/constants.js b/src/constants.js
index 76731715..098f937c 100644
--- a/src/constants.js
+++ b/src/constants.js
@@ -26,6 +26,8 @@ export const PROFILE_ATTRIBUTE_MAP = {
clir_intrapbx: 'clir_intrapbx',
cstaClient: 'csta_client',
cstaController: 'csta_controller',
+ conferenceMaxParticipants: 'conference_max_participants',
+ conferencePin: 'conference_pin',
faxServer: 'fax_server',
cscCalls: 'csc_calls',
managerSecretary: 'manager_secretary',
@@ -48,7 +50,8 @@ export const PROFILE_ATTRIBUTES_MAP = {
callBlockingOutgoing: ['block_out_mode', 'block_out_list', 'ncos', 'ncos_set'],
callBlockingPrivacy: ['clir', 'clir_intrapbx'],
callSettings: ['music_on_hold', 'language'],
- pbxSettings: ['auto_attendant', 'cloud_pbx_callqueue', 'max_queue_length', 'queue_wrap_up_time', 'manager_secretary'],
+ pbxExtensionSettings: ['auto_attendant', 'manager_secretary', 'conference_max_participants', 'conference_pin'],
+ pbxSettingsConference: ['conference_max_participants', 'conference_pin'],
pbxSettingsCallQueue: ['cloud_pbx_callqueue', 'max_queue_length', 'queue_wrap_up_time'],
callForwarding: ['cfu', 'cfb', 'cfna', 'cft', 'cfs', 'cfo', 'cfr']
}
diff --git a/src/pages/CscPagePbxSettingsConference.vue b/src/pages/CscPagePbxSettingsConference.vue
new file mode 100644
index 00000000..4c11ebbb
--- /dev/null
+++ b/src/pages/CscPagePbxSettingsConference.vue
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/router/routes.js b/src/router/routes.js
index 7ee09149..3590e6af 100644
--- a/src/router/routes.js
+++ b/src/router/routes.js
@@ -30,6 +30,7 @@ import CscPagePbxSeatDetails from 'pages/CscPagePbxSeatDetails'
import CscPagePbxSeats from 'pages/CscPagePbxSeats'
import CscPagePbxSettingsAutoAttendant from 'pages/CscPagePbxSettingsAutoAttendant'
import CscPagePbxSettingsCallQueues from 'pages/CscPagePbxSettingsCallQueues'
+import CscPagePbxSettingsConference from 'pages/CscPagePbxSettingsConference'
import CscPagePbxSettingsMsConfigs from 'pages/CscPagePbxSettingsMsConfigs'
import CscPagePbxSoundSetDetails from 'pages/CscPagePbxSoundSetDetails'
import CscPagePbxSoundSets from 'pages/CscPagePbxSoundSets'
@@ -609,6 +610,22 @@ const routes = [
licenses: [LICENSES.pbx]
}
},
+ {
+ path: 'extension-settings/conference',
+ component: CscPagePbxSettingsConference,
+ meta: {
+ get title () {
+ return i18n.global.t('Extension Settings')
+ },
+ get subtitle () {
+ return i18n.global.t('Conference')
+ },
+ platformFeature: FEATURES.cloudPbx,
+ profileAttributes: PROFILE_ATTRIBUTES_MAP.pbxSettingsConference,
+ capability: FEATURES.cloudPbx,
+ licenses: [LICENSES.pbx]
+ }
+ },
{
path: 'registered-devices',
name: 'RegisteredDevices',