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 One-Touch Join 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.

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 that will be used when deriving the alias — this should be the domain from which the meeting invitation was sent.

{{meeting_id}}@{{domain}}
  • meeting_id
  • domain
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 will use the domain t.plcm.vc

{{tenant_id}}.{{meeting_id}}@t.plcm.vc
  • meeting_id
  • domain
  • tenant_id
Microsoft Teams Meeting Body for BlueJeans

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 BlueJeans — Teams integration.

By default, the resulting alias will use the domain teams.bjn.vc

{{tenant_id}}.{{meeting_id}}@teams.bjn.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

(Not currently supported for Exchange (on-premises or O365) integrations)

For meetings scheduled using Google Meet.

{{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 will use 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 will use the domain zoomcrc.com

Optionally, the meeting password (PIN) can be included in the alias.

{{meeting_id}}@zoomcrc.com

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

  • meeting_id
  • domain
  • pin
BlueJeans

For BlueJeans meetings.

By default, the resulting alias will use the domain bjn.vc

{{meeting_id}}@bjn.vc
  • meeting_id
  • domain
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 that will be searched for in order to match this rule.

This rule will search 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 will be 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 will be 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 will be 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.

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 will be 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 will be 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 will be 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 that will be used to join the meeting will be 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 to be 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 that will be used to join the meeting will be __sfb__ABC123.alice@pexample.com.

Extracting an alias from a URL that has been rewritten for security

This example can be used if you expect that some meeting invitations sent to One-Touch Join room resources may include URLs that have been rewritten for security reasons. This rule matches URLs for Microsoft Teams meetings on the Pexip Service (which are in the format https://pexip.me/teams/<domain>/<meeting_id>) that have been rewritten by either:

  • Safe Links in Microsoft Defender for Office 365, which start with something like
    https://nam06.safelinks.protection.outlook.com/?url=https
  • Proofpoint's URL Defense, which start with something like
    https://urldefense.proofpoint.com/v2/url?u=https
{% set matches = pex_regex_search("https(-3A__|%3A%2F%2F)pexip\.me(_|%2F)teams(_|%2F)(([a-zA-Z0-9-]+)(\.[a-zA-Z0-9-]+){0,}\.([a-zA-Z]{2,}))(_|%2F)(\d+)", calendar_event.body) %}
{% if matches %}
	{{matches[8]}}@{{matches[3]}}
{% endif %}

In the above example, If the original meeting invitation contained a URL in the format https://pexip.me/teams/pexample.com/123456 and that URL was subsequently rewritten by either Safe Links or URL Defense, the alias that will be used to join the meeting will be 123456@pexample.com.