0% found this document useful (0 votes)
112 views119 pages

Pexip Infinity OTJ Deployment Guide V30.a

Uploaded by

pjdinis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
112 views119 pages

Pexip Infinity OTJ Deployment Guide V30.a

Uploaded by

pjdinis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 119

Pexip One-Touch Join

Deployment Guide

Software Version 30

Document Version 30.a

October 2022
Pexip One-Touch Join Deployment Guide

Contents

About One-Touch Join 6
Enabling One-Touch Join 6
Supported Google Workspace editions 7
Supported Exchange environments 7
Exchange servers 7
Outlook clients 7
Supported endpoints 7
Cisco OBTP 8
Poly OTD 8
Supported meeting types 9
Supported number of endpoints and Conferencing Nodes 9
Pexip Infinity server requirements 9

One-Touch Join process and deployment overview 10
Process overview 10
Administrator configures OTJ 10
End user sends invitation 10
OTJ provides endpoint with meeting information 10
Frequency and limitations on calendar requests 11
Locations, Conferencing Nodes and redundancy 11
Conferencing Nodes 11
Management Node 12
Network architecture, firewalls and web proxy 12
Conferencing Nodes 12
Management Node 12
Port usage 13
Permitting the service account to access calendars 14
Exchange integrations 14
Google Workspace integrations 15
Using One-Touch Join with personal endpoints and calendars 15

Configuring Exchange on-premises for One-Touch Join 16
Prerequisites 16
Creating a service account 16
Configuring Application Impersonation on the service account 17
Creating a new Distribution Group 17
Configuring application impersonation 18
Enabling basic authentication 18
Configuring calendar processing on room resource mailboxes 19
Recommended configuration 19
Optional configuration 20
Checking calendar processing settings 20

© 2022 Pexip AS Version 30.a   October 2022 Page 2 of 119


Pexip One-Touch Join Deployment Guide

Adding a One-Touch Join Exchange integration on Pexip Infinity 21
Next steps 22

Configuring Office 365 using Graph for One-Touch Join 23
Prerequisites 23
Creating and configuring a new App registration in Azure 23
Restricting the scope of the App registration 27
Creating a Distribution Group 28
Restricting access 28
Configuring calendar processing on room resource mailboxes 28
Recommended configuration 28
Optional configuration 29
Checking calendar processing settings 29
Adding a One-Touch Join O365 Graph integration on Pexip Infinity 31
Configuring the O365 Graph integration 31
Next steps 31

Configuring Office 365 using EWS for One-Touch Join 32
Prerequisites 32
Creating a service account 32
Configuring Application Impersonation on the service account 33
Creating a new Distribution Group 34
Configuring application impersonation 34
Configuring calendar processing on room resource mailboxes 35
Recommended configuration 35
Optional configuration 35
Checking calendar processing settings 36
Enabling OAuth authentication 37
Adding a One-Touch Join Exchange integration on Pexip Infinity 42
Configuring the Exchange integration 42
Signing in to the service account 44
Next steps 45

Configuring Google Workspace for One-Touch Join 46
Prerequisites 46
Creating a service account 46
Creating a room resource 50
Configuring the room resource 52
Sharing calendars externally 52
Sharing individual calendars with the service account 53
Auto-accepting invitations 54
Allowing users to book resources 55
Updating the per-user request quota 56
Requesting an increase to API limits 57

© 2022 Pexip AS Version 30.a   October 2022 Page 3 of 119


Pexip One-Touch Join Deployment Guide

Adding a One-Touch Join Google Workspace integration on Pexip Infinity 59
Next steps 60

Configuring Pexip Infinity for One-Touch Join 61
Prerequisites 61
Adding a One-Touch Join profile 61
Hiding or changing the meeting subject 64
Adding One-Touch Join endpoint groups 64
Adding One-Touch Join endpoints 65
Adding endpoints individually 65
Adding OTJ endpoints in bulk 67
Adding One-Touch Join meeting processing rules 69
Testing the rule 71
Next steps 72

Configuring endpoints to support One-Touch Join 73
Prerequisites 73
Configuring Cisco OBTP endpoints for OTJ 73
Prerequisites 74
Creating a Webex Integration 74
Enabling a One-Touch Join profile to use Webex Cloud 74
Adding a Webex endpoint 75
Disabling the calendar 75
Enabling the client API 77
DNS records 77
Poly authentication 78
Deployments with a load balancer 78
Configuring Poly RealPresence Group series 78
Configuring Poly Trio series 79
Configuring Poly HDX series 82
Configuring Poly Studio X series and Poly G7500 series 84
Configuring Poly Debut series 85

One-Touch Join meeting types and transforms 87
Fallback alias matching 87
Supported meeting types 87
Regex meeting type 90
Examples 90
Custom meeting type 91
Examples 92

Deploying a dedicated One-Touch Join platform 94
Minimum hardware requirements 94
On-premises deployments 94
Cloud deployments 94
Minimum Pexip Infinity platform configuration 95

© 2022 Pexip AS Version 30.a   October 2022 Page 4 of 119


Pexip One-Touch Join Deployment Guide

One-Touch Join configuration 95

Scheduling and joining meetings using One-Touch Join 96
Using One-Touch Join in meeting rooms 96
Using One-Touch Join with your personal endpoint 96

Viewing One-Touch Join status 97
Viewing One-Touch Join meetings 97
Viewing One-Touch Join endpoints 98

Configuring Google Workspace for domain user authorization 99
Prerequisites 99
Enabling authorization using OAuth 99
Creating a room resource 103
Configuring the room resource 106
Sharing individual calendars with the authorization user 106
Auto-accepting invitations 107
Allowing users to book resources 108
Updating the per-user request quota 109
Requesting an increase to API limits 110
Adding a One-Touch Join Google Workspace integration on Pexip Infinity 112
Configuring the Google Workspace integration 112
Authorizing calendar access 113
Next steps 115

Troubleshooting One-Touch Join 116
 

© 2022 Pexip AS Version 30.a   October 2022 Page 5 of 119


Pexip One-Touch Join Deployment Guide About One-Touch Join

About One-Touch Join
Pexip Infinity's One-Touch Join (OTJ) feature integrates support for existing "click to join" videoconferencing endpoint workflows into 
your Pexip Infinity deployment. With One-Touch Join, when users schedule a meeting in Microsoft Outlook or Google Calendar and 
include in the meeting invitation a room that contains a supported Cisco or Poly endpoint, the endpoint will display a Join button just 
before the meeting is scheduled to begin. Participants can then simply walk into the room and select the button, and the endpoint will 
automatically dial in to the meeting.
One-Touch Join is available as an optional licensed feature within the Pexip Infinity platform. 
In most cases, One-Touch Join will be implemented as a feature within a wider Pexip Infinity deployment, and run on Conferencing 
Nodes alongside other Pexip Infinity services. However, you can also set up separate OTJ locations within your deployment that contain 
Conferencing Nodes used solely for One-Touch Join. A third option appropriate in some situations is to implement a separate Pexip 
Infinity deployment purely for One-Touch Join, for example if you are a Pexip Service customer wishing to use One-Touch Join, or you 
are a large enterprise wishing to separate the resources used for your One-Touch Join deployment. For more information, see 
Deploying a dedicated One-Touch Join platform.

Enabling One-Touch Join
All Conferencing Nodes are capable of running One-Touch Join, although the service will only come into active operation on a node 
when the location the node is in is associated with a One-Touch Join Endpoint Group. 
Enabling the Pexip One-Touch Join service within your Pexip Infinity deployment involves the following steps, each described in 
separate topics:

 1.  Permitting the One-Touch Join service to access the calendars used for One-Touch Join. How this is achieved depends on which 
calendar/email service is used in your environment:
 o For Google Workspace, you create a service account and share OTJ calendars with the service account. This service account 
authenticates to Google Workspace with a private key using 2-legged OAuth. For full details, see Configuring Google 
Workspace for One-Touch Join.
We also offer an alternative means for Google Workspace environments where the recommended method of using a 
service account is not desirable. This alternative method uses a domain user which authenticates to Google Workspace 
using 3-legged OAuth. For full details, see Configuring Google Workspace for domain user authorization.
 o For Exchange on premises, you create a service account that uses application impersonation to read the OTJ calendars. This 
service account authenticates to Exchange using basic authentication. For full details, see Configuring Exchange on-premises 
for One-Touch Join.
 o For Office 365, you create an application registration in Azure for OTJ, and grant the application permission to read OTJ 
calendars using Microsoft's Graph API. OTJ uses 2-legged OAuth to authenticate to Office 365 without the need of a service 
account. For full details, see Configuring Office 365 using Graph for One-Touch Join.
We continue to support existing One-Touch Join deployments for Office 365 that used a service account with application 
impersonation to read OTJ calendars. This service account authenticated using OAuth and used the EWS API to access 
mailboxes. However, the EWS API is being deprecated by Microsoft, so for new One-Touch Join deployments in Office 
365 environments you should instead use the Graph API to provide access to room resource mailboxes. For information 
on managing these existing deployments, see Configuring Office 365 using EWS for One-Touch Join.
 2.  Configuring Pexip Infinity for One-Touch Join
 3.  Configuring endpoints to support One-Touch Join
 4.  Viewing One-Touch Join status

For an overview of the process and general deployment and network considerations for One-Touch Join, see One-Touch Join process 
and deployment overview.
For a guide for end users, see Scheduling and joining meetings using One-Touch Join.
For help with troubleshooting your One-Touch Join deployment, see Troubleshooting One-Touch Join.

© 2022 Pexip AS Version 30.a   October 2022 Page 6 of 119


Pexip One-Touch Join Deployment Guide About One-Touch Join

Supported Google Workspace editions
Pexip One-Touch Join is supported in the following Google Workspace environments:
 l Google Workspace Basic
 l Google Workspace Business
 l Google Workspace Enterprise

Supported Exchange environments
Pexip One-Touch Join is supported in the following Microsoft Exchange environments:

Exchange servers
 l Office 365
 l Exchange 2013 (with the latest updates)
 l Exchange 2016 (with the latest updates)
 l Exchange 2019 (with the latest updates)

Outlook clients
Meetings scheduled in all Outlook clients are supported. Note that different third-party Outlook add-ins for different Outlook versions 
may format the join details for some meeting types slightly differently.

Supported endpoints
Endpoints used for One-Touch Join must not also be registered to the calendaring service on other systems such as the cloud-based 
Webex Hybrid Calendar Service, or Cisco TMS XE.

© 2022 Pexip AS Version 30.a   October 2022 Page 7 of 119


Pexip One-Touch Join Deployment Guide About One-Touch Join

Cisco OBTP
Pexip Infinity One-Touch Join is supported on Cisco VTC endpoints that support Cisco One Button to Push (OBTP) and are running TC, 
CE, or RoomOS software.
This includes:
 l Cisco Webex Room series (Room, Room Kit)
 l Cisco C series (C20, C40, C60, C90)
 l Cisco DX series (DX70, DX80)
 l Cisco EX series (EX60, EX90)
 l Cisco MX series (MX200, MX300, MX700, MX800)
 l Cisco SX series (SX10, SX20, SX80)
 l Webex Desk Series (Webex Desk, Webex Desk Pro, Webex Desk Mini)

There are two ways in which One-Touch Join can be implemented for these endpoints, depending on whether or not the endpoint is on 
the same network as the OTJ Conferencing Nodes.
 l If the endpoint is on the same network as the OTJ Conferencing Node, the Conferencing Node will connect directly to the endpoint 
to provide it with the necessary meeting information. When setting up these endpoints in Pexip Infinity, you assign them an 
Endpoint type of Cisco OBTP. 
For more information on how to configure these endpoints, see Configuring Cisco OBTP endpoints for OTJ.
 l If the endpoint is not on the same network as the OTJ Conferencing Node (for example if it is located in a home office) but is 
registered to Webex or Webex Edge for Devices, the Conferencing Node will connect to Webex Cloud, which will in turn connect 
to the endpoint to provide it with the necessary meeting information. When setting up these endpoints in Pexip Infinity, you 
assign them an Endpoint type of Webex Cloud registered. 
For more information on how to configure these endpoints, see Configuring Cisco Webex Cloud registered endpoints.

Poly OTD
Pexip Infinity One-Touch Join is supported on Poly VTC endpoints that support Poly One Touch Dial (OTD). This includes:
 l Poly RealPresence Group series v5.0.0 or later
 l Poly Trio series
 l Poly HDX series (unless Pexip Infinity has been deployed in a secure mode of operation - for more information, see Poly 
authentication); must be running a software version that supports NTLMv2 for calendaring, e.g. 3.1.11 or later
 l Poly Studio X series
 l Poly G7500 series
 l Poly Debut series

For information on how to configure these endpoints to support Pexip One-Touch Join, see Configuring Poly OTD endpoints for OTJ.

© 2022 Pexip AS Version 30.a   October 2022 Page 8 of 119


Pexip One-Touch Join Deployment Guide About One-Touch Join

Supported meeting types
This release of Pexip One-Touch Join can be used to join the following types of meetings:
 l Pexip Infinity meetings (i.e. those scheduled using the VMR Scheduling for Exchange feature)
 l Pexip Service meetings (i.e. those scheduled using the plugin available to Pexip Service users)
 l Google Meet (for Google Workspace integrations only)
 l Microsoft Teams
 l Skype for Business
 l Webex
 l Zoom
 l BlueJeans
 l GoToMeeting

You can also create your own meeting processing rules for meeting types not listed above. For more information, see One-Touch Join 
meeting types and transforms.

Supported number of endpoints and Conferencing Nodes
The One-Touch Join feature will support up to 4,000 room resource calendars and associated endpoints. This applies to One-Touch Join 
both when integrated with a Pexip Infinity deployment (i.e. when running on Conferencing Nodes alongside other Pexip Infinity 
services), and as a deployment dedicated to One-Touch Join. 
For integrated One-Touch Join deployments (i.e. where OTJ is being implemented as a feature within a wider Pexip Infinity 
deployment), a Pexip Infinity deployment with a single Conferencing Node per location should also support up to 170 OTJ room 
resource calendars and associated endpoints (although you may wish to include one or more additional Conferencing Nodes for 
redundancy). For large or busy deployments, you may need to add additional Conferencing Nodes per location to provide the 
additional capacity required when One-Touch Join is implemented — we recommend that you consult your Pexip authorized support 
representative for advice on your particular deployment. 
These recommendations apply to Pexip Infinity deployments with one or two One-Touch Join Integrations. For deployments with 
multiple OTJ Integrations (for example, when implemented by service providers with multiple customers) we recommend a dedicated 
One-Touch Join deployment.
For dedicated One-Touch Join deployments of all sizes (i.e. up to the supported 4,000 room resource calendars and associated 
endpoints), we recommend one Conferencing Node for every 1,000 endpoints in a location (although you may wish to include one or 
more additional Conferencing Nodes for redundancy). 

Pexip Infinity server requirements
In most cases you will be enabling One-Touch Join within a new or existing Pexip Infinity deployment, and the One-Touch Join service 
can be run alongside other Pexip Infinity services on each Conferencing Node. Enabling One-Touch Join within most Pexip Infinity 
deployments (up to 170 endpoints — see Supported number of endpoints and Conferencing Nodes) will not significantly increase the 
processing requirements of the Management Node or Conferencing Nodes, therefore our standard server design guidelines still apply. 
However, if your deployment is expected to be particularly large or busy, we recommend that you consult your Pexip authorized 
support representative for advice.
For dedicated One-Touch Join deployments, see Minimum hardware requirements.
In both cases, we recommend that each Conferencing Node runs on a different VM host and uses different storage.

© 2022 Pexip AS Version 30.a   October 2022 Page 9 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join process and deployment overview

One-Touch Join process and deployment overview
This topic gives an overview of the process used by One-Touch Join to extract calendar information and provide it to endpoints, along 
with information on general deployment and network considerations.

Process overview
The general process from setting up One-Touch Join through to having the endpoint display a Join button at the start of a meeting is as 
follows:

Administrator configures OTJ
 1.  The administrator configures their Google Workspace, Exchange on-premises or Office 365 deployment to support Pexip Infinity 
One-Touch Join, and ensures that each physical meeting room that contains an endpoint to be used for One-Touch Join has an 
associated email address.
 2.  The administrator then configures One-Touch Join on the Pexip Infinity Management Node. This configuration is automatically 
replicated to the One-Touch Join service that runs on each Conferencing Node in the Pexip Infinity deployment.
 3.  Finally, the administrator configures their endpoints to support One-Touch Join.

End user sends invitation
When an end user wants to use a One-Touch Join room for a meeting, they create a meeting invitation in their usual way, using their 
usual client, ensuring that the room resource is added to the invitation.
Generally, rooms are added to a meeting invitation as a room resource, but One-Touch Join will also work if the room resource's 
email address is included in the list of invitees, or as a location.

OTJ provides endpoint with meeting information
 1.  Each meeting room resource has one Conferencing Node which will be its primary node. Periodically, One-Touch Join on the 
Conferencing Node connects to Google Workspace or Microsoft Exchange and reads the calendars of each room resource for 
which it is the primary node. For each room resource, One-Touch Join finds all meetings to which the room has been invited. By 
default, it does this for all meetings with a scheduled start time from one day in the past up to seven days in the future, but this 
range is configurable.
 2.  One-Touch Join parses the meeting invitation (in accordance with the relevant meeting processing rule) to obtain information 
about the meeting, which it uses to generate the alias that the endpoint will dial in order to join the meeting. 
 3.  One-Touch Join then provides the meeting information to the endpoint that is associated with the room resource:
 o for Cisco endpoints, One-Touch Join pushes the meeting information to the endpoint - either directly (for endpoints on the 
same network) or via Webex Cloud (for endpoints on a different network)
 o for Poly endpoints, the endpoint registers to the OTJ calendaring service on the Conferencing Node and periodically requests 
updated meeting information from the Conferencing Node.
More than one endpoint can be associated with a single room resource; in this case, all the endpoints will receive the same 
meeting information.
 4.  When the meeting is about to start, the endpoint will display a Join button; participants in the room simply click the button and 
the endpoint will dial in to the meeting.

The flow of information between the calendar/email service, One-Touch Join and the endpoint is shown in the following diagram (using 
Google Workspace and a Cisco endpoint as the example):

© 2022 Pexip AS Version 30.a   October 2022 Page 10 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join process and deployment overview

Frequency and limitations on calendar requests
The length of time taken for a meeting booked via Exchange or Google calendar to appear on the corresponding room endpoint 
depends on a number of factors, but is largely due to the number of endpoints in your deployment. 
In general, for deployments of around 170 endpoints or fewer, the One-Touch Join service will poll room resource calendars with a 
maximum frequency of every 30 seconds. (It does not poll any more frequently than this to avoid impacting the performance of 
Conferencing Nodes.) Cisco endpoints will be updated after each poll; Poly endpoints will generally connect to the Conferencing Node 
to get updates every minute, but this will depend on the Poly configuration.
As you add more endpoints, One-Touch Join will reduce the frequency of requests correspondingly. For a deployment of 4,000 
endpoints (the maximum supported number), endpoints will be updated around every 12 minutes. This is because both Microsoft 
Exchange and Google limit the number of API requests that can be made to their calendar services in a 24-hour period. It is possible to 
change the 24-hour quota to increase the frequency of endpoint updates in larger deployments, but note that doing so may impact the 
performance of the Conferencing Nodes, so you may need to consider deploying a dedicated One-Touch Join platform. We recommend 
you discuss larger deployments with your Pexip authorized support representative first.
 l For Google Workspace deployments, you can change the 24-hour quota by Requesting an increase to API limits and then 
increasing the Maximum Google Workspace API requests, but this is a paid-for service.
 l For Exchange deployments, you can change the 24-hour quota by increasing the Find Items Request Quota.

Locations, Conferencing Nodes and redundancy

Conferencing Nodes
All Conferencing Nodes in your deployment are capable of running One-Touch Join. However, the service will be in active operation on 
only those nodes that belong to a location that has been associated with a OTJ Endpoint Group (and when that Endpoint Group has 
been associated with an OTJ profile). 

© 2022 Pexip AS Version 30.a   October 2022 Page 11 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join process and deployment overview

Within each such location, a maximum of five Conferencing Nodes will actively read room resource calendars and process meeting 
information. Responsibility for each room resource is spread across these nodes in order to balance the workload and provide 
redundancy. Should one node become unavailable (for example, if it is put into maintenance mode or loses connectivity), the other 
nodes will take over responsibility for its room resources.
However, if there are one or more Poly endpoints in the location, the One-Touch Join service on all nodes within the location will 
handle requests from Poly endpoints. Therefore round-robin DNS records are required for all nodes in a location that has Poly 
endpoints.
You can use existing system locations for One-Touch Join, in which case up to five Conferencing Nodes in that location will be actively 
operating One-Touch Join in addition to their core functions. Alternatively, you can set up system locations that will be used specifically 
for One-Touch Join. These can be in the same physical locations as your existing Conferencing Nodes, but their resources will be 
dedicated to One-Touch Join.
The concept of media overflow locations does not apply to One-Touch Join (overflow locations relate specifically to the handling of call 
media). Therefore if you want to provide redundancy, this can only be done by providing additional Conferencing Nodes within a given 
location. For the same reason, if you put all Conferencing Nodes in a One-Touch Join location into maintenance mode, then none of 
the endpoints in the associated Endpoint Groups will receive any updates.

