Overview
The Enreach Voice Presence Sync enables the two-way integration of in-a-call status between Microsoft Teams and Enreach Voice.
When user is having a Teams call, participating in Teams meeting or sharing a screen, user is set as ‘talking’ in Enreach Voice. This has following affect on Enreach Voice:
Direct calls to user in Enreach Voice use corresponding call handling (Busy on Busy, Call waiting, etc…)
Service calls are not allocated to the user
User is show as ‘talking’ in directory views
When user is having a call in Enreach Voice in any of his/her terminals, user in Microsoft Teams is set in Busy/InACall status.
Other parts of user presence is 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, an Enreach Voice have its own application presence session for a user and be able to update the state.
Each Teams client has an independent presence session and the user's 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 notification when the presence of the user is changed.
Requirements and limitations
Usernames
Usernames of users must match in AzureAD (UserPrincipalName) and in Enreach Voice (Email Address)
AzureAD Enterprise Application
EnreachVoice Teams Presence Integration enterprise applications must be consented by the customer’s Azure tenant administrator.
You can use this tool to generate 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 (worked 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 exists, 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.
Same user can be used as a presence sync service account as used for Voice Protal provisioning integration
Requirements for the service account
MFA must be disabled, or EnreachVoice IP addresses must be whitelisted
Password should not expire
Office licenses are not required
Limit of users
Current limit of GraphAPI presence subscription is 650 users.