Quobis collaborator configuration

This section explains the configuration that needs to be done by an administrator to setup and configure Quobis collaborator.

File-based configuration

Most of the configuration settings of Quobis collaborator are grouped in a single file. That file’s name is “CONF.js” and must be always be located in the root folder. This is a Javascript file that follows a JSON-like structure, where its values must be one of the following data types:

  • a string

  • a number

  • an object (another JSON object)

  • an array

  • a boolean

  • null

This is an example of a JSON structure, just for reference:

{
  foo: bar,
  foo2: {
    foo3: bar3,
    foo4: bar4
  }
}

For more information on JSON file format, please refer to https://json-schema.org/

Configuration options list

Warning

There are only one mandatory field: WAC_URI, all others are optional

Note

Please note that these default values apply when a key is not present in the configuration file.

Check the following CONF.js with the default values that apply when no configuration is defined:

/**
 * URL to redirect anonymous users after any type of call
 * (meetings, quick conferences or direct calls) is finished.
 * Leaving it blank (default) will redirect anonymous users to login view.
 */
ANONYMOUS_END_CALL_URL = '';

/**
 * Allows to change the user's status during a call.
 *
 *  - STATUS[string]: The status that is displayed during the call. The possible values are: 'away', 'busy',
 *    'onThePhone'.
 *
 *  - TIME_UNTIL_RESTORE[number]: Time (in ms) waited since the call has finished until the normal status value
 *    is restored
 */
AUTOMATIC_STATUS_CHANGE_ON_CALL: {
        STATUS?: 'away'| 'busy'| 'onThePhone';
        TIME_UNTIL_RESTORE: number;
} = {
                TIME_UNTIL_RESTORE: 0,
        };

/**
 * The format used to encode avatar images upload using the webphone
 */
AVATAR_FORMAT: 'image/png' | 'image/webp' = 'image/webp';

/**
 * - SEND_INSTANT_AUDIO_MESSAGE[boolean]: When it is true, allows to send instant audio messages.
 * - SEND_INSTANT_VIDEO_MESSAGE[boolean]: When it is true, allows to send instant video messages.
 * - SHOW_IN_CONFERENCE[boolean]: If true, the webphone will show the chat button when a conference is started.
 */
CHAT = {
        SEND_INSTANT_AUDIO_MESSAGE: false,
        SEND_INSTANT_VIDEO_MESSAGE: false,
        SHOW_IN_CONFERENCE: true,
};

/**
 * Object with some conference configuration parameters
 *
 * - ANONYMOUS_USERS_CAN_HOLD[boolean]: Allows an anonymous user to hold a conference. Default value is false.
 * - PARTICIPANT_LIMIT[number]: Limits the number of participants in the conference. There is no default limit set.
 */
CONFERENCE: {
        ANONYMOUS_USERS_CAN_HOLD?: boolean;
        PARTICIPANT_LIMIT?: number;
} = {
                ANONYMOUS_USERS_CAN_HOLD: false,
                PARTICIPANT_LIMIT: Number.MAX_SAFE_INTEGER,
        };

/**
 *  Object with some contacts configuration parameters
 *
 * - NAME: Allows to specify the relative priority of the different fields of a contact that
 *   can be used to obtain its name. The available values are:
 *   - 'contactName': The name specified in the contact itself.
 *   - 'displayName': The name specified by a user in their presence.
 *   - 'username': The name of the user identifier.
 *   - 'email': The first email address of the contact.
 *   - 'phone': The first phone of the contact.
 * - SOURCES: Allows to select the available sources in the contact list. The possible values are:
 *   'personal', 'directory', 'external', 'phone';. Where:
 *   'personal': Contacts created by the user.
 *   'external': Phonebook and static contacts.
 *   'directory': Users domain and group contacts.
 *   'azureOrgContacts': Microsoft Organization contacts for user's domain.
 * - DEFAULT_SOURCE: A string with the default contact source
 * - EXTERNAL_SOURCE_NAME: Allows to change the "EXTERNAL" contact source displayed name
 * - ENABLE_FAV_FILTER: Allows to show only the favorite contacts.
 */
CONTACTS: {
        NAME: Array<'contactName' | 'displayName' | 'email' | 'phone' | 'username'>;
        SOURCES: Agenda[];
        DEFAULT_SOURCE: Agenda;
        EXTERNAL_SOURCE_NAME?: string;
        ENABLE_FAV_FILTER: boolean;
} = {
                NAME: ['displayName', 'contactName', 'username', 'phone'],
                SOURCES: Object.values(Agenda),
                DEFAULT_SOURCE: Agenda.DIRECTORY,
                ENABLE_FAV_FILTER: true,
        };