Management Node
As with other Pexip Infinity services, the One-Touch Join service will continue to function if the Management Node goes offline, 
although you will not be able to make any changes to the configuration of the service during this time. 
For deployments using OAuth, the Management Node periodically refreshes OAuth tokens on behalf of Conferencing Nodes, so 
eventually (after some weeks) these nodes may become unable to authenticate with Exchange / Google Workspace.

Network architecture, firewalls and web proxy

Conferencing Nodes
Each Conferencing Node used for One-Touch Join requires a persistent connection to one of Google Workspace, on-premises Microsoft 
Exchange server; Office 365; or the Microsoft Graph API (depending on the calendar service you are integrating with), either directly or 
via a web proxy*.
If you are using OAuth (i.e. you are using an OTJ Google Workspace Integration, an OTJ Graph Integration, or an OTJ Exchange 
integration with OAuth enabled), each Conferencing Node must be able to reach the OAuth token endpoint, either directly or via a web 
proxy*.
Each Conferencing Node must be able to access the Cisco One-Touch Join endpoints within its location (using the endpoints' APIs), 
either directly or via a web proxy*.
If you have Webex-registered endpoints, each Conferencing Node must be able to access the Webex OAuth token endpoint, and 
Webex cloud.
Poly endpoints must be able to connect directly to the Conferencing Nodes in their location.
* Web proxies are enabled on a system location basis. When enabled, all One-Touch Join-related outbound requests from 
Conferencing Nodes in that location will use the web proxy. It is possible to bypass use of the web proxy for connections to endpoints 
on the local network, or for EWS connections to the Exchange server; for further information, please contact your Pexip authorized 
support representative.

Management Node
As with all Pexip Infinity deployments, the Management Node must be able to contact each Conferencing Node. 
In addition, if your One-Touch Join deployment is using OAuth (within an Exchange integration, a Google Workspace integration with 
domain user authorization, or where your deployment includes Webex-registered endpoints on a different network to your 
Conferencing Nodes), the Management Node will send requests to the OAuth token endpoint, both during the initial set up, and 
periodically thereafter in order to refresh the OAuth tokens. These requests will be sent either directly or via the web proxy (if one has 
been configured for the Management Node). 

© 2022 Pexip AS Version 30.a   October 2022 Page 12 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join process and deployment overview

Port usage
The following table lists the ports/protocols required for communication between the components of Pexip One-Touch Join:

Source address Source  Destination address Dest.  Protocol


port port

Management  55000– Web proxy (if configured for the Management Node) 8080 † TCP


Node 65535

Management  55000– OAuth token endpoint (for Exchange integrations connecting to O365 using  443 † TCP (HTTPS)


Node 65535 OAuth for the service account; or Google Workspace integrations; or 
Webex-registered endpoints) ◊
 l for Exchange/O365 service account authorization: 
login.microsoftonline.com
 l for Google Workspace domain user authorization: 
oauth2.googleapis.com/token
 l for Webex-registered endpoints: webexapis.com

Conferencing  55000– Web proxy (if configured for the system location to which the Conferencing  8080 † TCP


Node 65535 Node belongs)

Conferencing  55000– graph.microsoft.com (for O365 Graph Integrations) ◊ 443 † TCP (HTTPS)


Node 65535

Conferencing  55000– Exchange on-premises or Office 365 (for Exchange Integrations or O365  443 †‡ TCP (HTTPS)


Node 65535 EWS Integrations) ◊

Conferencing  55000– Exchange Server (only required if the O365 Autodiscover URL lookup has  80† TCP (HTTP)


Node 65535 otherwise failed) ◊

Conferencing  55000– OAuth token endpoint (for Exchange Integrations connecting to O365, or  443 † TCP (HTTPS)


Node 65535 O365 Graph Integrations, or Google Workspace integrations, or Webex-
registered endpoints) ◊
 l for O365: login.microsoftonline.com
 l for Google Workspace service account authorization: 
googleapis.com/oauth2/v4/token
 l for Google Workspace domain user authorization: 
oauth2.googleapis.com/token
 l for Webex-registered endpoints: webexapis.com

Conferencing  55000– googleapis.com (for Google Workspace Integrations) ◊ 443 TCP (HTTPS)


Node 65535

Conferencing  55000– Cisco endpoint API ◊ 80/443 † TCP 


Node 65535 (HTTP/HTTPS)

Conferencing  55000– Webex cloud: webexapis.com ◊ 443 TCP (HTTPS)


Node 65535

Poly endpoint <any> Conferencing Node 443 TCP (HTTPS)

† Configurable by the administrator.

‡ Determined by Exchange.

◊ Does not apply if a web proxy has been configured.

Note also that the ephemeral port range (55000–65535) is subject to change.

© 2022 Pexip AS Version 30.a   October 2022 Page 13 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join process and deployment overview

The diagram below summarizes the connectivity required between the components of Pexip One-Touch Join, using Microsoft Exchange 
as an example.

Note in most cases, and particularly for a dedicated One-Touch Join deployment, all Conferencing Nodes should remain within the 
internal network, and not in the DMZ.

Permitting the service account to access calendars

Exchange integrations
For Exchange on-premises integrations, the One-Touch Join service account must be able to impersonate the calendar of each OTJ 
room resource (or a user's personal calendar, if you wish to Use OTJ with personal endpoints and calendars). This is achieved by adding 
the email address to a specific OTJ Distribution Group, and giving the service account application impersonation rights to that group. 
For instructions on how to do this, see Configuring Application Impersonation on the service account. 
Existing Office 365 One-Touch Join deployments that were set up to use the EWS API also use application impersonation; see 
Configuring Application Impersonation on the service account. However, the EWS API is being deprecated by Microsoft, so for new 
One-Touch Join deployments in Office 365 environments you should instead use the Graph API to provide access to room resource 
mailboxes.
The use of Exchange impersonation is common in business applications that work with mail, when a single account needs to access 
many accounts. 
The following information from Microsoft provides further background on the use of impersonation in Exchange:
 l https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/impersonation-and-ews-in-exchange for 
guidelines on when to use impersonation in your Exchange service applications.
 l https://blogs.msdn.microsoft.com/exchangedev/2009/06/15/exchange-impersonation-vs-delegate-access/ for information on the 
differences between impersonation and delegate access.

© 2022 Pexip AS Version 30.a   October 2022 Page 14 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join process and deployment overview

Google Workspace integrations
For Google Workspace integrations, the One-Touch Join service account (or the authentication user, if using 3-legged OAuth) must be 
able to access the calendar of each room resource. This is achieved by sharing the room resource's calendar (or the user's personal 
calendar, if you wish to Use OTJ with personal endpoints and calendars) with the service account. For instructions on how to do this, 
see Sharing individual calendars with the service account.
Note that the Google calendar API limits the number of calendars that can be shared within a 24 hour period to 750 (for more 
information, see https://support.google.com/a/answer/2905486?hl=en). This means that if you have more than 750 room resources 
that you wish to use for One-Touch Join, they will need to be set up over a period of days.

Using One-Touch Join with personal endpoints and calendars
Some users in your enterprise may have their own personal endpoints on their desk or in their office, which they want to integrate 
with their personal calendars so that they can simply use the "Join" button to connect to any video meetings that appear in their 
calendar.
To achieve this, you use the user's own email address as the room resource email address when configuring One-Touch Join. You must 
also ensure that the One-Touch Join service can access the user's calendar. In Exchange environments this is achieved by adding the 
personal email address to the distribution group used for One-Touch Join; in Google Workspace environments the calendar must be 
shared with the service account.

© 2022 Pexip AS Version 30.a   October 2022 Page 15 of 119


Pexip One-Touch Join Deployment Guide Configuring Exchange on-premises for One-Touch Join

Configuring Exchange on-premises for One-Touch Join
This topic describes how to implement Pexip Infinity's One-Touch Join feature in a Microsoft Exchange on-premises environment, by 
using a service account authenticated using basic authentication to enable the One-Touch Join service to access calendars used for OTJ.
The process involves the following steps, described in detail in the sections that follow:

 1.  Creating a service account for One-Touch Join. This service account will be used by One-Touch Join to read each room resource's 
calendar. 
This should be a different service account to that used for VMR Scheduling for Exchange, because the configuration will be 
different.
 2.  Configuring Application Impersonation on the service account.
For more information and guidelines on the use of application impersonation in Exchange, see Permitting the service account 
to access calendars.
 3.  Enabling basic authentication for the service account.
 4.  Configuring calendar processing within Exchange.
 5.  Creating an associated Exchange integration on Pexip Infinity.

Prerequisites
Before you begin, ensure that the following configuration is complete:

 1.  Ensure each physical room that will have a One-Touch Join endpoint in it has an associated room resource with an email address.
 2.  Enable auto calendar processing for each room resource, so that the room will automatically accept meeting requests if it is 
available, and automatically decline an invitation if it is already booked.
 3.  We recommend that if you are using Safe Links, you modify your Safe Links policy so that URLs are not rewritten in any meeting 
invitations sent to room resources used by One-Touch Join endpoints.
 4.  Ensure you have access to your Exchange Admin Center (EAC) web interface, and access to Exchange Management PowerShell.
 5.  If your Exchange server does not use a globally trusted certificate, you must upload a custom CA certificate.

Creating a service account
In this step, you create a service account that will be used to log in to Exchange to access the calendars of the room resources being 
used for One-Touch Join.
This service account should only be used with One-Touch Join. However, you can use the same Exchange service account for multiple 
One-Touch Join integrations.
You can create a new service account using either EAC or PowerShell, as follows:

© 2022 Pexip AS Version 30.a   October 2022 Page 16 of 119


Pexip One-Touch Join Deployment Guide Configuring Exchange on-premises for One-Touch Join

EAC PowerShell

 1.  Log in to your Exchange Admin Center as an administrator and  The first command lets the administrator type in a password for 


go to recipients > mailboxes. the service account as a secure string. This password variable is 
 2.  Add a new mailbox for the service account by selecting the +  then used in the second command to create a mailbox for the 
icon and then User mailbox. service account. The third command ensures the password of 
the service account will not expire.
 3.  Complete the fields as appropriate.
$password = Read-Host "Enter password" -AsSecureString
 4.  Uncheck the Require password change on next logon box.
New-Mailbox -Name "<Account Name>" -UserPrincipalName "<UPN>" -
Password $password -Alias "<Account Alias>" -FirstName "<Account
First Name>" -LastName "<Account Last Name>" -DisplayName "<Account
Name>"

Set-ADUser -Identity "<UPN>" -PasswordNeverExpires $true

For example:
New-Mailbox -Name "Pexip OTJ Service Account" -UserPrincipalName
pexip-otj-svc@example.com -Password $password -Alias pexip-otj-svc
-FirstName "Pexip OTJ" -LastName "Service Account" -DisplayName
"Pexip OTJ Service Account"

Set-ADUser -Identity pexip-otj-svc@example.com -


PasswordNeverExpires $true

 5.  Select Save.

Configuring Application Impersonation on the service account
In this step, you create a new Distribution Group, and add the rooms to be used for One-Touch Join to the group. You then use 
PowerShell commands to make it so that the service account will only be able to impersonate members of that Group.
Configuring Application Impersonation in this way means that if rooms are added or removed from the group, this automatically 
updates whether or not the service account can impersonate them.

Creating a new Distribution Group
 1.  Log in to your Exchange Admin Center as an administrator and go to recipients > groups.
 2.  Select the + icon and select add a new Distribution Group.
 3.  Add the rooms you want to impersonate to the group.

© 2022 Pexip AS Version 30.a   October 2022 Page 17 of 119


Pexip One-Touch Join Deployment Guide Configuring Exchange on-premises for One-Touch Join

Note that the service account should not be added as a member of this distribution group. Instead, this step allows the service 
account to impersonate any member of this distribution group (i.e. any of the room resources).
 4.  Make sure to uncheck the option to make the group owner a group member. Otherwise the service account will be able to 
impersonate your account.
 5.  Also make sure to lock the group down so people cannot accidentally add themselves as group members. Do this by selecting 
Closed: Members can be added / removed only by the group owners.

Configuring application impersonation
We recommend that you use combined PowerShell commands to configure application impersonation for the service account. This 
allows you to use variables, thus reducing possible copy and paste errors. 

 1.  Configure the following variables with the values you actually want to use:
 o otj_group_id: the email of the distribution list whose members you want to be impersonated.

 o otj_service_account: the email of the service account you want to grant impersonation to.

 o management_scope_to_create: the name you want the newly created management scope to have.

 o impersonation_role_name_to_create: the name you want the newly created impersonation role to have.

For example:
$otj_group_id = "otjrooms@example.com"
$otj_service_account = "pexip-otj-svc@example.com"
$management_scope_to_create = "OTJ Management Scope"
$impersonation_role_name_to_create = "OTJ Impersonation"

 2.  Create the management scope:
$otj_group = Get-DistributionGroup -Identity $otj_group_id
$otj_group_dn = $otj_group.DistinguishedName
$restriction_filter = "MemberOfGroup -eq ""$otj_group_dn"""
New-ManagementScope -Name $management_scope_to_create -RecipientRestrictionFilter $restriction_filter

Example output:
Name ScopeRestrictionType Exclusive RecipientRoot RecipientFilter
---- -------------------- --------- ------------- ---------------
OTJ Management Scope RecipientScope False MemberOfGroup -eq 'CN=OTJ Rooms20190430164340,OU...

 3.  Set up application impersonation using the previously created management scope:
New-ManagementRoleAssignment -Name $impersonation_role_name_to_create -Role ApplicationImpersonation -User $otj_service_
account -CustomRecipientWriteScope $management_scope_to_create

Example output:
Name Role RoleAssigneeName RoleAssigneeType AssignmentMethod EffectiveUserName
---- ---- ---------------- ---------------- ---------------- ----------------
OTJ Impersonation ApplicationImp... pexip-otj-svc User Direct

 4.  Verify that the above commands worked as expected. In the following command, replace <resource_email> with the email of the 
room resource mailbox you want to test. If it is a room which is a member of the distribution list, it should show the OTJ 
Impersonation in the returned roles. If it is anything else outside of the distribution list, it should not have the OTJ Impersonation 
listed, which means the OTJ service account does not have permission to impersonate that user.
Get-ManagementRoleAssignment -Role ApplicationImpersonation -WritableRecipient "<resource_email>" | Format-List Name, Role,
RoleAssignee, CustomRecipientWriteScope

Expected output:
Name : OTJ Impersonation
Role : ApplicationImpersonation
RoleAssignee : pexip-otj-svc

Enabling basic authentication
In this step, you enable basic authentication for the service account that One-Touch Join uses to log in to Exchange.
If you are using on-prem Exchange you need to ensure basic authentication is enabled for Exchange Web Services (EWS). When basic 
authentication is enabled, Pexip Infinity stores the credentials in encrypted form and all authentication is carried out over a secure TLS 
channel.
You can enable basic authentication using either Windows Service Manager or PowerShell, as follows:

© 2022 Pexip AS Version 30.a   October 2022 Page 18 of 119


Pexip One-Touch Join Deployment Guide Configuring Exchange on-premises for One-Touch Join

Windows Service Manager PowerShell

 1.  Go to the Windows server on which Exchange is installed and  This command enables basic authentication on a specific server:


open the Service Manager. Set-WebServicesVirtualDirectory -Identity "<server>\EWS (Default
Web Site)" -BasicAuthentication $true
 2.  Select the server on which Exchange is installed, and right-click 
to select Computer Management. For example, if your server name is PEXCHANGE then:
Set-WebServicesVirtualDirectory -Identity "PEXCHANGE\EWS (Default
 3.  From the panel on the left, select Services and Applications >  Web Site)" -BasicAuthentication $true
Internet Information Services (IIS) Manager.
 4.  Expand the options and select Sites > Default Web Site > EWS.
 5.  Select the Authentication button in the main pane.
 6.  Find Basic Authentication in the list and ensure it is Enabled. (If 
not, right-click and select Enable.)
 7.  Select Save.

Configuring calendar processing on room resource mailboxes
In this step, you change the calendar processing settings for room resources from the default to those required to support One-Touch 
Join.

Recommended configuration
To take full advantage of the functionality offered by One-Touch Join, we recommend that, for One-Touch Join room resources, you 
change the following calendar processing options from the default:

 1.  The meeting invite body is deleted by default. If you want One-Touch Join to parse meeting details from the body then you must 
set the DeleteComments property to False. If you leave this set to True, only those rules that process information in the calendar 
headers can be used (because the body will be deleted).
 2.  When a meeting invite is received by a resource mailbox, by default the meeting subject is deleted and is replaced with the name 
of the organizer (for more information, see https://support.microsoft.com/en-gb/help/2842288/resource-mailbox-s-calendar-
shows-the-organizer-s-name-instead-of-the).
Because One-Touch Join accesses the meeting invites through the resource mailboxes, this default behavior means it won't have 
access to the original subject. You can choose to leave the default behavior for privacy reasons, or you can modify the calendar 
processing options for each mailbox so that the meeting subject is available and thus can be displayed on the meeting room 
endpoints.
 3.  The private flag is cleared by default. If you want meetings that are marked as private by the organizer to remain marked as 
private in the room mailbox, you must set the RemovePrivateProperty flag to False.
 4.  Room resources created using PowerShell commands may by default have AutomateProcessing set to AutoUpdate. In these cases 
it should be changed to AutoAccept.

PowerShell command
To modify the calendar processing on a room from the default settings to those we recommend for One-Touch Join, connect to 
Exchange Online PowerShell and use the following PowerShell command (replacing <resource_email> with the address of the room 
resource whose processing you want to change):

Set-CalendarProcessing -Identity <resource_email> -DeleteComments $False -DeleteSubject $False -AddOrganizerToSubject $False -


RemovePrivateProperty $False -AutomateProcessing "AutoAccept"

© 2022 Pexip AS Version 30.a   October 2022 Page 19 of 119


Pexip One-Touch Join Deployment Guide Configuring Exchange on-premises for One-Touch Join

Optional configuration
Hiding invitation details from other users
In order for One-Touch Join to function fully, the service account must be able to access the body of the invitation (which is why we 
recommend that you set the DeleteComments property to False). However, this means that all other users in your deployment with 
access to the room resource calendar may also be able to view the body of the invitation (depending on your deployment's other 
policies). If you want to prevent this, you can use the following PowerShell command to restrict what users can see by default, without 
restricting what the service account can access.
In the following command, replace resource_name with the name of the room resource, and replace role with one of the following 
roles:
 l AvailabilityOnly: users can view the room's availability, but nothing else.
 l LimitedDetails: users can view the room's availability and the meeting subject and location, but not the body of the invitation.

Set-MailboxFolderPermission "resource_name:\Calendar" -User Default -AccessRights role

Allowing forwarding of external invitations
If you want to enable users to forward invitations from other organizations to your OTJ room resources, you must set the 
ProcessExternalMeetingMessages flag to True. This also allows users external to your organization to invite the resource directly; you 
should therefore consult your Exchange administrator to determine whether this is appropriate in your environment.
If your Microsoft Exchange environment uses a security application (such as Office 365 ATP, or Mimecast) to re-write URLs, this may 
prevent OTJ from being used to join external Microsoft Teams meetings (for example, when a user inside your organization forwards 
an external Microsoft Teams meeting invitation to an OTJ room resource in order to join the meeting from that endpoint). To enable 
users to join these meetings using OTJ, you must ensure that the security application's URL re-write rules include an exception for any 
URL starting with the domain https:\\teams.microsoft.com\

Checking calendar processing settings
The following PowerShell command can be used to check calendar processing settings on all of the rooms in the Distribution Group 
that was created for One-Touch Join. 
We recommend copying and saving this as a file and running it from within PowerShell.
Before running, ensure that you edit $otj_group_id = "otjrooms@example.com" to use the email of the Distribution Group used in your 
own deployment.

$deleted_subjects = @()
$organizer_added = @()
$deleted_bodies = @()
$private_flag_reset = @()
$not_auto_accept = @()
$process_external = @()
$otj_group_id = "otjrooms@example.com"

Get-DistributionGroupMember -Identity $otj_group_id -ResultSize Unlimited | ForEach-Object {


Write-Host "Checking room '$($_.name)'"
$processing = Get-CalendarProcessing -Identity $_.name
$pass = $true
if ($processing.DeleteSubject) {
Write-Host "WARNING: The room '$($_.name)' is deleting the meeting subject" -ForegroundColor Red
$deleted_subjects += $_.name
$pass = $false
}

© 2022 Pexip AS Version 30.a   October 2022 Page 20 of 119


Pexip One-Touch Join Deployment Guide Configuring Exchange on-premises for One-Touch Join

if ($processing.AddOrganizerToSubject) {
Write-Host "WARNING: The room '$($_.name)' is adding the organizer to the meeting subject" -ForegroundColor Red
$organizer_added += $_.name
$pass = $false
}
if ($processing.DeleteComments) {
Write-Host "WARNING: The room '$($_.name)' is deleting the meeting body" -ForegroundColor Red
$deleted_bodies += $_.name
$pass = $false
}
if ($processing.RemovePrivateProperty) {
Write-Host "WARNING: The room '$($_.name)' is clearing the private flag on meetings" -ForegroundColor Red
$private_flag_reset += $_.name
$pass = $false
}
if ($processing.AutomateProcessing -ne "AutoAccept") {
Write-Host "WARNING: The room '$($_.name)' is not configured to Auto Accept. Processing='$($processing.AutomateProcessing)'" -
ForegroundColor Red
$not_auto_accept += $_.name
$pass = $false
}
# Optional permission for allowing the external invites:
if ($processing.ProcessExternalMeetingMessages) {
Write-Host "The room '$($_.name)' is configured to process external (forwarded) meetings"
$process_external += $_.name
}
if ($pass) {
Write-Host "INFO: All checks passed for room '$($_.name)'" -ForegroundColor Green
}
}

