Nailed Up Connection on VoIP

Updated 

When an agent is presented with an incoming call from the backend, the agent's browser initiates a webRTC handshake with the voice provider, such as Ozonetel or Signalwire, to establish the call connection. This handshake process is typically rapid, typically taking no more than 1-2 seconds under optimal conditions.

However, there are instances where even this short duration of latency is not acceptable. For instance, in outbound calls where customers expect immediate connections, any delay may lead to disconnections, especially when utilizing answering machine detection (AMD). In scenarios with AMD, the backend only assigns an agent when it confirms the dialed customer is a human, making it crucial to minimize any additional delay in connecting the agent and the customer. This becomes essential for ensuring a seamless and prompt connection in time-sensitive situations, such as outbound marketing calls.

Solution

We introduce the concept of a "Nailed Up Connection" to optimize the call connection process. When an agent becomes available on Sprinklr, we establish a connection by initiating an empty call through webRTC. This means that the webRTC handshake is completed, and a call is initiated in the background. Subsequently, when the backend offers a customer call, we can seamlessly patch that customer into the existing webRTC call for the agent. This approach eliminates the need for the time-consuming webRTC handshake before each customer call.

The "Nailed Up" feature is supported exclusively on Ozonetel and Signalwire providers. Additionally, this feature extends to PSTN; however, in this case, automatic establishment is not implemented. Instead, agents need to explicitly open the third pane, create a "Nailed Up" call, and then receive a phone call on their mobile device. This streamlined process enhances efficiency and reduces latency in connecting agents with customer calls.

Feature Enablement

  1. Enable the "Nailed Up Call" feature and configure agent readiness through the Unified Routing page. This can be done for a single agent, multiple agents, a single user group, or multiple user groups, either directly on the Unified Routing page or through the assignment settings page. Please refer to the provided screenshot for specific field reference.

  2. Agent Readiness feature is a prerequisite for the "Nailed Up" feature.

  3. Ensure that each agent has only one shared voice application. If multiple applications are shared, the "Nailed Up" feature will not be established. Agents will start their sessions in the default non-nailed up mode. Confirm this by clicking on the Wi-Fi icon in the top right corner of the platform and verifying that only one application is displayed, representing the desired application for establishing the "Nailed Up" connection.

How It Works

  • The "Nailed Up" creation process is initiated when an agent lands on a page with one of the following statuses:

    • Any available status

    • Connection Issue Status

    • Occupied Status

  • Additionally, if an agent initially lands on an unavailable status but subsequently clicks on an available status, the "Nailed Up" creation process is triggered.

  • The process is also activated in cases where an existing "Nailed Up" connection disconnects due to a BYE message from the provider or when the backend sends a COMPLETED pusher signal.

When an agent refreshes the page while a "Nailed Up" call is connected, the system responds based on the agent's availability status:

  • Available Status: If the agent is available upon landing again, the system attempts to recreate the "Nailed Up" call during the creation process.

  • Non-Available Status: If the agent is on a non-available status upon landing again, the system triggers the "Disconnect Nailed Up Call" API to update the backend state, ensuring it reflects the correct status in case the connection is still in progress.

It's worth noting that while it would be ideal to inform the backend about the webRTC connection being broken and update the "Nailed Up" state accordingly, the current system does not receive webRTC call end events from the backend.

The Wi-Fi icon undergoes distinct color codings during the "Nailed Up" establishment:

  • Green: Indicates that "Nailed Up" is successfully connected on both webRTC and the backend.

  • Yellow: Signifies that "Nailed Up" is connected on webRTC but not yet established on the backend.

  • Red: Indicates that "Nailed Up" is connected on the backend but has not been established on webRTC.

Behind the Scenes of Nailed Up Creation Process

In a typical customer call scenario, the user interface is synchronized with a backend state known as "voiceConversation" and "assignmentDetails." Concurrently, the browser establishes a webRTC call with the provider to facilitate the communication.

Likewise, in the "Nailed Up" creation process, a backend state is maintained and stored in the "userVoiceConfig" entity. This backend state encapsulates the information about the "Nailed Up" connection. When the "Nailed Up" feature is active, the backend is informed of the connection status, ensuring synchronization between the backend's awareness of the "Nailed Up" connection and the actual connection established with the provider on the browser side.

How to Enable Nailed Up 

  1. Access the agent persona using your credentials.

  2. Change your status to Ready or Manual Call. Wait for the Nailed Up connection to establish.

    Upon successful connection, a popup will appear with the message "Nailed Up connection established."
    If not established, it shows a connecting state. Wi-Fi button appears yellow during the connection process.

  3. After a successful connection, make manual calls when in "Manual Call" status and take campaign calls when in "Ready" status.

How to Reconnect if Nailed Up Disconnects 

  1. If the Nailed Up connection gets disconnected, perform a hard refresh and change your status to "Break."

  2. To re-establish the Nailed Up connection, change your status to "Manual Call."

  3. To resume taking campaign calls, change your status to "Ready."

Nailed Up Widget in Third Pane

The Nailed Up widget is visible in the third pane when prefer persistent call is enabled for the agent. If an attempt to set up a nailed up call is made from this widget, it is a one-time operation without retries. It is not recommended to utilize this widget for establishing or disconnecting nailed up connections.

This widget is specifically designed for nailed up in PSTN mode, where users need to explicitly create a nailed up connection to their phone number.

Note:

If a Nailed Up connection is disconnected from the third pane, the Nailed Up mode will be disabled for the user session. Refreshing the page is required to re-enable Nailed Up mode.