/**
 * Object that allows to change the date and duration format
 *
 * - DATE[string]: date format for example 'dd/MM/yyyy'
 */
DATE = {
        DATE_FORMAT: 'dd/MM/yyyy',
};

/**
 * Allows to automatically prepend the country code to the phone number when a user creates or edits a contact.
 *  - CONDITION[RegExp]: If set, COUNTRY_CODE will be prepended to every phone number that matches the regular expression.
 *  - COUNTRY_CODE[string]: A string with the country code to prepend to the phone number.
 */
DEFAULT_COUNTRY_CODE: {
        CONDITION: RegExp | undefined;
        COUNTRY_CODE: string;
} = {
                CONDITION: undefined,
                COUNTRY_CODE: '',
        };

/**
 * Allows to specify the MediaStreamConstraints that will be used in getUserMedia requests.
 * Note that default value includes constraints to improve audio quality applying noise reduction techniques.
 *
 * For more information about available values see: https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
 */
DEFAULT_MEDIA_CONSTRAINTS = {
        audio: {
                echoCancellation: true,
                googAutoGainControl: true,
                googAutoGainControl2: true,
                googEchoCancellation: true,
                googEchoCancellation2: true,
                googHighpassFilter: true,
                googNoiseSuppression: true,
                googNoiseSuppression2: true,
        },
        video: {
                googCpuOveruseDetection: true,
                googCpuOveruseEncodeUsage: true,
        },
};

/**
 * Object with some dialpad configuration parameters
 *
 * The dialpad allows to customize actions that will be fired when a key is long pressed.
 * You can customize the number that will be called and attach an icon and a tooltip to this key.
 *
 * To customize dialpad actions just edit the CONF.js file with the desired configuration:
 *
 * The `CONF.js` file contains a json object named DIALPAD, each object key orresponds to the dialpad key,
 * this object has the following fields.
 *
 * - 0-9,'*','#'[json]: corresponds to each dialpad key and it has the following properties:
 *
 *   - icon[string]: Icon name. It should include icon before the icon name, i.e: icon: 'icon sippo-phone'.
 *
 *   - phone[string]: Phone number to call (E.164 or URI or extension).
 *
 *   - tooltip[string]: Allows to show a tooltip when the user holds the mouse over the key.
 *
 * - disableKeyboard[boolean]: When it is enabled, user cannot use the keyboard to 'press' the dialpad keys.
 */
DIALPAD = {
        disableKeyboard: false,
        '0': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '1': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '2': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '3': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '4': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '5': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '6': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '7': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '8': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '9': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '#': {
                icon: '',
                phone: '',
                tooltip: '',
        },
        '*': {
                icon: '',
                phone: '',
                tooltip: '',
        },
};

/**
 * Displays a warning message before closing the browser tab.
 */
DISPLAY_WARNING_CLOSING_TAB = false;

/**
 * Shows the current user's display name when the mouse moves over the avatar.
 */
DISPLAY_USER_NAME = true;

/**
 * Shows the current user's username in the profile settings.
 */
DISPLAY_USERNAME_IN_PROFILE = true;

/**
 * Allows to select the HTML title of the document.
 */
DOCUMENT_TITLE = 'collaborator';

/**
 * A single string or an array of strings specifying the drawer tab or tabs to open when the application is started.
 * Possible values are 'contacts', 'call-button' (to open a view with a single call button), 'calls', 'conferences',
 * 'chat', 'dialpad' and 'meetings'.
 */
DRAWER_FIRST_TAB: DRAWER_TABS | DRAWER_TABS[] = 'contacts';

/**
 * Allows the scaling of the avatar picture before uploading it to Sippo server.
 */
HEIGHT_AVATAR = 180;

/**
 * Allows to display HTML notifications in desktop for calls and message.
 *
 * - CALLS[boolean]: Allows to display HTML notifications for incoming calls.
 *
 * - MESSAGES[boolean]: Allows to display HTML notifications for incoming messages.
 */
HTML_NOTIFICATIONS = {
        CALLS: true,
        MESSAGES: true,
};

/**
 * Establish the maximum length of characters to enter in the inputs.
 */
INPUT_MAX_LENGTH = 45;

/**
 * IRS URL (if applicable)
 */
IRS_URI: string;

/**
 * URL to be shown in some screens with extra information about the product.
 */
