Legacy themes file requirements

Legacy style themes were used by default in Pexip Infinity version 17 and earlier. You can still use legacy themes in later versions of Pexip Infinity if required.

Legacy style themes (identified as "version 1" themes) and new style themes (identified as "version 2" themes) can both be used on the same platform, with legacy style themes applied to some services and new style themes applied to other services if required.

The following sections list the complete set of configuration, audio, endpoint data, and image files that make up a full legacy style theme. They also include the requirements for each of those files, how to manage video watermarking, and which files are relevant to themes used by Call Routing Rules.

When creating or editing a theme, you upload your own customized version of one or more of these files (ensuring that you use the same file name as the file you are replacing).

Configuring overlay and background colors, text and other settings

The wording and color of some image backgrounds, text and other settings that control conference features can be customized via the themeconfig.json file.

All colors in this file are specified using RGB hexadecimal notation (in the format 0xnnnnnn).

themeconfig.json

The themeconfig.json file contains the following settings. If any setting within this file is not specified, Pexip Infinity will simply use the equivalent setting from the Base theme. For example, if the only thing you want to customize from the default settings is to disable watermarks, then your themeconfig.json file only needs to contain the disable_watermark_icon setting.

Note that if this file contains "theme_version": 2 then this is deemed to be a new style theme and uses different settings and images to control the layout. See Rules and requirements for customized themes instead.

{
    "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"],
    "no_main_video_bg": "0x000000",
    "plus_n_indicator_text_color": "0xFFFFFF",
    "recording_indicator_text": "Recording",
    "conference_locked_indicator_text": "Conference locked",
    "virtual_reception_text_color": "0xFFFFFF",
    "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": 1,
    "conference_unlocked_indicator_text": "Conference unlocked",
    "conference_locked_indicator_n_waiting_text": "{number_of_waiting_participants} waiting for host",
    "transcribing_indicator_text": "Transcribing"
}

 

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.

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 exception to this is CVI calls to Microsoft Teams where DTMF controls can be used to control the layout and toggle self mute (see Configuring Pexip Infinity as a Microsoft Teams 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).

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"]
no_main_video_bg The color of the background to the no_main_video_icon.png image. 0x000000
(black)

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)
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

virtual_reception_text_color

The color of the text that is overlaid at the bottom of the transfer.jpg and two_stage_dialing.jpg images. 0xFFFFFF
(white)

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

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)

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

conference_locked_indicator_n_waiting_text

The text that is associated with the conference locked indicator text, and shows the number of participants waiting to join the locked conference.

{number_of_waiting_participants} waiting for host

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

* This is new in version 28.

† This setting has no effect in the Adaptive Composition layout.

◊ Note that Google Meet public streaming has not been launched by Google yet.

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, 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.

See Receiving the presentation stream as part of the layout mix (Adaptive Composition) and Multiscreen participant display 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": []
    }
}

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).

The name is 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.

Audio

You can replace any of the audio files by using your own version of the file in your customized theme. You must use the same file name as the file you are replacing. All audio files must be:

  • .WAV format
  • RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 48000 Hz

Points to note:

  • mono and 48000Hz are essential - audio files that do not meet these requirements will fail to upload.
  • The volume level of the audio recording is important - use the default Pexip Infinity prompts as a guide.
  • Some endpoints may take a few seconds after a call connects before they are able to receive audio. For this reason, we have included a 2-second pause at the start of any audio files that may be played when a user first connects to Pexip Infinity. We recommend that you include a similar pause; use the default Pexip Infinity files as a guide.

Audio files

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

Images

Each image must be a specific size and file format (PNG or JPEG), as specified in Image files. PNG images support transparency; JPEG images do not.