Write-Host "Summary:"
Write-Host "There are $($deleted_subjects.count) rooms deleting the meeting subject"
if ($deleted_subjects) {
Write-Host $deleted_subjects -Separator ", "
Write-Host ""
}
Write-Host "There are $($organizer_added.count) rooms adding the organizer to the meeting subject"
if ($organizer_added) {
Write-Host $organizer_added -Separator ", "
Write-Host ""
}
Write-Host "There are $($deleted_bodies.count) rooms deleting the meeting body"
if ($deleted_bodies) {
Write-Host $deleted_bodies -Separator ", "
Write-Host ""
}
Write-Host "There are $($private_flag_reset.count) rooms clearing the private flag on meetings"
if ($private_flag_reset) {
Write-Host $private_flag_reset -Separator ", "
Write-Host ""
}
Write-Host "There are $($not_auto_accept.count) rooms not configured to Auto Accept"
if ($not_auto_accept) {
Write-Host $not_auto_accept -Separator ", "
Write-Host ""
}
Write-Host "There are $($process_external.count) rooms configured to process external (forwarded) meetings"
if ($process_external) {
Write-Host $process_external -Separator ", "
Write-Host ""
}

Adding a One-Touch Join Exchange integration on Pexip Infinity
In this step you log in to the Pexip Infinity Administrator interface and add details of the Exchange deployment you are integrating 
with, including details of the service account username and password (based on the configuration you have just set up in Exchange). 
From the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Exchange Integrations.

© 2022 Pexip AS Version 30.a   October 2022 Page 21 of 119


Pexip One-Touch Join Deployment Guide Configuring Exchange on-premises for One-Touch Join

Option Description

Name The name of this One-Touch Join Exchange integration. 

Description An optional description of this One-Touch Join Exchange integration. 

Service account username The username of the service account to be used by the One-Touch Join Exchange integration.

The format may be either example\name or name@example.com, depending on your domain.

Enable OAuth Leave this option disabled to continue using Basic Auth. (OAuth 2.0 is supported for Exchange in Office 365 
only.)

Service account password (Available if OAuth has not been enabled)

The password of the service account to be used by the One-Touch Join Exchange integration. 

Advanced options

Find Items Request Quota The number of Find Item requests that can be made by OTJ to your Exchange Server in a 24-hour period.

The default of 1,000,000 should be sufficient for most deployments — for more information, see 
Frequency and limitations on calendar requests.

We do not recommend increasing this quota unless you have deployed a dedicated One-Touch Join 
platform, because it will impact the performance of the Conferencing Nodes.

OTJ Exchange Autodiscover URLs

This section is optional and will generally only be required if the Autodiscover URLs in your deployment do not use a standard location.

Name The name of this Exchange Autodiscover URL. 

Description An optional description of this Exchange Autodiscover URL. 

Autodiscover URL The URL used to connect to the Autodiscover service on the Exchange deployment. 

If you are using Office 365, you may need to enter your autodiscover URL manually, particularly if you are 
using a hybrid Exchange deployment. If your OTJ room resources and service account are hosted on O365, 
then you should enter https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc as the 
Autodiscover URL.

The URL must end in .svc; URLs ending in .xml are not supported.

Next steps
You must now configure the remainder of the One-Touch Join components on Pexip Infinity, as described in Configuring Pexip Infinity 
for One-Touch Join.

© 2022 Pexip AS Version 30.a   October 2022 Page 22 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

Configuring Office 365 using Graph for One-Touch Join
This topic describes how to implement Pexip Infinity's One-Touch Join feature in a Microsoft Office 365 environment, by configuring 
Microsoft Azure and the Exchange Graph API to enable the One-Touch Join service to access calendars used for OTJ.
We continue to support existing One-Touch Join deployments for Office 365 that used a service account with application 
impersonation to read OTJ calendars. This service account authenticated using OAuth and used the EWS API to access mailboxes. 
However, the EWS API is being deprecated by Microsoft, so for new One-Touch Join deployments in Office 365 environments you 
should instead use the Graph API to provide access to room resource mailboxes.
The process involves the following steps, described in detail in the sections that follow:

 1.  Creating and configuring a new App registration in Azure.
 2.  Restricting the scope of the App registration.
 3.  Configuring calendar processing within Exchange.
 4.  Creating an associated Exchange integration on Pexip Infinity.

Prerequisites
Before you begin, ensure that the following configuration is complete:

 1.  Ensure each physical room that will have a One-Touch Join endpoint in it has an associated room resource with an email address.
 2.  Enable auto calendar processing for each room resource, so that the room will automatically accept meeting requests if it is 
available, and automatically decline an invitation if it is already booked.
 3.  We recommend that if you are using Safe Links, you modify your Safe Links policy so that URLs are not rewritten in any meeting 
invitations sent to room resources used by One-Touch Join endpoints.
 4.  Ensure you have access to the Azure portal, using an account that can grant admin consent.
 5.  Ensure you have admin access to your Office 365 web interface, and access to the Microsoft Exchange Online and Azure Active 
Directory Modules for Windows PowerShell. (If you are connecting from your Windows PC for the first time, you may need to 
install these modules. See these Microsoft articles about connecting to Exchange online and Microsoft 365 with PowerShell for 
more information.)

Creating and configuring a new App registration in Azure

In this step, you create an App registration in Azure for the OTJ service, and grant it permission to read calendars. (In a subsequent step 
you will restrict the app to read OTJ calendars only.)

 1.  Log into the Azure portal at aad.portal.azure.com as an admin user.
 2.  From the main panel on the left, select Azure Active Directory.
 3.  Select App Registrations and then New registration:

© 2022 Pexip AS Version 30.a   October 2022 Page 23 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

 4.  In the Register an application panel, enter the following options:
 a.  Name: this can be anything you wish. In our example we have used Pexip OTJ.
 b.  Supported account types: select the option most appropriate for your environment. In most cases, the default Accounts in
this organizational directory only can be used.
 c.  Redirect URI: leave this blank.

 5.  Select Register.

© 2022 Pexip AS Version 30.a   October 2022 Page 24 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

You can now configure your application.
 6.  From the panel on the left, select API permissions and then Add a permission.
 7.  Select Microsoft Graph:

 8.  Select Application Permissions. Scroll down to Calendars, expand it, and select Calendars.Read. Then select Add Permissions:

 9.  Select Grant admin consent for <your tenant>:

© 2022 Pexip AS Version 30.a   October 2022 Page 25 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

Next you need to obtain the client secret. 
 10.  From the panel on the left, select Certificates & secrets and then New client secret. 
 11.  Enter a Description. Under Expires select a duration in accordance with your organization's security policies, and select Add:

 12.  The new client secret will appear in the list at the bottom of the page. You must copy the Value now, before you navigate away 
from the page:

© 2022 Pexip AS Version 30.a   October 2022 Page 26 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

You must enter this as the Client secret when adding an O365 Graph integration on Pexip Infinity.
 13.  Go to the overview page for the App registration you have just created and copy the Application (client) ID:

You must enter this as the Client ID when adding an O365 Graph integration on Pexip Infinity.
 14.  Select the Endpoints tab and copy the OAuth 2.0 token endpoint (v2) value:

You must enter this as the OAuth 2.0 token endpoint URL when adding an O365 Graph integration on Pexip Infinity.

Restricting the scope of the App registration

© 2022 Pexip AS Version 30.a   October 2022 Page 27 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

In this step, you create a group for the room resources to be used for One-Touch Join, and then restrict the App to only read these 
calendars.

Creating a Distribution Group
 1.  Go to admin.microsoft.com and log in as the administrator.
 2.  From the menu on the left hand side, select Active teams & groups and then Add a group. 
 3.  For the Group Type, select Mail-enabled security. Select Next.
 4.  Enter a Name and Description. Select Add.
 5.  Enter a Group email address. Leave the Communication checkbox clear. 
Select Next.
 6.  Select Create Group.
 7.  Navigate back to Active teams & groups, select the Mail-enabled security tab, and then select the group you have just created. 
From the panel on the right, select the Members tab and then View all and manage members.
 8.  Add as members of the group the resources to be used for One-Touch Join. These will be the only calendars that the OTJ App will 
be able to read.

Restricting access
Open up a remote PowerShell connection to Office 365 and import an Exchange session. For example see 
https://docs.microsoft.com/en-us/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps
Run the following command, using the following values:
 l AppId: the Application (client) ID that was generated by Azure when you created the OTJ Graph API application.

 l PolicyScopeGroupId: the email of the distribution group containing the One-Touch Join resources.

 l Description: a description of the access policy.

For example:
New-ApplicationAccessPolicy -AppId e7e4dbfc-046f-4074-9b3b-2ae8f144f59b -PolicyScopeGroupId otjrooms@pexample.com -AccessRight
RestrictAccess -Description "Restrict this app to members of distribution group otjrooms."

Configuring calendar processing on room resource mailboxes
In this step, you change the calendar processing settings for room resources from the default to those required to support One-Touch 
Join.

Recommended configuration
To take full advantage of the functionality offered by One-Touch Join, we recommend that, for One-Touch Join room resources, you 
change the following calendar processing options from the default:

 1.  The meeting invite body is deleted by default. If you want One-Touch Join to parse meeting details from the body then you must 
set the DeleteComments property to False. If you leave this set to True, only those rules that process information in the calendar 
headers can be used (because the body will be deleted).
 2.  When a meeting invite is received by a resource mailbox, by default the meeting subject is deleted and is replaced with the name 
of the organizer (for more information, see https://support.microsoft.com/en-gb/help/2842288/resource-mailbox-s-calendar-
shows-the-organizer-s-name-instead-of-the).
Because One-Touch Join accesses the meeting invites through the resource mailboxes, this default behavior means it won't have 
access to the original subject. You can choose to leave the default behavior for privacy reasons, or you can modify the calendar 
processing options for each mailbox so that the meeting subject is available and thus can be displayed on the meeting room 
endpoints.
 3.  The private flag is cleared by default. If you want meetings that are marked as private by the organizer to remain marked as 
private in the room mailbox, you must set the RemovePrivateProperty flag to False.

© 2022 Pexip AS Version 30.a   October 2022 Page 28 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

 4.  Room resources created using PowerShell commands may by default have AutomateProcessing set to AutoUpdate. In these cases 
it should be changed to AutoAccept.

PowerShell command
To modify the calendar processing on a room from the default settings to those we recommend for One-Touch Join, connect to 
Exchange Online PowerShell and use the following PowerShell command (replacing <resource_email> with the address of the room 
resource whose processing you want to change):

Set-CalendarProcessing -Identity <resource_email> -DeleteComments $False -DeleteSubject $False -AddOrganizerToSubject $False -


RemovePrivateProperty $False -AutomateProcessing "AutoAccept"

Optional configuration
Hiding invitation details from other users
In order for One-Touch Join to function fully, the service account must be able to access the body of the invitation (which is why we 
recommend that you set the DeleteComments property to False). However, this means that all other users in your deployment with 
access to the room resource calendar may also be able to view the body of the invitation (depending on your deployment's other 
policies). If you want to prevent this, you can use the following PowerShell command to restrict what users can see by default, without 
restricting what the service account can access.
In the following command, replace resource_name with the name of the room resource, and replace role with one of the following 
roles:
 l AvailabilityOnly: users can view the room's availability, but nothing else.
 l LimitedDetails: users can view the room's availability and the meeting subject and location, but not the body of the invitation.

Set-MailboxFolderPermission "resource_name:\Calendar" -User Default -AccessRights role

Allowing forwarding of external invitations
If you want to enable users to forward invitations from other organizations to your OTJ room resources, you must set the 
ProcessExternalMeetingMessages flag to True. This also allows users external to your organization to invite the resource directly; you 
should therefore consult your Exchange administrator to determine whether this is appropriate in your environment.
If your Microsoft Exchange environment uses a security application (such as Office 365 ATP, or Mimecast) to re-write URLs, this may 
prevent OTJ from being used to join external Microsoft Teams meetings (for example, when a user inside your organization forwards 
an external Microsoft Teams meeting invitation to an OTJ room resource in order to join the meeting from that endpoint). To enable 
users to join these meetings using OTJ, you must ensure that the security application's URL re-write rules include an exception for any 
URL starting with the domain https:\\teams.microsoft.com\

Checking calendar processing settings
The following PowerShell command can be used to check calendar processing settings on all of the rooms in the Distribution Group 
that was created for One-Touch Join. 
We recommend copying and saving this as a file and running it from within PowerShell.
Before running, ensure that you edit $otj_group_id = "otjrooms@example.com" to use the email of the Distribution Group used in your 
own deployment.

© 2022 Pexip AS Version 30.a   October 2022 Page 29 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

$deleted_subjects = @()
$organizer_added = @()
$deleted_bodies = @()
$private_flag_reset = @()
$not_auto_accept = @()
$process_external = @()
$otj_group_id = "otjrooms@example.com"

Get-DistributionGroupMember -Identity $otj_group_id -ResultSize Unlimited | ForEach-Object {


Write-Host "Checking room '$($_.name)'"
$processing = Get-CalendarProcessing -Identity $_.name
$pass = $true
if ($processing.DeleteSubject) {
Write-Host "WARNING: The room '$($_.name)' is deleting the meeting subject" -ForegroundColor Red
$deleted_subjects += $_.name
$pass = $false
}
if ($processing.AddOrganizerToSubject) {
Write-Host "WARNING: The room '$($_.name)' is adding the organizer to the meeting subject" -ForegroundColor Red
$organizer_added += $_.name
$pass = $false
}
if ($processing.DeleteComments) {
Write-Host "WARNING: The room '$($_.name)' is deleting the meeting body" -ForegroundColor Red
$deleted_bodies += $_.name
$pass = $false
}
if ($processing.RemovePrivateProperty) {
Write-Host "WARNING: The room '$($_.name)' is clearing the private flag on meetings" -ForegroundColor Red
$private_flag_reset += $_.name
$pass = $false
}
if ($processing.AutomateProcessing -ne "AutoAccept") {
Write-Host "WARNING: The room '$($_.name)' is not configured to Auto Accept. Processing='$($processing.AutomateProcessing)'" -
ForegroundColor Red
$not_auto_accept += $_.name
$pass = $false
}
# Optional permission for allowing the external invites:
if ($processing.ProcessExternalMeetingMessages) {
Write-Host "The room '$($_.name)' is configured to process external (forwarded) meetings"
$process_external += $_.name
}
if ($pass) {
Write-Host "INFO: All checks passed for room '$($_.name)'" -ForegroundColor Green
}
}

Write-Host "Summary:"
Write-Host "There are $($deleted_subjects.count) rooms deleting the meeting subject"
if ($deleted_subjects) {
Write-Host $deleted_subjects -Separator ", "
Write-Host ""
}
Write-Host "There are $($organizer_added.count) rooms adding the organizer to the meeting subject"
if ($organizer_added) {
Write-Host $organizer_added -Separator ", "
Write-Host ""
}
Write-Host "There are $($deleted_bodies.count) rooms deleting the meeting body"
if ($deleted_bodies) {
Write-Host $deleted_bodies -Separator ", "
Write-Host ""
}
Write-Host "There are $($private_flag_reset.count) rooms clearing the private flag on meetings"
if ($private_flag_reset) {
Write-Host $private_flag_reset -Separator ", "
Write-Host ""
}
Write-Host "There are $($not_auto_accept.count) rooms not configured to Auto Accept"
if ($not_auto_accept) {
Write-Host $not_auto_accept -Separator ", "

© 2022 Pexip AS Version 30.a   October 2022 Page 30 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using Graph for One-Touch Join

Write-Host ""
}
Write-Host "There are $($process_external.count) rooms configured to process external (forwarded) meetings"
if ($process_external) {
Write-Host $process_external -Separator ", "
Write-Host ""
}

Adding a One-Touch Join O365 Graph integration on Pexip Infinity
In this step you log in to the Pexip Infinity Administrator interface and add details of the Graph API application you have just 
configured.

Configuring the O365 Graph integration
From the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ O365 Graph Integrations.

Option Description

Name The name of this One-Touch Join O365 Graph integration. 

Description An optional description of this One-Touch Join O365 Graph integration. 

Client ID The Application (client) ID which was generated by Azure when you created the OTJ Graph API application 
(see Creating and configuring a new App registration in Azure).

This is available in Azure under App Registrations, by selecting the application and viewing the 
Essentials section.  

Client secret The client secret of the OTJ Graph API application. 

If you didn't copy this at the time the registration was created, you'll need to generate a new one.

OAuth 2.0 token endpoint URL The URL of the OAuth 2.0 (v2) token endpoint for this OTJ Graph API application. 

This is available in Azure under App Registrations, by selecting the application and then selecting the 
Endpoints tab.  

Advanced options

Maximum Graph API requests The maximum number of API requests that can be made by OTJ to the Microsoft Graph API in a 24-hour 
period.

The default of 1,000,000 should be sufficient for most deployments — for more information, see 
Frequency and limitations on calendar requests.

We do not recommend increasing this quota unless you have deployed a dedicated One-Touch Join 
platform, because it will impact the performance of the Conferencing Nodes.

Next steps
You must now configure the remainder of the One-Touch Join components on Pexip Infinity, as described in Configuring Pexip Infinity 
for One-Touch Join.

© 2022 Pexip AS Version 30.a   October 2022 Page 31 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

Configuring Office 365 using EWS for One-Touch Join
This topic describes how to implement Pexip Infinity's One-Touch Join feature in a Microsoft Office 365 environment, by using a service 
account authenticated using OAuth and the EWS API to enable the One-Touch Join service to access calendars used for OTJ.
The EWS API is being deprecated by Microsoft, so for new One-Touch Join deployments in Office 365 environments you should 
instead use the Graph API to provide access to room resource mailboxes. This topic is intended as a reference for existing 
deployments.
The process involves the following steps, described in detail in the sections that follow:

 1.  Creating a service account for One-Touch Join. This service account will be used by One-Touch Join to read each room resource's 
calendar. 
This should be a different service account to any used for VMR Scheduling for Exchange, because the configuration will be 
different.
 2.  Configuring Application Impersonation on the service account.
For more information and guidelines on the use of application impersonation in Exchange, see Permitting the service account 
to access calendars.
 3.  Configuring calendar processing within Exchange.
 4.  Enabling OAuth authentication for the service account.
 5.  Creating an associated Exchange integration on Pexip Infinity.

Prerequisites
Before you begin, ensure that the following configuration is complete:

 1.  Ensure each physical room that will have a One-Touch Join endpoint in it has an associated room resource with an email address.
 2.  Enable auto calendar processing for each room resource, so that the room will automatically accept meeting requests if it is 
available, and automatically decline an invitation if it is already booked.
 3.  We recommend that if you are using Safe Links, you modify your Safe Links policy so that URLs are not rewritten in any meeting 
invitations sent to room resources used by One-Touch Join endpoints.
 4.  Ensure that you have a Microsoft license available for the service account; this is required for the service account to access 
Exchange. Note that the room resources do not require a license.
 5.  Ensure you have admin access to your Office 365 web interface, and access to the Microsoft Exchange Online and Azure Active 
Directory Modules for Windows PowerShell. (If you are connecting from your Windows PC for the first time, you may need to 
install these modules. See these Microsoft articles about connecting to Exchange online and Microsoft 365 with PowerShell for 
more information.)
 6.  Ensure you have access to your Exchange Admin Center (EAC) web interface, and access to Exchange Management PowerShell.
 7.  If your Exchange server does not use a globally trusted certificate, you must upload a custom CA certificate.

Creating a service account
In this step, you create a dedicated service account to use to log in to Exchange to access the calendars of the room resources being 
used for One-Touch Join. After creating the service account, you must assign it an appropriate Exchange license, such as Office 365 
Enterprise E1, Office 365 Business Basic (formerly Essentials) or one of the Exchange Online plans.
This service account should only be used with One-Touch Join. However, you can use the same Exchange service account for multiple 
One-Touch Join integrations.
If the service account is subject to a password rotation policy or uses multi-factor authentication (MFA), then each time the password 
changes or the MFA is refreshed, you must sign in to the service account again via the Pexip Infinity Administrator interface.
You can create a new service account using either the Office 365 admin portal or PowerShell, as follows:

© 2022 Pexip AS Version 30.a   October 2022 Page 32 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