KNOW_MORE_URI: string;

/**
 * Allows to select the language of the Sippo collaborator.
 * By default, all the available languages will be included.
 */
LANGUAGES = ['ca', 'de', 'en', 'es', 'fr', 'gl', 'it', 'pt-BR', 'pt-PT'];

/**
 * Specifies the subpath for meetings URLs. URLs will follow this format:
 * https://<webphone_base_url>/${MEETINGS_PATH}/<meeting-id>
 *
 * WARNING: THIS CONFIG OPTION HAS TO MATCH THE SERVER'S CONFIGURED meetingsUri
 */
MEETINGS_PATH = 'm';

/**
 * Specifies the subpath where the quick conferences will be available. URLs will follow this format:
 * https://<webphone_base_url>/${QUICK_CONFERENCES_PATH}/<quick-conference-string>
 *
 * If this is set to an empty string, quick conferences will be disabled
 */
QUICK_CONFERENCES_PATH = 'c';

/**
 * Base URL that links to privacy policies
 */
PRIVACY_POLICIES_URL = 'https://quobis.com/privacy-policy/';

/**
 * Establish the maximum length of characters to enter in the profile link input.
 */
PROFILE_LINK_MAX_LENGTH = 45;

/**
 * Allow old behavior when wac-meeting:XXXX could be used for accessing room XXXX
 * @deprecated
 */
REDIRECT_MEETING_TO_QUICK_CONF = true;

/**
 * If true, conference controls during a meeting are only shown to the meeting creator.
 */
RESTRICTED_MEETINGS = false;

/**
 * Displays information texts and images in the content background
 */
SHOW_CONTENT_INFO = false;

/**
 * Allows to display a sidebar during a call/videocall that can hide the drawer maximizing the conversation space
 */
SHOW_SIDEBAR = true;

/**
 * Allows to configure some sound related parameters:
 *
 * - DTMF_DURATION[number]: Duration of the DTMF in milliseconds.
 * - TONE_VOLUME[0-1]: Specifies the gain value used for all the telephonic tones: DTMFs,
 *   ringing (aka ring back) tone, busy tone, etc. If the value is zero, all the tones will be muted.
 * - NOTIFICATION_VOLUME[0-1]: Specifies the gain value used for the incoming call and incoming chat message notifications.
 */
SOUND = {
        DTMF_DURATION: 300,
        TONE_VOLUME: 0.05,
        NOTIFICATION_VOLUME: 0.2,
};

/**
 * URI of the Sippo wac that manages this installation. This field is mandatory.
 */
WAC_URI: string;

/**
 * URL where the webphone is running. This is automatically populated and doesn't need to be provided in the configuration file.
 */
WCO_URL$: Observable<string>;

/**
 * Keycloak URL. This is automatically populated and doesn't need to be provided in the configuration file.
 */
AUTH_URL$: Observable<string>;

/**
 * Allows the scaling of the avatar picture before uploading it to the Sippo wac server. Value needs to be set in
 * pixels. If no value is present, no scaling will be performed.
 */
WIDTH_AVATAR = 180;

/**
 * Object with some whiteboard configuration parameters.
 * - SET_REMOTE_VIDEO_CAPTURE_BACKGROUND: Allow to set the video of the remote participant as whiteboard background.
 * - DEFAULT_BACKGROUND[string]: Allows to configure a default background on whiteboard creation. The default value
 *   is an empty string. It can be:
 *
 *   - `""` No background. Default value
 *
 *   - `"localVideo"` Local video of the whiteboard creator set as default.
 *
 *   - `"remoteVideo"` Remote video of the whiteboard creator set as default.
 *
 *   - `"localVideoCapture"` A capture of the local video of the whiteboard creator set as default.
 *
 *   -  Any other value will be interpreted as the URL of an image to be used as background.
 *
 * - DEFAULT_LINE_WIDTH[number]: Allows to change the width of the 'free drawing' and the 'line drawing' tool.
 *   The default value is 2.
 *
 * - PALETTE[array]: Allows to select the palette colors. By default is an empty array. Or can be a 1d or 2d array
 *   with the palette colors. When it is 2d, each inner array is a palette row. Example {PALETTE: [['white',
 *   'rgba(23, 32, 43, 0.5)'], ['black', '#445566']]}
 */
WHITEBOARD = {
        SET_REMOTE_VIDEO_CAPTURE_BACKGROUND: false,
        DEFAULT_BACKGROUND: '',
        DEFAULT_LINE_WIDTH: 2,
        PALETTE: [],
};

