Microsoft Teams → ProCall Enterprise

Teams presenceProCall presenceMicrosoft Teams integration icon or tooltipAPI technical details
AvailableNo change in presence

Neutral icon with "Present" tooltip

"availability": "Available",
"activity": "Available"
BusyNo change in presence

Red icon with "Busy" tooltip

"availability": "Busy",
"activity": "Busy"
Do not disturbDo not disturb presence

Red icon with 'Do not disturb" tooltip

"availability": "DoNotDisturb",
"activity": "DoNotDisturb"
Be right backNo change in presence

Yellow icon with "Absent" tooltip

"availability": "BeRightBack",
"activity": "BeRightBack"
Display as absentNo change in presence

Yellow icon with "Absent" tooltip

"availability": "Away",
"activity": "Away"
Display as offlineNo change in presence

Neutral icon with "Unknown" tooltip

"availability": "Offline",
"activity": "OffWork"
In a meetingBusy, in a call

Red icon with "In call" tooltip

"availability": "Busy",
"activity": "InACall"
Screen sharingDo 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 chatBusy, in a call

Red icon with "In call" tooltip

"availability": "Busy",
"activity": "InACall"

ProCall Enterprise → Microsoft Teams

ProCall PresenceDisplays in Microsoft TeamsAPI technical details

Manual change

  • Present
  • Busy
  • Absent
  • Do not disturb
--

Presence change through real-time communication

  • TAPI
  • Softphone
  • Audio/VideoChat
Busy, in call

"availability": "Busy",
"activity": "InACall"

Presence change through real-time communication

  • ProCall Meetings
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