O365 PowerShell

 1.  Go to portal.office.com and log in as the administrator. You must run Powershell as administrator.


 2.  Go to the admin portal by selecting the Admin tile (this takes  Establishing a remote connection
you to 
https://portal.office.com/adminportal/home#/homepage). To use PowerShell for Office 365 you first need to connect remotely. 
These commands install the required PowerShell modules (if they are 
 3.  From the Users section, select Add a user and complete the 
not already installed) and then connects to Exchange Online:
necessary fields:
#If not installed, install Exchange Online Module
 a.  In the Password section: Install-Module ExchangeOnlineManagement

 n Select Let me create the password. #If not installed, install Azure AD Module


 n Uncheck Make this user change their password when  Install-Module -Name AzureAD

they first sign in. #Connect to Exchange Online and AzureAD, works also with a MFA
enabled account
 b.  In the Product licenses section, assign an appropriate  Connect-ExchangeOnline
product license from the available list. Creating the service account

The first command lets the administrator type in a password for the 
service account as a secure string. This password variable is then 
used in the second command to create a mailbox for the service 
account. The remaining commands log you into Azure AD and then 
set the password of the service account to never expire.
#Capture password for service account
$password = Read-Host "Enter password" -AsSecureString

# Create service account and mailbox


New-Mailbox -Name "<Account Name>" -MicrosoftOnlineServicesID
"<UPN>" -Password $password -Alias "<Account Alias>" -FirstName
"<Account First Name>" -LastName "<Account Last Name>" -DisplayName
"<Account Name>"

#Connect to AzureAD
Connect-AzureAD

#Set password policy


Set-AzureADUser -ObjectId "<UPN>" -PasswordPolicies
DisablePasswordExpiration

Example New-Mailbox command:
New-Mailbox -Name "Pexip OTJ Service Account" -
MicrosoftOnlineServicesID pexip-otj-svc@example.com -Password
$password -Alias pexip-otj-svc -FirstName "Pexip OTJ" -LastName
"Service Account" -DisplayName "Pexip OTJ Service Account"

Example Set-AzureADUser command:
Set-AzureADUser -ObjectId pexip-otj-svc@example.com -
 4.  Select Add to create the user.
PasswordPolicies DisablePasswordExpiration

Assigning a license to the service account
You must now assign an appropriate license to the service account.
See https://docs.microsoft.com/en-us/powershell/azure/active-
directory/enabling-licenses-sample for information on how to do 
this.

Configuring Application Impersonation on the service account
In this step, you create a new Distribution Group, and add the rooms to be used for One-Touch Join to the group. You then use 
PowerShell commands to make it so that the service account will only be able to impersonate members of that Group.
Configuring Application Impersonation in this way means that when a room is added to the group, the service account will 
automatically be able to impersonate it. Likewise, when a room is removed, the service account will no longer be able to impersonate 
it.

© 2022 Pexip AS Version 30.a   October 2022 Page 33 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

Creating a new Distribution Group
 1.  Go to admin.microsoft.com and log in as the administrator.
 2.  From the menu on the left hand side, select Groups > Add a group. 
 3.  For the Group Type, select Distribution List. Enter a name, email address and description and select Add.
 4.  Add as members of the Group the rooms to be used for One-Touch Join. These will be the rooms that the service account will 
impersonate.
Note that the service account should not be added as a member of this distribution group. Instead, this step allows the service 
account to impersonate any member of this distribution group (i.e. any of the room resources).
 5.  Open up a remote PowerShell connection to Office 365 and import an Exchange session. For example see 
https://docs.microsoft.com/en-us/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps

Configuring application impersonation
We recommend that you use combined PowerShell commands to configure application impersonation for the service account. This 
allows you to use variables, thus reducing possible copy and paste errors. 

 1.  You may need to enable customization, if this has not already been done within your organization:
Enable-OrganizationCustomization

 2.  Configure the following variables with the values you actually want to use:
 o otj_group_id: the email of the distribution list whose members you want to be impersonated.

 o otj_service_account: the email of the service account you want to grant impersonation to.

 o management_scope_to_create: the name you want the newly created management scope to have.

 o impersonation_role_name_to_create: the name you want the newly created impersonation role to have.

For example:
$otj_group_id = "otjrooms@example.com"
$otj_service_account = "pexip-otj-svc@example.com"
$management_scope_to_create = "OTJ Management Scope"
$impersonation_role_name_to_create = "OTJ Impersonation"

 3.  Create the management scope:
$otj_group = Get-DistributionGroup -Identity $otj_group_id
$otj_group_dn = $otj_group.DistinguishedName
$restriction_filter = "MemberOfGroup -eq ""$otj_group_dn"""
New-ManagementScope -Name $management_scope_to_create -RecipientRestrictionFilter $restriction_filter

Example output:
Name ScopeRestrictionType Exclusive RecipientRoot RecipientFilter
---- -------------------- --------- ------------- ---------------
OTJ Management Scope RecipientScope False MemberOfGroup -eq 'CN=OTJ Rooms20190430164340,OU...

 4.  Set up application impersonation using the previously created management scope:
New-ManagementRoleAssignment -Name $impersonation_role_name_to_create -Role ApplicationImpersonation -User $otj_service_
account -CustomRecipientWriteScope $management_scope_to_create

Example output:
Name Role RoleAssigneeName RoleAssigneeType AssignmentMethod EffectiveUserName
---- ---- ---------------- ---------------- ---------------- ----------------
OTJ Impersonation ApplicationImp... pexip-otj-svc User Direct

 5.  Verify that the above commands worked as expected. In the following command, replace <resource_email> with the email of the 
room resource mailbox you want to test. If it is a room which is a member of the distribution list, it should show the OTJ 
Impersonation in the returned roles. If it is anything else outside of the distribution list, it should not have the OTJ Impersonation 
listed, which means the OTJ service account does not have permission to impersonate that user.
Get-ManagementRoleAssignment -Role ApplicationImpersonation -WritableRecipient "<resource_email>" | Format-List Name, Role,
RoleAssignee, CustomRecipientWriteScope

Expected output:
Name : OTJ Impersonation
Role : ApplicationImpersonation
RoleAssignee : pexip-otj-svc

© 2022 Pexip AS Version 30.a   October 2022 Page 34 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

Configuring calendar processing on room resource mailboxes
In this step, you change the calendar processing settings for room resources from the default to those required to support One-Touch 
Join.

Recommended configuration
To take full advantage of the functionality offered by One-Touch Join, we recommend that, for One-Touch Join room resources, you 
change the following calendar processing options from the default:

 1.  The meeting invite body is deleted by default. If you want One-Touch Join to parse meeting details from the body then you must 
set the DeleteComments property to False. If you leave this set to True, only those rules that process information in the calendar 
headers can be used (because the body will be deleted).
 2.  When a meeting invite is received by a resource mailbox, by default the meeting subject is deleted and is replaced with the name 
of the organizer (for more information, see https://support.microsoft.com/en-gb/help/2842288/resource-mailbox-s-calendar-
shows-the-organizer-s-name-instead-of-the).
Because One-Touch Join accesses the meeting invites through the resource mailboxes, this default behavior means it won't have 
access to the original subject. You can choose to leave the default behavior for privacy reasons, or you can modify the calendar 
processing options for each mailbox so that the meeting subject is available and thus can be displayed on the meeting room 
endpoints.
 3.  The private flag is cleared by default. If you want meetings that are marked as private by the organizer to remain marked as 
private in the room mailbox, you must set the RemovePrivateProperty flag to False.
 4.  Room resources created using PowerShell commands may by default have AutomateProcessing set to AutoUpdate. In these cases 
it should be changed to AutoAccept.

PowerShell command
To modify the calendar processing on a room from the default settings to those we recommend for One-Touch Join, connect to 
Exchange Online PowerShell and use the following PowerShell command (replacing <resource_email> with the address of the room 
resource whose processing you want to change):

Set-CalendarProcessing -Identity <resource_email> -DeleteComments $False -DeleteSubject $False -AddOrganizerToSubject $False -


RemovePrivateProperty $False -AutomateProcessing "AutoAccept"

Optional configuration
Hiding invitation details from other users
In order for One-Touch Join to function fully, the service account must be able to access the body of the invitation (which is why we 
recommend that you set the DeleteComments property to False). However, this means that all other users in your deployment with 
access to the room resource calendar may also be able to view the body of the invitation (depending on your deployment's other 
policies). If you want to prevent this, you can use the following PowerShell command to restrict what users can see by default, without 
restricting what the service account can access.
In the following command, replace resource_name with the name of the room resource, and replace role with one of the following 
roles:
 l AvailabilityOnly: users can view the room's availability, but nothing else.
 l LimitedDetails: users can view the room's availability and the meeting subject and location, but not the body of the invitation.

Set-MailboxFolderPermission "resource_name:\Calendar" -User Default -AccessRights role

© 2022 Pexip AS Version 30.a   October 2022 Page 35 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

Allowing forwarding of external invitations
If you want to enable users to forward invitations from other organizations to your OTJ room resources, you must set the 
ProcessExternalMeetingMessages flag to True. This also allows users external to your organization to invite the resource directly; you 
should therefore consult your Exchange administrator to determine whether this is appropriate in your environment.
If your Microsoft Exchange environment uses a security application (such as Office 365 ATP, or Mimecast) to re-write URLs, this may 
prevent OTJ from being used to join external Microsoft Teams meetings (for example, when a user inside your organization forwards 
an external Microsoft Teams meeting invitation to an OTJ room resource in order to join the meeting from that endpoint). To enable 
users to join these meetings using OTJ, you must ensure that the security application's URL re-write rules include an exception for any 
URL starting with the domain https:\\teams.microsoft.com\

Checking calendar processing settings
The following PowerShell command can be used to check calendar processing settings on all of the rooms in the Distribution Group 
that was created for One-Touch Join. 
We recommend copying and saving this as a file and running it from within PowerShell.
Before running, ensure that you edit $otj_group_id = "otjrooms@example.com" to use the email of the Distribution Group used in your 
own deployment.

$deleted_subjects = @()
$organizer_added = @()
$deleted_bodies = @()
$private_flag_reset = @()
$not_auto_accept = @()
$process_external = @()
$otj_group_id = "otjrooms@example.com"

Get-DistributionGroupMember -Identity $otj_group_id -ResultSize Unlimited | ForEach-Object {


Write-Host "Checking room '$($_.name)'"
$processing = Get-CalendarProcessing -Identity $_.name
$pass = $true
if ($processing.DeleteSubject) {
Write-Host "WARNING: The room '$($_.name)' is deleting the meeting subject" -ForegroundColor Red
$deleted_subjects += $_.name
$pass = $false
}
if ($processing.AddOrganizerToSubject) {
Write-Host "WARNING: The room '$($_.name)' is adding the organizer to the meeting subject" -ForegroundColor Red
$organizer_added += $_.name
$pass = $false
}
if ($processing.DeleteComments) {
Write-Host "WARNING: The room '$($_.name)' is deleting the meeting body" -ForegroundColor Red
$deleted_bodies += $_.name
$pass = $false
}
if ($processing.RemovePrivateProperty) {
Write-Host "WARNING: The room '$($_.name)' is clearing the private flag on meetings" -ForegroundColor Red
$private_flag_reset += $_.name
$pass = $false
}
if ($processing.AutomateProcessing -ne "AutoAccept") {
Write-Host "WARNING: The room '$($_.name)' is not configured to Auto Accept. Processing='$($processing.AutomateProcessing)'" -
ForegroundColor Red
$not_auto_accept += $_.name
$pass = $false
}
# Optional permission for allowing the external invites:
if ($processing.ProcessExternalMeetingMessages) {
Write-Host "The room '$($_.name)' is configured to process external (forwarded) meetings"
$process_external += $_.name
}
if ($pass) {
Write-Host "INFO: All checks passed for room '$($_.name)'" -ForegroundColor Green

© 2022 Pexip AS Version 30.a   October 2022 Page 36 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

}
}

Write-Host "Summary:"
Write-Host "There are $($deleted_subjects.count) rooms deleting the meeting subject"
if ($deleted_subjects) {
Write-Host $deleted_subjects -Separator ", "
Write-Host ""
}
Write-Host "There are $($organizer_added.count) rooms adding the organizer to the meeting subject"
if ($organizer_added) {
Write-Host $organizer_added -Separator ", "
Write-Host ""
}
Write-Host "There are $($deleted_bodies.count) rooms deleting the meeting body"
if ($deleted_bodies) {
Write-Host $deleted_bodies -Separator ", "
Write-Host ""
}
Write-Host "There are $($private_flag_reset.count) rooms clearing the private flag on meetings"
if ($private_flag_reset) {
Write-Host $private_flag_reset -Separator ", "
Write-Host ""
}
Write-Host "There are $($not_auto_accept.count) rooms not configured to Auto Accept"
if ($not_auto_accept) {
Write-Host $not_auto_accept -Separator ", "
Write-Host ""
}
Write-Host "There are $($process_external.count) rooms configured to process external (forwarded) meetings"
if ($process_external) {
Write-Host $process_external -Separator ", "
Write-Host ""
}

Enabling OAuth authentication
In this step, you enable OAuth authentication for the service account that One-Touch Join uses to log in to Exchange.
As of October 2022, Microsoft will stop supporting and fully decommission Basic Authentication for EWS to access Exchange Online (for 
more information, see Microsoft's announcement). We therefore strongly recommend that for Office 365, all new deployments 
authenticate the service account using OAuth 2.0, and all existing deployments are updated to enable this option as soon as possible.
To use OAuth for the service account, you must create an app registration in Azure and then use the settings from this app registration 
when enabling and configuring the OAuth options within the One-Touch Join Exchange integration.

Create a new App Registration in Azure
 1.  Log into the Azure portal at aad.portal.azure.com.
 2.  From the main panel on the left, select Azure Active Directory.
 3.  Select App Registrations and then New registration:

© 2022 Pexip AS Version 30.a   October 2022 Page 37 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

 4.  In the Register an application panel, enter the following options:
 a.  Name: this can be anything you wish. In our example we have used Pexip OTJ App.
 b.  Supported account types: select Accounts in this organizational directory only.
 c.  Redirect URI: from the drop-down menu, select Public client/native (mobile and desktop). The URI must use the IP address 
or FQDN of the Management Node, in the format
https://<Management Node Address>/admin/platform/mjxexchangedeployment/oauth_redirect/
In our example we have used https://infinity.example.com/admin/platform/mjxexchangedeployment/oauth_redirect/
You will need to enter this as the OAuth redirect URI when configuring a One-Touch Join Exchange integration.
The OAuth redirect URI is the page on the Administrator interface to which the Pexip Infinity administrator will be 
returned after they have successfully signed in to the service account. Because it is a page on the Management Node, this 
URI is internal to your deployment and only needs to be accessible from the administrator's web browser; you do not 
need to make it externally accessible. This URI must be the same on Azure and Pexip Infinity in order for Azure to validate 
the sign-in request.

© 2022 Pexip AS Version 30.a   October 2022 Page 38 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

 5.  Select Register.
A new panel will open where you can configure your application.
 6.  From the panel on the left, select API permissions.
 7.  Select Add a permission.
 8.  From the Request API permissions panel, select APIs my organization uses, search for Office 365 Exchange Online and select it:

© 2022 Pexip AS Version 30.a   October 2022 Page 39 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

 9.  Select Delegated permissions, and from the Select permissions list, expand EWS and select Access mailboxes as the signed-in 
user via Exchange Web Services, and then select Add permissions:

© 2022 Pexip AS Version 30.a   October 2022 Page 40 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

Taking note of configuration
When you Configure the One-Touch Join Exchange integration and enable OAuth authentication for the service account, you'll need to 
provide the following information from Azure:
 l Application (client) ID: this was generated for you by Azure when you saved the App Registration: 

You can find this again in Azure under Azure Active Directory > App Registrations, under the Application (client) ID column.
You will need to enter this as the OAuth client ID when configuring the One-Touch Join Exchange integration.
 l Redirect URI: this is the URI you entered when creating the App Registration. 

© 2022 Pexip AS Version 30.a   October 2022 Page 41 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

You can find this again in Azure under Azure Active Directory > App Registrations, clicking on the app registration, and then 
clicking Redirect URIs. 
You will need to enter this as the OAuth redirect URI when configuring the One-Touch Join Exchange integration.

You will also need to know the OAuth Endpoints to use. To find this information:

 1.  In the Azure Portal, select Overview > Endpoints.
 2.  Copy the URL of the OAuth 2.0 authorization endpoint (v1).
Ensure that you use the URL for ... endpoint (v1), not ... endpoint (v2).
You will need to enter this as the OAuth authorization endpoint when configuring the One-Touch Join Exchange integration.
 3.  Copy the URL of the OAuth 2.0 token endpoint (v1)
Ensure that you use the URL for ... endpoint (v1), not ... endpoint (v2).
You will need to enter this as the OAuth token endpoint when configuring the One-Touch Join Exchange integration.

Adding a One-Touch Join Exchange integration on Pexip Infinity
In this step you log in to the Pexip Infinity Administrator interface and add details of the Exchange deployment you are integrating 
with, including details of the service account and OAuth access (based on the configuration you have just set up in Exchange). You must 
then sign in to Exchange using the service account.

Configuring the Exchange integration
From the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Exchange Integrations.

Option Description

Name The name of this One-Touch Join Exchange integration. 

Description An optional description of this One-Touch Join Exchange integration. 

Service account username The username of the service account to be used by the One-Touch Join Exchange integration.

This is usually in the format name@example.com.

© 2022 Pexip AS Version 30.a   October 2022 Page 42 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

Option Description

Enable OAuth Enable this option to authenticate the service account using OAuth 2.0. (This option is only supported for 
Exchange in Office 365.)

As of October 2022, Microsoft will stop supporting and fully decommission Basic Authentication for 
EWS to access Exchange Online (for more information, see Microsoft's announcement). We therefore 
strongly recommend that for Office 365, all new deployments authenticate the service account using 
OAuth 2.0, and all existing deployments are updated to enable this option as soon as possible.

OAuth client ID (Available if OAuth has been enabled) 

The Application (client) ID which was generated by Azure when creating an App Registration in Azure 
Active Directory (see Taking note of configuration).

OAuth redirect URI (Available if OAuth has been enabled) 

The redirect URI you entered when creating an App Registration in Azure Active Directory.

This must be in the format https://<Management Node 
Address>/admin/platform/mjxexchangedeployment/oauth_redirect/

The OAuth redirect URI is the page on the Administrator interface to which the Pexip Infinity administrator 
will be returned after they have successfully signed in to the service account. Because it is a page on the 
Management Node, this URI is internal to your deployment and only needs to be accessible from the 
administrator's web browser; you do not need to make it externally accessible. This URI must be the same 
on Azure and Pexip Infinity in order for Azure to validate the sign-in request.

OAuth authorization endpoint (Available if OAuth has been enabled) 

The URL of the OAuth authorization endpoint (see Taking note of configuration). 

Ensure that you use the URL for ... endpoint (v1), not ... endpoint (v2). 

OAuth token endpoint (Available if OAuth has been enabled)

The URL of the OAuth token endpoint (see Taking note of configuration). 

Ensure that you use the URL for ... endpoint (v1), not ... endpoint (v2).

Advanced options

Find Items Request Quota The number of Find Item requests that can be made by OTJ to your Exchange Server in a 24-hour period.

The default of 1,000,000 should be sufficient for most deployments — for more information, see Frequency 
and limitations on calendar requests.

We do not recommend increasing this quota unless you have deployed a dedicated One-Touch Join 
platform, because it will impact the performance of the Conferencing Nodes.

OTJ Exchange Autodiscover URLs

This section is optional and will generally only be required if the Autodiscover URLs in your deployment do not use a standard location.

Name The name of this Exchange Autodiscover URL. 

Description An optional description of this Exchange Autodiscover URL. 

Autodiscover URL The URL used to connect to the Autodiscover service on the Exchange deployment. 

If you are using Office 365, you may need to enter your autodiscover URL manually, particularly if you are 
using a hybrid Exchange deployment. If your OTJ room resources and service account are hosted on O365, 
then you should enter https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc as the 
Autodiscover URL.

The URL must end in .svc; URLs ending in .xml are not supported.

© 2022 Pexip AS Version 30.a   October 2022 Page 43 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

When you have completed the above fields, select Save. You will be returned to the main OTJ Exchange Integration page. You must 
now sign in to the Exchange integration using the service account details you have just created.

Signing in to the service account
If you have enabled OAuth for the first time, you must sign in to the service account after saving the configuration of the One-Touch 
Join Exchange integration.
You may also need to re-sign in to the service account if:
 l the service account password has changed
 l the service account uses multi-factor authentication (MFA) and the MFA is refreshed
 l you disable and then subsequently re-enable OAuth
 l you update any of the following configuration for the One-Touch Join Exchange integration:
 o Service account username
 o OAuth client ID
 o OAuth token endpoint
 l the Management Node has been offline for more than 90 days.

To sign in to the service account:

 1.  Ensure you have signed out of all Microsoft accounts on your device, including the Microsoft Azure portal.
 2.  From the Management Node, go to One-touch Join > OTJ Exchange Integrations, select the Exchange integration you have just 
created. At the bottom of the Change OTJ Exchange Integration page, select Sign in to service account:

You will be taken to the Sign in to service account page.:

© 2022 Pexip AS Version 30.a   October 2022 Page 44 of 119


Pexip One-Touch Join Deployment Guide Configuring Office 365 using EWS for One-Touch Join

 3.  Copy the Sign in link and paste it into a new browser tab.
 4.  Sign in as the service account. 
You are asked to permit the OTJ application to sign in as the service account, and to access the mailboxes that the service account 
has been granted access to. (The service account will only have access to the mailboxes of the OTJ room resources, if you 
completed the steps in Configuring Application Impersonation on the service account.)

If there is an option to Consent on behalf of your organization, do not select this — consent only needs to be given to the 
service account.
 5.  Select Accept.

You should be returned to the Sign in to service account page and see the message Successfully signed in.

Next steps
You must now configure the remainder of the One-Touch Join components on Pexip Infinity, as described in Configuring Pexip Infinity 
for One-Touch Join.

© 2022 Pexip AS Version 30.a   October 2022 Page 45 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

Configuring Google Workspace for One-Touch Join
This topic describes how to configure Google Workspace in order to implement Pexip Infinity's One-Touch Join feature in a Google 
Workspace environment. 
The process involves the following steps, described in more detail in the sections that follow:

 1.  Creating a Service Account to use for One-Touch Join. 
 2.  Creating a room resource for each physical room that will have a One-Touch Join endpoint in it. 
 3.  Configuring the room resource with the necessary permissions and settings to support One-Touch Join.
 4.  Updating the quota for the number of user requests per 100 seconds.
 5.  For larger deployments, Requesting an increase to API limits.
 6.  Adding a One-Touch Join Google Workspace integration on Pexip Infinity.

If you have already set up a One-Touch Join Google Workspace integration and simply wish to add an existing room to it, you need 
only configure the room resource in Google Workspace and then add the endpoint to the Google Workspace integration in Pexip 
Infinity.
We recommend that you authorize One-Touch Join to access calendar information using a service account, as described in the 
following steps. This method (sometimes referred to as two-legged OAuth) offers the easiest setup for One-Touch Join, and is 
recommend by Google because it is designed for server-to-server applications (for more information, see 
https://developers.google.com/identity/protocols/oauth2/service-account). Alternatively, you may need to use a Google Workspace 
domain user for authorization (sometimes refered to as three-legged OAuth); for instructions on how to do this, see Configuring 
Google Workspace for domain user authorization.

Prerequisites
In the deployment model described below, the service account will require access to the endpoints' calendars. Google Workspace 
service accounts always use the iam.gserviceaccount.com domain rather than your own domain, so you will need to configure Google 
Workspace to allow endpoint calendars to be shared externally. This does not in itself allow any external accounts to access the 
calendars — each calendar must then also explicitly nominate the accounts with whom it is to be shared. 
Some enterprises will require internal approval for this configuration, so you should confirm that it will be permitted within your 
deployment. If not, you can consider Configuring Google Workspace for domain user authorization as an alternative.

Creating a service account
In this step, you create a project to use for One-Touch Join. You then create the service account that One-Touch Join will use to access 
the room resources' calendars, and generate a private key that One-Touch Join will use to authenticate when signing in to Google 
Workspace as the service account. 
The service account belongs to the project you have created for OTJ. It can be used for multiple One-Touch JoinGoogle Workspace 
integrations.

 1.  Creating a new project:
 a.  Go to https://console.developers.google.com (logged in as a Google Workspace administrator).
 b.  From the top left of the page, select the down arrow:

 c.  Select New Project.
 d.  Enter a Project name (e.g. One-Touch Join) and select Create.

© 2022 Pexip AS Version 30.a   October 2022 Page 46 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 2.  Enabling the Calendar API for the project:   
 a.  Go to https://console.developers.google.com
 b.  From the top left of the page, select the down arrow, select your newly-created project, and select Open. Your new project 
should now be showing at the top left of the page:

 c.  From the navigation menu on the left of the screen, select APIs & Services > Library, then scroll down and select the Google 
Calendar API tile:

 d.  Select Enable:

 3.  Creating the service account:
 a.  Go to https://console.developers.google.com
 b.  From the navigation menu on the left of the screen, select IAM & Admin > Service Accounts.
 c.  Select Create Service Account:

 d.  Enter a name (e.g. One-Touch Join Calendar Reader) and select Create:

© 2022 Pexip AS Version 30.a   October 2022 Page 47 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 e.  On the next page, which asks about permissions, select Cancel (the account does not need any of these permissions):

 4.  Generating a key file:
 a.  From the Service accounts page, select the service account.
Take note of the service account's Email address here - you will need it in later steps:

© 2022 Pexip AS Version 30.a   October 2022 Page 48 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 b.  From the Service account details page, select Edit, then Create Key:

 c.  Select a Key type of JSON and select Create:

© 2022 Pexip AS Version 30.a   October 2022 Page 49 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

This will download a JSON file containing the private key. This key will be required when Adding a One-Touch JoinGoogle 
Workspace integration.

For more information on using OAuth 2.0 to authenticate the service account, see 
https://developers.google.com/identity/protocols/OAuth2ServiceAccount.

Creating a room resource
(Required only if your room resources do not already exist - otherwise you can skip this step.)
In this step, you create a room resource in Google Workspace for each physical room that is to be used for One-Touch Join. Google 
Workspace will automatically assign an email address to the room.

 1.  If a building for the room resource does not already exist, create one as follows:
 a.  Go to https://admin.google.com (logged in as a Google Workspace administrator).
 b.  Select the Buildings and resources tile, and then from the Resource management section select Open:

From the drop-down along the top left of the screen, select Buildings:

© 2022 Pexip AS Version 30.a   October 2022 Page 50 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 c.  Select + to Add new building:

 d.  Enter a Name and the list of Floors, and select Add Building.
 2.  Create the room resource:
 a.  Go back to the Resources page and Select + to Add new resource:

© 2022 Pexip AS Version 30.a   October 2022 Page 51 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 b.  For the Category, select Meeting space (room, phone booth,...).


 c.  Select the Building  and Floor in which the room is located, enter a Name and the room's Capacity, then select Add Resource:

The resource will be created and added to the list. You can click on the new resource to view information about it, such as the email 
address it was automatically assigned.
For more information on setting up buildings and other resources in Google Workspace, including how to add buildings and 
resource in bulk and using CSV imports, see https://support.google.com/a/answer/1033925.

Configuring the room resource
In these steps, you permit the One-Touch Join service account to access the calendar of each room resource that you want to use for 
One-Touch Join, and then set the calendar to auto-accept invitations. We also recommend that you make the calendar available to all 
users in your domain in such a way that allows them to book meetings using the resource, without being able to view the details of any 
other meetings in the resource's calendar.

Sharing calendars externally
In this step, you configure Google Workspace to permit endpoint calendars within your domain to be shared externally. This 
permission is required because the service account uses the external iam.gserviceaccount.com domain and is therefore considered an 
"outsider". Granting this permission does not in itself allow any external accounts to access the calendars — each calendar must then 
be shared with the service account. For more information, see Prerequisites.
To enable calendars to be shared externally:

 1.  Go to https://admin.google.com/ (logged in as a Google Workspace administrator) and select Apps > Google Workspace > 
Calendar.

© 2022 Pexip AS Version 30.a   October 2022 Page 52 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 2.  In the Sharing settings section, ensure that External sharing options for primary calendars is set to Share all information, and


outsiders can change calendars:

 3.  In the General Settings section, under External sharing options for secondary calendars, select Share all information, and


outsiders can change calendars:

Selecting these options to ... and outsiders can change calendars will enable users to use One-Touch Join to join all meetings, 


including private meetings. If you will not be using One-Touch Join with private meetings in your deployment, both these options 
can be set to ... but outsiders cannot change calendars.

Sharing individual calendars with the service account
Note that the Google calendar API limits the number of calendars that can be shared within a 24 hour period to 750 (for more 
information, see https://support.google.com/a/answer/2905486?hl=en). This means that if you have more than 750 room resources 
that you wish to use for One-Touch Join, they will need to be set up over a period of days.
For deployments with more than around 50 rooms, we have developed a Python script that can be used to share your room resource 
calendars with the service account, and create a CSV that can be used to import endpoint configuration to One-Touch Join. You must 
be familiar with Python in order to use this script; contact your Pexip authorized support representative for more information.
To share calendars with the service account:

© 2022 Pexip AS Version 30.a   October 2022 Page 53 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 1.  Go to https://calendar.google.com (logged in as a Google Workspace administrator so that you have permission to share the 
calendars).
 2.  From the left-hand panel, select the + next to Other calendars and then select Browse resources.
 3.  Expand the sections if necessary, and tick the boxes of all the room resources whose calendars you want to share with the service 
account. 
This will add the room resources to the Settings for other calendars section in the left-hand panel.
 4.  For each of the rooms:
 a.  From the Settings for my calendars section, select the room resource and then select Share with specific people.
 b.  Select Add people.
 c.  In the Share with specific people dialog, enter the email address of the One-Touch Join service account. Ensure the 
Permissions are set to either:
 n Make changes to events (if you want users to be able to use OTJ to join all meetings, including private meetings, from 
this endpoint)
 n See all event details (if you don't want to offer OTJ for private meetings on this endpoint).
If the option to Make changes to events is grayed out, then check that you have selected the options to Share all
information, and outsiders can change calendars when Sharing calendars externally.
If your deployment includes personal endpoints that are associated with a user's personal calendar, then either you or the 
end user will need to ensure that their calendar allows the One-Touch Join service account to Make changes to events if they 
wish to use OTJ to join their own private meetings from their endpoint.

For more information on sharing room and resource calendars in Google Workspace, see 
https://support.google.com/a/answer/1034381.

Auto-accepting invitations
By default, when creating room resources in Google Workspace, calendar processing is set to Auto-accept invitations that do not 
conflict. You must ensure you keep this setting for all room resources, so that the room will automatically accept meeting requests if it 
is available, and automatically decline an invitation if it is already booked.
To check this setting:

© 2022 Pexip AS Version 30.a   October 2022 Page 54 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 1.  Go to https://calendar.google.com (logged in as a Google Workspace administrator so that you have permission to share the 
calendars).
 2.  From the left-hand panel, select the room resource and select Settings and sharing. 
 3.  In the Auto-accept invitations section, ensure that Auto-accept invitations that do not conflict is selected:

Allowing users to book resources
We recommend that you configure your Google Workspace calendar settings to allow end users to book a room resource without 
seeing details of the room's other bookings. To do this, you configure the room resource's calendar so that all users in your domain 
have permission to see its free/busy status, without being able to see the invitation details. You then on a global basis permit users to 
book resources to which they have free/busy access.
To do this:

 1.  Go to https://calendar.google.com (logged in as a Google Workspace administrator so that you have permission to share the 
calendars).
 2.  From the left-hand panel, select the room resource and select Settings and sharing. 
 3.  In the Access permissions section, select Make available for <your domain>, and ensure that See only free/busy (hide details) is 
selected:

© 2022 Pexip AS Version 30.a   October 2022 Page 55 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 4.  Go to admin.google.com (logged in as a Google Workspace administrator).
 5.  From the left-hand menu, select Apps > Google Workspace > Calendar.
 6.  Scroll down to General Settings and select Resource Booking Permissions.
 7.  Ensure that Allow users to book resources that are shared as See only free/busy is set to ON:

Updating the per-user request quota
In this step you increase the limit on the number of queries per 100 seconds per user to the Google Calendar API.

© 2022 Pexip AS Version 30.a   October 2022 Page 56 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

The default number of queries per 100 seconds per user is 500. In this context, the "user" is the service account. In deployments with 
fewer than around 180 rooms, each room resource calendar is queried every 30 seconds by two conferencing nodes (both using the 
same service account), resulting in 5,760 queries per room per day. (In larger deployments, room resource calendars are queried less 
frequently.)
We recommend that you increase the number of queries per 100 seconds per user to 10,000 to provide sufficient processing overhead 
and room for expansion (there is currently no additional cost to this increase).
To increase this quota to 10,000:

 1.  Go to https://console.developers.google.com (logged in as a Google Workspace administrator).
 2.  From the top left of the page, select the project you created for One-Touch Join:

 3.  From the navigation menu at the top left of the page, select IAM & Admin > Quotas.
 4.  From the Quotas page, select Edit Quotas and then select Google Calendar API - Queries per 100 seconds per user.
You will be taken to the Google Calendar API > Quotas page.
 5.  Change Queries per 100 seconds per user to 10,000:

You may also need to request an increase to the number of Queries per day for larger deployments - for more information, 
see Requesting an increase to API limits.

Requesting an increase to API limits
This optional step applies to larger deployments only (more than around 170 room resources), and should be performed if you wish to 
reduce the amount of time taken for endpoints to be updated with additions or changes to their corresponding room resource 
calendar.
The maximum frequency with which an endpoint will be updated with meeting information is every 30 seconds. For deployments with 
more than around 170 endpoints, this frequency will decrease in line with the number of endpoints (up to around 20 minutes for 
deployments with around 6,000 endpoints). This is due to a limit on the number of Calendar API requests permitted by Google in a 24-
hour period — for more information, see https://developers.google.com/calendar/pricing.
To reduce the time taken to update endpoints in these larger deployments, you can request an increase to the number of Calendar API 
requests One-Touch Join can make.

© 2022 Pexip AS Version 30.a   October 2022 Page 57 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

When your request has been implemented by Google, you must then increase the Maximum Google Workspace API requests on 
Pexip Infinity in order to take advantage of the increase.
To request an increase to the API limits:

 1.  If you do not already have one, create a Cloud Billing Account (note that this is different from a Google Workspace billing account). 
Full instructions are available via https://cloud.google.com/billing/docs/how-to/manage-billing-account#create_a_new_billing_
account.
 2.  Link the Cloud Billing Account to the project you created when Creating a service account:
 a.  Go to https://console.developers.google.com (logged in as a Google Workspace administrator).
 b.  Ensure that the project shown in the top left corner is the one you created for One-Touch Join when Creating a service 
account.
 c.  Select the burger menu from the top left of the page and select Billing. When the following message appears, select Link a 
billing account:

 d.  Select the account to link to:

 3.  Request an increase to your quota:
 a.  From the navigation menu at the top left of the page, select IAM & admin > Quotas. 
 b.  From the Quotas page, select Edit Quotas and then select Google Calendar API.
In the panel that appears on the right, enter the New quota limit that you wish to request, and in the Request description 
field, enter the reason for requesting the increase:

© 2022 Pexip AS Version 30.a   October 2022 Page 58 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

 c.  Select Submit request.

Quota increase requests typically take two business days to process.

Adding a One-Touch Join Google Workspace integration on Pexip Infinity
In this step you configure Pexip Infinity with details of the Google Workspace deployment configured above, including details of the 
service account used to access calendars.
From the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Google Workspace Integrations.

Option Description

Name The name of this One-Touch JoinGoogle Workspace integration.

Description An optional description of this One-Touch JoinGoogle Workspace integration. 

Account email If you are authorizing using a service account, enter the email address of the service account that One-Touch Join will 
use to log in to Google Workspace. 

If you are authorizing using a Google Workspace domain user, enter the email address of the user.

Enable user  If you are authorizing using a service account — the recommended method — this should be left blank.
authorization
Select this option only if you will be authorizing using a Google Workspace domain user.

Private key (Available when authorizing using a service account, i.e. user consent authorization has not been enabled)

The private key used by One-Touch Join to authenticate the service account when logging in to Google Workspace. For 
instructions on how to obtain this, see Generating a key file.

This must include all the text in the file between (and including) -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY--


---

Advanced options

Maximum Google  The maximum number of API requests that can be made by One-Touch Join to your Google Workspace Domain in a 24-
Workspace API  hour period.
requests
We recommend you set this value to 90% of your total permitted requests. Google's default is 1,000,000 so by default 
this is set to 900,000 on Pexip Infinity. If you increase the number of API requests, you should also increase this setting 
to 90% of that number.

For more information, see Frequency and limitations on calendar requests.

Google OAuth 2.0  The URI of the Google OAuth 2.0 endpoint. 
endpoint

© 2022 Pexip AS Version 30.a   October 2022 Page 59 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for One-Touch Join

Option Description

Google  The URI of the Google authorization server.
authorization 
server

Next steps
You must now configure the remainder of the One-Touch Join components on Pexip Infinity, as described in Configuring Pexip Infinity 
for One-Touch Join.

© 2022 Pexip AS Version 30.a   October 2022 Page 60 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

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:

 1.  Adding a One-Touch Join profile
 2.  Adding One-Touch Join endpoint groups
 3.  Adding One-Touch Join endpoints
 4.  Adding One-Touch Join meeting processing rules

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 Google Meet and Pexip Service meeting types:

Prerequisites
Before you start configuring Pexip Infinity, you must first do one of the following, depending on your calendar/email service:
 l Configure Google Workspace for One-Touch Join, including Adding a  O
  ne-Touch Join Google Workspace integration on Pexip 
Infinity, or
 l Configure Exchange on-premises for One-Touch Join, including Adding a One-Touch Join Exchange integration on Pexip Infinity
 l Configure Office 365 for One-Touch Join, including Adding a One-Touch Join Graph integration on Pexip Infinity.

Existing customers may have previously 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 we do not recommend its 
use for new deployments; for existing customers, these deployments are described in Adding a One-Touch Join Exchange 
integration on Pexip Infinity.

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

© 2022 Pexip AS Version 30.a   October 2022 Page 61 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

To add a One-Touch Join profile, from the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Profiles.

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 Join 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  (Applies if Enable private meetings has been selected)
meetings
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 Join 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.

© 2022 Pexip AS Version 30.a   October 2022 Page 62 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

Option Description

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 either Configuring Exchange on-premises for One-Touch 
Join or Configuring Office 365 using EWS 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 username 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 
Default API password
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  Whether or not to verify the TLS certificate of a Cisco OBTP endpoint by default when accessing its API. Can 
default 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. 

© 2022 Pexip AS Version 30.a   October 2022 Page 63 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

Option Description

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

Adding One-Touch Join endpoint groups
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 One-Touch Join > OTJ Endpoint Groups.

© 2022 Pexip AS Version 30.a   October 2022 Page 64 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

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.

Endpoints The endpoints that belong to this One-Touch Join endpoint group.

Adding One-Touch Join endpoints
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 One-Touch Join > OTJ Endpoints.

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.

© 2022 Pexip AS Version 30.a   October 2022 Page 65 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

Option Description

Endpoint API username 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 
Endpoint API password
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  Whether to enable TLS verification when accessing this endpoint's API. Only applicable if using HTTPS to 
certificate 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

Poly Calendaring Username 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.

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

Configuration options for all endpoints

© 2022 Pexip AS Version 30.a   October 2022 Page 66 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

Option Description

Raise alarms When enabled, an alarm will be raised:
 l for Poly endpoints: when this endpoint has not contacted the calendaring service on the Conferencing 
Node in the last 10 minutes
 l for Cisco OBTP endpoints: when an attempt to push calendar updates to the endpoint was 
unsuccessful
 l for Webex Cloud registered endpoints: when an attempt to push calendar updates from the 
Conferencing Node to Webex Cloud, or from Webex Cloud to the endpoint, was unsuccessful.
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:
 l 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.
 l All non-blank fields must contain valid data.
 l If non-ASCII characters are used, the file must be encoded as UTF-8 text.
 l All fields are case-sensitive.
 l 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:

 1.  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. Cisco

The name of this One-Touch Join endpoint.  Poly

You should ensure there are no duplicate names, either within the CSV file, or  Webex
between the CSV file and the existing endpoints (unless you wish the existing 
configuration to be overwritten).

description An optional description of this One-Touch Join endpoint.   

© 2022 Pexip AS Version 30.a   October 2022 Page 67 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

Field name Content Required field 


for...

endpoint_type The type of "click to join" feature supported by this endpoint. Cisco

Valid values are: Poly
 o CISCO Webex
 o POLY
 o 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 the endpoint will use when connecting and authenticating to the  Poly


calendaring service on the Conferencing Node, to obtain meeting information.

poly_password The password the endpoint will use when connecting and authenticating to the  Poly


calendaring service on the Conferencing Node, to obtain meeting information.

poly_raise_alarms_for_this_ Whether to raise an alarm if OTJ is unable to provide this endpoint with meeting   
endpoint information. (Note that despite the field name, this applies to all endpoint types.)

Valid values are:
 o TRUE
 o YES
 o FALSE
 o 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:
 o GLOBAL: Use the Verify endpoint certificates by default setting configured for the 
One-Touch Join profile that this endpoint is associated with.
 o YES: Enable TLS verification.
 o NO: Do not use TLS verification.

use_https Whether to use HTTPS to access the Cisco OBTP endpoint's API.  
 o GLOBAL: Use the Use HTTPS for endpoint API setting configured for the One-
Touch Join profile that this endpoint is associated with.
 o YES: Use HTTPS to access this endpoint's API.
 o NO: Use HTTP to access this endpoint's API.

© 2022 Pexip AS Version 30.a   October 2022 Page 68 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

Field name Content Required field 


for...

room_resource_email This field cannot be blank. Cisco

The email address of the room resource associated with this endpoint. This must  Poly
match the email address that has been configured in Exchange or Google Workspace.
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.

 2.  From the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Endpoints and from the bottom right of the screen, 
select Import.
 3.  From the Import OTJ Endpoint Configuration page, select Choose file and then navigate to the CSV file you have created.
 4.  Select Save.

The imported endpoints will be added to your One-Touch Join configuration.
Duplicates
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.

Adding One-Touch Join meeting processing rules
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. 
 l 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. 
 l 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. 

© 2022 Pexip AS Version 30.a   October 2022 Page 69 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

To view, edit and create meeting processing rules, from the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Meeting 
Processing Rules.

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)
 l For meeting types other than Regex:
 o check this box to use the default transform pattern for the selected meeting type (for a list of the 
default transform patterns for each meeting type, see Supported meeting types), or
 o clear this box to write your own Transform pattern for this meeting type.
 l For Regex meeting type:
 o check this box to use the matched string, unchanged, as the alias that the endpoint will dial to join 
the meeting, or 
 o clear this box to use a regex Replace string to transform the matched string into the alias to dial. 
For more information, see Regex meeting type.

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.

© 2022 Pexip AS Version 30.a   October 2022 Page 70 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

Option Description

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 either Domain or Microsoft Teams Meeting Properties 


has been selected.)

The domain from which the meeting invitation was sent.
 l For a Meeting type of Domain, this is the domain that OTJ will search for in the meeting body, in order 
to match this rule.
 l For a Meeting type of Microsoft Teams Meeting Properties, this is the domain that OTJ will append to 
the meeting ID after the rule has been matched, in order to create the alias that the endpoint will dial 
to join the meeting.

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 OTJ Meeting Processing Rule button will appear at the bottom of 
the page. This will take you to the 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.
When 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:

© 2022 Pexip AS Version 30.a   October 2022 Page 71 of 119


Pexip One-Touch Join Deployment Guide Configuring Pexip Infinity for One-Touch Join

 1.  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 The Match string (and Replace string, where applicable) currently configured for this rule.

Replace string

Transform pattern The pattern that will be used to transform specific text in the meeting invitation into an alias to dial. 
 o If you selected Default processing enabled, this will be the default transform pattern for this 
meeting type. 
 o 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.

 2.  Select Test OTJ Meeting Processing Rule. 
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.
 o 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.
 o If the result is not as expected, edit the fields above as appropriate.
 3.  When the configuration is producing the desired result, to save the changes you have made, select Save changes and return.

Next steps
You should now complete the steps in Configuring endpoints to support One-Touch Join for each endpoint.

© 2022 Pexip AS Version 30.a   October 2022 Page 72 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Configuring endpoints to support One-Touch Join
This topic describes how to configure each of the supported endpoint types — Cisco OBTP (either when on the same network as the 
One-Touch Join Conferencing Nodes, or when on a different network), or Poly OTD — so they can be used with Pexip Infinity One-
Touch Join.

Prerequisites
We recommend that you have already completed the steps in Configuring Pexip Infinity for One-Touch Join. In particular, you will need 
some of the information that you previously entered when Adding One-Touch Join endpoints to Pexip Infinity, in order to complete the 
configuration on each endpoint.

Configuring Cisco OBTP endpoints for OTJ
For endpoints on the same network as the One-Touch Join Conferencing Node, we recommend you configure the endpoint to allow 
the Conferencing Node to connect directly to it, as per the instructions in Configuring OBTP endpoints on the same network.
For endpoints on a different network to the One-Touch Join Conferencing Node, these endpoints must be registered to Webex Cloud, 
and One-Touch Join must be configured to connect to the endpoint via Webex Cloud. For full instructions, see Configuring Cisco Webex 
Cloud registered endpoints.

Configuring OBTP endpoints on the same network
In order for Cisco OBTP endpoints to obtain One-Touch Join meeting information, the Conferencing Node associated with the endpoint 
uses the endpoint's API to push the information out to the endpoint.
The endpoint must have an account set up with a role of either Admin or User that can be used by One-Touch Join to access the 
endpoint's API. 

© 2022 Pexip AS Version 30.a   October 2022 Page 73 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Configuring Cisco Webex Cloud registered endpoints
In order for endpoints registered to Cisco Webex Cloud to obtain One-Touch Join meeting information, the Conferencing Node 
connects to the Webex Cloud, which then uses the endpoint's API to push the meeting information to the endpoint. To enable this, you 
must set up a Webex integration to be used for OTJ, and then configure Pexip Infinity OTJ with details of the integration.

Prerequisites
Webex Cloud registered endpoints must be:
 l registered to either Webex or Webex Edge for Devices
 l running one of the following software versions:
 o CE (9.14 or later)
 o TC (any version supported by Webex Cloud)
 o RoomOS
 l have Cloud Calendar disabled
 l be running in Room mode (not Personal mode).

Creating a Webex Integration
In this step, you create a new Webex integration to be used for One-Touch Join.

 1.  Go to https://developer.webex.com/my-apps/new/integration and sign in with your account.
 2.  Configure the following fields as follows (all other fields can be configured as appropriate for your environment):
 o Redirect URI(s): this should point to the IP address or FQDN of your Management Node, and be in the format 
https://<Management Node_address>/admin/platform/mjxintegration/oauth_redirect/
The OAuth Redirect URI is the page on the Pexip Infinity Administrator interface to which the administrator will be 
returned after they have successfully signed in to the Webex Integration. Because it is a page on the Management Node, 
this URI is internal to your deployment and only needs to be accessible from the administrator's web browser; you do not 
need to make it externally accessible.
 o Scopes: select spark:xapi_commands
 3.  Select Add Integration.
Your integration will be created.
 4.  Take note of the Client ID and Client Secret (which will be generated for you after the integration has been created) and the 
Redirect URI (which you entered in step 2 above). These will be required when you are Enabling a One-Touch Join profile to use 
Webex Cloud.

Enabling a One-Touch Join profile to use Webex Cloud
 1.  On the Management Node, go to One-Touch Join > OTJ Profiles and either select an existing profile, or create a new profile.
 2.  In the Cisco Webex Endpoint Config Options section, select Enable Webex Cloud and in the fields that then appear, enter the 
Client ID, Client Secret and Redirect URI from the previous steps.
 3.  Select Save.
You will be taken back to the main OTJ Profiles page.
 4.  Select the profile you have just edited/created, and at the bottom of the page select Authorize Webex Cloud API access.
 5.  From the Authorize Login to Webex Integration page, select Authorize:

© 2022 Pexip AS Version 30.a   October 2022 Page 74 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

 6.  Sign in to Webex, and accept the permissions being requested.
You will be redirected back to the Management Node and see the message:
Successful sign in to Webex Cloud

Adding a Webex endpoint
 1.  On the Management Node, go to One-Touch Join > OTJ Endpoints and select Add OTJ Endpoint.
 2.  Select an Endpoint type of Webex Cloud registered.
 3.  Enter the Webex Device ID. 
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 Run.
 4.  Enter the Room resource email associated with this endpoint. 

Disabling the calendar
 1.  Sign in to https://admin.webex.com/
 2.  From the panel on the left, select Workspaces.
 3.  Ensure that for each workspace containing an endpoint to be used for OTJ, the Calendar column shows Not configured.

© 2022 Pexip AS Version 30.a   October 2022 Page 75 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

 o If a calendar is listed, select Actions > Edit Calendar and from the Calendar drop-down menu select Off:

Configuring Poly OTD endpoints for OTJ

© 2022 Pexip AS Version 30.a   October 2022 Page 76 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

In order for Poly OTD endpoints to obtain One-Touch Join meeting information, each One-Touch Join Conferencing Node emulates a 
Microsoft Exchange server. The Poly endpoint then connects to the Conferencing Node and registers to the calendaring service on the 
node in order to pull meeting information, as shown in the diagram below.
Note that this emulation of an Exchange calendaring service on the Conferencing Node is purely to provide the Poly endpoint with its 
meeting information. It is completely separate to the process by which the Conferencing Node initially obtains the meeting information 
from the calendar/email service being used for One-Touch Join — which can be either Exchange or Google Workspace.
It is important that you do not set up your Poly endpoints until after you have completed the steps to add the endpoint details to Pexip 
Infinity.

Enabling the client API
In order to use Poly endpoints with One-Touch Join, you must ensure that the Client API is enabled on Pexip Infinity, via the global 
setting Enable support for Pexip Infinity Connect clients and Client API.
If you are deploying One-Touch Join as a dedicated stand-alone platform that includes Poly endpoints, you must still enable the 
client API. However, for added security you can disable some or all call protocols (i.e. SIP, SIP UDP, H.323, WebRTC and RTMP). For 
more information, see Enabling and disabling SIP, H.323, WebRTC and RTMP.

DNS records
If you have a One-Touch Join deployment that includes Poly endpoints in a location with more than one Conferencing Node, you 
should spread the Poly endpoint registrations across all nodes in the location to maximize performance and provide redundancy. To 
achieve this, we recommend that all Poly endpoints in a location register to a single FQDN which uses round-robin DNS to resolve to 
each Conferencing Node in turn. This will require you to set up appropriate DNS records for all Conferencing Nodes in the location, and 
ensure that your DNS server is configured to round-robin between these records.
For more information and examples, see Enabling Poly endpoints to register to One-Touch Join.

© 2022 Pexip AS Version 30.a   October 2022 Page 77 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Poly authentication
In normal Pexip Infinity usage Poly endpoints authenticate to One-Touch Join using digest authentication, with the exception of HDX 
endpoints which require NTLMv2.
When Pexip Infinity has been deployed in a secure mode of operation (and therefore FIPS compliance has been enabled), NTLMv2 and 
digest authentication are disabled and basic authentication is used. As a result, when in this mode: 
 l HDX endpoints are not supported
 l Trio endpoints must be configured to allow basic authentication.

Deployments with a load balancer
If there is a load balancer between the Poly endpoints and the One-Touch Join Conferencing Node, the load balancer should be 
configured to set the X-Forwarded-For header. This preserves the endpoint's IP address in communications, allowing requests and 
subsequent responses to be directed to the correct endpoint.

Configuring Poly RealPresence Group series

One-Touch Join supports Poly RealPresence Group Series endpoints running v5.0.0 or later. 
To configure a Poly RealPresence Group Series for One-Touch Join, use the following settings (which can be found on the endpoint 
under Admin settings > Servers > Calendering service):

Field Poly configuration Matching Infinity  Additional info


configuration
Email The email address of the room resource  This must be the same as   
configured in Exchange or Google Workspace  the Room resource email 
that is associated with this endpoint.  configured on Pexip 
Infinity for this endpoint.

Domain Leave blank.   This is the Exchange domain, and is not 


required for One-Touch Join.

User Name The username the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  Username
to obtain meeting information.
configured on Pexip 
Infinity for this endpoint.

Password The password the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  password configured on 
to obtain meeting information. Pexip Infinity for this 
endpoint.

Auto Discover  Do not select this button.   Auto Discovery is not supported. 


Using Instead, you should manually configure 
the Microsoft Exchange Server settings.

© 2022 Pexip AS Version 30.a   October 2022 Page 78 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Field Poly configuration Matching Infinity  Additional info


configuration
Microsoft   l If you have a single Conferencing Node in     
Exchange Server this location, enter the IP Address or FQDN 
of the node (in the format 192.168.0.0 or 
host.example.com).
 l If you have multiple Conferencing Nodes in 
this location, you should use DNS round 
robin; therefore this will be the FQDN of 
the DNS record for this location (in the 
format host.example.com).
In both cases, the location is the Pexip Infinity 
location associated with the Endpoint Group to 
which this endpoint belongs. 

Secure Connection  Select Automatic.    
Protocol

Meeting Reminder  Optional   Can still be used in conjunction with 


Time in Minutes One-Touch Join.

Play Reminder  Optional   Can still be used in conjunction with 


Tone When Not in  One-Touch Join.
a Call

Show Information  Optional   Enable private meetings must be 


for Meetings Set to  enabled on the One-Touch Join Profile 
Private associated with this endpoint in order 
for this setting to apply.

If Enable private meetings has been 
disabled on the One-Touch Join Profile, 
this setting will have no effect.

To confirm that the Poly RealPresence Group Series endpoint has registered successfully with the calendaring service:

 1.  On the endpoint, go to Admin Settings > Servers > Calendaring Service.
 2.  Confirm that the Registration Status is showing as Registered.

Configuring Poly Trio series

When configuring Poly Trio series endpoints for One-Touch Join, you should use a Generic base profile unless your deployment 
specifically requires you to use a Skype for Business base profile. Configuration instructions for each are given below.

Configuring Poly Trio using a generic base profile
 1.  Open the endpoint's web configuration utility at https://<ipaddress>, select Admin, and log in using the admin password.
 2.  From Simple Setup > Base Profile select Generic and then select Save.
 3.  Edit the config file as follows (this can be done via Utilities > Import & Export Configuration):   
 o add feature.contactPhotoIntegration.enabled="0"
 o if the Trio is running software version 5.9.1.11135 or later and Pexip Infinity has been deployed in a secure mode of operation 
(and therefore FIPS compliance has been enabled), you must allow the Trio to use basic authentication:
add feature.exchange.allowBasicAuth="1"
 4.  From Settings > Applications, configure the Poly trio as follows:

© 2022 Pexip AS Version 30.a   October 2022 Page 79 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Field Poly configuration Matching Infinity  Additional info


configuration
Exchange Applications

Exchange  Select Enable.    
Calendar

Auto Discover  Select Disable.   Auto Discover is not supported. 


Using Instead, you should manually configure 
the Exchange Server URL settings.

Exchange Server  Enter    Note that the URL is case-sensitive; in 


URL https://<address>/EWS/Exchange.asmx particular, ensure that EWS and 
Exchange are capitalised as shown.
For <address>:
 o If you have a single Conferencing Node in 
this location, enter the IP Address or 
FQDN of the node.
 o If you have multiple Conferencing Nodes 
in this location, you should use DNS 
round robin; therefore this will be the 
FQDN of the DNS record for this location.
In both cases, the location is the Pexip Infinity 
location associated with the Endpoint Group 
to which this endpoint belongs. 

Exchange Sign-In *

Exchange Email Leave blank.    

Domain Leave blank.   This is the Exchange domain, and is not 


required for One-Touch Join.

User The username the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing  Username configured on 
Node, to obtain meeting information. Pexip Infinity for this 
endpoint.

Password The password the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing  password configured on 
Node, to obtain meeting information. Pexip Infinity for this 
endpoint.

* Available for endpoints running version 5.9.2.7727 or later. For earlier versions, you must have physical access to the endpoint's touch 
screen; use this to log in using the User and Password credentials as described above.

To confirm that the Poly Trio endpoint has registered successfully with the calendaring service:

 1.  On the endpoint, go to Diagnostics > Exchange Status.
 2.  Confirm that Exchange Calendar is showing as Synchronized.

Configuring Poly Trio using Skype for Business base profile
You should only use the Skype for Business base profile if specifically required in your deployment (for example, if you wish to place 
PSTN calls via Skype for Business server); otherwise use the generic base profile.

© 2022 Pexip AS Version 30.a   October 2022 Page 80 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

When the Trio is configured as described below, it will still register with the calendaring service on the Conferencing Node to obtain 
meeting information, but it will also register with Skype for Business and use that to place outbound calls.

 1.  Open the endpoint's web configuration utility at https://<ipaddress>, select Admin, and log in using the admin password.
 2.  From Simple Setup > Base Profile select Skype for Business and then select Save.
 3.  Edit the config file as follows (this can be done via Utilities > Import & Export Configuration):   
 o add feature.exchangeVoiceMail.enabled="0"
 o add exchange.showSeparateAuth="1"
 o add feature.exchangeContacts.enabled="0"
 4.  From Settings > Skype For Business SignIn, configure the Poly trio as follows:
Field Poly configuration Matching Infinity  Additional info
configuration
Skype for Business

Use User  Select Enable.    
Credentials

Authentication  Select User Credentials.    
Type

Sign-in Address The endpoint's Skype for Business address.    

Domain The endpoint's Skype for Business domain.    

User The name the endpoint will use to     
authenticate with Skype for Business.

Password The password the endpoint will use to     
authenticate with Skype for Business.

Microsoft Exchange Server Configuration

Exchange Email The email address of the room resource that  This must be the same as   


is associated with this endpoint. the Exchange target 
mailbox configured on 
the endpoint, and Room 
resource email 
configured on Pexip 
Infinity for this endpoint.

Exchange Domain Leave blank.    

Exchange User The username the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing  Username configured on 
Node, to obtain meeting information. Pexip Infinity for this 
endpoint.

Exchange  The password the endpoint will use when  This must be the same as  This field is case-sensitive.


Password connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing  password configured on 
Node, to obtain meeting information. Pexip Infinity for this 
endpoint.

© 2022 Pexip AS Version 30.a   October 2022 Page 81 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Field Poly configuration Matching Infinity  Additional info


configuration
Exchange Target  The email address of the room resource that  This must be the same as   
Mailbox is associated with this endpoint. the Exchange Email 
configured on the 
endpoint, and Room 
resource email 
configured on Pexip 
Infinity for this endpoint.

 5.  From Settings > Applications, configure the Poly trio as follows:
Field Poly configuration Matching Infinity  Additional info
configuration
Exchange Applications

Exchange  Select Enable.    
Calendar

Auto Discover  Select Disable.   Auto Discover is not supported. 


Instead, you should manually configure 
the Exchange Server URL settings.

Exchange Server  Enter    Note that the URL is case-sensitive; in 


URL https://<address>/EWS/Exchange.asmx particular, ensure that EWS and 
Exchange are capitalised as shown.
For <address>:
 o If you have a single Conferencing Node in 
this location, enter the IP Address or 
FQDN of the node.
 o If you have multiple Conferencing Nodes 
in this location, you should use DNS 
round robin; therefore this will be the 
FQDN of the DNS record for this location.
In both cases, the location is the Pexip Infinity 
location associated with the Endpoint Group 
to which this endpoint belongs. 

To confirm that the Poly Trio endpoint has registered successfully with the calendaring service:
 a.  On the endpoint, go to Diagnostics > Exchange Status.
 b.  Confirm that Exchange Calendar is showing as Synchronized.

Configuring Poly HDX series

To configure the Poly HDX for One-Touch Join, go to the endpoint's IP address. 
From Admin Settings > Global Services > Calendaring Service, enter the following:

Field Poly configuration Matching Infinity  Additional info


configuration
Enable Calendaring  Select this option.    
Service

© 2022 Pexip AS Version 30.a   October 2022 Page 82 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Field Poly configuration Matching Infinity  Additional info


configuration
Microsoft   l If you have a single Conferencing Node in     
Exchange Server  this location, enter the IP Address or FQDN 
Address of the node (in the format 192.168.0.0 or 
host.example.com).
 l If you have multiple Conferencing Nodes in 
this location, you should use DNS round 
robin; therefore this will be the FQDN of 
the DNS record for this location (in the 
format host.example.com).
In both cases, the location is the Pexip Infinity 
location associated with the Endpoint Group to 
which this endpoint belongs. 

Domain Leave blank.   This is the Exchange domain, and is not 


required for One-Touch Join.

User Name The username the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  Username configured on 
to obtain meeting information. Pexip Infinity for this 
endpoint.

Password Select this option. The following two fields will     
appear:

New Password The password the endpoint will use when  This must be the same as  This field is case-sensitive.


Confirm Password connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  password configured on 
to obtain meeting information. Pexip Infinity for this 
endpoint.

Mailbox For Exchange integrations: the email address of  For Exchange   


the room resource configured in Exchange that  integrations, this must be 
is associated with this endpoint. the same as the Room 
resource email configured 
For Google Workspace integrations: the User 
on Pexip Infinity for this 
Name entered above.
endpoint.

Reminder Time in  Optional   Can still be used in conjunction with 


Minutes One-Touch Join.

Play Reminder  Optional   Can still be used in conjunction with 


Tone One-Touch Join.

Show Private  Optional   Enable private meetings must be 


Meeting  enabled on the One-Touch Join Profile 
Information  associated with this endpoint in order 
for this setting to apply.

If Enable private meetings has been 
disabled on the One-Touch Join Profile, 
this setting will have no effect.

To confirm that the Poly HDX endpoint has registered successfully with the calendaring service:

© 2022 Pexip AS Version 30.a   October 2022 Page 83 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

 1.  On the endpoint, go to Admin Settings > Global Services > Calendaring Service.
 2.  Confirm that there is a green tick next to Enable Calendaring Service.

Configuring Poly Studio X series and Poly G7500 series

To configure the Poly Studio or Poly G7500 for One-Touch Join, go to the endpoint's IP address and sign in to the endpoint if required.
From Servers > Calendaring Service, enter the following:

Field Poly configuration Matching Infinity  Additional info


configuration
Enable Calendaring  Select this option.    
Service

Email The email address of the room resource  This must be the same as   


configured in Exchange or Google Workspace  the Room resource email 
that is associated with this endpoint. configured on Pexip 
Infinity for this endpoint.

Domain Leave blank.   This is the Exchange domain, and is not 


required for One-Touch Join.

User Name The username the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  Username configured on 
to obtain meeting information. Pexip Infinity for this 
endpoint.

Password The password the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  password configured on 
to obtain meeting information. Pexip Infinity for this 
endpoint.

Microsoft   l If you have a single Conferencing Node in     
Exchange Server this location, enter the IP Address or FQDN 
of the node (in the format 192.168.0.0 or 
host.example.com).
 l If you have multiple Conferencing Nodes in 
this location, you should use DNS round 
robin; therefore this will be the FQDN of 
the DNS record for this location (in the 
format host.example.com).
In both cases, the location is the Pexip Infinity 
location associated with the Endpoint Group to 
which this endpoint belongs. 

Meeting Reminder  Optional   Can still be used in conjunction with 


Time in Minutes One-Touch Join.

Play Reminder  Optional   Can still be used in conjunction with 


Tone When Not in  One-Touch Join.
a Call

© 2022 Pexip AS Version 30.a   October 2022 Page 84 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

Field Poly configuration Matching Infinity  Additional info


configuration
Show Information  Optional   Enable private meetings must be 
for Meetings set to  enabled on the One-Touch Join Profile 
Private associated with this endpoint in order 
for this setting to apply.

If Enable private meetings has been 
disabled on the One-Touch Join Profile, 
this setting will have no effect.

To confirm that the Poly Studio / Poly G7500 endpoint has registered successfully with the calendaring service:

 1.  On the endpoint, go to Servers > Calendaring Service.
 2.  Confirm that the Registration Status is showing as Registered.

Configuring Poly Debut series

To configure the Poly Debut for One-Touch Join, from Server Settings > Calendar, enter the following:

Field Poly configuration Matching Infinity  Additional info


configuration
Enable Calendar Select Enable.    

Microsoft   l If you have a single Conferencing Node in     
Exchange Server this location, enter the IP Address or FQDN 
of the node (in the format 192.168.0.0 or 
host.example.com).
 l If you have multiple Conferencing Nodes in 
this location, you should use DNS round 
robin; therefore this will be the FQDN of 
the DNS record for this location (in the 
format host.example.com).
In both cases, the location is the Pexip Infinity 
location associated with the Endpoint Group to 
which this endpoint belongs. 

Domain Leave blank.   This is the Exchange domain, and is not 


required for One-Touch Join.

User Name The username the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  Username configured on 
to obtain meeting information. Pexip Infinity for this 
endpoint.   

Password The password the endpoint will use when  This must be the same as  This field is case-sensitive.


connecting and authenticating to the  the Poly Calendaring 
calendaring service on the Conferencing Node,  password configured on 
to obtain meeting information. Pexip Infinity for this 
endpoint.

To confirm that the Poly Debut endpoint has registered successfully with the calendaring service:

© 2022 Pexip AS Version 30.a   October 2022 Page 85 of 119


Pexip One-Touch Join Deployment Guide Configuring endpoints to support One-Touch Join

 1.  On the endpoint, go to the Device Status page. 
 2.  In the Calendar row of the table, check that the Status is showing as Registered.

© 2022 Pexip AS Version 30.a   October 2022 Page 86 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join meeting types and transforms

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:
 l sip:<uri>
 l sips:<uri>
 l 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  {{meeting_id}}@{{domain}}  l meeting_id


for Exchange feature, and which use the default   l domain
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.

Pexip Service For meetings held in Pexip Service VMRs. {{meeting_id}}@pexip.me  l meeting_id

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

© 2022 Pexip AS Version 30.a   October 2022 Page 87 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join meeting types and transforms

Meeting type Usage and notes Default transform pattern Valid variables


(if not using 
default transform)

Microsoft Teams Meeting  (Not currently supported for Google Workspace  {{meeting_id}}@{{domain}}  l meeting_id


Properties integrations)  l domain
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.

Microsoft Teams Meeting  If you expect users in your deployment to receive  {{prefix}}{{meeting_id}}@  l meeting_id


Body for Pexip Infinity invitations to Microsoft Teams meetings sent from  {{domain}}  l domain
domains other than your own, where the meeting   l prefix
organizer is using a Pexip Infinity — Teams integration.

Microsoft Teams Meeting  If you expect users in your deployment to receive  {{meeting_id}}@{{domain}}  l meeting_id


Body for Pexip Service invitations to Microsoft Teams meetings sent from   l domain
domains other than your own, where the meeting 
organizer is using a Pexip Service — Teams integration.

Microsoft Teams Meeting  If you expect users in your deployment to receive  {{tenant_id}}.{{meeting_  l meeting_id


Body for Poly invitations to Microsoft Teams meetings sent from  id}}@t.plcm.vc  l domain
domains other than your own, where the meeting   l tenant_id
organizer is using a Poly — Teams integration.

By default, the resulting alias will use the domain 
t.plcm.vc

Microsoft Teams Meeting  If you expect users in your deployment to receive  {{tenant_id}}.{{meeting_  l meeting_id


Body for BlueJeans invitations to Microsoft Teams meetings sent from  id}}@teams.bjn.vc  l domain
domains other than your own, where the meeting   l tenant_id
organizer is using a BlueJeans — Teams integration.

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

Microsoft Teams Meeting  If you expect users in your deployment to receive  {{conf_id}}.{{tenant_key}}@  l conf_id


Body for Cisco invitations to Microsoft Teams meetings sent from  {{domain}}  l tenant_key
domains other than your own, where the meeting   l domain
organizer is using a Cisco — Teams integration.

Google Meet For meetings scheduled using Google Meet. {{meeting_id}}@{{domain}}  l meeting_id

This is supported in Google Workspace integrations,   l domain
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.

© 2022 Pexip AS Version 30.a   October 2022 Page 88 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join meeting types and transforms

Meeting type Usage and notes Default transform pattern Valid variables


(if not using 
default transform)

Skype for Business For Skype for Business meetings. __sfb__{{focus_id}}.{{user}}@  l focus_id


{{domain}}  l domain
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):
 l Destination alias regex match:
