Microsoft UCMA does not provide the notification about the transition of an endpoint into alerting state. So, a straightforward UCMA approach does not allow notifying T-Client and providing corresponding attached data, when a call is delivered to the agent endpoint.
To address this issue, T-Server emulates EventRinging as soon as an invitation for a new conversation is sent to an agent. Emulation creates a race condition, between alerting phone and EventRinging on the desktop.
To resolve the race condition, the desktop application implements the following logic:
- If EventRinging arrives first at the desktop:
- Stores value Conversation-ID from the AttributeExtensions of EventRinging.
- Waits for a new conversation with Conversation-ID matching the Conversation-ID extension key in EventRinging.
- Shows toast (screen pop) with call attributes and user data attached when a call reaches the destination.
- If a call arrives first at the desktop:
- If this conversation should be handled (for example, as defined in "monitoring of direct calls"), the desktop stores the Conversion-ID in its memory.
- Waits for EventRinging with Conversation-ID in the AttributeExtensions matching the Conversation-ID of a new Skype conversation.
- When arrived, shows toast (screen pop) with attached data.