Configuring Pexip Infinity for One-Touch Join
This topic describes how to configure Pexip Infinity when enabling the One-Touch Join feature. It covers configuration of the various Pexip Infinity components, each described in detail in the sections that follow:
The diagram below shows (in blue) the components that are configured on Pexip Infinity and how they are related to each other. It also shows (in orange) how the Pexip Infinity components are associated with your calendar/email service — in this example we have used Google Workspace, with support for
Prerequisites
Before you start configuring Pexip Infinity, you must first do one of the following, depending on your calendar/email service:
- Configure Google Workspace for One-Touch Join, including Adding a One-Touch Join Google Workspace integration on Pexip Infinity, or
- Configure Exchange on-premises for One-Touch Join, including Adding a One-Touch Join Exchange integration on Pexip Infinity
-
Configure Office 365 for One-Touch Join, including Adding a One-Touch Join Graph integration on Pexip Infinity.
Existing customers may have implemented One-Touch Join in a Microsoft Office 365 environment using a service account authenticated using OAuth and the EWS API. The EWS API is being deprecated by Microsoft, so these deployments must be migrated to use Graph as described in Migrating from EWS API to Graph API for One-Touch Join.
In this step you create a profile that you will use to link together all the components for this particular deployment: the Exchange or Google Workspace integration, the endpoint groups (and therefore endpoints), and the rules to be used to process meeting invitations.
A single Pexip Infinity One-Touch Join profile is associated with a single integration type — Exchange, Google Workspace, or O365 Graph. However, a One-Touch Join profile can contain a mixture of Cisco and Poly endpoints.
An endpoint group, and therefore an endpoint (and its room resource), can belong to only one One-Touch Join profile. If you do not assign an endpoint group to a One-Touch Join profile, the endpoints in that group will not be used for One-Touch Join.
To add a One-Touch Join profile, from the Pexip Infinity Administrator interface, go to .
Option | Description |
---|---|
Name | The name of this One-Touch Join profile. |
Description | An optional description of this One-Touch Join profile. |
No. of upcoming days | The number of days of upcoming One-Touch Join meetings to be shown on endpoints. This will also be the number of days of future meetings shown on the One-Touch Join Status page. |
Enable non-video meetings |
Enabled: If One-Touch Join has not been able to obtain a video address from the meeting, then the meeting will still appear on the endpoint as a scheduled meeting, showing the information that was able to be parsed, but the button will not appear. Disabled: If there is no video address, the available meeting information will not appear on the endpoint. Note that the meeting will still exist in the room resource's calendar, so conflicting meetings cannot occur. |
Enable private meetings |
Determines whether or not meetings flagged as private are processed by the One-Touch Join service. Enabled: Private meetings will be processed in the same way as any other meeting. Disabled: Private meetings are not processed by One-Touch Join, and therefore the meeting information will not appear on the endpoint. Note that the meeting will still exist in the room resource's calendar, so conflicting meetings cannot occur. Note that if this is set to Enabled, you can still prevent private meeting details from being displayed on individual Poly endpoints by disabling the endpoint's Show Private Meeting Information setting. |
Process alias for private meetings |
(Applies if Enable private meetings has been selected) Enabled: For private meetings, the meeting alias will be extracted from the invitation in the usual way. Disabled: For private meetings, the available meeting information — apart from the meeting alias — will appear on the endpoint and therefore the button will be disabled. |
Replace subject |
Always: For all meetings, the endpoint will display either the text in the Replace subject string (if present) or the organizer's name, in place of the meeting subject. Never: For all meetings, including private meetings, the endpoint will display the meeting subject in the usual way. Private meetings only: For private meetings, the endpoint will display either the text in the Replace subject string (if present) or the organizer's name, in place of the meeting subject. For all other meetings, the endpoint will display the meeting subject in the usual way. For more information and examples, see Hiding or changing the meeting subject. |
Replace subject string |
(Applies if Replace subject is set to Always or Private meetings only) A Jinja2 snippet that defines how the subject should be replaced (when this has been enabled). If this field is left blank, the subject will be replaced with the name of the organizer. For more information and examples, see Hiding or changing the meeting subject. |
Replace empty subject |
Enabled: For meetings that do not have a subject, the endpoint will display the organizer's name in place of the subject. Disabled: For meetings that do not have a subject, the endpoint will display a blank field in place of the subject. |
Exchange integration |
(Applies if this OTJ profile is for an Exchange on premises integration, or an Office 365 integration that uses the EWS API) The Exchange integration used by this One-Touch Join profile. You should already have created this as part of Configuring Exchange on-premises for One-Touch Join, but you can configure it now by selecting the green plus symbol to the right of the field. |
Google Workspace integration |
(Applies if this OTJ profile is for a Google Workspace integration) The Google Workspace integration used by this One-Touch Join profile. You should have already created this as part of Configuring Google Workspace for One-Touch Join, but you can configure it now by selecting the green plus symbol to the right of the field. |
O365 Graph integration |
(Applies if this OTJ profile is for an Office 365 integration that uses the Graph API) The Exchange integration used by this One-Touch Join profile. You should already have created this as part of Configuring Office 365 using Graph for One-Touch Join, but you can configure it now by selecting the green plus symbol to the right of the field. |
Endpoint Groups | The Endpoint Groups used by this One-Touch Join profile. |
Cisco OBTP endpoint configuration | |
Start buffer |
The number of minutes before a meeting's scheduled start time that the "Join" button on the endpoint will become enabled for that meeting. An endpoint can offer more than one "Join" button if there is an overlap between different meetings' start and end buffers. |
End buffer | The number of minutes after a meeting's scheduled end time that the "Join" button on the endpoint will become disabled for that meeting. |
Default API password |
The user name and password used by One-Touch Join to access a Cisco OBTP endpoint's API. The API is used by the Conferencing Node to configure the endpoint with meeting information. The account being used must have a role of either User or Admin. The Default API username and password is only used if the configuration for the Cisco OBTP endpoint in within One-Touch Join does not include an API username and password. A default is offered because some deployments will have the same username and password for all endpoints. |
Verify endpoint certificates by default |
Whether or not to verify the TLS certificate of a Cisco OBTP endpoint by default when accessing its API. Can be overridden per endpoint using the endpoint's Verify endpoint API TLS certificate setting. For more information, see Managing trusted CA certificates. |
Use HTTPS for endpoint API |
Whether or not to use HTTPS by default when accessing a Cisco OBTP endpoint's API. Can be overridden per endpoint using the endpoint's Use HTTPS setting. Enabled: Use HTTPS to access an endpoint's API. Disabled: Use HTTP to access an endpoint's API. |
Cisco Webex Cloud configuration | |
Enable Webex Cloud | Select this option to if you have endpoints that are registered to Webex or Webex Edge for devices, and you want to enable them to use One-Touch Join. Note that you must first create a Webex Integration. |
Client ID | The Client ID that was generated when you created a Webex Integration. |
Client secret | The Client Secret that was generated when you created a Webex Integration. |
Redirect URI | The Redirect URI you entered when you created a Webex Integration. This must point to the IP address or FQDN of the Management Node, and be in the format https://<Management Node Address>/admin/platform/mjxintegration/oauth_redirect/ |
Hiding or changing the meeting subject
In some cases, you may not want the subject of upcoming meetings to be displayed on an endpoint. One-Touch Join allows you to replace the subject for either all meetings, or only those meetings flagged as private. When replacing the subject, you can elect to replace it with the name of the meeting organizer, or you can use a Jinja2 snippet to re-write the meeting subject. Note that this method does not affect the meeting invitation, just what is displayed on the endpoint for that meeting.
Where a meeting subject has been changed or hidden, the original subject is not shown on the Management Node Administrator interface — it will only display the altered subject.
The Jinja2 snippet used in the Replace subject string has the same access to calendar_event information as the Custom meeting type, including the meeting subject and organizer's name. For more information on using Jinja2 with Pexip Infinity, see Jinja2 templates and filters.
Hiding meeting subjects on endpoints is done on a per-profile basis. Therefore, if you want to hide the subject for just some of the endpoints in your deployment, you should create a separate profile for these endpoints with Replace subject enabled, and then add the endpoints to an Endpoint Group that you associate with that profile.
Example: Add text after organizer's name for private meetings
In this example we want to replace the meeting subject for all private meetings with the name of the organizer followed by the text 's meeting
To do this, we set Replace subject to Private meetings only, and enter the following Jijna2 snippet in the Replace subject string field:
{{ calendar_event.organizer_full_name }}'s meeting
Example: add text to meetings with an external organizer
In this example, we want to check the email address of the meeting organizer and, if the organizer is not from our own example.com domain, prepend the subject of the meeting with the text External:
To do this, we set Replace subject to Always, and enter the following Jijna2 snippet in the Replace subject string field:
{% set domain = pex_regex_search("@([a-z0-9.-]+.com)", calendar_event.organizer_email) %} {% if domain[0] != "example.com" %} External: {{ calendar_event.subject }} {% endif %}
In this step you create endpoint groups, and optionally add endpoints to each group. Each endpoint can belong to only one endpoint group; an endpoint group can contain a mix of Cisco OBTP and Poly OTD endpoints. In general, we recommend that all endpoints in the same physical location are assigned to one endpoint group.
Each endpoint group is associated with a system location; if there are more than 5 Conferencing Node in one location, only 5 will be actively running One-Touch Join. This is because each Conferencing Node will be connecting to Exchange, and the messaging overhead needs to be limited.
From the Pexip Infinity Administrator interface, go to .
Option | Description |
---|---|
Name | The name of this One-Touch Join endpoint group. |
Description | An optional description of this One-Touch Join endpoint group. |
System location | The system location of the Conferencing Nodes which will provide One-Touch Join services for this endpoint group. |
OTJ profile | The One-Touch Join profile to which this endpoint group belongs. |
Disable web proxy | Select this option to bypass the web proxy (where configured for this system location) when sending requests to Cisco OBTP endpoints in this this One-Touch Join endpoint group. |
Endpoints | The endpoints that belong to this One-Touch Join endpoint group. |
In this step you add details of the endpoints that will be used for One-Touch Join, and the room resource that each endpoint is associated with. You can add endpoints individually, or in bulk using a CSV import.
After you have added details of your One-Touch Join endpoints to Pexip Infinity, you will also need to configure the settings on each endpoint to support One-Touch Join. We recommend that you do this after you have completed the following configuration.
If there are multiple endpoints in a single room, you should associate each endpoint with the same room resource, so that each endpoint will receive the same meeting details.
Adding endpoints individually
From the Pexip Infinity Administrator interface, go to .
Option | Description |
---|---|
Endpoint name | The name of this One-Touch Join endpoint. |
Description | An optional description of this One-Touch Join endpoint. |
Endpoint type |
The type of "click to join" feature supported by this endpoint. Cisco OBTP: an endpoint that supports Cisco's One Button to Push (OBTP) and is located on the same network as the OTJ Conferencing Nodes. You should ensure that this endpoint has already been set up in accordance with Configuring OBTP endpoints on the same network. Webex Cloud registered: an endpoint that supports Cisco's One Button to Push (OBTP) and is located on a different network as the OTJ Conferencing Nodes. The endpoint must be registered to Webex or Webex Edge for Devices. You must also complete the steps described in Configuring Cisco Webex Cloud registered endpoints. Poly OTD: an endpoint that supports Poly's One Touch Dial (OTD). You must complete the steps in this Adding One-Touch Join Endpoints section before you set up your Poly endpoints in accordance with Configuring Poly OTD endpoints for OTJ. |
Configuration options for Cisco OBTP endpoints | |
Endpoint address | The IP address or FQDN of the endpoint's API. |
Endpoint API port |
The port of the endpoint's API. Default: 443 if HTTPS is used, otherwise 80 for HTTP. |
Endpoint API password |
The user name and password used by One-Touch Join to access a Cisco OBTP endpoint's API. The API is used by the Conferencing Node to configure the endpoint with meeting information. The account being used must have a role of either User or Admin. Either both these fields must be configured, or both these fields must be left blank. If both these fields are left blank, the One-Touch Join profile's Default API username and password will be used. |
Verify endpoint API TLS certificate |
Whether to enable TLS verification when accessing this endpoint's API. Only applicable if using HTTPS to access this endpoint's API. Use OTJ profile default: Use the Verify endpoint certificates by default setting configured for the One-Touch Join profile that this endpoint is associated with. On: Enable TLS verification. Off: Do not use TLS verification. For more information, see Managing trusted CA certificates. |
Use HTTPS |
Whether to use HTTPS to access this endpoint's API. Use OTJ profile default: Use the Use HTTPS for endpoint API setting configured for the One-Touch Join profile that this endpoint is associated with. On: Use HTTPS to access this endpoint's API. Off: Use HTTP to access this endpoint's API. |
Configuration options for Poly OTD endpoints | |
The username the endpoint will use when connecting and authenticating to the calendaring service on the Conferencing Node, to obtain meeting information. This must be the same as the User Name or User (the field name will vary) configured on the Poly endpoint, and must be unique. This field is case-sensitive. |
|
Poly Calendaring password |
The password the endpoint will use when connecting and authenticating to the calendaring service on the Conferencing Node, to obtain meeting information. This must be the same as the Password configured on the Poly endpoint. This field is case-sensitive. |
Configuration options for Webex Cloud registered endpoints | |
Webex Device ID | The Webex endpoint's unique identifier. You can find the IDs for all devices in your Webex deployment by going to https://developer.webex.com/docs/api/v1/devices/list-devices and from the right-hand panel selecting . |
Configuration options for all endpoints | |
Raise alarms |
When enabled, an alarm will be raised:
Default: enabled. |
Room resource email |
The email address of the room resource associated with this endpoint. This must match an email address that has been configured in Exchange or Google Workspace. For Poly endpoints, this must be the same as the Email or Mailbox (where this setting is available) configured on the Poly endpoint. |
Endpoint Group | The Endpoint Group to which this endpoint belongs. |
Adding OTJ endpoints in bulk
You can add multiple One-Touch Join endpoints by importing a CSV file.
When formatting your import file:
- A header row in the CSV file is optional. If included, it must use the same field names as shown in the following sections, but you may change the order of the fields. If a header row is not used, fields must be in the same order as shown.
- All non-blank fields must contain valid data.
- If non-ASCII characters are used, the file must be encoded as UTF-8 text.
- All fields are case-sensitive.
- Values may optionally be enclosed in double quotation marks; any strings containing commas must be enclosed in double quotation marks e.g. "description for x, y and z".
Note that you can perform an export of existing data to produce an example file in the correct format.
To add multiple endpoints by importing a CSV file:
-
Create the CSV file, using the following format:
name,description,endpoint_type,api_address,api_port,api_username,api_password,poly_username,poly_password,poly_raise_alarms_for_this_endpoint,webex_device_id,verify_cert,use_https,room_resource_email,mjx_endpoint_group_name
where
Field name Content Required field for... name This field cannot be blank.
The name of this One-Touch Join endpoint.
You should ensure there are no duplicate names, either within the CSV file, or between the CSV file and the existing endpoints (unless you wish the existing configuration to be overwritten).
Cisco
Poly
Webex
description An optional description of this One-Touch Join endpoint. endpoint_type The type of "click to join" feature supported by this endpoint.
Valid values are:
- CISCO
- POLY
- WEBEX
Cisco
Poly
Webex
api_address The IP address or FQDN of the Cisco OBTP endpoint's API.
Cisco api_port The port of the Cisco OBTP endpoint's API.
If this is left blank, the defaults (443 if HTTPS is used, otherwise 80 for HTTP) will be used.
api_username The username used by OTJ to access the Cisco OBTP endpoint's API. api_password The password used by OTJ to access the Cisco OBTP endpoint's API. poly_username The username and password the endpoint will use when connecting and authenticating to the calendaring service on the Conferencing Node, to obtain meeting information. Poly poly_password The password the endpoint will use when connecting and authenticating to the calendaring service on the Conferencing Node, to obtain meeting information. Poly poly_raise_alarms_for_this_endpoint Whether to raise an alarm if OTJ is unable to provide this endpoint with meeting information. (Note that despite the field name, this applies to all endpoint types.)
Valid values are:
- TRUE
- YES
- FALSE
- NO
If this is left blank, the default TRUE (enabled) will be used.
webex_device_id The Webex endpoint's unique identifier. Webex verify_cert Whether to enable TLS verification when accessing the Cisco OBTP endpoint's API. Only applicable if using HTTPS to access this endpoint's API.
Valid values are:
- GLOBAL: Use the Verify endpoint certificates by default setting configured for the One-Touch Join profile that this endpoint is associated with.
- YES: Enable TLS verification.
- NO: Do not use TLS verification.
use_https Whether to use HTTPS to access the Cisco OBTP endpoint's API.
- GLOBAL: Use the Use HTTPS for endpoint API setting configured for the One-Touch Join profile that this endpoint is associated with.
- YES: Use HTTPS to access this endpoint's API.
- NO: Use HTTP to access this endpoint's API.
room_resource_email This field cannot be blank.
The email address of the room resource associated with this endpoint. This must match the email address that has been configured in Exchange or Google Workspace.
Cisco
Poly
Webex
mjx_endpoint_group_name The endpoint group to which this endpoint belongs.
If this field is set, it must contain the name of an existing endpoint group.
- From the Pexip Infinity Administrator interface, go to and from the bottom right of the screen, select .
- From the page, select and then navigate to the CSV file you have created.
- Select .
The imported endpoints will be added to your One-Touch Join configuration.
If any records in the CSV file have the same name field (regardless of whether or not any of the other fields are different), only one endpoint with that name will be created. This endpoint will use the last record that was imported.
If any records in the CSV file have the same name as an existing endpoint, the existing configuration will be overwritten by the imported endpoint's configuration.
In this step you create a prioritized set of rules that specifies each of the meeting types you expect users in your deployment to encounter, and how the invitations for these meetings should be processed in order to obtain the alias that the endpoint must dial in order to join the meeting.
One-Touch Join supports meetings from a number of different providers. For each of these supported meeting types, One-Touch Join knows what information to look for in the meeting invitation, and how to use what it finds to derive an alias that the endpoint can dial in order to join that meeting. In most cases, you can simply use the default processing for each supported meeting type. However, you also have the option to override the default processing with your own transform pattern to change how the alias is constructed. You can also write your own regex and custom rules if you wish to enable One-Touch Join for other meeting types or conferencing providers not currently supported.
A single One-Touch Join profile will normally have multiple meeting processing rules associated with it — we recommend that you create one rule for each Meeting type you expect users in your environment to encounter, including any invitations received from external contacts where users may wish to use an internal meeting room to join the meeting. The Priority option should be used to ensure that all rules for supported meeting types are processed before any Domain, Regex or Custom rules. (Note that the order in which the supported meeting types are prioritized between themselves is not important.)
When One-Touch Join processes a meeting invitation, it goes through each meeting rule in order of priority to find a match.
- If a match is found, it uses the information in the invitation, processed in accordance with the rule's settings, to derive an alias to use to join the meeting.
- If none of the meeting processing rules match (or there are no meeting processing rules configured or enabled), One-Touch Join will search the invitation for a URI or address with a sip:, sips: or h323: prefix, and use that as the alias.
One-Touch Join then provides the endpoint with the alias, along with other meeting information such as the start time, end time, subject, and organizer's name.
If no alias has been obtained, One-Touch Join may still provide the meeting information to the endpoint, depending on the Enable non-video meetings and Enable private meetings settings for the profile being used.
Each meeting processing rule is associated with a single One-Touch Join profile, and therefore will apply to either an Exchange integration or a Google Workspace integration, but not both.
To view, edit and create meeting processing rules, from the Pexip Infinity Administrator interface, go to .
Option | Description |
---|---|
Name | The name of this One-Touch Join meeting processing rule. |
Description | An optional description of this meeting processing rule. |
OTJ profile | The One-Touch Join profile associated with this meeting processing rule. |
Priority |
The priority of this rule. Rules are checked in ascending priority order (starting at 1) until the first matching rule is found, and it is then applied. We recommend that meeting types other than Domain, Regex or Custom are given highest priority. You can then use lower Priority options to determine the order in which any Domain, Regex and Custom rules are applied, particularly if you are using more than one of these meeting types. |
Meeting type |
The type of meeting invitation to which this rule applies. You can select one of the supported meeting types from the drop-down list, or select Regex or Custom if you wish to define your own meeting processing rule. For a full list of available meeting types, and guidance on which to use in your deployment, particularly when joining Teams or Skype for Business meetings, see Supported meeting types. |
Include password |
(Available when a Meeting type of Zoom has been selected) Enable this option to search the meeting information for the meeting password, and if found, include the password to the alias used to join the meeting, so that users do not need to enter the password themselves. |
Default processing enabled |
(Does not apply to Custom meeting types)
|
Pexip Service Company ID |
(Available when a Meeting type of Microsoft Teams SIP Guest Join has been selected) Calls that use the Microsoft Teams SIP Guest join option are routed via the Pexip Service. To ensure these calls (which are from endpoints not registered to the Pexip Service) are tracked within Pexip Control Center, include your Pexip Service Company ID here. If you do not know your Pexip Service Company ID, your Pexip authorized support representative can provide it. |
Transform pattern |
(Available and required when Default processing is disabled and any Meeting type option other than Custom or Regex has been selected.)
A Jinja2 snippet that is used to process the meeting information from calendar events of the selected Meeting type in order to derive the meeting alias. If you disable Default processing after creating and saving the rule, this field will show the default transform pattern, which you can then edit. For a list of the valid variables for each meeting type, see Supported meeting types. |
Match string |
(Available and required when a Meeting type of Regex has been selected.) The regular expression that defines the string to search for in the invitation. |
Replace string |
(Available and required when Default processing is disabled and a Meeting type of Regex has been selected.) A regular expression that defines how to transform the matched string into the alias to dial. |
Domain |
(Available and required when a Meeting type of Domain, Microsoft Teams Meeting Properties or Google Meet SIP Guest Join has been selected.)
|
Custom template |
(Available and required when a Meeting type of Custom has been selected.) A Jinja2 script which is used to process the meeting information from calendar events in order to extract the meeting alias. For more information, see Custom meeting type. |
Enabled | Determines whether or not the rule is enabled. Any disabled rules still appear in the rules list but are ignored. Use this setting to test configuration changes, or to temporarily disable specific rules. |
Testing the rule
When you have created and saved a meeting processing rule, a Test Meeting Processing page, which allows you to test that the rule works as expected for the selected deployment and meeting type, and also allows you to edit the configuration for that rule until you get the desired results.
button will appear at the bottom of the page. This will take you to theWhen searching a meeting invitation for the text to transform into an alias, OTJ will search either the invitation's properties, or the invitation's body (depending on the selected Meeting type) — and so when testing a rule, you will see either a Calendar event properties field or a Calendar event body field as appropriate. These fields will in most cases contain some example text in the format expected by OTJ, but you can enter other text here to help you test the rule, for example if you know that the format will be different in your deployment. However, since these two fields are there purely to assist you when testing the rule, and do not make up part of the rule itself, any changes to these fields will not be saved.
To test the rule:
-
Review and complete the following fields:
Option Description Read-only fields Integration type This read-only field shows whether the rule will be applied to a Google Workspace or Exchange integration. This is based on the integration option selected in the OTJ profile associated with the rule. Meeting type This read-only field shows the meeting type associated with this rule. Configuration that can be edited and saved The available fields will depend on the selected meeting type.
You can edit these fields and re-test the rule until you get the desired results.
Domain The Domain currently configured for this rule.
Match string
Replace string
The Match string (and Replace string, where applicable) currently configured for this rule.
Transform pattern The pattern that will be used to transform specific text in the meeting invitation into an alias to dial.
- If you selected Default processing enabled, this will be the default transform pattern for this meeting type.
- If you did not select Default processing enabled, this will be the Transform pattern you entered.
Custom template The Custom template currently configured for this rule. Example text used when testing the rule Calendar event properties (Available for some meeting types)
A JSON field representing the event properties that OTJ expects to find for the selected Meeting type (for Google Workspace integrations, this will contain a subset of the Google Event Properties; for Exchange integrations, this will be the Exchange MAPI Properties). This data will be used to generate the meeting alias.
In most cases this field will be populated automatically, but you can edit it if you know that the format used in your deployment will be different.
Calendar event body (Available for some meeting types)
An example of the text that OTJ expects to find in the body of the invitation for the selected Meeting type, and which will be used to generate the meeting alias. In most cases this will be populated automatically, but you can paste in the full text from an actual meeting invitation used in your deployment and test the rule against this.
-
Select
.The Result field shows the meeting alias that would be extracted based on the rule's current configuration and the example calendar event properties or body.
- If this is blank, the example calendar event properties / body did not contain any text that could be matched and transformed according to the rule as currently configured.
- If the result is not as expected, edit the fields above as appropriate.
-
When the configuration is producing the desired result, to save the changes you have made, select
.
Next steps
You should now complete the steps in Configuring endpoints to support One-Touch Join for each endpoint.