Overview
The Enreach Voice Presence Sync enables the two-way integration of in-a-call status between Microsoft Teams and Enreach Voice.
When the user is on a Teams call, participating in a Teams meeting or sharing a screen, the user is set as ‘talking’ in Enreach Voice. This has the following effects on Enreach Voice:
Direct calls to the user in Enreach Voice use corresponding call handling (Busy on Busy, Call waiting, etc…)
Service calls are not allocated to the user
The user is shown as ‘talking’ in directory views
When a user is on a call in Enreach Voice in any of their terminals, the user is set to Busy/InACall status in Microsoft Teams.
Other parts of user presence are not synced between Enreach Voice and Microsoft Teams. This includes user Available, Offline, Do not Disturb etc presence statuses in Teams and user availability Enreach Voice (Available, Off work, DND, etc…).
Microsoft Teams presence aggregation
A Microsoft Teams user can have multiple presence sessions because the user can be on multiple Teams clients. Similarly, Enreach Voice has its own application presence session for a user and is able to update the state.
Each Teams client has an independent presence session; the final user presence is an aggregated state from all the sessions behind.
The following is the precedence for how session states are aggregated:
User-configured > app-configured (user-configured state overrides others)
Among app-configured: DoNotDisturb > Busy > Available > Away
Note: When a user presence changes in Microsoft Graph, because the Teams client uses poll mode, it will take a few minutes to update the presence status.
Implementation
Presence Sync integration is implemented as a headless background service, which creates and maintains a presence subscription for a set of Microsoft Teams users and receives a notification when the presence of the user is changed.
Requirements and limitations
Usernames
The usernames of the users must match in AzureAD (UserPrincipalName) and in Enreach Voice (Email Address)
AzureAD Enterprise Application
EnreachVoice Teams Presence Integration enterprise applications must be consented to by the customer’s Azure tenant administrator.
You can use this tool to generate the appropriate admin consent link: http://azure-consent.enreachvoice.com/teams-presence/
AzureAD service account
Presence - read permission, required by Microsoft GrapAPI presence endpoint permissions are currently available only for Delegated (work or school account) permission Type. Application permission type is not available for Presence - read.
Because of this limitation, a presence subscription must be done as a user. A separate “service account” user must exist, which is used for creating a presence subscription. Service account credentials are configured and used by in MS Teams Presence Integration service to maintain presence subscription.
If Voice Portal provisioning integration is active, the same user can be used as the presence sync service account.
Requirements for the service account
MFA must be disabled, or EnreachVoice IP addresses: 80.88.186.0/23 must be whitelisted
The password should not expire
Office licenses are not required
Limit of users
The current maximum number of GraphAPI presence subscriptions is 650 users. This means that maximum of 650 users per organization can have the feature enabled.