Which presence states are transferred?
Microsoft Teams → ProCall Enterprise
Teams presence | ProCall presence | Microsoft Teams integration icon or tooltip | API technical details |
---|---|---|---|
Available | No change in presence | Neutral icon with "Present" tooltip | "availability": "Available", "activity": "Available" |
Busy | No change in presence | Red icon with "Busy" tooltip | "availability": "Busy", "activity": "Busy" |
Do not disturb | Do not disturb presence | Red icon with 'Do not disturb" tooltip | "availability": "DoNotDisturb", "activity": "DoNotDisturb" |
Be right back | No change in presence | Yellow icon with "Absent" tooltip | "availability": "BeRightBack", "activity": "BeRightBack" |
Display as absent | No change in presence | Yellow icon with "Absent" tooltip | "availability": "Away", "activity": "Away" |
Display as offline | No change in presence | Neutral icon with "Unknown" tooltip | "availability": "Offline", "activity": "OffWork" |
In a meeting | Busy, in a call | Red icon with "In call" tooltip | "availability": "Busy", "activity": "InACall" |
Screen sharing | Do not disturb | Red icon with "Do not disturb" tooltip | "availability": "DoNotDisturb", "activity": "Presenting" |
Appointment (busy) | No direct impact, these are displayed via Outlook integration | Red icon with "Busy" tooltip | "availability": "Busy", "activity": "Busy" |
Appointment (meeting, appointment with invitation to a team meeting) | No direct impact, these are displayed via Outlook integration | Red icon with "Busy" tooltip | "availability": "Busy", "activity": "InAMeeting" |
1:1 phone call or video chat | Busy, in a call | Red icon with "In call" tooltip | "availability": "Busy", "activity": "InACall" |
ProCall Enterprise → Microsoft Teams
ProCall Presence | Displays in Microsoft Teams | API technical details |
---|---|---|
Manual change
| - | - |
Presence change through real-time communication
| Busy, in call | "availability": "Busy", |
Presence change through real-time communication
| Busy, in meeting | "availability": "Busy", "activity": "InAConferenceCall" |
Change presence by appointment (Microsoft 365) | Automatically set by Teams | - |
Change presence by appointment (not Microsoft 365, e.g. Google Calendar) | - | - |
Overwriting of manually set presences in Teams
Please note that any manually set presence in Teams, such as "Absent", can no longer be overwritten. Teams itself will also no longer overwrite the presence if you attend a Teams meeting.
Technical information
Graph API
When integrating with Microsoft Teams, the UCServer compares the user list in the user management with that of the Azure Active Directory in order to clearly assign ProCall users to Teams users. For this reason, the UCServer "User name" from user management must match the Azure Active Directory "User principal name".
Therefore, the enterprise application "estos ProCall Integration in Teams" requires authorization to read all user profiles.
In order for the UCServer to be able to read presence states from Teams, it requires the "Read presence information of all users in your organization" permission. The API call "cloudCommunications: getPresencesByUserId" is used for this purpose. Due to the nature of this call, no real events can take place, but it must be polled every X seconds. This also means that not every presence change in Teams will be directly visible, but it will take a maximum of X seconds until the presence is available on the UCServer.
In order for the UCServer to be allowed to set presence states in Teams, the "Read and write presence information for all users" permission is required. The API call "presence: setPresence" is used for this. Here, for example, the UCServer cannot set "Absent" or "Do not disturb" in Teams. For this reason, it was decided not to set manual presence changes in Teams at all (see table in "ProCall Enterprise → Microsoft Teams").
The UCServer will always specify the minimum duration of 5 minutes (expirationDuration) when setting presences in Microsoft Teams and, if necessary, renew this duration during longer real-time communication in ProCall. This means that in case of errors (e.g. the internet on the UCServer has failed, the UCServer has crashed, etc.), the presence in Teams can be set for a maximum of 5 minutes.
Tests with the Microsoft Teams client for Windows have shown that presence changes within Teams were sometimes delayed in the Teams client regardless of integration. ProCall integration cannot influence this.
These delays were not visible in the Web App.
UCServer log files
More detailed information can be obtained from the "Eventlog" and especially from the "ExternalServiceProvider" log of the UCServer.
As Microsoft adds more and more functionality to the Graph API in future, we will continue to incorporate this into the development of ProCall Enterprise and expand the feature set of the integration with Microsoft Teams.
Schematic view of the topology