Pexip Infinity OTJ Deployment Guide V33.a
Pexip Infinity OTJ Deployment Guide V33.a
Deployment Guide
Software Version 33
October 2023
Pexip One-Touch Join Deployment Guide
Contents
Recommended configuration 20
Optional configuration 20
Checking calendar processing settings 21
Adding a One-Touch Join Exchange integration on Pexip Infinity 23
Next steps 24
Cloud deployments 96
Minimum Pexip Infinity platform configuration 97
One-Touch Join configuration 97
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.
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.
Cisco OBTP
OTJ 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 Board series
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
OTJ 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.
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.
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:
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):
As you add more endpoints, One-Touch Join reduces the frequency of requests correspondingly. For a deployment of 4,000 endpoints
(the maximum supported number), endpoints are 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.
— in which case you could increase the quota to between 4,000,000 - 8,000,000. However, we recommend you discuss larger
deployments with your Pexip authorized support representative.
To increase the 24-hour quota:
l For Google Workspace deployments, first request an increase to API limits and then increase the Maximum Google Workspace API
requests, but note that this is a paid-for service.
l For Exchange on-premises and Office 365 EWS API deployments, increase the Find Items Request Quota.
l For Office 365 Graph API deployments, increase the Maximum Graph API requests.
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).
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 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.
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. You can 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 are sent either directly or via the web proxy (if one has
been configured for the Management Node).
Port usage
The following table lists the ports/protocols required for communication between the components of Pexip One-Touch Join:
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
‡ Determined by Exchange.
Note also that the ephemeral port range (55000–65535) is subject to change.
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.
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 Impersonation and EWS in Exchange for guidelines on when to use impersonation in your Exchange service applications.
l Exchange Impersonation vs. Delegate Access for information on the differences between impersonation and delegate access.
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 the authentication method used for the service account — either NTLMv2 or basic authentication.
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.
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>"
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"
5. Select Save.
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.
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"
Example output:
Name ScopeRestrictionType Exclusive RecipientRoot RecipientFilter
---- -------------------- --------- ------------- ---------------
OTJ Management Scope RecipientScope False MemberOfGroup -eq 'CN=OTJ Rooms2111430164340,OU...
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 authentication
In this step you enable your Exchange on-premises deployment to support your chosen authentication method for the service account.
One-Touch Join uses basic authentication by default, but you can elect to use NTLMv2 authentication instead.
For both forms of authentication, Pexip Infinity stores the credentials in encrypted form and all authentication is carried out over a
secure TLS channel.
NTLMv2 authentication
In most on-premises Exchange deployments, NTLMv2 authentication is enabled by default. To confirm that it has been enabled in your
environment:
1. Open Server Manager and select the server on which Exchange is installed.
2. From the top right options select Tools > Local Security Policy.
3. On the tree on the left, expand Local Policies then select Security Options.
4. Scroll down to Network security: Restrict NTLM: Incoming NTLM traffic.
5. Ensure this is either left to the default value of Not Defined, or set to Allow All.
Basic authentication
If you are using basic authentication with on-prem Exchange you need to ensure it is enabled for both Autodiscover and Exchange Web
Services (EWS).
You can do this using either Windows Service Manager or PowerShell, as follows:
To enable basic authentication for Autodiscover: This command enables basic authentication for Autodiscover on a
1. Go to the Windows server on which Exchange is installed and specific server:
open the Service Manager. Set-AutodiscoverVirtualDirectory -Identity "<server>\Autodiscover
(Default Web Site)" -BasicAuthentication $true
2. Select the server on which Exchange is installed, and right-click
For example, if your server name is PEXCHANGE then:
to select Computer Management.
Set-AutodiscoverVirtualDirectory -Identity "PEXCHANGE\Autodiscover
3. From the panel on the left, select Services and Applications > (Default Web Site)" -BasicAuthentication $true
Internet Information Services (IIS) Manager.
4. Expand the options and select Sites > Default Web Site >
Autodiscover.
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.
To enable basic authentication for EWS: This command enables basic authentication for EWS on a specific
1. Go to the Windows server on which Exchange is installed and 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
For example, if your server name is PEXCHANGE then:
to select Computer Management.
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.
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.
5. When the meeting room accepts the invitation, a response is sent to the original requester (including requesters external to your
organization if you have allowed forwarding of external invitations). To avoid any confusion as to why they would be receiving a
response from a room that may not have been included in their original invitation, you can configure additional text that is sent to
the requester using the -AddAdditionalResponse flag and -AdditionalResponse setting.
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):
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.
l 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/
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"
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 ""
}
Option Description
Service account username The username of the service account to be used by the One-Touch Join Exchange integration.
Otherwise, the format may be either domain\name or name@domain, depending on your domain.
Enable OAuth Leave this option disabled. (OAuth 2.0 is supported for Exchange in Office 365 only.)
Enable NTLM Enable this option to authenticate the service account using NTLMv2. (This option is only supported for
Exchange on-premises.) Leave this option disabled to authenticate the service account using basic
authentication.
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 of 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.
This section is optional and will generally only be required if the Autodiscover URLs in your deployment do not use a standard location.
Option Description
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.
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.)
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.)
5. Select Register.
8. Select Application Permissions. Scroll down to Calendars, expand it, and select Calendars.Read. Then select Add Permissions:
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:
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.
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.
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."
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.
5. When the meeting room accepts the invitation, a response is sent to the original requester (including requesters external to your
organization if you have allowed forwarding of external invitations). To avoid any confusion as to why they would be receiving a
response from a room that may not have been included in their original invitation, you can configure additional text that is sent to
the requester using the -AddAdditionalResponse flag and -AdditionalResponse setting.
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):
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.
l 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/
$deleted_subjects = @()
$organizer_added = @()
$deleted_bodies = @()
$private_flag_reset = @()
$not_auto_accept = @()
$process_external = @()
$otj_group_id = "otjrooms@example.com"
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 ""
}
Option Description
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 of 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.
Graph API FQDN The FQDN to use when connecting to the Graph API.
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.
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.
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.
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
Install-Module -Name AzureAD
n Uncheck Make this user change their password when
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
#Connect to AzureAD
Connect-AzureAD
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"
Example output:
Name ScopeRestrictionType Exclusive RecipientRoot RecipientFilter
---- -------------------- --------- ------------- ---------------
OTJ Management Scope RecipientScope False MemberOfGroup -eq 'CN=OTJ Rooms2111430164340,OU...
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
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.
5. When the meeting room accepts the invitation, a response is sent to the original requester (including requesters external to your
organization if you have allowed forwarding of external invitations). To avoid any confusion as to why they would be receiving a
response from a room that may not have been included in their original invitation, you can configure additional text that is sent to
the requester using the -AddAdditionalResponse flag and -AdditionalResponse setting.
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):
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.
l 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/
$deleted_subjects = @()
$organizer_added = @()
$deleted_bodies = @()
$private_flag_reset = @()
$not_auto_accept = @()
$process_external = @()
$otj_group_id = "otjrooms@example.com"
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) {
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:
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:
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.
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:
Option Description
Service account username The username of the service account to be used by the One-Touch Join Exchange integration.
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.
Enable NTLM Leave this option disabled. (NTLM is supported for Exchange on-premises only.)
The Application (client) ID which was generated by Azure when creating an App Registration in Azure
Active Directory (see Taking note of configuration).
The redirect URI you entered when creating an App Registration in Azure Active Directory.
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.
The URL of the OAuth authorization endpoint (see Taking note of configuration).
Ensure that you use the URL for ... endpoint (v1), not ... endpoint (v2).
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
of 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.
This section is optional and will generally only be required if the Autodiscover URLs in your deployment do not use a standard location.
Option Description
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.
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.
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:
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 are returned to the Management Node.
6. You may be asked to sign in to the Management Node again. If so, you must sign in to the Management Node (using your
Management Node credentials) to complete the process of signing in to the service account.
When complete, you are 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.
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.
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:
d. Enter a name (e.g. One-Touch Join Calendar Reader) and select Create:
e. On the next page, which asks about permissions, select Cancel (the account does not need any of these permissions):
b. From the Service account details page, select Edit, then Create Key:
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.
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:
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:
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.
1. Go to https://admin.google.com/ (logged in as a Google Workspace administrator) and select Apps > Google Workspace >
Calendar.
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.
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:
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:
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:
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:
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.
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:
Option Description
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.
Google OAuth 2.0 The URI of the Google OAuth 2.0 endpoint.
endpoint
Option Description
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.
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 One-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.
To add a One-Touch Join profile, from the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Profiles.
Option Description
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.
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)
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)
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)
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.
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.
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.
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.
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/
Option Description
System location The system location of the Conferencing Nodes which will provide One-Touch Join services for this
endpoint group.
OTJ profile The One-Touch Join profile to which this endpoint group belongs.
Disable web proxy Select this option to bypass the web proxy (where configured for this system location) when sending
requests to Cisco OBTP endpoints in this this One-Touch Join endpoint group.
Endpoints The endpoints that belong to this One-Touch Join endpoint group.
Option Description
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.
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.
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.
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, and must be unique.
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.
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.
Option Description
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.
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:
where
Field name Content Required field
for...
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).
endpoint_type The type of "click to join" feature supported by this endpoint. Cisco
api_address The IP address or FQDN of the Cisco OBTP endpoint's API. Cisco
If this is left blank, the defaults (443 if HTTPS is used, otherwise 80 for HTTP) will be
used.
api_username The username used by OTJ to access the Cisco OBTP endpoint's API.
api_password The password used by OTJ to access the Cisco OBTP endpoint's API.
poly_username The username and password the endpoint will use when connecting and Poly
authenticating to the 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.)
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.
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.
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
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.
One-Touch Join then provides the endpoint with the alias, along with other meeting information such as the start time, end time,
subject, and organizer's name.
If no alias has been obtained, One-Touch Join may still provide the meeting information to the endpoint, depending on the Enable non-
video meetings and Enable private meetings settings for the profile being used.
Each meeting processing rule is associated with a single One-Touch Join profile, and therefore will apply to either an Exchange
integration or a Google Workspace integration, but not both.
To view, edit and create meeting processing rules, from the Pexip Infinity Administrator interface, go to One-Touch Join > OTJ Meeting
Processing Rules.
Option Description
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.
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.
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 Domain, Microsoft Teams Meeting Properties or Google
Meet SIP Guest Join has been selected.)
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.
l For a Meeting type of Google Meet SIP Guest Join, 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. In this case it should be the domain of the service providing the Pexip Google interop
— for the Pexip Service this is google.pexip.me.
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.
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.
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.
You can edit these fields and re-test the rule until you get the desired results.
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.
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.
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.
Next steps
You should now complete the steps in Configuring endpoints to support One-Touch Join for each endpoint.
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, to complete the
configuration on each endpoint.
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).
When complete, you see the message Successful sign in to Webex Cloud.
o If a calendar is listed, select Actions > Edit Calendar and from the Calendar drop-down menu select Off:
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.
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 requires 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.
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.
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):
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.
User Name The username and password the endpoint will This must be the same as These fields are case-sensitive.
use when connecting and authenticating to the the Poly Calendaring
Password Each Poly endpoint must have a unique
calendaring service on the Conferencing Node, Username and Password
User Name.
to obtain meeting information. configured on 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.
To confirm that the Poly RealPresence Group Series endpoint has registered successfully with the calendaring service:
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.
Exchange Applications
Exchange Sign-In *
User The username and password the endpoint This must be the same as These fields are case-sensitive.
will use when connecting and authenticating the Poly Calendaring
Password Each Poly endpoint must have a
to the calendaring service on the Username and Password
unique User name.
Conferencing Node, to obtain meeting configured on Pexip
information. 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. Open the endpoint's web UI 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 (this can be done via Utilities > Import & Export Configuration) by adding:
feature.exchangeVoiceMail.enabled="0"
exchange.showSeparateAuth="1"
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
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 User The username and password the endpoint This must be the same as These fields are case-sensitive.
will use when connecting and authenticating the Poly Calendaring
Exchange Each Poly endpoint must have a
to the calendaring service on the Username and Password
Password unique User name.
Conferencing Node, to obtain meeting configured on Pexip
information. Infinity for this endpoint.
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.
Exchange Applications
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.
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:
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
Each Poly endpoint must have a unique
calendaring service on the Conferencing Node, Username configured on
User Name.
to obtain meeting information. Pexip Infinity for this
endpoint.
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.
To confirm that the Poly HDX endpoint has registered successfully with the calendaring service:
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.
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:
User Name The username and password the endpoint will This must be the same as These fields are case-sensitive.
use when connecting and authenticating to the the Poly Calendaring
Password Each Poly endpoint must have a unique
calendaring service on the Conferencing Node, Username and Password
User Name.
to obtain meeting information. configured on Pexip
Infinity for this endpoint.
To confirm that the Poly Studio / Poly G7500 endpoint has registered successfully with the calendaring service:
To configure the Poly Debut for One-Touch Join, from Server Settings > Calendar, enter the following:
User Name The username and password the endpoint will This must be the same as These fields are case-sensitive.
use when connecting and authenticating to the the Poly Calendaring
Password Each Poly endpoint must have a unique
calendaring service on the Conferencing Node, Username and Password
User Name.
to obtain meeting information. configured on Pexip
Infinity for this endpoint.
To confirm that the Poly Debut endpoint has registered successfully with the calendaring service:
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>.
Meeting type Usage and notes Default transform pattern Valid variables
(if not using
default transform)
Pexip Service For meetings held in Pexip Service VMRs. {{meeting_id}}@pexip.me l meeting_id
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.
Microsoft Teams SIP For Microsoft Teams meetings hosted on another {{base32_encoded_blob}}.
Guest Join domain where the hosting domain does not have {{tenant_id}}@pex.ms
Pexip Teams interop but your organization does have
access to Pexip Teams interop through the Pexip
Service.
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.
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.
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.
Meeting type Usage and notes Default transform pattern Valid variables
(if not using
default transform)
Google Meet For meetings scheduled using Google Meet. {{meeting_id}}@{{domain}} l meeting_id
Google Meet SIP Guest For Google Meet meetings hosted on another domain {{meeting_id}}@{{domain}} l meeting_id
Join where the hosting domain does not have Pexip Google l domain
interop but your organization does have access to
Pexip Google interop through the Pexip Service.
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.
l Call target:
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
By default, the resulting alias will use the domain {{meeting_id}}. l domain
zoomcrc.com {{pin}}@zoomcrc.com l pin
Meeting type Usage and notes Default transform pattern Valid variables
(if not using
default transform)
This rule will search the body and the location for a
match.
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:
then the alias that will be dialed to join the meeting will be alice.vmr@example.com
then the alias that will be dialed to join the meeting will be 123456@pexip.me
subject string
organizer_full_name string
organizer_first_name string
organizer_last_name string
organizer_email string
end_time l year
l month
l day
l hour
l minute
l second
is_private boolean
body string
location string
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.
In the above example, if the meeting body contains alice.vmr@example.com, this will be used as the alias for the meeting.
In the above example, if the meeting body contains alice.vmr@example.com, this will be used as the alias for the meeting.
In the above example, if the meeting location contains alice.vmr@example.com, this will be used as the alias for the meeting.
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.
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.
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 vCPU
o 4 GB RAM (minimum 1 GB RAM for each Management Node vCPU)
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.
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
Azure
l Management Node: an F4s v2 instance
l Conferencing Node: an F4s v2 instance
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.
For more information, see Configuring Pexip Infinity for One-Touch Join
1. You or the meeting organizer creates a meeting invitation in Outlook, Google calendar, or via the Teams client in the 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 displays a list of scheduled meetings for that room. When a meeting is due to start, the
endpoint in the 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 into the 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.
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.
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.
Field Description
Endpoint type The type of "click to join" feature supported by this 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.
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.
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:
Select Save:
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 the administrator is sent to, 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:
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:
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:
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:
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.
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
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.
3. In the Auto-accept invitations section, ensure that Auto-accept invitations that do not conflict is selected:
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:
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:
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.
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:
Option Description
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.
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
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.
Google OAuth 2.0 The URI of the Google OAuth 2.0 endpoint.
endpoint
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.
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:
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:
6. You may be asked to sign in to the Management Node again. If so, you must sign in to the Management Node (using your
Management Node credentials) to complete the process of signing in as the authorization user.
When complete, you are 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.
A meeting has been scheduled and is OTJ could not obtain a meeting room alias from Review the meeting processing rules.
showing on the room endpoint, but the invitation because it does not match a
there is no Join button. meeting processing rule and does not contain a
URI or address prefixed with sip:, sips: or
h323:.
The rule that you expect to match is associated 1. Check that the OTJ Endpoint is associated
with a different OTJ profile than the endpoint. with an OTJ Endpoint Group.
For example, the endpoint has an Exchange 2. Check that the OTJ Endpoint Group is
email address and is associated with an associated with the same OTJ Profile as
Exchange integration, but the rule that the the Meeting Processing Rule that you
meeting matches is associated with a Google expect to match.
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.
OTJ could not obtain a meeting room alias l Modify your Safe Links policy using the "Do
because the URL in the invitation was rewritten not rewrite the following URLs" list so that
for security reasons (for example, by Safe Links URLs in meeting invitations sent to OTJ
in Microsoft Defender for Office 365) and room resources are not rewritten.
therefore does not match the default rule. l Add a custom rule to match the rewritten
URLs.
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
where it does not include the required CVI
information in the meeting body.
A meeting is scheduled and is showing The endpoint is being managed by Webex Ensure that any endpoints used for One-Touch
on the room endpoint, but either there Cloud Calendar or TMS XE, and these systems Join are not also registered to the calendaring
is no Join button, or the Join button are overriding the meeting information from service on other systems such as the cloud-
appeared and then disappeared. OTJ. based Webex Hybrid Calendar Service, or Cisco
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.
A meeting is scheduled and is showing OTJ could not obtain a meeting room alias from Change the calendar processing rules for the
on the room endpoint, but there is no the invitation because the meeting information room to ensure that the meeting body is not
Join button. The support log shows the supplied in the body ("description") of the deleted. For instructions, see either Configuring
message: invitation was stripped by Exchange prior to calendar processing (for Exchange on-premises)
Could not find an alias for this One-Touch Join processing the meeting. or Configuring calendar processing (for O365).
meeting which had no body. This could
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 could not obtain the join URL. For https://teams.microsoft.com/
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 depends can ask for an increase to the number of
the room endpoint. on the number of endpoints in your OTJ calendar API requests you can make in a 24-
deployment, and the number of daily API hour period, thus allowing you to update
requests you are allowed to make to your endpoints more frequently. For more
calendar service. Limits are also imposed so information, see Requesting an increase to API
that Conferencing Nodes do not become limits.
overloaded with OTJ requests.
You could also consider Deploying a dedicated
For more information, see Frequency of and One-Touch Join platform.
limitations on calendar requests.
On the status page and logs, the Alias Process alias for private meetings is disabled Review whether these settings are appropriate
field is blank. and the meeting is flagged as private. for your deployment.
Enable non-video meetings is enabled, but OTJ Ensure that Exchange calendar processing
could not obtain a valid alias for the meeting. 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.
On the status page and logs, the Subject Replace subject is set to either: Review whether these settings are appropriate
field is showing the organizer's name. l Private meetings only (and the meeting is for your deployment.
flagged as private), or
l Always
and the Replace subject string is empty.
Replace empty subject is enabled and there Ensure that Exchange calendar processing
was no subject. This may be because Exchange properties are changed from the default, as per
is using default calendar processing, which the instructions in Configuring calendar
removes the header and body of the invitation, processing on room resource mailboxes.
and replaces the subject with the organizer's
name.
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 canceled meeting is still appearing on The status page is refreshed once an hour. Wait up to one hour for the meeting's details to
the OTJ Meetings status page. be removed.
When configuring Exchange you are The service account being used for OTJ does l Ensure that the service account has the
getting the following errors or warnings: not exist, or does not have a valid license. correct username and
ErrorCode="InvalidUser" password/authentication information.
l Ensure that the service account has an
ErrorMessage="Invalid user"
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 OTJ has the endpoint is invited. Then check again to
been made. For Cisco endpoints, this happens confirm that the endpoint is appearing on the
when a meeting has successfully been pushed status page.
to the endpoint. For Poly endpoints, this
happens when the Poly endpoint has
successfully polled the Conferencing Node.
OTJ cannot contact an endpoint via its OTJ is configured to communicate with the Configure OTJ to use HTTPS to communicate
API. The following appears in the alarms endpoint via HTTP and the endpoint redirects with the endpoint.
and logs: 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.
Meetings are not appearing on the The endpoint is configured to use a Webex Disable the calendar.
Webex endpoint. Calendar service. This prevents OTJ from being
able to push meetings to the endpoint.
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.
The Poly endpoint is registered to the View the Meeting status page to see if any
calendaring service but OTJ hasn't found any meetings have been found for this endpoint.
meetings.
Check for any Google Gatherer/Exchange
Gatherer alarms, which 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, thus it is no longer receiving
updated meeting information.