Broadvoice-RTG Technical Overview

Prev Next
Warning

This is an internal document and is for Sestek employees only, and will not be accessible if shared with other parties.

With the Broadvoice-Knovvu Real Time Guidance integration, agents and supervisors in call centers using Broadvoice GoContact as their call center application, can receive support in real-time.

It is further explained how Knovvu Real Time Guidance works integrated with Broadvoice, which APIs are used for the integration and technical details.

Integration Services

Broadvoice

The service written for Knovvu Real Time Guidance-Broadvoice integration is Broadvoice service. It has 2 main jobs:

  1. Getting the user group and the users in it whose calls will be analyzed and create these users in Knovvu Analytics as agents.
  2. Getting the events when one of the agents to be analyzed receives a call on Broadvoice and receive the RTP packages of these conversations.

Integration Flow

  1. Configuration
    Knovvu Real Time Guidance works integrated with Data Flow. In Real Time Guidance, voice packages are received in real time via data flow and analyzed, and SR outpts and notifications are transmitted to Knovvu Analytics interface. According to this structure, the two parties in Broadvoice integration are Broadvoice and Data Flow, not Knovvu Analytics. Therefore, any configurations should be made in Core Web interface.
    Required settings for the integration to work should be made by the Core Web's host.
    More details on the required settings.

  2. After the required configurations are made, when the system starts running, it first gets the relevant users from Broadvoice and creates them as agents in Knovvu Analytics.

  3. Once the service starts running, it becomes ready for the sessions coming from Broadvoice. Broadvoice service works in a structure that sends the streams of all agents in the account along with the conversationID, without any filtering. Since the integration structure can filter according to agent/queue information, not conversationID, Broadvoice Service performs the process of receiving streams of only the desired agents with a second session using Broadvoice GoContact APIs.

  4. With the groupID information entered in Core Web during the configurations, Broadvoice Service obtains the IDs of the agents in this group using Broadvoice GoContact APIs. It also requests to be notified when these agents have a conversation and receive all their events. Thanks to this websocket handshake, Broadvoice sends all events of these agents to Broadvoice Service. This metadata also include conversationID information.

  5. Broadvoice Service accepts session requests for all streams coming from Broadvoice without agent filtering. But at the same time, it sends a pause message before requesting RTP packages to be send, making the system wait for a while. Meanwhile, it checks whether the voice package should be received or not.

  6. If a conversationID in events from Broadvoice GoContact API matches a conversationID from Broadvoice, Broadvoice Service understands that this stream should be received. So, it sends a resume message to Broadvoice for the relevant stream and requests the transmission of audio packets.

  7. If no event with the same conversationID comes from Broadvoice GoContact API after a certain period of time, it means that there is no match here. In this case, Broadvoice Service does not send a resume message to Broadvoice and the websocket connection is disconnected. In this way, RTP packages belonging to unwanted agents are not received unnecessarily.

  8. At this stage, Broadvoice Service has the audiostream from Broadvoice and the metadata from Broadvoice GoContact API. As the final step, Broadvoice Service opens a websocket to Data Flow and sends the audiostream along with the agentID information.

  9. Data Flow provides SR outputs and sends them to Knovvu Analytics. The notifications created by Knovvu Analytics can be seen on the Notifications page under Real-Time in Knovvu Analytics interface. Learn more about how Data Flow works.

Broadvoice Service Deployment

Broadvoice Service is deployed in the toolbox. The integration is between Broadvoice and Data Flow, and the data received from Broadvoice can be sent to different products, such as Knovvu Speech Recognition or Knovvu Analytics using Data Flow. For this reason, as an architectural decision, it is decided to deploy Broadvoice Service in the toolbox so that it can be used by all products, rather than deploying it within any product.

Broadvoice Service is not tenant-based and does not require a new deployment for each tenant. This means that the same service can be used for all customers from different tenants. Therefore, the variation name of the Broadvoice Service can be edited as desired.

Number of replica should 1 while deploying the service. Since increasing the number of replicas may cause error in the integration due to Broadvoice's limitation. Therefore, the number of replicas should not be more than 2. If the service is insufficient to meet the requests from Broadvoice, machine resources should be improved instead of increasing the number of replicas.

Number of replica should be 1.