Configure your Monster UI install

config.js

Monster UI is highly configurable through a single file located at src/js/config.js. This file lets you connect your different backend services to Monster UI and exposes other settings, like whitelabeling, that can be set for the entire UI.

Example

This minimal, working example is designed to get you up and running in no time when Monster UI is installed on the same server running Kazoo and the APIs are accessible at the default location (:8000/v2/).

If that is not the case, you will need to hook up your Kazoo server with the api.'default' property and you should be good to go.

define({
  whitelabel: {
    companyName: '2600Hz',
    applicationTitle: 'Monster UI',
    callReportEmail: 'support@2600hz.com',
    nav: {
      help: 'http://wiki.2600hz.com'
    },
    port: {
      loa: 'http://ui.zswitch.net/Editable.LOA.Form.pdf',
      resporg: 'http://ui.zswitch.net/Editable.Resporg.Form.pdf'
    }
  }
});

Settings

KeyDescriptionTypeDefaultRequired
apiVarious API related settingsObject(#api)false
advancedViewWhether or not to toggle the Callflows app’s “Advanced” tab by default.Booleanfalse
currencyCodeThe currency to use in price formatting. Possible values are ISO 4217 currency codes, such as USD for the US dollar, EUR for the euro, or CNY for the Chinese RMB (see the Current currency & funds code).StringUSDfalse
developerFlagsEnable development functionalitiesObject(#developerFlags)true
disableBraintreeIf you are not using Braintree in your environment, you should add the following flag to disable the UI components that are using itBooleanfalsefalse
hide_registrationWhether or not to hide the login page’s “Register” button.Booleanfalse
kazooClusterIdThe kazooClusterId is the cluster id generated when creating a cluster doc for provisionerStringfalse
pbx_help_configuration_linkAllow to define help link to configure PBX appStringfalse
pbx_help_linkAllow to define help link for PBX appStringfalse
support_emailAllow to define support emailTypeDefaultRequired
resellerIdThe resellerId key is the accountId of your master account, and is needed for some reseller features. For example it won’t prompt for a credit card the sub-accounts that have a different resellerId than this resellerIdStringfalse
whitelabelContains all the flags that are whitelabel-able via the Branding app. Setting them in the config file will set the defaults if you don’t use any whitelabel. If the domain used is defined in the whitelabel database, we’ll override the following settings by what is set in the whitelabel document.Object(#whitelabel)true
allowedExtraDeviceTypesContains types of additional devices corresponding to integrations.Arrayfalse
allowCrossSiteUsageWhether Monster UI supports being embedded into a third-party context (e.g. iframe with different domain).Booleanfalsefalse
bypassAppStorePermissionsWhether app store access restrictions should be bypassed when loading an app. When set to true, end-users are allowed to access any app installed on the cluster where Monster UI is running.Booleanfalsefalse
crossSiteMessagingConfigures whether the application permits messages from external domains and specifies acceptable message topics.Object(#crossSiteMessaging)false

api

KeyDescriptionTypeDefaultRequired
'default'The default API URL defines what API is used to log in to your back-endStringwindow.location.protocol + // + window.location.hostname + :8000/v2/false
phonebookSet Project Phonebook URL if you want to use it to search phone numbersStringfalse
provisionerIf you have provisioner turned on in your install and can use the one provided by 2600Hz, set it up hereStringfalse
socketIf you want to use WebSockets you need to turn Blackhole on in the back-end and then set it up hereStringfalse

developerFlags

KeyDescriptionTypeDefaultRequired
buildInformation about the build.Object(#build)readonly
showAllCallflowsWhether or not to show all restricted callflows in the Callflows appBooleanfalsefalse
showJsErrorsWhether or not to show JavaScript errors when they happen.Booleanfalsefalse
kazooVersionBackend version number (set during authentication).Stringreadonly

build

KeyDescriptionTypeDefaultRequired
preloadedAppsA list of applications loaded during the build.Arrayreadonly
proAppsA list of applications built in pro mode.Arrayreadonly
typeBuild environment.`String(‘development''production’)`
versionBuild version of Monster UI.Stringreadonly

whitelabel

KeyDescriptionTypeDefaultRequired
acceptChargesObject(#acceptCharges)false
additionalCssAdditional CSS files to load. Need to be in src/css folderArrayfalse
additionalCss.[]Path to the CSS fileStringfalse
additionalLoggedInAppsAdditional apps to load once the user is logged in (will be loaded along the appstore, apploader, common controls etc..)Arrayfalse
additionalLoggedInApps.[]Name of the app to side loadStringfalse
appLinksLinks accessible alongside apps in apploader (will open in a new tab).Object(#appLinks)false
allowAccessListIf set to true, will allow the user to modify access_lists from the account settings page.Booleanfalsefalse
allowAnyOwnedNumberAsCallerIDWhether or not to allow any phone number on the account to be used as caller ID.Booleanfalse
announcementMessage to show every time a user logs in.Stringfalse
applicationTitleApplication title, displayed in the browser tabStringfalse
authenticationThird party application to handle authentication in place of auth.Objectfalse
bookkeepersObject(#bookkeepers)false
brandColorHexadecimal color code used as primary color on the login page.Stringfalse
callReportEmailE-mail address used to report calls in SmartPBX’s Call Logs. “Report Call” link won’t be displayed if no address is specified. This address can either be set here in the config file, or through the Branding app.Stringfalse
carrierObject(#carrier)false
companyNameCompany Name, used in many places in the UIStringfalse
custom_welcome_messageWelcome message displayed on login page.StringYour Unified Communications Platform.false
countryCodeThe country code to use in phone number pretty print. Possible values are ISO-3166 alpha-2 codes, such as US for the USA or FR for France (see the ISO Online Browsing Platform).StringUSfalse
disableNumbersFeaturesIndicates whether or not number features (e.g. e911, cnam) are configurable through the UI.Booleanfalsefalse
domainDomain used to whitelabel the UI.Stringfalse
hasMetaflowsEnabledWhether or not to expose the “On-demand (In-Call) Recording” feature in the Call Recording app.Booleanfalse
hideAppStoreThe appstore is exposed to admins by default. If set to false, it will be hidden for all users.Booleanfalsefalse
hideBuyNumbersRemove the ability to buy phone numbers throughout the entire UIBooleanfalsefalse
hideNewAccountCreationIf set to true, will hide creation of new accountsBooleanfalsefalse
hide_portWhether or not to make porting actions available through the UI.Booleanfalsefalse
hidePasswordRecoveryWhether or not to hide the “Forgot your info?” feature from the login page.Booleanfalsefalse
hide_poweredWhether or not to hide the “powered by” info shown in the bottom of the page.Booleanfalse
includesScripts to download before authentication step (pulling happens sequentially).URL[]false
jiraFeedbackIf you want to provide a “Provide Feedback” button tied with JIRA issue collector, you can set this object to enabled: true, and provide the URL of the JIRA Issue collector to the url property. If this item is removed or set to enabled: false, nothing will appear in the UI.Objectfalse
jiraFeedback.enabledBooleanfalsefalse
jiraFeedback.urlStringfalse
languageBy default the language is set by the cookie, and once the user is log in it will take what’s set in the account/user. If you want to force the language of the UI before a user is logged in, you can set it here.Stringen-USfalse
logoPathHardcoded logo to override default Kazoo LogoStringfalse
logoutTimerMinutes before showing the logged in user that it will auto-disconnect him soon. Changing this value allows you to disable the auto-logout mechanism by setting it to 0. If you want to change the default duration (15), you can set this value with a number > 0Number15false
navObjectfalse
nav.helpLink used when user click on the top-right interrogation markObjectfalse
nav.logoutLink used when clicking on logging out. By default the UI logs out the user after confirmation, but some people wanted to override that behaviorObjectfalse
portObject(#/port)false
preventDIDFormattingIf set to true, the UI will stop trying to pretty print DIDs. Typically you want to leave this on if you handle US numbers, but if you handle different countries, it won’t display numbers properly. While we’re working on a better fix, this is a quick way to disable the pretty printing from the time beingBooleanfalsefalse
provisionerObject(#/provisioner)false
ssoCookie information to force a specific SSO provider to be used.Objectfalse
sso_providersList of SSO providers available on login.Arrayfalse
showMediaUploadDisclosureWhether or not to display a message disclosing customer’s responsibility when uploading a media file.Booleanfalsefalse
showPAssertedIdentityWhether or not to render the P-Asserted-Identity section under Callflows app > Account Settings > Caller-ID.Booleanfalsefalse
socialList of social network to expose on the login page.Arrayfalse
useDropdownApploaderIf set to true, the apploader will render as a dropdown list instead of a page on top of the window. False by default.Booleanfalsefalse
disableFirstUseWalkthroughIf set to true, the new user walkthrough will not be displayed. False by default.Booleanfalsefalse
invoiceRangeConfigThe range of months one can navigate back to for the invoices in the Invoice Generator. Its default value is 6 months from the current month, but it is not required to have a value assigned to itNumber6false

acceptCharges

KeyDescriptionTypeDefaultRequired
autoAcceptWhether the UI bypasses the charges confirmation dialog for Kazoo requests triggering a service plan charge. When set to false, this prop can be overridden individually for each request.Booleanfalsefalse
showInvoiceSummaryWhether the charges confirmation dialog should render the invoice summary or a custom message (this prop only takes effect when autoAccept: false).Booleantruefalse
messageMaps IETF language codes (en-US, fr-FR …) to custom messages to render in place of the invoice summary (this prop only takes effect when showInoiceSummary: false and autoAccept: false).Objectfalse
message[]Custom message to render in place of the invoice summary.Stringfalse

Each object key corresponds to a unique URL while its value is:

KeyDescriptionTypeDefaultRequired
iconURL to icon asset.Stringtrue
i18nInternationalization information, requires at least one entry.Objecttrue
i18n[]Each object key corresponds to a unique language identifier (en-US, fr-FR…).Objecttrue
i18n[].labelName for the link.Stringtrue
i18n[].descriptionDescription for the link.Stringfalse

bookkeepers

KeyDescriptionTypeDefaultRequired
braintreeWhether or not bookkeeping transactions can be performed through Braintree.Booleantruefalse
iouWhether or not bookkeeping transactions can be performed through Kazoo.Booleantruefalse
payphoneWhether or not bookkeeping transactions can be performed through HTTP.Booleantruefalse

carrier

KeyDescriptionTypeDefaultRequired
choicesList of carrier strategies available system-wide.Arrayfalse

port

KeyDescriptionTypeDefaultRequired
loaLink to LOA document downloaded by users on port request submission.Stringfalse
resporgLink to RespOrg document downloaded by users on port request submission.Stringfalse
carriersList of losing carriers to select from on port request submission.Arrayfalse
carriers.[]Name of losing carrier (should be unique).Stringfalse

provisioner

KeyDescriptionTypeDefaultRequired
brandsMap custom settings individually by device brand.Objectfalse
brands.[]Each object key correspont to the device brand name (yealink, avaya…).Objectfalse
brands.[].keyFunctionsList key functions available per brand (schema).Arrayfalse
brands.[].lineKeysList of keys to be used as default line keys per brand.Arrayfalse

crossSiteMessaging

KeyDescriptionTypeDefaultRequired
originThe remote source that the framework would be configured to accept cross-site messages from.Stringfalse
topicsSpecific messages accepted from the configured remote source.Arrayfalse

On this page