One-Touch Join meeting types and transforms

This topic details the meeting types, transform patterns and variables that are supported when Adding One-Touch Join meeting processing rules.

You must configure One-Touch Join with information about all the different types of meeting invitations you expect to encounter in your deployment, and rules for how the information in each of these invitations should be used to derive the alias that the endpoint will dial to join the meeting.

You can select from the currently supported meeting types (which you can edit if necessary), or create your own regex or custom rules if you wish to enable One-Touch Join for other meeting types or conferencing providers not already supported. There are also some non-configurable fallback settings that are used when no other rules match.

You must also ensure that your deployment has appropriate Call Routing Rules to enable the OTJ endpoint to dial the meeting aliases that are derived for each meeting type.

Fallback alias matching

If One-Touch Join cannot find a valid meeting alias because none of the meeting processing rules match, or because there are no meeting processing rules configured or enabled, as a fallback it will always search the body and the location of the invitation for one of the following patterns to use as the alias to dial:

  • sip:<uri>
  • sips:<uri>
  • h323:<address>

Supported meeting types

The table below lists the currently supported configurable Meeting types. For each type, the Default transform pattern shows how, when default processing is enabled, One-Touch Join uses the information it finds in the meeting invitation to derive the alias that the endpoint will dial to join the meeting. The table also lists the Valid variables that can be used when creating a custom transform pattern for this meeting type.

These meeting types are supported by the current version of Pexip Infinity at the time of its release, but sometimes conferencing providers change the format of their meeting invitations. Until these changes are incorporated into a subsequent release of Pexip Infinity, you may need to use a custom rule in order to continue to use One-Touch Join for these meeting types. Where possible we will provide these for you in the Custom meeting type section of the Pexip documentation, so we suggest that you check this content regularly between upgrades.

Meeting type Usage and notes Default transform pattern Valid variables
(if not using default transform)
Pexip Infinity

For meetings scheduled using Pexip's VMR Scheduling for Exchange feature, and which use the default Joining instructions template. These meetings typically include a join link in the format pexip://<meeting_id>@<domain>.

If your VMR Scheduling for Exchange deployment does not use the default template, or uses an alias in a different format, you should select a Meeting type of Domain or Custom instead.

