Base theme and other preconfigured themes

Pexip Infinity ships with its own Base theme. Files and configuration settings from the Base theme are used when no other theme has been selected, or the selected theme does not contain the required file or setting.

You cannot change the contents of the Base theme, but you can create your own themes by uploading customized versions of one or more of the Base files.

When a user accesses a service that has a customized theme applied, Pexip Infinity presents them with the sounds and images from the files included in that theme. If the customized theme does not include a specific file, or the service does not have a theme applied, then Pexip Infinity uses the relevant file from the default theme. If the default theme does not include the specific file either, then the file from the Base theme is used.

The same rules apply when modifying the configuration settings in the themeconfig.json file. If any values within this file are not specified, Pexip Infinity will use the values from the Base theme's themeconfig.json file.

The following sections list the complete set of configuration, endpoint data, audio, image and custom layout files that make up the Base theme. If you want to see details of the base theme used in legacy-style themes (customized themes used with version 17 or earlier of Pexip Infinity), see Legacy themes file requirements.

In addition to the files and settings included within the Base theme, there are some advanced settings (such as controlling where screen text is positioned) that are used by default but are not contained with the Base theme's themeconfig.json file, but they can be overridden by adding them to your own customized themeconfig.json file. See Splash screen elements (to control the size and position of text/graphics) for full information about what can be configured, and Default element configuration for each screen to see the default positions, offsets and sizes used by each splash screen.

Pexip Infinity also ships with a number of preconfigured themes which are similar to the Base theme, but contain alternative audio files with different conference entry and exit tones, and alternative references to the "#" key (as the "hash key" or as the "pound key").

The default font for the in-conference display of participant names is Roboto (which cannot be changed), or if that is not available for the character set, Noto Sans. All other overlay text (splash screen text and in-conference messages) uses GT Pressura Light and this can be changed by using a customized theme.

Theme configuration

The themeconfig.json file is the theme's primary configuration file. It is a JSON dictionary that specifies the background and layout of the splash screens used when joining a conference (such as the Welcome screen and PIN entry screens), specifies which image files are used, and controls some of the features and overlays that are used within a conference. It does not control any of the audio (sound) elements of the theme.

{
    "dtmf_conference_control_commands": {
        "*6": "toggle_self_mute",
        "*7": "toggle_lock",
        "*5": "toggle_guest_mute",
        "*4": "toggle_pres_in_mix",
        "*9": "toggle_multiscreen",
        "*8": "cycle_layout",
        "##": "end_conference"
    },
    "dtmf_allowed_layouts": ["1:7", "ac", "1:21", "2:21", "2x2", "3x3", "4x4", "5x5", "1:0", "1:33"],
    "plus_n_indicator_text_color": "0xFFFFFF",
    "recording_indicator_text": "Recording",
    "conference_locked_indicator_text": "Conference locked",
    "test_call_service_media_delay": 2,
    "disable_streaming_indicator": false,
    "disable_conference_locked_indicator": false,
    "streaming_indicator_text": "Streaming enabled",
    "public_streaming_indicator_text": "Public streaming enabled",
    "enable_dtmf_conference_control": true,
    "disable_watermark_icon": false,
    "disable_watermark_mute_icon": true,
    "plus_n_indicator_bg_color": "0x323232",
    "test_call_service_disconnect_timeout": 10,
    "theme_version": 2,
    "conference_unlocked_indicator_text": "Conference unlocked",
    "conference_locked_indicator_n_waiting_text": "{number_of_waiting_participants} waiting for host",
    "live_captions_on_indicator_text": "Live captions on",
    "live_captions_off_indicator_text": "Live captions off",
    "transcribing_indicator_text": "Transcribing"
}

Each object in the themeconfig.json file is described in the following table.

All of the colors in these controls are specified using RGB hexadecimal notation (in the format 0xnnnnnn).

Name Description Value in Base theme

dtmf_conference_control_commands