Points to note:

  • Ensure that the images display acceptably on both 16:9 endpoints and 4:3 endpoints (if applicable). For example, the original 1920 x 1080 pixel (16:9) images may have approximately 240 pixels cropped from both the left and right sides when displayed as 4:3. You should therefore check that any details on the far left or far right of the image are visible in both formats; for this reason we recommend keeping the image fairly central.
  • Depending on the endpoint capabilities and network conditions, images may be scaled down to CIF (352 x 288) or even QCIF (176 x 144), so ensure that images are not overly detailed, and any text uses a clear, large font to ensure that it is legible at low resolutions.
  • The transfer and two_stage_dialing images will be overlaid with system-generated text. By default this text is white, but the color can be changed via the themeconfig.json file. When creating customized themes, you must therefore ensure these images include sufficient empty space starting from 755 pixels from the top of the image, in a contrasting color to the text, to allow the text to be visible.
  • 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. When using legacy themes, all other overlay text also uses Roboto.
  • Pexip provides some resources for constructing your own themes at http://download.pexip.com/resources/themes/. This includes white and black colored versions of the "no other participants" and "no other video participants" graphics. They are provided as transparent PNG files and can be used as overlays on top of your own background JPEG images.

Video watermarking

Video watermarking overlays a small transparent image/logo onto the main speaker video during a conference (VMRs and Virtual Auditoriums). The logo watermarks are never added to calls placed via the Infinity Gateway, but the "Your mic has been muted" watermark icon can be overlaid on gateway calls. You can change the watermark images or disable watermarking completely.

  • The default logo watermark is a white "Pexip" logo (shown here against a blue background) and is enabled by default.
  • The default "Your mic has been muted" watermark is and is disabled by default.

Themes used by Call Routing Rules (gateway calls)

You can assign a theme to a Call Routing Rule. Only a subset of the theme's image files are used when they are applied to an Infinity Gateway call. Thus, you only need to customize a subset of the files for any themes that are only assigned to one or more Call Routing Rules. The theme image files that are used in gateway calls are identified in the table below.

Also, other than for Google Meet and Microsoft Teams integration scenarios, the audio files are not used in themes assigned to Call Routing Rules.

Image files

File name Image size (width, height) File format Content in Base theme Notes Used in gateway calls
audio_indicator.png 100 x 100 pixels .PNG

Used to represent an audio-only participant.

For more information, see Features common to all layouts.

This is a transparent image and is shown here against a gray background.

capacity_exceeded_image.jpg 1920 x 1080 pixels .JPG (RGB mode only)

Shown to participants when they attempt to join a conference that has reached its maximum number of participants. For more information, see Limiting the number of participants.

 
conference_locked_indicator.png 100 x 100 pixels .PNG

Slides out over the main video image (displayed to Hosts only) to indicate that the conference is currently locked.

It is used in conjunction with the conference_locked_indicator_text and the conference_locked_indicator_n_waiting_text in the themeconfig.json file.

This is a transparent image and is shown here against a gray background.

 
conference_unlocked_indicator.png 100 x 100 pixels .PNG

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.

This is a transparent image and is shown here against a gray background.

 
connecting.jpg 1920 x 1080 pixels .JPG (RGB mode only)

Shown briefly when placing a person-to-person call via the Infinity Gateway.

insufficient_license_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

Shown to participants when they are unable to join a conference because all call licenses are currently in use. For more information, see Insufficient licenses.

 

invalid_license_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

Shown to participants when they are unable to join a conference because the Pexip Infinity license is not valid. For more information, see Invalid license.

 
no_incoming_video_icon.png 400 x 400 pixels .PNG

Shown when a participant's video stream is not available.

no_main_video_icon.png 400 x 400 pixels .PNG

Used when streaming a conference to indicate that there is currently no main video.

 

 

no_other_participants.jpg

1920 x 1080 pixels .JPG (RGB mode only)

Shown when there are no other participants in the conference.

Also shown to a VTC-based participant that is being held in a Microsoft Teams or Skype for Business meeting lobby.

no_other_video_participants.jpg

1920 x 1080 pixels .JPG (RGB mode only)

Shown when all other participants are audio-only or presentation and control-only.

no_presentation_video_icon.png 400 x 400 pixels .PNG