{{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Pexip Service

For meetings held in Pexip Service VMRs.

By default, the resulting alias will use the domain pexip.me

{{meeting_id}}@pexip.me
  • meeting_id
  • domain
Microsoft Teams Meeting Properties

(Not currently supported for Google Workspace integrations)

For meetings hosted in Microsoft Teams. This rule should be sufficient if all your Teams meetings are internal; otherwise we recommend that you also add any relevant Microsoft Teams Meeting Body for ... rules.

You must provide the Domain to use when deriving the alias — this should be the domain from which the meeting invitation was sent.

{{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Microsoft Teams SIP Guest Join

For Microsoft Teams meetings hosted on another domain where the hosting domain does not have Pexip Teams interop but your organization does have access to Pexip Teams interop through the Pexip Service.

Leave Default processing enabled checked. Any changes that you make to the default processing do not take effect for this rule.

These calls are routed via the Pexip Service. For more information, see Enabling SIP Guest Join.

When this option is selected, an additional optional Pexip Service Company ID field appears, which is used to track usage in Pexip Control Center.

Not applicable  
Microsoft Teams Meeting Body for Pexip Infinity If you expect users in your deployment to receive invitations to Microsoft Teams meetings sent from domains other than your own, where the meeting organizer is using a Pexip Infinity — Teams integration. {{prefix}}{{meeting_id}}@{{domain}}
  • meeting_id
  • domain
  • prefix
Microsoft Teams Meeting Body for Pexip Service If you expect users in your deployment to receive invitations to Microsoft Teams meetings sent from domains other than your own, where the meeting organizer is using a Pexip Service — Teams integration. {{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Microsoft Teams Meeting Body for Poly

If you expect users in your deployment to receive invitations to Microsoft Teams meetings sent from domains other than your own, where the meeting organizer is using a Poly — Teams integration.

By default, the resulting alias uses the domain t.plcm.vc

{{tenant_id}}.{{meeting_id}}@t.plcm.vc
  • meeting_id
  • domain
  • tenant_id
Microsoft Teams Meeting Body for Cisco If you expect users in your deployment to receive invitations to Microsoft Teams meetings sent from domains other than your own, where the meeting organizer is using a Cisco — Teams integration. {{conf_id}}.{{tenant_key}}@{{domain}}
  • conf_id
  • tenant_key
  • domain
Google Meet

For meetings scheduled using Google Meet.

This is supported in Google Workspace integrations, and in Exchange integrations (on-premises or O365) if the Google Meet invitation uses Long meeting IDs (which automatically include a SIP dial-in address).

This option is not supported in Exchange integrations (on-premises or O365) if the Google Meet invitation uses Short meeting IDs only, because the SIP dial-in address is not automatically included in these invitations.

{{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Google Meet SIP Guest Join

For Google Meet meetings hosted on another domain where the hosting domain does not have Pexip Google interop but your organization does have access to Pexip Google interop through the Pexip Service.

Leave Default processing enabled checked, and enter the Domain of the service providing the Pexip Google interop — for the Pexip Service this is google.pexip.me.

{{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Skype for Business

For Skype for Business meetings.

The domain used is the domain of the organizer’s email address.

You must also ensure you have a Call Routing Rule configured that includes the following settings (replacing example\.com in the example below with the domain of the organizer’s email address):

  • Destination alias regex match:

    __sfb__([a-z0-9]+)\.([a-z\.\-]+)@(example\.com)

  • Regex replace string:

    sip:\2@\3;gruu;opaque=app:conf:focus:id:\1

  • Call target:

    Lync / Skype for Business clients, or meetings via a Virtual Reception

__sfb__{{focus_id}}.{{user}}@{{domain}}
  • focus_id
  • domain
Skype for Business Meeting Body for Poly

For Skype for Business meetings, where the meeting organizer is using a SfB — Poly integration.

By default, the resulting alias uses the domain v.plcm.vc

{{tenant_id}}.{{meeting_id}}@v.plcm.vc
  • meeting_id
  • domain
  • tenant_id
Webex For Webex meetings. {{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Zoom

For Zoom meetings.

By default, the resulting alias uses the domain zoomcrc.com

Optionally, the meeting password (PIN) can be included in the alias (not supported for Google Workspace integrations).

{{meeting_id}}@zoomcrc.com

{{meeting_id}}.{{pin}}@zoomcrc.com

  • meeting_id
  • domain
  • pin
GoToMeeting For GoToMeeting meetings. {{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Domain

If you expect users in your deployment to receive invitations for meetings that do not fall into any of the above categories, you can use this rule to enable meetings where the alias is from a known domain.

We recommend that Domain rules are given a lower priority than any of the other rules.

You must provide the Domain to search for in order to match this rule.

This rule searches the body and the location for a match.

The search will result in a match even if the URI includes one or more subdomains of the domain being searched for. The domain can also include subdomains. When there is a match, the full URI is used as the meeting alias. For example, if the domain is sales.example.com, that will match alice@sales.example.com and alice@us.sales.example.com but not alice@example.com.

{{meeting_id}}@{{domain}}
  • meeting_id
  • domain
Regex See Regex meeting type    
Custom See Custom meeting type    

Regex meeting type

A Meeting type of Regex enables you to use a regular expression to search for a particular Match string in the body and location of the invitation. You can then either:

  • select Default processing enabled to use the matched string as the alias that the endpoint will dial to join the meeting, or
  • disable Default processing enabled to use a regex Replace string to transform the matched string into the alias to dial.

For more information on using regular expressions with Pexip Infinity, see Regular expression (regex) reference.

Examples

Matching without a transform

This example searches the invitation for any alias in the format of <name>.vmr@example.com, and uses that as the alias to dial:

Meeting type Regex
Default processing enabled Yes
Match string [\w+].vmr@example.com

In this example, if the meeting body contains the following text:

From a video system (SIP/H.323): alice.vmr@example.com

then the alias that will be dialed to join the meeting is alice.vmr@example.com

Transforming a URL into an alias

This example searches the invitation for a URL in the format https:://<domain>/meet/<name>and transforms that into an alias in the format <name>@<domain>:

Meeting type Regex
Default processing enabled No
Match string https:\/\/([^\/]+)/meet\/(\d+)
Replace string \2@\1

In this example, if the meeting body contains the following text:

From web browser & other ways to join:
https://pexip.me/meet/123456

then the alias that will be dialed to join the meeting is 123456@pexip.me

Custom meeting type

A Meeting type of Custom enables more advanced processing by allowing you to use a Jinja2 template with access to all calendar_event information, which you can then use to generate the alias that the endpoint will dial to join the meeting. For more information on using Jinja2 with Pexip Infinity, see Jinja2 templates and filters.

A custom meeting type can be used to enable meeting types or conferencing providers not listed above, or to provide a workaround if any supported providers change their current implementations. (Any known workarounds will be given in the Examples section below.)

You can use the following calendar event dictionary items, in conjunction with any other literal values if required (e.g. if the domain is always a known quantity), to create the Jinja script:

Item Type Additional information
subject string  
organizer_full_name string  
organizer_first_name string  
organizer_last_name string  
organizer_email string  

start_time

end_time

dictionary

Properties:

  • year
  • month
  • day
  • hour
  • minute
  • second
is_private boolean  
body string  
location string  
properties dictionary

Google Workspace

A Google Workspace calendar_event will contain a Google Calendar Event resource. For more information, see https://developers.google.com/calendar/v3/reference/events.

Exchange

An Exchange calendar_event may contain any EWS MAPI properties from the following list:

Examples

The following examples show basic jinja templates that can be used in the Custom template field.

Searching by partial alias

This first example searches the calendar_event.body (i.e. the text in the body of the meeting invitation) for an alias that includes .vmr@example.com. It then uses the full alias as the meeting alias to dial:

{% set matches = pex_regex_search("([\w.-]+\.vmr@example\.com)", calendar_event.body) %}
{% if matches %}
	{{matches[0]}}
{% endif %}

In the above example, if the meeting body contains alice.vmr@example.com, this is used as the alias for the meeting.

Searching by top-level domain

This next example searches the calendar_event.body (i.e. the text in the body of the meeting invitation) for an alias that includes a domain ending in .com. It then uses the full alias as the meeting alias to dial:

{% set groups = pex_regex_search("([a-z0-9.-]+)@([a-z0-9.-]+.com)", calendar_event.body) %}
{% if groups %}
	{{ groups[0] }}@{{ groups[1] }}
{% endif %}

In the above example, if the meeting body contains alice.vmr@example.com, this is used as the alias for the meeting.

Searching the location for a partial alias

This example searches the calendar_event.location (i.e. the text in the location field of the meeting invitation) for an alias that includes .vmr@example.com. It then uses the full alias as the meeting alias to dial:

{% set matches = pex_regex_search("([\w.-]+\.vmr@example\.com)", calendar_event.location) %}
{% if matches %}
	{{matches[0]}}
{% endif %}

In the above example, if the meeting location contains alice.vmr@example.com, this is used as the alias for the meeting.

Lifesize Cloud example

This example searches a standard Lifesize Cloud meeting invitation and converts the URL into a meeting alias:

{% set matches = pex_regex_search("https://call.lifesizecloud.com/([0-9.-]+)", calendar_event.body) %}
{% if matches %}
	{{matches[0]}}@lifesizecloud.com
{% endif %}

In the above example, if the meeting body contains https://call.lifesizecloud.com/123456, the alias used to join the meeting is 123456@lifesizecloud.com.

Skype for Business example: different organizer and endpoint domains

This example can be used if you have Skype for Business meeting invitations where the domain of the organizer's email address is not the same as the domain of the alias of the SIP endpoint used for the meeting.

{% set matches = pex_regex_search("https:\/\/meet\.pajusa\.com\/([a-z0-9-.]+)\/([a-z0-9]+)\/([A-Z0-9]+)", calendar_event.body) %}
{% if matches %}
	__sfb__{{matches[2]}}.{{matches[1]}}@{{matches[0]}}
{% endif %}

In the above example, if the meeting body contains https://meet.pajusa.com/pexample.com/alice/ABC123, the alias used to join the meeting is __sfb__ABC123.alice@pexample.com.

Amazon Chime example

This example searches a standard Amazon Chime meeting invitation and uses the meeting ID to create a meeting alias:

{% set idmatches = pex_regex_search("([a-z0-9.-]+)(@meet.chime.in)", calendar_event.body) %}
{% set pwdmatches = pex_regex_search("(Password|Passcode|Code secret|PIN):\s*(\d*)", calendar_event.body) %}
{% if idmatches and pwdmatches %}
{{idmatches[0]}}+{{pwdmatches[1]}}@meet.chime.in
{% endif %}

In the above example, if the meeting body contains the meeting ID 1234567890, the alias used to join the meeting is 1234567890@meet.chime.in.