If DTMF controls are enabled, this section specifies the DTMF digits used for each control. Current controls are:

  • toggle_self_mute (*6): toggles the mute status of the participant
  • toggle_lock (*7): toggles the locked/unlocked state of the conference
  • toggle_guest_mute (*5): toggles the muted/unmuted status of all Guest participants
  • toggle_pres_in_mix (*4): toggles whether the presentation stream is sent to that endpoint in the main video mix (replacing some of the other video participants), or as a separate stream
  • toggle_multiscreen (*9): toggles multiscreen participant display
  • cycle_layout (*8): cycles the layout through the set of available layouts as defined in dtmf_allowed_layouts
  • end_conference (##): terminates the conference

When changing the DTMF controls, you must only edit the digits inside the first pair of quotes on each line (i.e. *6, *7, *5, *4, *9, *8 and ##). Editing anything else will disable DTMF commands.

If you change the *6 control for self-mute, you should also change the associated watermark_mute_icon.png graphic to reference the revised command.

Note that another DTMF control command, toggle_teams_large_gallery, could be made available for endpoints that are in an interop call to a Microsoft Teams conference. This command toggles between the current layout and Microsoft's Large Gallery view. However, it is not included in the base theme and must be manually added to your custom theme and assigned some appropriate DTMF digits (such as *3).

Each control must be two DTMF digits long, and all the commands must be different.

Note that with calls made via the Infinity Gateway, any DTMF signals are forwarded to the other party. The only exceptions to this are interop calls to Microsoft Teams and Google Meet where DTMF controls can be used to control the layout and toggle self mute (see Configuring Pexip Infinity as a Microsoft Teams gateway and Configuring Pexip Infinity as a Google Meet gateway for more information).

See Using a DTMF keypad to control a conference for guidance on best practice.

"*6": "toggle_self_mute"
"*7": "toggle_lock"
"*5": "toggle_guest_mute"
"*4": "toggle_pres_in_mix"
"*9": "toggle_multiscreen"
"*8": "cycle_layout"
"##": "end_conference"
dtmf_allowed_layouts

The set of layouts that are cycled through on each press of the cycle_layout DTMF command (*8 by default). This can also include the names of any custom layouts.

The order of the layout identifiers in the list determines the cycle sequence, starting with the layout next in the list after the current layout.

However, if the initial (default) layout is not in the list then:

  • The layout that is first in the list is used in the first instance.
  • You cannot use DTMF to return to that initial layout during the conference.
["1:7", "ac", "1:21", "2:21", "2x2", "3x3", "4x4", "5x5", "1:0", "1:33"]
recording_indicator_text The text that is associated with the recording indicator and that is temporarily displayed when a conference is being recorded. Recording

conference_locked_indicator_text

The text that is associated with the conference locked indicator and that is temporarily displayed when a conference is locked.

This has a maximum limit of 20 characters.

Conference locked

conference_locked_indicator_n_waiting_text

The text that is associated with the conference locked indicator text, and shows the number of participants waiting in the lobby in Teams CVI calls.

{number_of_waiting_participants} waiting for host

test_call_service_media_delay

The number of seconds that media is delayed before being looped back to the caller when using a Test Call Service.

(For more information, see Configuring the Test Call Service.)

2

disable_streaming_indicator Determines whether the streaming indicator icon is disabled (true) or enabled (false). false

disable_conference_locked_indicator

Determines whether the conference locked and conference unlocked indicators are disabled (true) or enabled (false). false
streaming_indicator_text The text that is associated with the streaming indicator and that is temporarily displayed when a conference is being streamed. Streaming enabled

public_streaming_indicator_text

The text that is associated with the streaming indicator and that is temporarily displayed when Google Meet public streaming is enabled. Public streaming enabled

enable_dtmf_conference_control

Determines whether Host participants can use DTMF to control the conference (true) or not (false).

true
disable_watermark_icon Determines whether the watermark icon is overlaid onto the main speaker video (false) or is not used (true). See Video watermarking for more information. false

disable_watermark_mute_icon

Determines whether the "Your mic has been muted" watermark icon is overlaid onto the stream sent to a participant when that participant has been muted (false) or is not used (true). See Video watermarking for more information. true

test_call_service_disconnect_timeout

The number of seconds that a user can test their media before the disconnect message is played, when using a Test Call Service.

10

theme_version Controls whether legacy (version "1") or new style (version "2") themes are used. If "theme_version": 2 is not present in a themeconfig.json file at the lowest level of the theme file hierarchy then it is assumed to be a legacy-style theme (see How do I know which files and configuration settings will be used in a particular VMR? for more information). 2

conference_unlocked_indicator_text

The text that is associated with the conference unlocked indicator and that is temporarily displayed when a conference is unlocked. Conference unlocked

live_captions_on_indicator_text

The text that is associated with the live captions indicator and that is temporarily displayed when captions are enabled. Live captions on

live_captions_off_indicator_text

The text that is associated with the live captions indicator and that is temporarily displayed when captions are disabled. Live captions off

transcribing_indicator_text

The text that is associated with the conference transcribing indicator and that is temporarily displayed when a conference is being transcribed. Transcribing

plus_n_indicator_text_color

The color of the text on the thumbnail that shows how many additional participants are in the conference. This is used in conjunction with plus_n_indicator_bg_color. 0xFFFFFF
(white)

plus_n_indicator_bg_color

The background color of the thumbnail that shows how many additional participants are in the conference. This is used in conjunction with plus_n_indicator_text_color. 0x323232
(dark gray)

◊ This setting is no longer used from v35 onwards, and will be completely unsupported from v36.

Endpoint data (vendordata.json)

The vendordata.json file contains information about videoconferencing endpoints from different manufacturers.

It is used to determine whether a specific endpoint is a single-screen or two-screen device (unless the endpoint explicitly signals to Pexip Infinity how many screens it has). This information is used when determining if presentation content could be sent as part of the layout mix when using Adaptive Composition or the Teams-like layout, and if multiscreen participant display is supported:

  • Single screen endpoints:

    • Presentation content may be sent as part of the layout mix, or as a separate presentation stream.
    • Multiscreen participant display is not available.
  • Dual screen endpoints:

    • Presentation content is always sent as a separate presentation stream.
    • Multiscreen participant display is available for the supported layouts.

      For H.323 endpoints, the vendordata.json file cannot identify the number of screens (single or dual) and the endpoint cannot explicitly signal how many screens it has, thus they cannot use multiscreen participant display by default. Multiscreen participant display can only be enabled by sending a *9 (toggle to multiscreen) DTMF command to the conference. See Using a DTMF keypad to control a conference and Determining if an endpoint has single or multiple screens for more information.

See Receiving the presentation stream as part of the layout mix (Adaptive Composition) and Multiscreen participant display for more information.

It is also used for Google Meet audio denoising interoperability to configure a list of endpoints that perform their own in-built denoising. See Configuring Pexip Infinity as a Google Meet gateway for more information.

The default vendordata.json file is shown below:

{
    "endpoints_by_display_count": {
        "1": [
            "Cisco-Board",
            "Cisco-DX",
            "Cisco-Desk",
            "Cisco-EX60",
            "Cisco-EX90",
            "Cisco-MX200",
            "Cisco-MX300",
            "Cisco-RoomKitMini",
            "Cisco-SX10",
            "TANDBERG/257",
            "Yealink VC200",
            "PolycomRealPresenceTrio",
            "PolycomStudioX30",
            "Polycom (HDX 4000",
            "Polycom (HDX 4500",
            "Polycom (HDX 6000"
        ],
        "2": []
	},
	"built_in_denoising": [
	]
}

The JSON dictionary in the file contains:

  • An endpoints_by_display_count object, which contains two further objects:

    • "1": this contains an array of names of single screen endpoints (the absence of a closing bracket for the HDX device names is deliberate).
    • "2": this contains an array of names of dual screen endpoints (this array is empty by default).
  • A built_in_denoising object that contains an array (empty by default) of endpoints that perform their own built-in audio denoising. This information is currently used for Google Meet interoperability only.

The endpoint names used in the arrays are those that are contained in the user agent string used by the endpoint, and can be seen in the Vendor field when viewing participant status information.

Pexip intends to maintain and update this file as appropriate in future software versions, however you may amend the contents of the arrays and provide your own vendordata.json file as part of a custom theme upload and then apply that theme to your platform, VMRs or rules in the normal way to override the default behavior. Ensure that you do not break the syntax of the JSON file; when adding endpoints to the empty arrays follow the format of the existing "1" (single screen endpoints) object.

Audio files

The following table lists the default audio files and their content, which is contained within the Base theme:

Image files

Background image files (JPG)

Three full-size background JPG image files are used — two (which are just plain dark screens) for the Test Call Service and participant pinning, and one (fjord) for all other cases. Other SVG images and text that are specified in other theme files is overlaid onto these screens according to any layout requirements that have been added to the themeconfig.json file, and the type and status of the call.

File name Image size (width, height) Content in Base theme Notes
background.jpg 1920 x 1080 pixels
JPG (RGB mode only)
The background image used by default on all splash screens except for those used by the Test Call Service.
background_test_call.jpg 1920 x 1080 pixels
JPG (RGB mode only)
The background image (a dark screen) used by default on the Test Call Service splash screens.
background_reserved_slot.jpg 1920 x 1080 pixels
JPG (RGB mode only)
The background image (a black screen) used by default on the reserved_slot splash screen when using participant pinning.

Splash screens

The following table lists the splash screens that you can configure within a theme. It describes when that screen is shown and shows its default appearance. It also identifies the screen key to use in a screens object if you want to override the default behavior, and the default icon image and text label elements used on that screen.

All of the screens used when joining a conference use background.jpg as the default background image. The Test Call Service uses background_test_call.jpg during the call.

Overlay SVG image files

All of the overlay vector images in the Base theme are listed below. All of the images are white, except for icon_inactive_page.svg, and are shown here against a gray background. The table also lists the splash screens on which the overlay images are used by default.

File name Content in Base theme Associated default splash screens
icon_active_page.svg

test_call_welcome
test_call_in_progress
test_call_complete
(they are rendered as the progress dots along the bottom of the screen)

icon_connecting.svg connecting
inlobby_status_unknown
icon_error.svg

error_capacity_exceeded
error_insufficient_licenses
error_invalid_license

icon_error_insufficient_video_licenses.svg

error_insufficient_video_licenses
icon_inactive_page.svg

test_call_welcome
test_call_in_progress
test_call_complete
(they are rendered as the progress dots along the bottom of the screen)

icon_is_in_lobby.svg inlobby

icon_other_participants_audio_only.svg

other_participants_audio_only
icon_pin_entry.svg pin_welcome
pin_entry
icon_pin_entry_digit.svg pin_entry
icon_pin_invalid.svg pin_invalid
icon_reserved_slot.svg reserved_slot
icon_streaming_screen.svg

streaming_in_progress
stream_waiting

icon_timeout.svg timeout

icon_virtual_reception_conference_id_entry.svg

virtual_reception_conference_id_entry

icon_virtual_reception_conference_id_invalid.svg

virtual_reception_conference_id_invalid

icon_virtual_reception_connecting.svg

virtual_reception_connecting

icon_virtual_reception_welcome.svg

virtual_reception_welcome
icon_waiting_for_host.svg waiting_for_host
icon_welcome.svg welcome
pin_correct

Overlay SVG image files used by the Test Call Service

These overlay SVG image files are used only by the Test Call Service:

File name Content in Base theme Associated default splash screens
icon_test_call_complete.svg test_call_complete
icon_test_call_welcome.svg test_call_welcome

Indicator graphics used within an ongoing conference

The following graphics may be used during a conference. The SVG indicators are rendered on top of a dark gray background (the color is 0x7f323232, where 7f is the alpha channel which makes the background slightly transparent). The gray background is not part of the actual SVG image itself and it cannot be customized. If you use your own customized SVG images, ensure that they look appropriate when displayed on sizes from 20x20px to 48x48px, and are recognizable when displayed as 12x12px for participants that use very low resolutions.

If you are using a theme to customize gateway calls only, then you only need to consider a subset of these images, as indicated in the table below.

File name Content in Base theme Notes Used in gateway calls
icon_no_presentation.svg

Used to indicate that there is currently no presentation stream.

It is used by default on the no_presentation splash screen.

 
icon_no_video.svg

Shown when a video stream is not available.

It is used by default on the no_main_video and no_incoming_video splash screens. It should look appropriate when displayed at sizes up to 400 x 400 pixels.

icon_video_muted.svg

Used to represent a video-muted participant who is excluded from the video layout.

Various icon_notch57tp_<item>.svg files

<various>

These icon images are used to support the in-conference indicators, such as participant counts, audio participants, recording indicators and locked status that are shown at the top-center of the layout.

We recommend that you do not customize these elements as we cannot guarantee compatibility with future versions of Pexip Infinity.

 

presence_avatar_image.jpg

Shown next to the conference alias when using legacy Connect app clients, and as the contact avatar when using Skype for Business.

When the image is used, the corners are cropped so that it can be displayed as a round image.

It is a JPG image (RGB mode only) and should be 128 x 128 pixels.

no_powerpoint_live.jpg

Used in Microsoft Teams interop calls to indicate that a Teams client is performing PowerPoint Live sharing, or is using any other non-supported content share sources, such as Excel or Whiteboard.

raise_hand.png Used in the Teams-like layout to indicate that a participant in the Teams conference has raised their hand. This image only applies to Teams integrations, and it should not be customized.

watermark_icon.png

Transparent image used for applying a watermark to the main speaker video in a conference.

The default image is a white Pexip logo with 40% transparency and is shown here against a blue background.

It is a PNG image and should be 200 pixels wide x 100 pixels high.

See Video watermarking for more information.

 

watermark_footer_icon.png

A watermark that is only used in the 1 + 33 layout (it appears at the bottom of the layout).

It is the same size as the standard watermark_icon.png file, but it has inverted colors (so that it shows up on the white background of the layout).

 

watermark_mute_icon.png

An overlay that is displayed to a participant when they have been administratively muted. It is shown under the conference indicators whenever the participant has been muted.

It is a PNG image and should be 200 pixels wide x 100 pixels high.

Note that:

  • This overlay is disabled by default, and is controlled by the disable_watermark_mute_icon setting in the themeconfig.json file.
  • It is not always appropriate in all call scenarios to state that the user can unmute themself in this way, such as when the user has dialed in over WebRTC, or for Guest participants in a VMR where all Guests have been muted.

icon_conference_locked.svg

Used in Teams CVI calls only. It slides out over the main video image (displayed to Hosts only) to indicate that the conference is currently locked.

icon_conference_unlocked.svg

Used in Teams CVI calls only. It slides out over the main video image (displayed to Hosts only) to indicate that the conference has been unlocked.

It is used in conjunction with the conference_unlocked_indicator_text in the themeconfig.json file.

icon_audio.svg

Used to represent an audio-only participant.

icon_recording.svg

Indicates that the conference is being recorded.

icon_streaming.svg

Indicates that the conference is being streamed.

icon_public_streaming.svg Indicates that the conference is being publicly streamed via a Google Meet conference.

icon_live_captions.svg Indicates that live captions are enabled for the conference.

icon_transcribing.svg

Indicates that a Microsoft Teams or Google Meet conference is being transcribed.

icon_raise_hand.svg

Indicates that a participant in a VMR or Virtual Auditorium has raised their hand. It may also be used in Teams interop calls (classic layouts) if External participant avatar lookup is disabled.

† Only applies when the gateway call is into an externally-hosted conference, such as a Microsoft Teams or Skype for Business meeting, or Google Meet. In Google Meet conferences, the icon_recording.svg image is used when the conference is being recorded and the icon_streaming.svg image is used when the conference is being streamed. The icon_public_streaming.svg icon is used only in Google Meet conferences.

‡ Only applies to gateway calls into Microsoft Teams meetings.

◊ This setting is no longer used from v35 onwards, and will be completely unsupported from v36.

Custom layouts

The Base theme includes three example custom layouts:

File name Description
custom_layout_one_main_twelve_around.json

Name: one_main_twelve_around

This layout is listed in the Administrator interface as "Large main speaker and up to 12 other participants (Custom Layout)"

custom_layout_two_mains_eight_around.json

Name: two_mains_eight_around

This layout is listed in the Administrator interface as "Two main speakers and up to 8 other participants (Custom Layout)"

custom_layout_one_main_nine_around.json

Name: one_main_nine_around

This layout is listed in the Administrator interface as "Large main speaker and up to 9 other participants (Custom Layout)"

Note that:

  • These default custom layout files are not included in the Base theme that you can download from the Management Node.
  • When you define your own custom layouts the layout name shown in the Administrator interface is the name field from the JSON file (which is limited to alphanumeric and "_" characters and no spaces).

Preconfigured themes

Pexip Infinity ships with a number of preconfigured themes. These themes can be copied and edited, making it easier for you to select and create themes suitable for your deployment.

The preconfigured themes are identical to the Base theme with the following exceptions:

  • some include entry and exit tones (the Base theme contains "empty" tones files)
  • some refer to the "#" key as the "hash key" (the Base theme refers to this as the "pound key").

The files that may differ from those in the Base theme are:

  • Entry tone: conf-participant_entry_tone_48kHz_mono.wav
  • Exit tone: conf-participant_exit_tone_48kHz_mono.wav
  • "#" key reference: 2sd-number-pound-key_48kHz_mono.wav, conf-getpin_pound-key_48kHz_mono.wav, conf-waithostpin_pound-key_48kHz_mono.wav

The content of the above files for each of the preconfigured themes is as follows:

Theme Entry tone Exit tone "#" key references
Pexip theme (English_US) * <empty file> <empty file> "...the pound key"
Pexip theme (English_UK) <empty file> <empty file> "...the hash key"
Pexip theme (English_US) with entry tones A high tone followed by a low tone A low tone followed by a high tone "...the pound key"
Pexip theme (English_UK) with entry tones A high tone followed by a low tone A low tone followed by a high tone "...the hash key"

* This theme is identical to the Base theme, although unlike the Base theme it can be edited.