We are going to explore each of these options in detail.

Top level configuration options

ANONYMOUS_END_CALL_URL (string)
ANONYMOUS_END_CALL_URL: '',

Variable which sets the URL to that anonymous users are redirected after a call is made (including meetings, quick conferences). Leaving it blank (default value) will redirect anonymous users to the login view instead of that URL.

AUTOMATIC_STATUS_CHANGE_ON_CALL (object)
AUTOMATIC_STATUS_CHANGE_ON_CALL: {
              STATUS: 'busy',
              TIME_UNTIL_RESTORE: 1000,
      },

Quobis collaborator can be configured to change the presence status of a user during a call, according to its real presence. If this parameter is not configured no status change will take effect during a call.

Check detailed object for extra information.

CHAT (object)
CHAT: {
  SEND_INSTANT_AUDIO_MESSAGE: false,
  SEND_INSTANT_VIDEO_MESSAGE: false,
  SHOW_IN_CONFERENCE: false,
},

When the chat service is activated, there are a number of customizations about the chat that can be done.

Check detailed object for extra information.

CONFERENCE (object)
CONFERENCE: {
  ANONYMOUS_USERS_CAN_HOLD: false,
  PARTICIPANT_LIMIT: 5,
},

Quobis collaborators allows to setup audio and video multi party conferences (requires the SFU or MCU components). The are several conference behavior related configuration options that can be changed at the CONF.js file.

Check detailed object for extra information.

CONTACTS (object)
CONTACTS: {
              NAME: ['displayName', 'contactName', 'username', 'phone'],
              SOURCES: [Agenda.PERSONAL, Agenda.DIRECTORY, Agenda.EXTERNAL, Agenda.PHONE],
              DEFAULT_SOURCE: Agenda.DIRECTORY,
              EXTERNAL_SOURCE_NAME: 'CONTACTS.EXTERNAL',
              ENABLE_FAV_FILTER: true,
      },

Quobis collaborator has an agenda section which allows for some customization via the CONF.js file. These are configured on the CONTACTS JSON object.

DATE (object)
DATE = {
              DATE_FORMAT: 'dd/MM/yyyy',
              DATE_FORMAT: 'dd/MM/yyyy',
              DURATION_FORMAT: 'mm:ss',
  DATE_FORMAT: 'dd/MM/yyyy',
              DURATION_FORMAT: 'mm:ss',
};

Allows to change the date and duration format. Check detailed object for extra information.

DEFAULT_COUNTRY_CODE
DEFAULT_COUNTRY_CODE: {
  CONDITION: RegExp | undefined;
  COUNTRY_CODE: string;
}

Note

This feature is disabled by default.

Quobis collaborator allows adding a default country code prefix to the phone numbers. In order to enable this functionality, the next parameters have to be configured:

  • CONDITION: A regular expression that indicates when the code will be prepended.

  • COUNTRY_CODE: The desired country code. Any value as country code (eg: “+34”, “+1”) according to ITU standards is valid.

This option is taken into account in the following situations:

  • Outgoing calls

  • Contact creation or edition: All the phone numbers are prefixed with the country code.

For example, if we want to add the prefix “+34” to all the phone numbers of 9 digits length which start by number 8 or number 9, we have to configure the “condition” and “country_code” parameters as follows:

DEFAULT_COUNTRY_CODE: {
  CONDITION: /^[98]\d{8}$/,
  COUNTRY_CODE: '+34',
},
DEFAULT_MEDIA_CONSTRAINTS (object)
DEFAULT_MEDIA_CONSTRAINTS: {
              audio: true,
              video: true,
      },

This parameter allows a system administrator to establish constraints on the media track settings for each kind of track when initializing calls.

Check detailed object for extra information.

DIALPAD (object)
DIALPAD: {
              0: {
                      icon: 'icon sippo-plus',
                      phone: '',
                      tooltip: '',
              },
              1: {
                      icon: 'icon default-voicemail',
                      phone: '',
                      tooltip: '',
              },
      },

The dialpad allows to trigger customized actions that will be fired when a key is long pressed. You can customize the number that will be called and attach an icon and a tooltip to this key. To edit these dialpad actions, just edit the CONF.js file with the desired configuration.

Check detailed object for extra information.

DISPLAY_WARNING_CLOSING_TAB (boolean)
DISPLAY_WARNING_CLOSING_TAB = false;

Displays a warning message before closing the browser tab.

DISPLAY_USER_NAME (boolean)
DISPLAY_USER_NAME: true,

