Cisco Meeting Server 3 2 Customization Guidelines
Cisco Meeting Server 3 2 Customization Guidelines
Cisco Meeting Server 3 2 Customization Guidelines
1 Introduction 6
1.1 What’s new or changed in Cisco Meeting Server 3.1 that affects customization 7
1.1.1 Cisco Meeting Server web app localized user interface 7
1.1.2 Cisco Meeting Server web app custom email invite changes 8
1.2 What’s new or changed in Cisco Meeting Server 3.0 that affects customization 8
1.2.1 Customize the web app sign-in page with your own branding 8
1.3 What are the ways to manage branding files? 9
1.4 What can be branded? 10
1.5 Web Server Requirements 10
1.6 Using this guide 10
3 Call customization 18
3.1 IVR Message customization 18
3.1.1 IVR Messages to be customized 18
3.1.2 Recording format for IVR messages 18
3.1.3 IVR background image properties 19
3.1.4 Overview of customization procedure (web server hosted branding) 19
3.2 SIP/Lync Call Message Customization 20
3.2.1 Audio messages to be customized 20
3.2.2 Recording format for audio messages 25
3.2.3 Background image properties 26
3.2.4 Overview of customization procedure (web server hosted branding) 26
3.2.5 Missing and invalid files 27
Cisco Trademark 56
Figures:
Change History
Date Change Summary
May 25, 2021 Cisco Meeting Server web app customization updated with a note for brand_
tag_line parameter.
February 04, 2021 Cisco Meeting Server web app customization updated with recommended
specifications for sign-in page background image.
1 Introduction
The Cisco Meeting Server software can be hosted on specific servers based on Cisco Unified
Computing Server (UCS) technology or on a specification-based VM server. Cisco Meeting
Server is referred to as the Meeting Server throughout this document.
Note: Cisco Meeting Server software version 3.0 onwards does not support X-Series servers.
Note: Cisco Meeting App for WebRTC (Web Bridge 2) is removed from Cisco Meeting Server
version 3.0. If using software version 3.0 or later, you will need to use Cisco Meeting Server web
app instead of Cisco Meeting App for WebRTC. To do this, you need to deploy Web Bridge 3 —
for details on deploying and configuring Web Bridge 3, see the 3.0 or later Deployment Guides.
This document covers the features for customizing release 3.2 of the Meeting Server software.
These features allow modification of the voice prompts, background images and logos, and the
text shown in invitations.
It follows on from the appropriate Deployment Guide (see Figure 1).
1.1 What’s new or changed in Cisco Meeting Server 3.1 that affects
customization
1.1.2 Cisco Meeting Server web app custom email invite changes
Note: On upgrade to 3.1, administrators must recreate all custom email invite templates as there
is no migration path for existing custom email invite templates from a previous release to 3.1.
Version 3.1 introduces the following changes to custom email invitation templates:
l Custom email invitation template language is extended to support multiple IVR numbers
and Web Bridge addresses.
l Custom email invitation template content is now created using new syntax.
l All custom email invitation templates must now start with "Subject:" followed by an empty
line to separate the header from the body of the email. Only "Subject:" header is
supported for now.
l New default languages added for email invitation templates.
1.2 What’s new or changed in Cisco Meeting Server 3.0 that affects
customization
1.2.1 Customize the web app sign-in page with your own branding
Version 3.0 introduces customization and branding for your Cisco Meeting Server web app
sign-in page.
Note: You cannot use a previous Cisco Meeting App for WebRTC branding zip file, you will need
to recreate and redeploy a new branding zip file specifically for web app. However, the branding
zip file is deployed for web app in the same way as previously for the WebRTC app.
You can use the API to customize these elements of the web app:
n icon shown next to the browser tab, and on any bookmarks / shortcuts
n text on browser tab
n sign-in background image,
n sign-in dialog box — logo displayed,
n sign-in dialog box — text below logo
*all these strings are contained within the single text_strings.json file
If you apply a single brand with only a single set of resources specified (one web app sign-in
page, one set of voice prompts, one invitation text), then these resources are used for all
spaces, IVRs and Web Bridges in the deployment. Multiple brandings allow different resources
to be used for different spaces, IVRs and Web Bridges. Resources can be assigned at the
system, tenant, space or IVR level using the API.
Note: If you require multiple brandings, for example one per tenant, then you need to deploy a
separate Web Bridge for each branding. Each can be a standalone Web Bridge on a VM server.
Chapter 4 describes customizing the text shown in invitations which is sent to participants
inviting them to join a call or space.
Chapter 5 describes the procedure to implementing customization from locally hosted
branding files.
Chapter 6 provides a step-by-step procedure example on customizing calls using the API.
Chapter 7 provides instructions to switch from one method of branding to another and also
limitations
Note: All information applies to web server branding and locally hosted branding unless stated
otherwise.
Note: You cannot use a previous Cisco Meeting App for WebRTC branding zip file, you will need
to create and deploy a new branding zip file specifically for web app. However, the branding zip
file is deployed for web app in the same way as previously for the WebRTC app. (Note that
resourceArchive is now located under the webBridgeProfiles API.)
You can use the API to customize these elements of the web app:
n icon shown next to the browser tab, and on any bookmarks / shortcuts
n text on browser tab
n sign-in background image,
n sign-in dialog box — logo displayed,
n sign-in dialog box — text below logo
*all these strings are contained within the single text_strings.json file (see Table 1).
Table 1 describes the files that can be uploaded to customize web app as shown in Figure 3 and
their recommended sizes.
Note: All files must be in the specified file format, e.g. .png, .jpg, or .json. All file names are case
sensitive and must adhere to the file name conventions used in Table 1.
Version 3.1 introduces localization of the web app user interface in 21 languages. The default
web app user interface language is based upon the browser's default. If a web app user then
wishes to select a different language, they can then do so before signing in to the app or joining
a meeting. For more information on how web app users select their preferred language, see
Cisco Meeting Server 3.1(or later) web app Important Information.
To support this new feature, Cisco Meeting Server has a new web app asset: "text_strings_xx_
XX.json" as described in Table 1. These languages are part of the software and require no
additional configuration unless you want to customize a particular language file. If a specific
language file doesn't exist, Meeting Server will default to using the text_strings.json file.
favicon.png The icon shown next to the browser tab 128 kb l Recommended resolution:
label, and on any bookmarks / shortcuts 16x16 pixels or 32x32
pixels
l Recommended aspect
ratio: 1:1 (square)
sign_in_logo.png The logo shown on the landing page, the 250 kb l Recommended resolution:
splash screen and the user portal 128x128 pixels
l Recommended aspect
ratio: Preferably 1:1
(square)
l Other recommendations:
Transparent background
sign_in_ The background shown on the landing page 500 kb l Recommended resolution:
background.jpg 1920x1080 pixels
l Recommended aspect
ratio: Preferably 16:9
For remote web server hosted branding, the branding files are held within an archive (zip) file
stored on the web server. The location of this resourceArchive is set via the API — if using the
Web Admin user interface see Section 6.2.1, (or if using a third-party application, set via a
POST method to the /webBridgeProfiles node or a PUT to a /webBridgeProfiles/<web bridge
profile id>.)
The Call Bridge retrieves the archive file from the web server and pushes it to the Web Bridge to
be served. In the event of a failure (for example, if the configured URI can't be reached) an alarm
is displayed in the Web Admin Interface and on the API /system/alarms node, but users can still
log in using the web app.
For locally hosted branding information on where and how to locate the zipped branding files,
see Chapter 5.
Note: When you zip the files, do not zip the folder containing the branded files. If this is done, this
will create an extra layer of folder (zipped file > folder > branded files). Instead, highlight the
branded files and right-click to zip them (or open a zip application and zip the files together).
This will create a zipped file with the branded files without creating an extra layer of folder (e.g.
zipped file > branded files).
For example, in Figure 4, webapp_client.zip folder contains the branded files so when
configuring for Web Bridge customization for remote branding, you can use the path
http://<webserver address>/Branding/webapp_client.zip.
Parameter Description
You can customize each of these text strings as shown in the example in Figure 5.
Note: The text_strings.json file must use straight quotes. If your system uses smart quotes by
default, you must change the setting.
Note: If you are testing your branding, you need to refresh the page twice (or use CTRL+F5 on
Google Chrome) as the browser does not actually re-fetch images on a single refresh.
Note: If the user portal is disabled, the text added in the parameter brand_tag_line will not be
displayed.
Note: You can only apply one archive file per Web Bridge.
Note: If you specify a port value in the path, this will be used in place of the default port values of
:80 for http and :443 for https. If you do not specify a port value then the default value will be
used. If you specify a port value make sure that the web server used in step 2 is listening on this
port.
3 Call customization
There are two types of call customization:
n Messages heard and image seen when dialing into an IVR
n Messages heard and images seen when dialing directly as a SIP (including Lync) call into a
space on a Meeting Server
Please enter the call ID, followed ivr_id_entry.wav dialling via IVR to enter a spe-
by the '#'(pound) key. cific space
Unable to recognize that call ID. ivr_id_incorrect_try_again.wav the incorrect call ID is entered
Please try again. to join the space
Please try again: this is your last ivr_id_incorrect_final_attempt.wav two incorrect pins/call ID’s
attempt. have been entered to join the
space
Unable to recognize that call ID. ivr_id_incorrect_goodbye.wav entering three incorrect call
Goodbye. ID’s to join the space
Unable to connect you. Goodbye. ivr_timeout.wav after dialling via IVR and not
entering the call ID, the call
times out
Note: It is not necessary to include any additional periods of silence at the start or end of these
prompts.
Note: If using web server hosted branding, ensure that your web server is configured correctly
with the proper MIME type for the WAV and JPEG file extensions (e.g. audio/wav and
image/jpeg MIME type).
1. On the web server create a directory for the IVR customization files and place in it all the files
listed in Section 3.1.1 and Section 3.1.3. Do not zip these files
Cisco have created an archive with their audio and video files, the zip files are downloadable
from the Customization subsection on this web page. The files can be individually used when
a mix of custom and default files are required. The necessary files must be copied into the
directory. If any files are missing then no alternative or default file will be used in their place.
2. Using the API, create an ivrBrandingProfile specifying the resourceLocation field and URL on
the web server where the customized ivr files are held. (See Section for details). The Meeting
Server uses these details to retrieve the files from the web server.
3. Use this ivrBrandingProfile to customize your calls on:
a. a system level (that is, as part of the global systems profile)
b. a per-tenant basis (as part of the tenant definition)
c. a per-IVR basis (as part of an IVR definition)
Note: When IVR branding is applied at more than one level, then the lowest level
ivrBrandingProfile defined is the one that it used in a call leg. Only the ivrBrandingProfile
applied at the system level is used for single branding. See the Using Profiles section in the
API Reference.
I haven't been timeout.wav No after dialling via an IVR and not entering
able to connect the call id, the call times out
you. Goodbye.
Press '1' to join call_join_confirmation.wav No after the "Hello. You are invited to a
the call. Cisco call." prompt is played
You are joining call_join.wav No after pressing '1' to join the call
the call now.
Press '1' to enter cospace_join_confirmation.wav No after the "Hello. You are invited to a
the meeting. Cisco meeting." prompt is played
You are entering cospace_join.wav No after dialling the URI of a space from a
the meeting SIP endpoint, or after dialling the IVR
now. and entering the call ID of the space
(plays after PIN if space has a PIN)
You are the only only_participant.wav Yes there is only one participant in the meet-
participant ing.
That PIN isn't passcode_incorrect_try_ No the incorrect PIN is entered to join the
correct. Please again.wav space
try again.
Please try again: passcode_incorrect_final_ No two incorrect PINs/call ID’s have been
this is your last attempt.wav entered to join the space
attempt.
There is one par- total_participant_1.wav No after entering the DTMF command con-
ticipant in the figured to play the number of par-
meeting. ticipants actively participating in the
meeting (from version 2.8)
There are two total_participant_2.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting(from version 2.8)
There are three total_participant_3.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are four total_participant_4.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are five total_participant_5.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are six par- total_participant_6.wav No after entering the DTMF command con-
ticipants in the figured to play the number of par-
meeting. ticipants actively participating in the
meeting (from version 2.8)
There are seven total_participant_7.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are eight total_participant_8.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are nine total_participant_9.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are ten par- total_participant_10.wav No after entering the DTMF command con-
ticipants in the figured to play the number of par-
meeting. ticipants actively participating in the
meeting (from version 2.8)
There are eleven total_participant_11.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are twelve total_participant_12.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are thir- total_participant_13.wav No after entering the DTMF command con-
teen participants figured to play the number of par-
in the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are four- total_participant_14.wav No after entering the DTMF command con-
teen participants figured to play the number of par-
in the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are fifteen total_participant_15.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are six- total_participant_16.wav No after entering the DTMF command con-
teen participants figured to play the number of par-
in the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are sev- total_participant_17.wav No after entering the DTMF command con-
enteen par- figured to play the number of par-
ticipants in the ticipants actively participating in the
meeting. meeting (from version 2.8)
There are eight- total_participant_18.wav No after entering the DTMF command con-
een participants figured to play the number of par-
in the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are nine- total_participant_19.wav No after entering the DTMF command con-
teen participants figured to play the number of par-
in the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are twenty total_participant_20.wav No after entering the DTMF command con-
participants in figured to play the number of par-
the meeting. ticipants actively participating in the
meeting (from version 2.8)
There are more total_participant_greater_than_ No after entering the DTMF command con-
than twenty par- 20.wav figured to play the number of par-
ticipants in the ticipants actively participating in the
meeting. meeting (from version 2.8)
Waiting for your waiting_for_host.wav Yes while waiting for the meeting host to join
host to join
Note: The voice prompts labeled as repeating are played repeatedly for audio callers. They are played a single time
for video callers. To prevent voice prompts that are repeated from sounding repetitive, record a quiet period (2 to
3 seconds, or longer if you want them to repeat less frequently) after the voice.
Note: participant_join.wav and participant_leave.wav are joining and leaving tones respectively, to indicate that a
participant has joined or left the space; neither tone can be customized.
Note: If the format of a replacement audio file is invalid, then nothing will be played.
For recordings that repeat, the file size must be less than 1000kB. This is sufficient for 32
seconds when using a 16 kHz sample rate. The file size for all other recording must be less than
400kB
Note: We have not tested other audio tools and, if used, they may cause problems.
Note: It is not necessary to include any additional periods of silence at the start or end of the
prompts that do not repeat. For those that repeat, silence can be used to create a gap between
the instances.
Screen can be shown when a PIN is required for the host passcode_or_blank_required_background.jpg
to enter the space as host, but guests only need to use the
# (pound) key (from version 2.1)
Note: The behaviour and choice of background image for /callBrandingProfiles does not affect
the /ivrBrandingProfiles
Note: In locally hosted branding, only background.jpg will be used for the call background and
ivr background images; passcode_background.jpg, passcode_or_blank_required_
background.jpg, passcode_or_blank_timeout_ background.jpg, deactivated_
background.jpg and ivr_background.jpg are ignored.
Note: If using web server hosted branding, ensure that your web server is configured correctly
with the proper MIME type for the WAV and JPEG file extensions (e.g. audio/wav and
image/jpeg MIME type).
1. On the web server create a directory for the customization files and place in it all the files
listed in Section 3.2.1 and Section 3.2.3. Do not zip these files.
Cisco have created an archive with their audio and video files, the zip files are downloadable
from the Customization subsection on this web page. The files can be individually used when
a mix of custom and default files are required. The necessary files must be copied into the
directory. If any files are missing then no alternative or default file will be used in their place.
2. Using the API, create a callBrandingProfile specifying the resourceLocation field and URL on
the webserver where the customized files are held. (See Section for details). The Meeting
Server uses these details to retrieve the files from the web server.
Note: : If no resourceLocation is specified, then by default the Cisco logo will be used.
Note: When call branding is applied at more than one level, then the lowest level
callBrandingProfile defined is the one that it used in a call leg. Only the callBrandingProfile
applied at the system level is used for single branding. See the Using Profiles section in the
API Reference.
passcode_background.jpg background.jpg *
passcode_or_blank_required_background.jpg background.jpg *
deactivated_background.jpg background.jpg *
Note: * You do not need to load multiple copies of background.jpg, the single file will be used automatically to
replace the missing images.
Note: ** If this audio file is missing or format is invalid, then nothing will be played.
Note: On upgrade to a new release, administrators must recreate all custom email invite
templates as there is no migration path for existing custom email invite templates from a
previous release to a new release.
In Meeting Server 3.2, administrators can also use the callBridges API to get the email invite text.
For more information on using the API, see the API Reference Guide.
Note: We recommend using locally hosted branding for web app Custom Email invites.
However, if you wish to use multiple languages on a more complex deployment (e.g. a multi-
tenant deployment) then you will need to use a remote branding web server. For more
information see "Overview of customization procedure (web server hosted branding) for web
app using Web Bridge 3" on page 40 .
Note: Where the language .txt files have the appropriate language tags for its language variant
(as defined by the IANA Language Subtag Registry) — the two lower case characters indicate
the language code and the two upper case characters the region code. For example, invitation_
template_fr_CA.txt, where "fr" is the French language, and "CA" is the region (Canada).
As previously, if you want to overwrite the default templates, you can create your own language
tagged template file and upload to locally hosted branding. The Meeting Server interprets these
language tags to return the appropriate template option in the web app.
A web app user can only select a language template that is uploaded — a language option is not
shown to the web app user in the drop-down list if it is not uploaded.
Note: You must upload the template files to all Meeting Servers in a cluster.
The figure below shows an example of some of the different email invites languages that are
available by default:
Note: On upgrade to 3.1, administrators must recreate all custom email invite templates as there
is no migration path for existing custom email invite templates from a previous release to 3.1.
Header
All custom email templates must now start with "Subject:" followed by an empty line to
separate from the body text. The subject header is used to generate the email link that sets the
text specified in the header as subject of the email. The header cannot contain new line
characters. The syntax is:
Subject: <subject….> [followed by an empty line]
Format
The new custom email invitation template syntax allows variables, loops, conditions, includes,
callbacks, and comments (nested and combined as required).
There are escape sequences that allow you to write conditional code, loops and so on, i.e. New
line escape sequence (the same as prior to 3.1). Any new line starting with # introduces a
template statement. Example:
#if name
I can use a name variable as it is set to %name%
#endif
You can specify an inline statement by using "{%" and "%}". Example:
You have been invited to a meeting{% if name %}: %name%{% endif %}
You can also add comments to your templates using "{# my comment #}". So any text between
those escape sequences won't be rendered. Example:
Hello, {# This section is just an intro #}
Variables
The template can contain both variables and conditions. This allows a single template to be
used for multiple spaces and gives a consistent feel to the invitations.
%<var name>% will be substituted with the content of a variable.
The variables that are currently defined are detailed below:
name
This will be replaced by the name of the cospace. To see if it has content, check its length or whether it's not
null.
Example:
#if name
The cospace name is %name%
#endif
#if length(name)>0
The cospace name is %name%
#endif
uri
The cospace uri that can be used to 'join by uri' in the web app or dialed-in on endpoints.
It can be checked by length or if set to null.
#if uri
The uri is: %uri%
#endif
This is the callId of the cospace. It is normally a numeric identifier for the cospace.
It can be checked on length or if set to null.
Example:
#if numeric_id
The meeting id is %numeric_id%
#endif
passcode
Example:
#if length(ivr_numbers) > 0
You can use the following dial-in number: %ivr_numbers.0.number%
%
#endif
web_bridge_addresses
Example:
#if length(web_bridge_addresses) > 0
You can use the following web app address: %web_bridge_addresses.0.address%
#endif
Loops
You can use loops by using the "for" and "endfor" keywords. Example:
#for ivr_number in ivr_numbers
%loop.index1% - %ivr_number.label%: %ivr_number.number%
#endfor
In a loop, the special variables are:
l loop.index (number): Loop iteration number starting from 0.
l loop.index1 (number): Loop iteration number starting from 1.
l loop.is_first (boolean): If the iteration is the first iteration.
l loop.is_last (boolean): If the iteration is the last iteration.
l loop.parent.*: In nested loops, the parent loop variables are available using
loop.parent.<name of var> example: loop.parent.is_first.
You can also iterate over objects like web_bridge_address or ivr_number. Example:
#for ivr_number in ivr_numbers
{%- for key, value in ivr_number -%}
%key%: %value%
Conditions
Logical operations
You can use "and", "or" and "not" to generate complex conditions. Example:
{% if numeric_id and passcode %}…{% endif %}
{% if not name %}…{% endif %}
Functions
A few functions are implemented within the template syntax. These are detailed below.
Upper and lower function, for string cases. Example:
Join {% upper(name) %}
Join {% lower(name) %}
Range function, useful for loops. Example:
{% for i in range(4) %} %loop.index1% {% endfor %}
{# It will show only the first two web_bridge_addresses #}
{% for i in range(2) %} %at(web_bridge_addresses, i).address% {% endfor %}
Get first and last element in a list. Example:
The first ivr_number: % first(ivr_numbers).number %
The last ivr_number: % last(ivr_numbers).number %
Sort a list. . Example:
#for sort(ivr_numbers)
...
#endfor
{# Produces [1, 2, 3] #}
% sort([3,2,1]) %
Round numbers to a given precision. . Example:
{# returns 1 #}
% round(1.4142135, 0) %
{# returns 1.4 #}
% round(1.4142135, 1) %
Check if a value is odd, even or divisible by a number. Example:
{# returns true #}
% odd(1) %
{# returns true #}
% even(2) %
{# returns true #}
% divisibleBy(42, 7) %
Maximum and minimum values from a list. Example:
{# returns 3 #}
% max([1,2,3]) %
{# returns 1 #}
% min([1,2,3]) %
Convert strings to numbers. Example:
# if int(ivr_number) >= 123123
...
#endif
Set default values if variables are not defined. Otherwise, the template rendering will fail and
show no result. Example:
{% if default(has_valid_ivr_number, false) %}... {% endif %}
Check if a key exists in an object. Example:
{# returns false #}
% exists("pstn_dial_in") %
{# returns true #}
% existsIn("a", myobj) %
{# returns false #}
% existsIn("c", myobj) %
Check if a key is a specific type. Example:
{# returns true #}
% isArray(ivr_numbers) %
{# returns true #}
% isString(ivr_numbers.0.number) %
{# returns false #}
% isString(int(ivr.numbers.0.number)) %
Implemented type checks are: isArray, isBoolean, isFloat, isInteger, isNumber,
isObject, isString,
Whitespace Control
Whitespaces are removed by default. To support a more readable template style you can also
remove whitespaces for both statements and expressions by hand. If you add a minus sign (-)
to the start or end, the whitespaces before or after that block will be removed. Example:
Cospace name: % name -% .
{# Produces: Cospace name: blah. #}
Stripping behind a statement or expression also removes any new lines.
Note:
l There is a 10000 byte limit* on the size of the invitation template .txt file.
l All invitation templates must be provided in UTF-8 format.
l Extended ASCII characters are not supported.
l UTF-8 format invitation template .txt files need to have Unix line endings, i.e. LF, not CRLF
(as Windows uses). Omitting Unix line endings will result in the file not working.
l Language .txt files should have the appropriate language tags for its language variant (as
defined by the IANA Language Subtag Registry) — where the two lower case characters
indicate the language code and the two upper case characters the region code. For
example, invitation_template_en_GB.txt, where "en" is the english language, and "GB" is
the region (United Kingdom).
l The part of the file name between "invitation_template" and the .txt suffix can use
alphanumerics and "_" (underscores) of up to 32 characters, i.e. any of the following
regular expression: ^[a-zA-Z_]{1,32}$.
Note: *At the time of publication whilst using web app from Google Chrome on Windows, the
Invite > Send email or Open email option fails if the file size of the invitation template exceeds
1491 bytes. This is a known issue with Google Chrome browsers, more information about this
issue is available here: https://bugs.chromium.org/p/chromium/issues/detail?id=1034497
If this occurs on web app, Open email will be greyed out, however, you can select Copy which
will allow you to paste the meeting join information into your preferred email client.
Use the example below and customize with your specific values in the placeholders. Save it
using the appropriate file name format as defined above.
Note: The "Subject:" header must be followed by an empty line to separate from the body text.
Subject: {% if name %}You are invited to join a meeting: %name%{% else %}You
are invited to join a meeting{% endif %}
#if numeric_id
Meeting ID: %numeric_id%
#if passcode
Meeting passcode: %passcode%
#endif
#endif
#if loop.index == 0
Join from a computer, mobile phone or tablet
#endif
{% if wba.label %} %wba.label%:{% endif %} {% if wba.hyperlink
%}%wba.hyperlink%{% else %}%wba.address%{% endif %}
#endif
#endfor
#if uri
Join from a video conferencing system or application
Dial %uri%
#endif
Note: All invitation templates must be provided in UTF-8 format. Extended ASCII characters are
not supported. UTF-8 format invitation template .txt files need to have Unix line endings, i.e. LF,
not CRLF (as Windows uses). Omitting Unix line endings will result in the file not working.
1. Configure the remote web server by creating a server-side script that can process the query
string correctly to ensure it returns the correct requested invitation template.
Note: If you are changing from using a web server to hosting the files locally then follow the
guidance in Section 7.1 before following the steps below.
Note: For limitations in using locally hosted branding, see Limitations of using locally hosted
branding.
Note: The commands in the following steps are for console/terminal environments (i.e.
command prompt or terminal) and not for SFTP clients such as WinSCP.
Note: When you zip the files, do not zip the folder containing the branded files. If this is done,
this will create an extra layer of folder (zipped file > folder > branded files). Instead, highlight
the branded files and right-click to zip them (or open a zip application and zip the files
together). This will create a zipped file with the branded files without creating an extra layer
of folder (e.g. zipped file > branded files).
Note: This zip file must be named web_branding.zip, it cannot have a different file name.
2. For each Meeting Server with an enabled Web Bridge which will locally host this zip archive:
5.2 IVR Message, SIP/Lync Call Message and Invitation Text customization
To locally host the IVR messages , SIP/Lync call messages and invitation text you need to create
a Call Bridge branding zip file.
The following steps provide an overview of the customization procedure, for a detailed
procedure refer to the Customization Guidelines.
1. Create the call branding zip file, this file must be named call_branding.zip to ensure it is
processed correctly.
a. Create a single folder with the files listed in Chapter 3 of the Customization Guidelines,
these are the same files that are used if a web server is deployed.
b. Create a single folder with the files listed in Chapter 3, these are the same files that are
used if a web server is deployed.
Note: In locally hosted branding, only background.jpg will be used for the call
background and ivr background images; passcode_background.jpg, passcode_or_
blank_required_background.jpg, passcode_or_blank_timeout_ background.jpg,
deactivated_background.jpg and ivr_background.jpg are ignored.
c. Add the file invitation_template*.txt containing the invitation text to the folder, as
described in Chapter 4 of the guidelines .
d. Add the files invitation_template*.txt containing invitation text to the folder, as
described in Chapter 4.
Note: For this call branding zip file, you must use the filename convention invitation_
template*.txt even if you are already using a different filename on a web server.
e. Zip up the files in the folder, all files should be at the top level of the zip file (no folders
nested in the zip file), the filename must be call_branding.zip.
2. Install the IVR, call and invitation customization on every Call Bridge. For each Meeting
Server:
a. Connect your SFTP client to the IP address of the MMP.
b. Log in using the credentials of the MMP admin user.
c. Upload the zip file call_branding.zip. For example:
PUT call_branding.zip
d. Connect your SSH client to the IP address of the MMP.
e. Log in using the credentials of the MMP admin user.
f. Restart the Call Bridge
callbridge restart
2. Open IIS Manager and expand the Default Web Site. The newly created folders should show
within the list.
Note: If the newly created folders do not show within the list or your folders are outside of the
standard IIS Manager location, you will need to create a new Virtual Directory. Within IIS,
navigate to Default Web Site, right click and select Virtual Directory. Provide an Alias for this
folder and browse for the physical path where the files will reside.
1. Place all the files into the folders, for the appropriate to the level of branding you intend to do.
a. For web app customization these will be the zip files from Section 2.2.
Note: in the above screenshot the webapp_client customization files are zipped together
by location.
b. For ivr customization these will be the files from Section 3.1
Note: the files for ivr customization are not zipped together.
Note: the files for call customization are not zipped together.
d. For the invitation template, this will be the file you created from Chapter 4.
The API can be accessed using the Meeting Server Web Admin Interface rather than using API
Methods and third-party applications. After logging in to the Web Admin interface, navigate to
the Configuration tab and select API from the pull-down list. See Figure 7.
Figure 7: Accessing the API via the Meeting Server web interface
For more information on using the API, see the API Reference Guide.
Note: To access the API via the web interface you still need to do the initial Meeting Server
configuration settings and authentication using the MMP as you would if you were using a third
party application. See the MMP Command reference guide for details.
Note: If you have created subfolders under /Branding then you need to POST the url
of each subfolder to callBrandingProfiles.
d. Click Create.
Note: If you have created subfolders under /Branding then you need to POST the url
of the ivr subfolder to ivrBrandingProfiles.
d. Click Create
3. Your IVR Branding files should now be used for calls to the specified ivr, make test calls to the
ivr to check that the branded ivr files are applied.
7.1 Changing from web server (or default) branding to locally hosted
branding
If changing from web server (or default) branding to locally hosted branding, follow these
recommendations:
n for every Call Bridge ensure:
o the resourceLocation parameter for the IVR messages is not set; use a PUT method to
set the resourceLocation parameter as blank on /ivrBrandingProfile/<ivr
branding profile id>,
o the resourceLocation parameter for the call messages is not set; use a PUT method to
set the resourceLocation parameter as blank on /callBrandingProfile/<call
branding profile id>,
o the invitationTemplate parameter for the call messages is not set; use a PUT method to
set the invitationTemplate parameter as blank on /callBrandingProfile/<call
branding profile id>.
n for every Call Bridge which has a configured Web Bridge, make sure the resourceArchive
field is not set in that configuration; use the PUT method to set the resourceArchive
parameter as blank on API object /webBridgeProfiles.
n stop using web server URLs in scripts and configurations of call leg profiles,
n configure call_branding.zip files on every Call Bridge, as described above,
n configure web_branding.zip files on every Web Bridge, as described above.
n If files are too large, missing or otherwise invalid then they will be treated in the same way as
their web server equivalents and will not be used. In this instance the following behavior will
occur:
n For web app users, default files are provided: invitation_template_en_US.txt and
invitation_template_es_ES.txt — if the locally hosted branding doesn't have them and
there is no general invitation_template.txt, these default files will be used.
Note: For each Web Bridge 3 you can only get one brand, and there's no difference between
local and remote hosted branding for Web Bridge 3.
Cisco Trademark
Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates
in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL:
www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their
respective owners. The use of the word partner does not imply a partnership relationship
between Cisco and any other company. (1721R)