CTI Multisession Restrictions

Updated 

Q. Why is it not possible to open both CTI and Sprinklr simultaneously on the same local machine?

A. Here is the reason:

  • Voice calls utilize WebRTC technology for establishing real-time, persistent connections between a browser session and the voice server.

  • When an agent accesses a Sprinklr page (either on enterprise or through CTI), the setup process for establishing these connections begins, which we can term as "initialization."

  • In addition to handling the call itself, these real-time connections also transmit important messages related to:

    • Agent State: Indicating whether the agent is available, busy, or in other states.

    • Agent's Voice State: Providing information such as when an agent is assigned a call, misses a call, or denies a call.

    • Other Factors: This includes checking the user's microphone availability, network connectivity, and the status of the voice WebRTC connection through various network calls.

  • A single voice user can only occupy one state at any given time.

  • If multiple sessions are active simultaneously, each session can operate independently. Nevertheless, since they share the same user identity, this can lead to erratic behavior because the user cannot exist in multiple states simultaneously.

  • One session might send a specific message to the servers, while another session sends a similar or conflicting message. This conflicting input can result in unexpected behavior due to the discrepancy in the state of the user across multiple sessions.

  • Here are some common issues that may occur:

    1. Agent Active in CTI and Sprinklr Sessions: If an agent is logged into both a CTI session and a Sprinklr session, and the Sprinklr session is inactive, there can be conflicts when receiving a call. Upon activating the Sprinklr tab, the session may reload, requiring re-initialization of connections. This can result in conflicting states, potentially causing call drops or disconnections.

    2. Mic Permissions Not Granted: If an agent has two open sessions but hasn't granted microphone permissions on one tab, incoming calls may be skipped for that session due to lack of mic permissions.

    3. Multiple Active Sessions with Different WebRTC Connections: When an agent has two active sessions (e.g., CTI and Sprinklr) started at different times, there can be issues with refreshing WebRTC connections. One session may have an active and valid WebRTC connection, while the other may not. Consequently, when an incoming call is received, the session with the inactive WebRTC connection may be unable to handle the call, resulting in call rejection despite a valid connection in another session.