__sfb__([a-z0-9]+)\.([a-z\.\-]+)@(example\.com)

 l Regex replace string:
sip:\2@\3;gruu;opaque=app:conf:focus:id:\1

 l Call target:

Lync / Skype for Business clients, or meetings via


a Virtual Reception

Skype for Business  For Skype for Business meetings, where the meeting  {{tenant_id}}.{{meeting_  l meeting_id


Meeting Body for Poly organizer is using a SfB — Poly integration. id}}@v.plcm.vc  l domain
By default, the resulting alias will use the domain   l tenant_id
v.plcm.vc

Webex For Webex meetings. {{meeting_id}}@{{domain}}  l meeting_id


 l domain

Zoom For Zoom meetings. {{meeting_id}}@zoomcrc.com  l meeting_id

By default, the resulting alias will use the domain  {{meeting_id}}.  l domain


zoomcrc.com {{pin}}@zoomcrc.com  l pin

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

BlueJeans For BlueJeans meetings. {{meeting_id}}@bjn.vc  l meeting_id

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

GoToMeeting For GoToMeeting meetings. {{meeting_id}}@{{domain}}  l meeting_id


 l domain

© 2022 Pexip AS Version 30.a   October 2022 Page 89 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join meeting types and transforms

Meeting type Usage and notes Default transform pattern Valid variables


