This integration synchronizes Microsoft Teams' presence status with the Communicator application (Communicator Desktop, Communicator Web, and Communicator GO) extension’s presence status. For example, if users change their presence status to "Do Not Disturb" in Microsoft Teams, their presence status in Communicator will automatically change to "Do Not Disturb" as well.
This synchronization only works from Microsoft Teams to Communicator. It is not bidirectional. Changes made to Communicator's presence status, such as setting it to "Busy", will not impact the presence status in Teams. However, there is an exception that applies only when the Communicator Extension is on a call while Teams' presence status is set to "Available" or "Busy".
Consider the following two scenarios:
Teams’ presence is not user-configured (it is set as “Available” or “Away” due to inactivity). A user makes a call via Communicator. Their Communicator status icon changes to "On Call". This will also reflect in the Teams app status and show the status as “Busy/In A Call”.
Teams' presence is user-configured (e.g., a user explicitly puts their status as “Be right back”). A user makes a call via Communicator. Their Communicator status icon changes to "On Call". This doesn't reflect in the Teams app status since the user has manually configured their presence.
Teams Presence Sync is only available on CloudPBXs running v7.5 or later
Microsoft's Active Directory includes both a "User Principal Name" (UPN) and an email address. By default, these two values are the same, but they can be configured differently. For this integration, the UPN matches the CloudBX extension's email.
If two users on CloudPBX share the same email address, only one of them will be able to sync their presence with the Teams user who has the matching UPN.
Additionally, presence syncing is limited to a maximum of 650 users. If more than 650 Teams users correspond to CloudPBX extensions, it will not be clear which user's presence will not be synced.
To enable this integration, you need access to an admin account in the "Microsoft Azure Portal" and admin access to CloudPBX.
1. Log in to the Azure Portal. After logging in, navigate to “Microsoft Entra ID”:
2. Then switch to "App Registrations", and click on "New Registration":
3. Fill in the necessary data:
Name: Provide some user-friendly name.
Supported account types: Change to “Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant)”.
Redirect URL: Change the type to web and put the address of your CloudPBX, adding the "/oauth_code" endpoint at the end: https://<CloudPBX_DOMAIN>/oauth_code.
When ready, click the Register button at the bottom.
4. The overview page should be displayed in your new app. Now, generate a client secret by clicking the "Add a certificate or secret":
5. On the next screen, click on “New client secret”:
6. Set the secret "Description", and feel free to leave the "Expires value" as default:
Once the secret expires, a new one must be generated and configured on CloudPBX.
7. After filling in the fields, click the Add button at the bottom.
8. Copy the newly created secret value right away and save it in a secure location:
It is essential to do this immediately, as the secret's value cannot be viewed or copied afterward. A copied secret value will be needed later when configuring Teams Presence on CloudPBX.
9. Now, set up "API permissions" by clicking on the “API permissions” on the left and then on “Add a permission”:
10. On the right side, select "Microsoft Graph":
11. Then, select “Delegated permissions”:
Type in “Presence.Read.All” and expand the Presence section below.
Check the checkbox for the "Presence.Read.All" permission.
12. Now, select “Application permissions”:
Type in “User.Read.All”, expand the User section below.
Check the checkbox for the "User.Read.All" permission.
Clear the search field.
Type in "Presence.ReadWrite.All" and expand the presence section.
Check the checkbox for the "Presence.ReadWrite.All" permission.
Finally, click the Add permissions button at the bottom of the screen.
13. After this is done, the configured permissions screen should look like this:
Please ensure that the permission types are correct and match the screenshot above.
14. Now, grant admin consent by clicking on the Grant admin consent for {{name}} button (e.g., Grant admin consent for MSFT button) and selecting the Yes button in the opened pop-up:
15. The status of the permissions should show “Granted for {{name}} (e.g., Granted for MSFT)”:
16. Next, switch back to the "Overview" tab on the left side, copy both the "Application (client) ID" and "Directory (tenant) ID" and store them in a safe location.
17. For the last step, navigate to the “Users” section, click on the desired user, and click on “Edit properties”. Then, navigate to the “All” tab and confirm that the same email is used for the “User principal name” and the “Email”.
If the Email field is empty, please populate it with the same email found under the “User principal name”.
Finally, everything is ready to proceed to the CloudPBX configuration.
To set up “Teams Presence Sync”, having, at least, CloudPBX v7.5 installed is the minimum requirement.
Also, before proceeding, these should have been obtained during the “Configuring Azure App” section:
Azure Application ID
Azure Directory ID
Azure Client secret
This guide will show how to configure "Teams Presence Sync" in a Multi-Tenant CloudPBX edition. It should work the same way in the Call Center.
Integration works independently for each tenant.
Let’s begin with the configuration:
1. Log in to CloudPBX as an administrator, switch to the desired tenant, and navigate to Settings -> OAuth. Click on the Add OAuth App button.
2. Fill in the necessary information:
Name: Set a user-friendly name that indicates that this is used for the "Teams' Presence Update".
Provider: Select "Microsoft".
Client ID: Paste "Application (client) ID" value obtained while configuring the "Azure App".
Client Secret: Paste "Secret" value obtained while configuring the "Azure App".
Tenant ID: Paste "Directory (tenant) ID" value obtained while configuring the "Azure App".
Scopes: Select "Presence-Update".
Click the Save button when ready.
Another OAuth Application needs to be added since the "Application" and "Delegated" scopes cannot be mixed into the same CloudPBX OAuth application.
3. Switch back to the OAuth apps list and click the Add OAuth App button again.
4. Fill the necessary information:
Name: Set a user-friendly name that indicates that this is used for the "Teams' Presence Read".
Provider: Select "Microsoft".
Client ID: Paste "Application (client) ID" value obtained while configuring the "Azure App".
Client Secret: Paste "Secret" value obtained while configuring the "Azure App".
Tenant ID: Paste "Directory (tenant) ID" value obtained while configuring the "Azure App".
Scopes: Select "Presence-Read".
Click the Save button when ready.
Two Microsoft OAuth apps should be configured and displayed as shown below:
Of course, they still point to the Azure App configured before.
5. After configuring both apps, switch to the "Credentials" tab and click on the Create Credential button:
Since two OAuth applications had to be created, two OAuth Credentials also must be created.
6. First, create the Update credential:
Name: Set a user-friendly name that indicates that this is used for the "Teams Presence Update".
Application: Select the application created for the "Teams Presence Update".
Scopes: Select "Presence-Update".
Click on the Generate Token button. A confirmation popup should be displayed.
Finally, click the Save button.
Switch back to the Credentials list, and click the Create Credential button again. This time, a read credential should be created.
7. Now create the Read credential:
Name: Set a user-friendly name that indicates that this is used for the "Teams Presence Read".
Application: Select the application created for the "Teams Presence Read"
Scopes: Select "Presence-Read".
Click on the Microsoft Login button. Sign into your Azure admin account using the pop-up that opens. Make sure to check the box next to “Consent on behalf of your organization”.
After clicking the Accept button, a confirmation popup should appear, confirming that the token was generated.
Finally, click the Save button.
Switch back to the credentials list. Two credentials related to your two OAuth applications should be displayed.
8. Switch to Microsoft Teams -> Settings as the last step and select the credentials:
The "Enable Presence Sync" option determines whether the presence is synced across the entire tenant or CloudPBX if it is not multi-tenant.
The "Teams Presence Sync" option can also be customized at the extension level. To adjust it, open an extension's settings, click "Show Advanced Options", and scroll to the Communicator section, where the "Teams Presence Sync" can be turned on or off.
When the "Teams Presence Sync" option does not have the same value at the tenant and extension levels, the extension setting takes precedence:
If the "Teams Presence Sync" option is set to "Yes" at the extension level, the same option will be overridden at the tenant level. "Teams Presence Sync" is turned on.
If the "Teams Presence Sync" option is set to "No" at the extension level, the same option will be overridden at the tenant level. "Teams Presence Sync" is turned off.
If the "Teams Presence Sync" option is set to "Not Set" at the extension level, it will only be turned on if the same option is set to "Yes" at the tenant level.