This variable enables the header of the left drawer section to change on mouse hover over the current user’s avatar (desktop only). It will change in order to display the user’s configured name (displayname) or the system username of the collaborator user.

  • true: Shows displayname, or username if displayname is not configured.

  • false: Nothing is displayed, hover disabled.

Note

Default value is true. So this feature is enabled by default.

DOCUMENT_TITLE (string)
DOCUMENT_TITLE: 'collaborator';

This configuration option refers to the HTML title of the web application. It defaults to collaborator

DRAWER_FIRST_TAB (string or string[])
DRAWER_FIRST_TAB: 'call-button',

This allows to configure which drawer tabs are open by default when the web application starts. This variable wiil contain a single string or an array of strings specifying the name of these drawer tabs. The following values are valid:

  • contacts

  • call-button

  • calls

  • conferences

  • chat

  • dialpad

  • meetings

HEIGHT_AVATAR (number)
HEIGHT_AVATAR: 96,

Quobis collaborator allows users to upload its own avatar, which will be show to other Quobis collaborator users both in the contact list and also in every incoming call.

Allows the scaling of the avatar picture before uploading it to the Quobis AS server. Value needs to be set in pixels.

HTML_NOTIFICATIONS (object)
HTML_NOTIFICATIONS: {
              CALLS: true,
              MESSAGES: true,
      },

Quobis collaborator has the ability to use the operating system notifications to alert the user of incoming audio, video and chat sessions.

Check detailed object for extra information.

INPUT_MAX_LENGTH (number)
INPUT_MAX_LENGTH: 45,

Defines the maximum character length which can be entered into the inputs of the web application

KNOW_MORE_URI (string)
KNOW_MORE_URI: 'https://know.more.uri.com/',

Quobis collaborator includes an URI to put extra information. It is shown in some screens with extra information about the product.

Note

Default value is null. So this feature is disabled by default.

LANGUAGES (string[])
LANGUAGES: ['es', 'en'],

Contains an array of strings of the language codes Quobis collaborator will be available in. By default, the following will be included:

  • ca : Catalonian

  • de : German

  • en : English

  • es : Spanish

  • fr : French

  • gl : Galician

  • it : Italian

  • pt-br : Portuguese (Brazil)

  • pt-pt : Portuguese (Portugal)

Note

Please note this is the list of all languages available. No other language code can be added

MEETINGS_PATH (string)
MEETINGS_PATH = 'm'

Meetings path for meetings URL. Meetings URLS will be like: https://collaborator/${MEETINGS_PATH}/meetingId.

Warning

THIS CONFIG OPTION HAS TO MATCH THE SERVER’S CONFIGURED meetingsUri

PRIVACY_POLICIES_URL (string)
PRIVACY_POLICIES_URL: 'https://quobis.com/privacy-policy/',

Allows to customize the URL that links to privacy policies

QUICK_CONFERENCES_PATH (string)
QUICK_CONFERENCES_PATH = 'c'

Quick conferences can be enabled or disabled using the QUICK_CONFERENCES_PATH parameter.

  • QUICK_CONFERENCES_PATH = string

    Quick conferences are enabled where the access URL is <https://<webphone_base_url>/${QUICK_CONFERENCES_PATH}/<quick-conference-string>

  • QUICK_CONFERENCES_PATH = ''

    Quick conferences are disabled.

Note

By default the quick conferences are enabled being the access URL <https://<webphone_base_url>/c/<quick-conference-string>

REDIRECT_MEETING_TO_QUICK_CONF (boolean)
REDIRECT_MEETING_TO_QUICK_CONF: true,

When set to TRUE, if a user tries to join a meeting URI that does not exist or is unavailable, an automatic HTTP redirection is made to a quick-conference with the same ID. For instance, if meeting with ID 123456 does not exists, when the user navigates to htps://base_url/{MEETINGS_PATH}/123456, he is redirected to https://base_url/c/123456 and is able to join this quick conference. When this parameter is set to FALSE, the user is redirected as well but he/she cannot join that quick-conference. Default value is TRUE.

RESTRICTED_MEETINGS (boolean)
RESTRICTED_MEETINGS = false

If set to true, the participants of the meetings that are not the meeting creator will see the use of the functionalities of the room limited, only allowing the use of the chat, the configuration of the media settings and the option to hang up.

Note

By default this functionality is disabled.

SHOW_CONTENT_INFO (boolean)
SHOW_CONTENT_INFO: false,