(if not using 
default transform)

Domain If you expect users in your deployment to receive  {{meeting_id}}@{{domain}}  l meeting_id


invitations for meetings that do not fall into any of the   l domain
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.

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:
 l select Default processing enabled to use the matched string as the alias that the endpoint will dial to join the meeting, or
 l 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 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

© 2022 Pexip AS Version 30.a   October 2022 Page 90 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join meeting types and transforms

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 dictionary Properties:

end_time  l year
 l month
 l day
 l hour
 l minute
 l second

is_private boolean  

body string  

location string  

© 2022 Pexip AS Version 30.a   October 2022 Page 91 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join meeting types and transforms

Item Type Additional information

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:
 l item_class (string): for options, see https://docs.microsoft.com/en-
gb/office/vba/outlook/Concepts/Forms/item-types-and-message-classes
 l sensitivity (string): for options, see https://docs.microsoft.com/en-
us/dotnet/api/microsoft.exchange.webservices.data.sensitivity?view=exchange-ews-
api
 l is_recurring (boolean): True if the meeting is part of a recurring series, otherwise 
False.
 l calendar_item_type (string): for options, see https://docs.microsoft.com/en-
us/exchange/client-developer/web-service-reference/calendaritemtype#text-value
 l teams_vtc_conference_id: available for Teams meetings only.
 l online_meeting_conf_link: available for Skype for Business meetings only.
 l uc_capabilities: available for WebEx meetings only.

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.