Used to indicate that there is currently no presentation stream.

 

 
no_video_license.jpg 1920 x 1080 pixels .JPG (RGB mode only)

Shown to participants when they are unable to join a conference because all port (video) licenses are currently in use, but there was an audio license available. For more information, see Insufficient licenses.

pin_entry_0_digits_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

The pin_ screens are shown to participants when entering PINs.

Participants entering PINs via these screens will be disconnected after three unsuccessful attempts.

The length of time participants can remain at these screens is configurable via the global PIN entry timeout option (Platform > Global settings > service configuration).

 

pin_entry_1_digits_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

pin_entry_2_digits_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

pin_entry_3_digits_image.jpg

 

 

 

 

 

... and so on, up to...

1920 x 1080 pixels .JPG (RGB mode only)

pin_entry_20_digits_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

pin_entry_correct_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

pin_entry_incorrect_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

presence_avatar_image.jpg

128 x 128 pixels .JPG (RGB mode only)

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

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

recording_indicator.png 100 x 100 pixels .PNG

Indicates that the conference is being recorded.

streaming_indicator.png 100 x 100 pixels .PNG

Indicates that the conference is being streamed.

This is a transparent image and is shown here against a gray background.

test_call.jpg 1920 x 1080 pixels .JPG (RGB mode only)

Shown at the start of a call to a Test Call Service.

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

 

test_call_during_recording.jpg

1920 x 1080 pixels .JPG (RGB mode only)

Shown during a call to a Test Call Service. Note that a large, live (with a short delay) video image of the test call participant is shown on top of this screen during a test call.

 
test_call_disconnect.jpg 1920 x 1080 pixels .JPG (RGB mode only)

Shown briefly prior to automatically disconnecting the participant from a Test Call Service.

 
timed_out.jpg 1920 x 1080 pixels .JPG (RGB mode only)

Shown briefly prior to disconnecting participants who have connected to a Virtual Reception but did not enter a valid conference number.

 
transcribing_indicator 100 x 100 pixels .PNG

Indicates that a Microsoft Teams conference is being transcribed.

transfer.jpg * 1920 x 1080 pixels .JPG (RGB mode only)

Shown briefly to participants while being transferred from a Virtual Reception.

Note that the name of the destination VMR or matching Call Routing Rule is overlaid onto this image (the image file from the Virtual Reception's theme is used).

 

two_stage_dialing.jpg *

1920 x 1080 pixels .JPG (RGB mode only)

Shown to participants who have connected to a Virtual Reception.

 

two_stage_dialing_conf_number_invalid_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

Shown to participants who have connected to a Virtual Reception and have entered an invalid conference number.

 
video_muted_indicator.png 100 x 100 pixels .PNG

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

 

waiting_for_conference_leader_image.jpg

1920 x 1080 pixels .JPG (RGB mode only)

Shown to Guests while waiting for a Host to either:

The length of time Guests can remain at this screen is configurable via the global Waiting for Host timeout option (Platform > Global settings > Service configuration).

 
watermark_icon.png 200 x 100 pixels .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.

See Video watermarking for more information.

 

watermark_footer_icon.png

200 x 100 pixels .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

200 x 100 pixels .PNG

An overlay that is displayed to a participant when they have been administratively muted. It is shown at the top-middle of the screen (or just under the conference indicators if using Adaptive Composition) whenever the participant has been muted.

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.

 

* These images will be overlaid with system-generated text. By default this text is white, but the color can be changed via the themeconfig.json file. When creating customized themes, you must therefore ensure these images include sufficient empty space starting from 755 pixels from the top of the image, in a contrasting color to the text, to allow the text to be visible.

† Except for participants that are using Infinity Connect clients.

†† Only applies to gateway calls into an externally-hosted conference, such as a Microsoft Teams or Skype for Business meeting, or Google Meet. In Google Meet conferences, the recording_indicator.png image is used when the conference is being recorded and the streaming_indicator.png image is used when the conference is being streamed.