Quobis collaborator’s interface is divided into two main panels. One to the left where all the tabs are present and a user selects contacts and manages their account, and another one to the right where calls and video calls appear (the content). If set to true this variable allows the administrator to show information in the content about the tab selected in the left drawer when there is no ongoing call.

SHOW_SIDEBAR (boolean)
SHOW_SIDEBAR: true,

Enabled allows to display a sidebar during a call or a video call which can hide the drawer maximizing the conversation space

Note

Default value is true so this feature is enabled by default.

SOUND (object)
SOUND = {
        DTMF_DURATION: 300,
        TONE_VOLUME: 0.05,
        NOTIFICATION_VOLUME: 0.2,
};

The volume for tones and notification sounds can be specified using a number between 0 and 1, being 0 the minimum value and 1 the maximum value. The duration of DTMF tones can also be adjusted with the desired number in milliseconds.

Check detailed object for extra information.

WAC_URI (string)
WAC_URI: 'https://janus.quobis.com/wac',

Defines the URI of the Quobis wac that will manage the installation

Note

As mentioned before, this is a mandatory field.

WHITEBOARD (object)
WHITEBOARD: {
              SET_REMOTE_VIDEO_CAPTURE_BACKGROUND: false
              DEFAULT_BACKGROUND: 'localVideoCapture',
              DEFAULT_LINE_WIDTH: 10,
              PALETTE: [
                      ['black', 'red', 'green', 'blue'], // Each inner array is a palette row
                      ['white', 'cyan', 'magenta', 'yellow'],
                      ['rgba(0, 0, 0, 0.5)', '#88ff0000', '#8800ff00', '#880000ff'],
                      ['rgba(255, 255, 255, 0.5)', '#8800ffff', '#88ff00ff', '#88ffff00'],
              ],
      },

When two or more users are on a call, regardless of the type of the call (audio or video), a whiteboard session can be activated. This whiteboard enables the real-time interaction between all participants of the conference, which can use a set of tools such as pencils, drawing forms, move forms, etc…

There are several characteristics of the whiteboard that can be configured by the IT administrator under the JSON object “WHITEBOARD”

Check detailed object for extra information.

WIDTH_AVATAR (number)
WIDTH_AVATAR: 96,

Quobis collaborator allows users to upload its own avatar, which will be show to other Quobis collaborator users both in the contact list and also in every incoming call.

This parameter allows the scaling of the avatar picture before uploading it to the Quobis AS server. Value needs to be set in pixels.

Nested levels configuration options

AUTOMATIC_STATUS_CHANGE_ON_CALL
AUTOMATIC_STATUS_CHANGE_ON_CALL: {
              STATUS: 'busy',
              TIME_UNTIL_RESTORE: 1000,
      },

Presence status can be set manually by the users just by clicking on its presence switch selector. In addition, Quobis collaborator can be configured to change the presence status of a user during a call, according to its real presence. Two parameters can be configured as explained in the table below:

  • STATUS (string) - Default: null

    The status the application will change to. Accepted values are one of these strings:

    • away

    • busy

    • on-the-phone

  • TIME_UNTIL_RESTORE (number) - Default: 0

    Time (in ms) waited since the call has finished until the normal status value is restored. If a negative value is set, the status will never be restored.

Note

STATUS is not configured by default, so if not included the status will not change while on call.

CHAT
CHAT: {
              SEND_INSTANT_AUDIO_MESSAGE: false,
              SEND_INSTANT_VIDEO_MESSAGE: false,
              SHOW_IN_CONFERENCE: false,
      },

The Quobis collaborator chat feature, if activated, provides a set of customizations that can be done:

  • show_in_conference (boolean) - Default: true

    If set to true, the webphone will show the chat button when a conference is started. This parameter is related only to the button, not the functionality itself, so even when it is set to false, the conference chat is created.

  • send_instant_audio_message (boolean) - Default: false

    If true, Quobis collaborator will allow to send instant audio messages over the chat.

  • send_instant_video_message (boolean) - Default: false

    If true, Quobis collaborator will allow to send instant video messages over the chat.

CONFERENCE
CONFERENCE: {
  ANONYMOUS_USERS_CAN_HOLD: false,
  PARTICIPANT_LIMIT: 5,
},

Quobis collaborators allows to setup audio and video multi party conferences (requires the SFU or MCU components). The table below summarizes the configuration options for multiparty conferencing:

  • PARTICIPANT_LIMIT (number) - Default: Number.MAX_SAFE_INTEGER

    Limits the number of participants at each meeting. It’s a system-wide parameter that cannot be set on a per-meeting basis. Please note that there is no default limit set.

  • ANONYMOUS_USERS_CAN_HOLD (boolean) - Default: false

    Defines wether an anonymous user can hold a conference or not. Default value is false.

CONTACTS

Quobis collaborator has an agenda section which allows for some customization via the CONF.js file. The table below summarizes the available keys under the JSON objects “CONTACTS”:

CONTACTS: {
              NAME: ['displayName', 'contactName', 'username', 'phone'],
              SOURCES: [Agenda.PERSONAL, Agenda.DIRECTORY, Agenda.EXTERNAL, Agenda.PHONE],
              DEFAULT_SOURCE: Agenda.DIRECTORY,
              EXTERNAL_SOURCE_NAME: 'CONTACTS.EXTERNAL',
              ENABLE_FAV_FILTER: true,
      },
  • NAME (string[]) - Default: ['displayName', 'contactName', 'username', 'phone']

    Allows to configure the priority of the visible name to be displayed of a contact in the list or detail views. For example, if one contact has not ‘displayName’ property, the ‘contactName’ will be displayed.

  • SOURCES (Agenda[]) - Default: [Agenda.PERSONAL, Agenda.DIRECTORY, Agenda.EXTERNAL, Agenda.PHONE]

    The sources to be displayed in the selector when they have available contacts.

  • DEFAULT_SOURCE (Agenda) - Default: Agenda.DIRECTORY

    Allows to select the default contact entries will be selected in the contacts selector. The available values are:

    • Agenda.DIRECTORY: To select Directory contacts as default like domain or contact groups.

    • Agenda.PERSONAL: To select the contacts created by the user as default.

    • Agenda.EXTERNAL: To select the external contacts as default.

    • Agenda.PHONE: To select the phone contacts as default. This is only available in mobile hybrid apps.

  • EXTERNAL_SOURCE_NAME (string) - Default: ‘CONTACTS.EXTERNAL’

    The display name of the External source of contacts. By default is ‘CONTACTS.EXTERNAL’, is a constant added in the localization files to display the translation of ‘External’. Here you can write any text to refer, for example, the organization that use the application as can be ‘Quobis’.

  • ENABLE_FAV_FILTER (boolean) - Default: true

    Allows to show the button to filter only the favorite contacts.

DATE (object)

Allows to change the date and duration format.

DATE = {
              DATE_FORMAT: 'dd/MM/yyyy',
      };
  • DATE_FORMAT (string) - Default: ‘dd/MM/yyyy’

    Allows to change the Date format of the dates to be displayed in the different views.

DEFAULT_MEDIA_CONSTRAINTS
DEFAULT_MEDIA_CONSTRAINTS: {
  audio: {
    autoGainControl: true,
    echoCancellation: true,
    noiseSuppression: true,
  },
  video: {
    facingMode: 'user'
  },
},

This object has the following two fields to configure. These represent the constraints to the audio/video when requesting media tracks from the user. By default audio and video are set to true so no constraint is applied.

  • audio (object or boolean) - Default: true

    • MediaTrackConstraints (Constraint).

    • Following the configuration shown in the example above allows to reduce noise and improve audio quality during calls.

  • video (object or boolean) - Default: true

    • MediaTrackConstraints (Constraint).

    • Its main purpose is to allow a system administrator to easily change the default camera used by Quobis collaborator. This can be done by adding facingMode constraint to video set to environment (for the rear camera) or user (for the front camera) as shown in the example.

Note

See MediaTrackConstraints to learn more about constraints and their browser support.

Note

If the value DEFAULT_MEDIA_CONSTRAINTS is no present, the default camera is the front one (facing user). This configuration is system-wide so it applies to every user. For more information, please check this link

Please note that camera switch functionality is available as well, but only for SIPoWS environments in the current version”

DIALPAD
DIALPAD: {
              0: {
                      icon: 'icon sippo-plus',
                      phone: '',
                      tooltip: '',
              },
              1: {
                      icon: '',
                      phone: '',
                      tooltip: '',
              },
      },

The dialpad allows to trigger customized actions that will be fired when a key is long pressed. You can customize the number that will be called and attach an icon and a tooltip to this key.

The JSON object named DIALPAD makes a correspondence between dialpad keys (0-9, *,#) and possible actions:

  • 0-9,*,# (object) - Default: null

    Corresponds to each dialpad key and it has the following properties:

    • phone (string): Phone number to call (E.164 or URI or extension)

    • icon (string): Icon name. It should include icon before the icon name, i.e: icon: ‘icon sippo-phone’.

    • tooltip (string): String that will be shown as a tooltip when the user holds the mouse over the key.

    • disableKeyboard (boolean) - Default: true

    When enabled, user cannot use the keyboard to “press” the dialpad keys. This is useful to prevent the end-user to dial into URIs and limit the destination only to numbers and * #

HTML_NOTIFICATIONS
HTML_NOTIFICATIONS: {
              CALLS: true,
              MESSAGES: true,
      },

Quobis collaborator has the ability to use the operating system notifications to alert the user of incoming audio, video and chat sessions.

Note

Please note that this feature is only available on desktop environments.

  • CALLS (boolean) - Default: true

    Allows to display HTML notification for incoming calls (audio and video).

  • MESSAGES (boolean) - Default: true

    Allows to display HTML notifications for incoming messages.

SOUND
SOUND: {
  DTMF_DURATION: 300,
  TONE_VOLUME: 0.05,
  NOTIFICATION_VOLUME: 0.2,
},

The volume for tones and notification sounds can be specified using a number between 0 and 1, being 0 the minimum value and 1 the maximum value. The duration of DTMF tones can also be adjusted with the desired number in milliseconds.

  • DTMF_DURATION (number) - Default 300: Duration of the DTMF in milliseconds.

  • TONE_VOLUME (0-1) - Default 0.05: Specifies the gain value used for all the telephonic tones: DTMFs, ringing (aka ring back) tone, busy tone, etc. If the value is zero, all the tones will be muted.

  • NOTIFICATION_VOLUME (0-1) - Default 0.2: Specifies the gain value used for the incoming call and incoming chat message notifications.

WHITEBOARD
WHITEBOARD: {
  SET_REMOTE_VIDEO_CAPTURE_BACKGROUND: true
  DEFAULT_BACKGROUND: 'localVideoCapture',
  DEFAULT_LINE_WIDTH: 10,
  PALETTE: [
    ['black', 'red', 'green', 'blue'], // Each inner array is a palette row
    ['white', 'cyan', 'magenta', 'yellow'],
    ['rgba(0, 0, 0, 0.5)', '#88ff0000', '#8800ff00', '#880000ff'],
    ['rgba(255, 255, 255, 0.5)', '#8800ffff', '#88ff00ff', '#88ffff00'],
  ],
},

There are several characteristics of the whiteboard that can be configured by the IT administrator under the JSON object “WHITEBOARD”:

  • SET_REMOTE_VIDEO_CAPTURE_BACKGROUND (boolean) - Default: false

    When set to true a new button in the change whiteboard background popup will be shown to capture the remote video image and set is as background. This button will be enabled if the conference has remote video tracks and exactly two participants.

  • DEFAULT_BACKGROUND (string) - Default: ""

    Allows to configure a default background on whiteboard creation. Any of the following strings are accepted values. Any other value will be interpreted as the URL of an image to be used as backgroud.

    • localVideo: Local video of the whiteboard creator set as default.

    • remoteVideo: Remote video of the whiteboard creator set as default. This value will only apply when the call has exactly two participants

    • localVideoCapture: A capture of the local video of the whiteboard creator set as default.

    Please note that if this key is not present on the configuration file, a white image will be used as default background.

  • DEFAULT_LINE_WIDTH (number) - Default: 2

    Value in pixels of the resulting width of “free drawing” and “line drawing” tools.

  • PALETTE (string[] or string[][]) - Default: []

    Allows to select the palette colors. By default is an empty array. Can be a 1d or 2d array with the palette colors. When it is 2d, each inner array is a palette row as shown in the example.

Note

DEFAULT_BACKGROUND and SET_REMOTE_VIDEO_CAPTURE_BACKGROUND values will not apply if no video tracks are present in a call.

Note

If a call has more than two participants remote video related values will not be applied.

Example of basic configuration

The document below shows an example of a basic configuration. FILE CONF.js:

window.STATIC_CONF = {
   WAC_URI: 'https://web.Quobis',
   KNOW_MORE_URI: 'https://www.quobis.com',
};

URL-based configuration

When a room’s lobby URL is loaded, the next query parameters can be used:

  • hideProfile: if present, it hides the log in link and the avatar and makes the display name field read-only.

  • username: if present, the parameter value is used as the default display name.

  • bypassLobby: if present, the user is taken to the conference room, skipping the lobby view (available since v7.5.0)

  • note: the value of this field is stored in the internal presence.note value (available since v7.5.0). Example