© 2022 Pexip AS Version 30.a   October 2022 Page 92 of 119


Pexip One-Touch Join Deployment Guide One-Touch Join meeting types and transforms

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:
 l Safe Links in Microsoft Defender for Office 365, which start with something like
https://nam06.safelinks.protection.outlook.com/?url=https

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

© 2022 Pexip AS Version 30.a   October 2022 Page 93 of 119


Pexip One-Touch Join Deployment Guide Deploying a dedicated One-Touch Join platform

Deploying a dedicated One-Touch Join platform
In most cases, One-Touch Join will be implemented as a feature within a wider Pexip Infinity deployment, and run on Conferencing 
Nodes alongside other Pexip Infinity services. However, you can also set up separate OTJ locations within your deployment that contain 
Conferencing Nodes used solely for One-Touch Join. A third option appropriate in some situations is to implement a separate Pexip 
Infinity deployment purely for One-Touch Join, for example if you are a Pexip Service customer wishing to use One-Touch Join, or you 
are a large enterprise wishing to separate the resources used for your One-Touch Join deployment.
If you are implementing a dedicated One-Touch Join deployment alongside but separate from a Pexip Infinity deployment, they do not 
need to be running the same software version, as there is no interaction between the two deployments. This means that existing Pexip 
Infinity environments can implement a dedicated One-Touch Join deployment without having to upgrade their existing software.

Minimum hardware requirements
A dedicated One-Touch Join deployment consists of one Management Node and at least one Conferencing Node. Further Conferencing 
Nodes can be deployed for redundancy.
For dedicated One-Touch Join-only deployments, the resource requirements are minimal, therefore you may use the minimum server 
specifications outlined below. However, if you expect to broaden your deployment to implement some of the wider Pexip Infinity 
features in the future, you will need to increase the specifications of your hardware.

On-premises deployments
When setting up a dedicated One-Touch Join deployment using servers in your own datacenters, we recommend the following as a 
minimum:
 l Management Node:   
 o 4 cores
 o 4 GB RAM
 o AVX or later processor
 o 100 GB SSD storage
 o The Pexip Infinity VMs are delivered as VM images (.ova etc.) to be run directly on the hypervisor. No OS should be installed.
 l Conferencing Nodes:
 o 4 cores
 o 4 GB RAM
 o AVX or later processor
 o 50 GB SSD storage per Conferencing Node, 500 GB total per server (to allow for snapshots etc.)
 o The Pexip Infinity VMs are delivered as VM images (.ova etc.) to be run directly on the hypervisor. No OS should be installed.

For more information, see server design guidelines.

Cloud deployments
When setting up a dedicated One-Touch Join deployment using a cloud service, you can generally use the same sized server for the 
Conferencing Node(s) as you do for the Management Node. We therefore recommend the following as a minimum:

GCP
 l Management Node: a machine type with 4 vCPUs (n1-standard-4) or larger
 l Conferencing Node: a machine type with 4 vCPUs (n1-standard-4) or larger

AWS
 l Management Node: an m5.xlarge instance
 l Conferencing Node: an m5.xlarge instance

© 2022 Pexip AS Version 30.a   October 2022 Page 94 of 119


Pexip One-Touch Join Deployment Guide Deploying a dedicated One-Touch Join platform

Azure
 l Management Node: an F4s v2 instance
 l Conferencing Node: an F4s v2 instance

Minimum Pexip Infinity platform configuration
You must ensure the following components of the Pexip Infinity platform are configured and working appropriately:
 l DNS servers
 l NTP servers
 l Locations (note that you do not need to configure any media overflow locations, as this concept is not used by One-Touch Join).
 l Licenses: you will need an OTJ license for each endpoint that will use the One-Touch Join feature.
 l Custom CA certificates: only required if you are using One-Touch Join with Exchange on-premises, and your Exchange server does 
not use a globally trusted certificate.

Call Routing Rules are not required on the dedicated One-Touch Join deployment, because these deployments do not handle any calls. 
However, you must ensure that your call control system is configured so that calls being placed by the endpoints to each of the 
supported meeting types can be routed appropriately.

One-Touch Join configuration
The process of configuring One-Touch Join in a dedicated environment is the same as when configuring it as part of a wider Pexip 
Infinity deployment, namely:

 1.  Configuring your calendar/email service:   
 o Configure Google Workspace for One-Touch Join, including Adding a One-Touch Join Google Workspace integration on Pexip 
Infinity, or
 o Configure Exchange on-premises for One-Touch Join, including Adding a One-Touch Join Exchange integration on Pexip 
Infinity, or
 o Configure Office 365 for One-Touch Join, including Adding a One-Touch Join Exchange integration on Pexip Infinity
 2.  Adding a One-Touch Join profile
 3.  Adding One-Touch Join endpoint groups
 4.  Adding One-Touch Join endpoints
 5.  Adding One-Touch Join meeting processing rules

For more information, see Configuring Pexip Infinity for One-Touch Join

© 2022 Pexip AS Version 30.a   October 2022 Page 95 of 119


Pexip One-Touch Join Deployment Guide Scheduling and joining meetings using One-Touch Join

Scheduling and joining meetings using One-Touch Join

Using One-Touch Join in meeting rooms
When the One-Touch Join feature has been enabled for meeting rooms in your environment, you don't need to do anything special in 
order to use it — everything will happen automatically:

 1.  You or the meeting organizer create a meeting invitation in Outlook, Google calendar, or via the Teams client in your usual way. 
This includes any invitations that are created by using add-in buttons, for example for Pexip scheduled meetings or for Webex. 
 2.  Add the meeting room to the invitation as a room resource.   
 3.  Each endpoint in each meeting room will display a list of scheduled meetings for that room. When a meeting is due to start, the 
endpoint in the meeting room will show a Join or Join meeting button.
 4.  When you are ready to join the meeting, just press the Join button. The endpoint will dial in to the meeting.

Using One-Touch Join with your personal endpoint
If you have a personal videoconferencing endpoint that supports One-Touch Join, you may be able to link this with your own calendar, 
so that you can use One-Touch Join on the endpoint to join any meetings to which you are invited. This will depend on your 
organization's policies and network, so you'll need to contact your system administrator to see if this is possible.

© 2022 Pexip AS Version 30.a   October 2022 Page 96 of 119


Pexip One-Touch Join Deployment Guide Viewing One-Touch Join status

Viewing One-Touch Join status
You can check the status of your One-Touch Join deployment by viewing a list of all currently scheduled One-Touch Join meetings, and 
by viewing a list of all endpoints enabled for One-Touch Join.

Viewing One-Touch Join meetings
To view a list of all currently scheduled meetings that use Pexip Infinity's One-Touch Join feature in your deployment, go to Status > 
One-touch Join Meetings. 
This page lists all One-Touch Join meetings with a start time from one day in the past up to the number of days in the future specified 
by the associated One-Touch Join profile's No. of upcoming days setting. For recurring meetings, this page will list only those 
recurrences of the meeting that fall within this timeframe.
This information is updated each time the OTJ process runs. The OTJ process obtains meeting information by reading the room 
resources' calendars, and then processing the information based on the currently configured OTJ profile settings and meeting 
processing rules. This means that any changes to room resources' calendars (e.g. adding meetings, canceling meetings, or changing the 
meeting information), or any changes to the way the meeting information is processed (e.g. changes to the OTJ profile settings, or to 
meeting processing rules) will be reflected in the status after the OTJ process next runs. This could be between 30 seconds and many 
minutes, depending on the number of OTJ rooms in your deployment. 
To view full details about a meeting, click on the meeting subject. The following information is available for each meeting:

Field Description

Meeting subject The text that appears in the subject line of the meeting invitation. 

This field will show the organizer's name instead of the meeting subject if:
 l Replace subject is set to Always, and the and the Replace subject string is empty, or
 l Replace subject is set to Private, the meeting was flagged as private, and the Replace subject string is 
empty, or
 l Replace empty subject has been enabled and there was no subject.

Organizer name * The name of the person who created the meeting invitation.

Organizer email The email address of the person who created the meeting invitation.

Start time The scheduled start time of the meeting. This does not include the Start buffer.

End time The scheduled end time of the meeting. This does not include the End buffer.

Endpoint name The name of the endpoint, as configured in Pexip Infinity.

OTJ Profile name The name of the OTJ profile used when processing this meeting.

Meeting alias The alias that the endpoint will use to dial in to the meeting.

This will be blank if either:
 l Process alias for private meetings has been disabled and the meeting was flagged as private, or
 l Enable non-video meetings has been enabled, but OTJ was not able to obtain a valid alias for the 
meeting.

Meeting room email * The email address of the room resource in whose calendar the meeting has been scheduled.

Matched meeting  The name of the meeting processing rule that was matched and used to process this meeting.
processing rule *
This will be blank if the meeting information did not match any meeting processing rules, and Enable non-
video meetings has been enabled.

* Only displayed when you have selected an individual OTJ meeting to view.

© 2022 Pexip AS Version 30.a   October 2022 Page 97 of 119


Pexip One-Touch Join Deployment Guide Viewing One-Touch Join status

Viewing One-Touch Join endpoints
To view a list of all endpoints in your deployment that are actively available for use by Pexip Infinity's One-Touch Join feature, go to 
Status > One-touch Join Endpoints. 
This page lists all Cisco/Webex endpoints that One-Touch Join has successfully contacted, and all Poly endpoints that have successfully 
contacted One-Touch Join. For both, it lists the date and time of the most recent contact.
Cisco and Webex endpoints are contacted once an hour, or sooner if the OTJ process detects a change in the room resource's calendar 
when it next runs. Poly endpoints make contact at least every 5 minutes.
To view full details about an endpoint, click on the endpoint name. The following information is available for each endpoint:

Field Description

Endpoint name The name of the endpoint, as configured in Pexip Infinity.

Endpoint type The type of "click to join" feature supported by this endpoint.

Endpoint address The IP address of the endpoint.

Meeting room email The email address of the room resource associated with this endpoint.

OTJ Profile name The name of the OTJ profile used when processing this meeting.

Current node * The IP address and name of the Conferencing Node that last had contact with the endpoint.

Last contacted The date and time that contact was last made with the endpoint.

Number of meetings * The number of currently scheduled One-Touch Join meetings that will use this endpoint.

* Only displayed when you have selected an individual OTJ meeting to view.

© 2022 Pexip AS Version 30.a   October 2022 Page 98 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

Configuring Google Workspace for domain user authorization
This topic describes an alternative method to configuring Google Workspace for One-Touch Join in environments where the 
recommended method of using a service account for authorization is not desirable. This alternative method uses a domain user for 
authorization (referred to as the "authorization user"), which authenticates to Google Workspace using 3-legged OAuth.
The process involves the following steps, described in more detail in the sections that follow:

 1.  Setting up OAuth authentication for One-Touch Join.
 2.  Creating a room resource for each physical room that will have a One-Touch Join endpoint in it. 
 3.  Configuring the room resource with the necessary permissions and settings to support One-Touch Join. 
 4.  Updating the quota for the number of user requests per 100 seconds.
 5.  For larger deployments, Requesting an increase to API limits.
 6.  Adding a One-Touch Join Google Workspace integration on Pexip Infinity.

If you have already set up a One-Touch Join Google Workspace integration and simply wish to add an existing room to it, you need 
only configure the room resource in Google Workspace and then add the endpoint to the Google Workspace integration in Pexip 
Infinity.

Prerequisites
You must have already created a user account specifically to be used as the Google Workspace authorization user. This user account 
does not need to have any special privileges; as part of the configuration described below you will grant this user access to all the One-
Touch Join room resource calendars.

Enabling authorization using OAuth
In this step you create a project to use for One-Touch Join. You then enable the Calendar API for this project, and create the OAuth 
credentials to be used when One-Touch Join accesses the API as the authorization user.

 1.  Creating a new project:
 a.  Go to https://console.developers.google.com (logged in as a Google Workspace administrator).
 b.  From the top left of the page, select the down arrow:

 c.  Select New Project.
 d.  Enter a Project name (e.g. One-Touch Join) and select Create.
 2.  Enabling the Calendar API for the project:   
 a.  Go to https://console.developers.google.com
 b.  From the top left of the page, select the down arrow, select your newly-created project, and select Open. Your new project 
should now be showing at the top left of the page:

 c.  From the navigation menu on the left of the screen, select APIs & Services > Library, then scroll down and select the Google 
Calendar API tile:

© 2022 Pexip AS Version 30.a   October 2022 Page 99 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 d.  Select Enable:

 3.  Creating an OAuth consent screen:
 a.  From https://console.developers.google.com, from the left-hand panel select OAuth consent screen. Select a User Type of 
Internal and then select Create:

 b.  From the OAuth consent screen page:
 n under Application name, enter a name for your OTJ application
 n under Authorized domains, enter the domain of the Management Node.

© 2022 Pexip AS Version 30.a   October 2022 Page 100 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

Select Save:

 4.  Creating the OAuth credentials:
 a.  From https://console.developers.google.com, from the left-hand panel select Credentials and then select Create Credentials 
> OAuth client ID:

© 2022 Pexip AS Version 30.a   October 2022 Page 101 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 b.  From the Create OAuth client ID page:, select an Application type of Web application. 


 n Enter a Name for the application
 n under Authorized redirect URIs, enter https://<Management Node 
FQDN>/admin/platform/mjxgoogledeployment/oauth_redirect/
This must use the Management Node's FQDN; it cannot use its IP address. You must therefore ensure you have 
appropriate internal DNS records set up for the Management Node.
The OAuth Redirect URI is the page on the Pexip Infinity Administrator interface to which the administrator will be 
returned after they have successfully signed in to the Google Workspace integration. Because it is a page on the 
Management Node, this URI is internal to your deployment and only needs to be accessible from the administrator's 
web browser; you do not need to make it externally accessible.
Select Create:

© 2022 Pexip AS Version 30.a   October 2022 Page 102 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 c.  The following OAuth client created screen will appear. Take note of the Your Client ID and Your Client secret; you will need 
these when Adding a One-Touch Join Google Workspace integration on Pexip Infinity on the Management Node:

Creating a room resource
(Required only if your room resources do not already exist - otherwise you can skip this step.)

© 2022 Pexip AS Version 30.a   October 2022 Page 103 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

In this step, you create a room resource in Google Workspace for each physical room that is to be used for One-Touch Join. Google 
Workspace will automatically assign an email address to the room.

 1.  If a building for the room resource does not already exist, create one as follows:
 a.  Go to https://admin.google.com (logged in as a Google Workspace administrator).
 b.  Select the Buildings and resources tile, and then from the Resource management section select Open:

From the drop-down along the top left of the screen, select Buildings:

 c.  Select + to Add new building:

