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.

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

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.

{{meeting_id}}@pexip.me

  • meeting_id
  • domain

Microsoft Teams Meeting Properties

(Not currently supported for G Suite 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 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.

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

{{tenant_id}}.{{meeting_id}}@teams.bjn.vc

  • meeting_id
  • domain
  • tenant_id

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

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.

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

The domain is hard-coded to 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.

In all cases the domain is hard coded to zoomcrc.com.

{{meeting_id}}@zoomcrc.com

  • meeting_id
  • domain

BlueJeans

For BlueJeans meetings.

In all cases the domain is hard coded to 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  

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

G Suite

A G Suite 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.