© 2022 Pexip AS Version 30.a   October 2022 Page 104 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 d.  Enter a Name and the list of Floors, and select Add Building.
 2.  Create the room resource:
 a.  Go back to the Resources page and Select + to Add new resource:

 b.  For the Category, select Meeting space (room, phone booth,...).

© 2022 Pexip AS Version 30.a   October 2022 Page 105 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 c.  Select the Building  and Floor in which the room is located, enter a Name and the room's Capacity, then select Add Resource:

The resource will be created and added to the list. You can click on the new resource to view information about it, such as the email 
address it was automatically assigned.
For more information on setting up buildings and other resources in Google Workspace, including how to add buildings and 
resource in bulk and using CSV imports, see https://support.google.com/a/answer/1033925.

Configuring the room resource
In these steps, you allow the authorization user to access each calendar of each room resource that you want to use for One-Touch 
Join, and set the calendar to auto-accept invitations. We also recommend that you make the calendar available to all users in your 
domain in such a way that allows them to book meetings using the resource, without being able to view the details of any other 
meetings in the resource's calendar.

Sharing individual calendars with the authorization user
Note that the Google calendar API limits the number of calendars that can be shared within a 24 hour period to 750 (for more 
information, see https://support.google.com/a/answer/2905486?hl=en). This means that if you have more than 750 room resources 
that you wish to use for One-Touch Join, they will need to be set up over a period of days.
To share calendars with the authorization user:

 1.  Go to https://calendar.google.com (logged in as a Google Workspace administrator so that you have permission to share the 
calendars).
 2.  From the left-hand panel, select the + next to Other calendars and then select Browse resources.

© 2022 Pexip AS Version 30.a   October 2022 Page 106 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 3.  Expand the sections if necessary, and tick the boxes of all the room resources whose calendars you want to share with the 
authorization user. 
This will add the room resources to the Settings for other calendars section in the left-hand panel.
 4.  For each of the rooms:
 a.  From the Settings for my calendars section, select the room resource and then select Share with specific people.
 b.  Select Add people.
 c.  In the Share with specific people dialog, enter the email address of the One-Touch Join authorization user. Ensure the 
Permissions are set to either:
 n Make changes to events (if you want users to be able to use OTJ to join all meetings, including private meetings, from 
this endpoint)
 n See all event details (if you don't want to offer OTJ for private meetings on this endpoint).
If your deployment includes personal endpoints that are associated with a user's personal calendar, then either you or the 
end user will need to ensure that their calendar allows the One-Touch Join authorization user to Make changes to events if 
they wish to use OTJ to join their own private meetings from their endpoint.

For more information on sharing room and resource calendars in Google Workspace, see 
https://support.google.com/a/answer/1034381.

Auto-accepting invitations
By default, when creating room resources in Google Workspace, calendar processing is set to Auto-accept invitations that do not 
conflict. You must ensure you keep this setting for all room resources, so that the room will automatically accept meeting requests if it 
is available, and automatically decline an invitation if it is already booked.
To check this setting:

 1.  Go to https://calendar.google.com (logged in as a Google Workspace administrator so that you have permission to share the 
calendars).
 2.  From the left-hand panel, select the room resource and select Settings and sharing. 

© 2022 Pexip AS Version 30.a   October 2022 Page 107 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 3.  In the Auto-accept invitations section, ensure that Auto-accept invitations that do not conflict is selected:

Allowing users to book resources
We recommend that you configure your Google Workspace calendar settings to allow end users to book a room resource without 
seeing details of the room's other bookings. To do this, you configure the room resource's calendar so that all users in your domain 
have permission to see its free/busy status, without being able to see the invitation details. You then on a global basis permit users to 
book resources to which they have free/busy access.
To do this:

 1.  Go to https://calendar.google.com (logged in as a Google Workspace administrator so that you have permission to share the 
calendars).
 2.  From the left-hand panel, select the room resource and select Settings and sharing. 
 3.  In the Access permissions section, select Make available for <your domain>, and ensure that See only free/busy (hide details) is 
selected:

© 2022 Pexip AS Version 30.a   October 2022 Page 108 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 4.  Go to admin.google.com (logged in as a Google Workspace administrator).
 5.  From the left-hand menu, select Apps > Google Workspace > Calendar.
 6.  Scroll down to General Settings and select Resource Booking Permissions.
 7.  Ensure that Allow users to book resources that are shared as See only free/busy is set to ON:

Updating the per-user request quota
In this step you increase the limit on the number of queries per 100 seconds per user to the Google Calendar API.

© 2022 Pexip AS Version 30.a   October 2022 Page 109 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

The default number of queries per 100 seconds per user is 500. In this context, the "user" is the authorization user. In deployments 
with fewer than around 180 rooms, each room resource calendar is queried every 30 seconds by two conferencing nodes (both using 
the same authorization user account), resulting in 5,760 queries per room per day. (In larger deployments, room resource calendars 
are queried less frequently.)
We recommend that you increase the number of queries per 100 seconds per user to 10,000 to provide sufficient processing overhead 
and room for expansion (there is currently no additional cost to this increase).
To increase this quota to 10,000:

 1.  Go to https://console.developers.google.com (logged in as a Google Workspace administrator).
 2.  From the top left of the page, select the project you created for One-Touch Join:

 3.  From the navigation menu at the top left of the page, select IAM & Admin > Quotas.
 4.  From the Quotas page, select Edit Quotas and then select Google Calendar API - Queries per 100 seconds per user.
You will be taken to the Google Calendar API > Quotas page.
 5.  Change Queries per 100 seconds per user to 10,000:

You may also need to request an increase to the number of Queries per day for larger deployments - for more information, 
see Requesting an increase to API limits.

Requesting an increase to API limits
This optional step applies to larger deployments only (more than around 170 room resources), and should be performed if you wish to 
reduce the amount of time taken for endpoints to be updated with additions or changes to their corresponding room resource 
calendar.
The maximum frequency with which an endpoint will be updated with meeting information is every 30 seconds. For deployments with 
more than around 170 endpoints, this frequency will decrease in line with the number of endpoints (up to around 20 minutes for 
deployments with around 6,000 endpoints). This is due to a limit on the number of Calendar API requests permitted by Google in a 24-
hour period — for more information, see https://developers.google.com/calendar/pricing.
To reduce the time taken to update endpoints in these larger deployments, you can request an increase to the number of Calendar API 
requests One-Touch Join can make.

© 2022 Pexip AS Version 30.a   October 2022 Page 110 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

When your request has been implemented by Google, you must then increase the Maximum Google Workspace API requests on 
Pexip Infinity in order to take advantage of the increase.
To request an increase to the API limits:

 1.  If you do not already have one, create a Cloud Billing Account (note that this is different from a Google Workspace billing account). 
Full instructions are available via https://cloud.google.com/billing/docs/how-to/manage-billing-account#create_a_new_billing_
account.
 2.  Link the Cloud Billing Account to the project you created when Creating a service account:
 a.  Go to https://console.developers.google.com (logged in as a Google Workspace administrator).
 b.  Ensure that the project shown in the top left corner is the one you created for One-Touch Join when Creating a service 
account.
 c.  Select the burger menu from the top left of the page and select Billing. When the following message appears, select Link a 
billing account:

 d.  Select the account to link to:

 3.  Request an increase to your quota:
 a.  From the navigation menu at the top left of the page, select IAM & admin > Quotas. 
 b.  From the Quotas page, select Edit Quotas and then select Google Calendar API.
In the panel that appears on the right, enter the New quota limit that you wish to request, and in the Request description 
field, enter the reason for requesting the increase:

© 2022 Pexip AS Version 30.a   October 2022 Page 111 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 c.  Select Submit request.

Quota increase requests typically take two business days to process.

Adding a One-Touch Join Google Workspace integration on Pexip Infinity
In this step you configure Pexip Infinity with details of the Google Workspace deployment configured above. You must then log in to 
Google Workspace as the authorization user and grant the One-Touch Join app access to the room resource calendars.

Configuring the Google Workspace integration
From the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Google Workspace Integrations.

Option Description

Name The name of this One-Touch JoinGoogle Workspace integration.

Description An optional description of this One-Touch JoinGoogle Workspace integration. 

Account email If you are authorizing using a service account, enter the email address of the service account that One-Touch Join will 
use to log in to Google Workspace. 

If you are authorizing using a Google Workspace domain user, enter the email address of the user.

Enable user  If you are authorizing using a service account — the recommended method — this should be left blank.
authorization
Select this option only if you will be authorizing using a Google Workspace domain user.

Client ID (Available when user consent authorization has been enabled)

The client ID of the application you created in the Google API Console, for use by OTJ.

Client secret (Available when user consent authorization has been enabled)

The client secret of the application you created in the Google API Console, for use by OTJ.

Redirect URI (Available when user consent authorization has been enabled)

The redirect URI you configured in the Google API Console. It must be in the format:
https://<Management Node FQDN>/admin/platform/mjxgoogledeployment/oauth_redirect/

This must use the Management Node's FQDN; it cannot use its IP address. You must therefore ensure you have 
appropriate internal DNS records set up for the Management Node.

Advanced options

© 2022 Pexip AS Version 30.a   October 2022 Page 112 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

Option Description

Maximum Google  The maximum number of API requests that can be made by One-Touch Join to your Google Workspace Domain in a 24-
Workspace API  hour period.
requests
We recommend you set this value to 90% of your total permitted requests. Google's default is 1,000,000 so by default 
this is set to 900,000 on Pexip Infinity. If you increase the number of API requests, you should also increase this setting 
to 90% of that number.

For more information, see Frequency and limitations on calendar requests.

Google OAuth 2.0  The URI of the Google OAuth 2.0 endpoint. 
endpoint

Google  The URI of the Google authorization server.
authorization 
server

When you have completed the above fields, select Save. You will be returned to the main OTJ Google Workspace Integration page. You 
must now authorize calendar API access to the Google Workspace Integration using the account details you have just created, using 
the following steps.

Authorizing calendar access
If you have enabled OAuth for the first time, after saving the configuration of the One-Touch Join Google Workspace integration you 
must sign in to Google Workspace as the authorization user. 
You may also need to re-sign in to the authorization user account if:
 l you disable and then subsequently re-enable OAuth
 l you update any of the following configuration for the One-Touch Join Google Workspace integration:
 o Account email
 o Client ID
 o Client secret
 o Google OAuth 2.0 endpoint 
 o Google authorization server
 l the refresh token has expired (for more information about when this might happen, see 
https://developers.google.com/identity/protocols/oauth2#expiration).

To sign in to Google Workspace as the authorization user:

 1.  Ensure you have signed out of all Google accounts on your device.
 2.  From the Management Node, go to One-touch Join > OTJ Google Workspace Integrations and select the Google Workspace 
integration you have just created. At the bottom of the Change OTJ Google Workspace Integration page, select Authorize 
calendar API access:

© 2022 Pexip AS Version 30.a   October 2022 Page 113 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

 3.  You will be taken to the Authorize Calendar API access page. Select Authorize:

 4.  Enter the email address of the authorization user (which you previously entered as the Account email) and sign in.
 5.  At the consent screen, Allow the Pexip OTJ app to View your calendars:

© 2022 Pexip AS Version 30.a   October 2022 Page 114 of 119


Pexip One-Touch Join Deployment Guide Configuring Google Workspace for domain user authorization

You should be returned to the Authorize Calendar API access page and see the message Successfully authorized.

Next steps
You must now configure the remainder of the One-Touch Join components on Pexip Infinity, as described in Configuring Pexip Infinity 
for One-Touch Join.

© 2022 Pexip AS Version 30.a   October 2022 Page 115 of 119


Pexip One-Touch Join Deployment Guide Troubleshooting One-Touch Join

Troubleshooting One-Touch Join
This section provides guidance on troubleshooting issues with Pexip Infinity's One-Touch Join feature, including issues specific to Cisco 
or Poly endpoints.
For guidance on the troubleshooting of general issues, see Troubleshooting the Pexip Infinity platform.

Symptom Possible cause Resolution

One-Touch Join issues

A meeting has been scheduled and is  One-Touch Join has not been able to obtain a  Review the meeting processing rules.


showing on the room endpoint, but  meeting room alias from the invitation because 
there is no Join button. it does not match a meeting processing rule 
and does not contain a URI or address prefixed 
with sip:, sips: or h323:.

The meeting processing rule that you expected   1.  Check that the OTJ Endpoint has been 


to match is associated with a different OTJ  associated with an OTJ Endpoint Group.
profile than the endpoint. For example, the   2.  Check that the OTJ Endpoint Group is 
endpoint has an Exchange email address and is  associated with the same OTJ Profile as 
associated with an Exchange integration, but  the Meeting Processing Rule that you 
the rule that the meeting matches is associated  expected to match.
with a Google Workspace integration, or vice 
versa.

The meeting is not a video meeting. If you do not want non-video meetings to 
appear on the room endpoint, you can disable 
the Enable non-video meetings option.

One-Touch Join has not been able to obtain a   l Modify your Safe Links policy using the "Do 
meeting room alias because the URL in the  not rewrite the following URLs" list so that 
invitation has been rewritten for security  URLs in meeting invitations sent to OTJ 
reasons (for example, by Safe Links in Microsoft  room resources are not rewritten.
Defender for Office 365, or Proofpoint's URL   l Add a custom rule to match the rewritten 
Defense) and therefore does not match the  URLs. See Extracting an alias from a URL 
default rule. that has been rewritten for security for an 
example.

The meeting was scheduled using the  This is due to a known issue with the 
Microsoft Teams plugin for Google Workspace. Microsoft Teams plugin for Google Workspace 
whereby it does not include the required CVI 
information in the meeting body.

A meeting has been scheduled and is  The endpoint is being managed by Webex  Ensure that any endpoints used for One-Touch 


showing on the room endpoint, but  Cloud Calendar or TMS XE, and these systems  Join are not also registered to the calendaring 
either there is no Join button, or the  are overriding the meeting information from  service on other systems such as the cloud-
Join button appeared and then  One-Touch Join. based Webex Hybrid Calendar Service, or Cisco 
disappeared. TMS XE.

Meetings are being deleted from an  There is a known bug (CSCvv93408) with TMS  Ensure that the following configuration for the 


endpoint that is managed by TMS,  version 15.9 and later whereby TMS will  endpoint has been made in TMS:
without TMS XE. erroneously replace meetings that have been   l Disable Allow booking for the endpoint
pushed to the endpoint using the endpoint's   l Change Meeting Type to Reservation.
API. 
If the problem persists, we recommend 
removing the endpoint from TMS until this bug 
is fixed by Cisco.

© 2022 Pexip AS Version 30.a   October 2022 Page 116 of 119


Pexip One-Touch Join Deployment Guide Troubleshooting One-Touch Join

Symptom Possible cause Resolution

A meeting has been scheduled and is  One-Touch Join has not been able to obtain a  Change the calendar processing rules for the 


showing on the room endpoint, but  meeting room alias from the invitation because  room to ensure that the meeting body is not 
there is no Join button. The support log  the meeting information supplied in the body  deleted. For instructions on how to do this, see 
shows the message: ("description") of the invitation has been  either Configuring calendar processing (for 
Could not find an alias for this stripped by Exchange prior to One-Touch Join  Exchange on-premises) or Configuring calendar 
meeting which had no body. This could processing the meeting.  processing (for O365).
be a meeting room configuration issue.

An external Microsoft Teams meeting  Your Microsoft Exchange environment uses a  Ensure that the security application's URL re-


has been scheduled but there is no Join  security application (such as Office 365 ATP, or  write rules include an exception for any URL 
button.  Mimecast) to re-write URLs, meaning that One- starting with the domain 
Touch Join has not been able to obtain the join  https:\\teams.microsoft.com\
URL. For more information, see Allowing 
forwarding of external invitations (for Exchange 
on-premises) or Allowing forwarding of 
external invitations (for O365).

There is a delay between a meeting  A short delay is expected due to internal  For larger Google Workspace integrations you 


invitation being sent and it appearing on  processing, and the actual time taken will  can ask for an increase to the number of 
the room endpoint.  depend on the number of endpoints in your  calendar API requests you can make in a 24-
One-Touch Join deployment, and the number  hour period, thus allowing you to update 
of daily API requests you are allowed to make  endpoints more frequently. For more 
to your calendar service. Limits are also  information, see Requesting an increase to API 
imposed so that Conferencing Nodes do not  limits.
become overloaded with One-Touch Join 
You could also consider Deploying a dedicated 
requests.
One-Touch Join platform.
For more information, see Frequency and 
limitations on calendar requests.

On the status page and logs, the Alias  Process alias for private meetings has been  Review whether these settings are appropriate 


field is blank. disabled and the meeting was flagged as  for your deployment.
private.

Enable non-video meetings has been enabled,  Ensure that Exchange calendar processing 
but OTJ was not able to obtain a valid alias for  properties are changed from the default, as per 
the meeting.  the instructions in Configuring calendar 
processing on room resource mailboxes.
This may be because Exchange is using default 
calendar processing, which removes the header 
and body of the invitation, and replaces the 
subject with the organizer's name.

On the status page and logs, the Subject  Replace subject has been set to either: Review whether these settings are appropriate 


field is showing the organizer's name.  l Private meetings only (and the meeting  for your deployment.
was flagged as private), or 
 l Always
and the Replace subject string was empty.

Replace empty subject has been enabled and  Ensure that Exchange calendar processing 
there was no subject.  properties are changed from the default, as per 
the instructions in Configuring calendar 
This may be because Exchange is using default 
processing on room resource mailboxes.
calendar processing, which removes the header 
and body of the invitation, and replaces the 
subject with the organizer's name.

© 2022 Pexip AS Version 30.a   October 2022 Page 117 of 119


Pexip One-Touch Join Deployment Guide Troubleshooting One-Touch Join

Symptom Possible cause Resolution

An endpoint has been deleted from the  The status page is refreshed once an hour. Wait up to one hour for the endpoint's details 


Pexip Infinity configuration but its  to be removed.
details are still appearing on the OTJ 
Endpoints status page.

A meeting that has been canceled is still  The status page is refreshed once an hour. Wait up to one hour for the meeting's details to 


appearing on the OTJ Meetings status  be removed.
page.

When configuring Exchange you are  The service account being used for One-Touch   l Ensure that the service account has been 


getting the following errors or warnings: Join does not exist, or does not have a valid  added correctly, with the correct 
ErrorCode="InvalidUser" license. username and password/authentication 
information.
 ErrorMessage="Invalid user"
 l Ensure that the service account has an 
appropriate Exchange license, such as 
Office 365 Enterprise E1, Office 365 
Business Basic (formerly Essentials) or one 
of the Exchange Online plans.

An endpoint is not appearing on the OTJ  Endpoints appear on this page after the initial  Wait until a meeting has been created to which 


Endpoints status page. contact between the endpoint and One-Touch  the endpoint is invited. Then check again to 
Join has been made. For Cisco endpoints, this  confirm that the endpoint is appearing on the 
happens when a meeting has successfully been  status page.
pushed to the endpoint. For Poly endpoints, 
this happens when the Poly endpoint has 
successfully polled the Conferencing Node.

Cisco endpoint issues

One-Touch Join cannot contact an  One-Touch Join is configured to communicate  Configure One-Touch Join to use HTTPS to 


endpoint via its API. The following  with the endpoint via HTTP and the endpoint  communicate with the endpoint.
appears in the alarms and logs: redirects to HTTPS.
Non-200 status code returned when
trying to upload OBTP bookings to
endpoint and 
StatusCode="307"

A Cisco SX series endpoint running TC  This is a known issue with the Cisco endpoint   
software may display the "Meeting will  when running this software.
automatically connect" message if there 
is no URI in the meeting invitation.

Webex endpoint issues

Meetings are not appearing on the  The endpoint is configured to use a Webex  Disable the calendar.


Webex endpoint. Calendar service. This will prevent Pexip One-
Touch Join from being able to push meetings to 
the endpoint. 

Poly endpoint issues

© 2022 Pexip AS Version 30.a   October 2022 Page 118 of 119


Pexip One-Touch Join Deployment Guide Troubleshooting One-Touch Join

Symptom Possible cause Resolution

Meetings are not appearing on the Poly  The configuration for the endpoint on Pexip  Ensure that the configuration for endpoint on 


endpoint. Infinity or on the endpoint itself is incorrect. Pexip Infinity and on the endpoint itself is 
correct, in particular that the username and 
password configured on both match.

Ensure that the endpoint is showing as 
registered to the calendaring service. 

The Poly endpoint is registered to the  View the Meeting status page to see if any 
calendaring service but One-Touch Join hasn't  meetings have been found for this endpoint.
found any meetings.
Check for any Google Gatherer/Exchange 
Gatherer alarms, which would indicate issues 
with reading specific calendars.

The Poly endpoint has lost connection with the  On the Poly endpoint, disable and re-enable 
OTJ calendaring service and has become  the calendaring service. 
unregistered, meaning it is no longer receiving 
updated meeting information.

To check if there is still contact with the 
endpoint:
 l If Raise alarms is enabled for this endpoint, 
an OTJ Poly Endpoint Error alarm will 
appear on the Pexip Infinity Administrator 
interface if it has been more than 10 
minutes since there was contact with the 
endpoint.
 l If this option is not enabled, view the 
Endpoint status and check the last contact 
time. If this is more than 10 minutes ago 
the endpoint may have lost connection. 

© 2022 Pexip AS Version 30.a   October 2022 Page 119 of 119

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy