Conversation Orchestrator: Streaming Bidirectional Audio

 

Note: El componente "Connect Virtual Agent" tiene costes de uso adicionales. Para obtener información detallada sobre sus precios, póngase en contacto con su Customer Success Manager.

Talkdesk Conversation Orchestrator permite la transmisión de audio en tiempo real entre Talkdesk y soluciones de terceros.

Le ofrece la posibilidad de compartir el audio de una llamada entrante con un sistema externo que puede conectarse a un Virtual Agent (VA) de terceros, lo que le permite "Bring Your Own Bot" (BYOB) a Talkdesk utilizando el componente de Studio Connect Virtual Agent para transmitir el audio de forma bidireccional. Al elegir la opción "External Voice Stream" en el componente, el audio de la llamada se transmite a un WebSocket de terceros, que incluye mensajes de orquestación e información contextual sobre la interacción de voz.  

Hay distintos tipos de eventos que se producen durante el ciclo de vida del flujo. Estos eventos son representados a través de WebSocket Messages:

  • Connected: El primer mensaje enviado, una vez que se establece una conexión WebSocket.
  • Start: El mensaje que contiene los metadatos necesarios sobre el flujo de conversación que se envía inmediatamente después del mensaje "Connected". Sólo se envía una vez, al principio del flujo de conversación.
  • Media: El mensaje que encapsula los datos de audio en bruto.
  • Stop: Se envía un mensaje de stop cuando el flujo de conversación se detiene o la llamada ha terminado.

Al realizar un flujo de audio bidireccional, puede enviar los siguientes mensajes WebSocket desde su sistema a Talkdesk:

  • Media: Un mensaje en el que se pueden encapsular los datos de audio en bruto.
  • Mark: Un mensaje que puede enviar después del mensaje de Media para ser notificado cuando el flujo de audio enviado fue completado.
  • Stop: Un mensaje que indica que el flujo de audio debe detenerse y cuál es el resultado de la operación.
  • Clear: Un mensaje que interrumpe los flujos de audio de todos los mensajes Media.

El siguiente diagrama muestra cómo funciona el flujo de audio unidireccional y bidireccional a través de mensajes WebSocket:

image1.png

Para entender la estructura de estos mensajes WebSocket, por favor revise abajo la sección de protocolo WebSocket Messages.

El componente "Connect Virtual Agent" puede añadirse en cualquier paso del flujo de Studio y puede configurarse como sigue.

Aprovechando la capacidad de "stream and hold", el flujo se iniciará cuando la llamada pase por el componente, y se detendrá sólo cuando se envíe un mensaje de "Stop" informando del éxito, el fracaso o la necesidad de que la llamada sea escalada a un agente. 

image2.png

1. Añada un componente Connect Virtual Agent a una salida de cualquier componente del estudio. En este caso, lo añadiremos a la salida del componente "Initial step" para fines de demostración (salida "OK")

2. En el componente "Connect Virtual Agent", seleccione "External Voice Stream" y configure la "Voice stream URL" a la conexión WSS desde la que desea que se transmita el audio. La selección de "External Voice Stream" activa el Conversation Orchestrator que comienza a desencadenar diferentes eventos representados a través de mensajes WebSocket.

3. Si necesita que la llamada sea escalada a un agente en vivo, entonces configure la salida “Escalation” y añada una componente de Assignment and Dial.

4. Configure las salidas "Connect Virtual Agent", según el flujo que desee definir. En este ejemplo, la salida "Execution Error" se configuró también en la "Assignment and Dial" para que, en caso de error, un agente ayude a la persona que llama. 

 

Protocolos de WebSocket Messages 

The WebSocket message protocols are based on Talkdesk Global Communications Network (GNC) TwiML™️ Voice: <Stream>.

Connected Message

"Connected" es el primer mensaje que se envía una vez que se establece una conexión WebSocket.

Para más detalles sobre el formato y los parámetros del mensaje, consulte la documentación aquí

 

Start Message

El mensaje "Start" contiene metadatos importantes sobre el flujo de conversación y se envía inmediatamente después del mensaje "Connected". Sólo se envía una vez, al inicio del flujo de conversación.

Para más detalles sobre el formato del mensaje y los parámetros, consulte la documentación aquí

Para enriquecer el mensaje de inicio producido por Talkdesk Global Communications Network (GNC), añadimos la siguiente información a la sección "customParameters" de la carga útil:

  • extra_parameters: campo obsoleto
  • account_id: El Talkdesk ID para la cuenta.
  • Interaction_id: El ID único de la interacción Talkdesk.
  • stream_url: El WebSocket URL donde se transmite el audio. 
  • correlation_id: El ID que identifica la llamada a lo largo de su vida, para todos nuestros interaction_id correspondientes de esa llamada.
  • business_hours: Para el flujo de audio unidireccional este campo estará vacío. En el caso de los flujos bidireccionales, se utiliza para indicar la información sobre el horario comercial del agente
  • type: El flujo de medios, que es de entrada o de salida
  • initial_timestamp: La marca de tiempo del momento en que se inició el flujo.
  • flow_id: campo obsoleto

Ejemplo:

"customParameters": {
"extra_parameters":{
        "initial_timestamp":"1668428901027","flow_id":""},
     "account_id": "5cee471c844dda000d67a428",
     "interaction_id": "073c9e0e1ab44c8a8085da2b08c1ecf9",
     "stream_url": "wss://my.service.com/socket/messages",
      "correlation_id": "614c537a2021746aead25356",
    “business_hours”_ “”,
     "type": "inbound",
      "initial_timestamp": "2022-01-16T16:12:47.254Z",
    “flow_id”: “”
}

 

Media Message

El mensaje "Media" encapsula los datos de audio en bruto.

Para más detalles sobre el formato y los parámetros del mensaje, consulte la documentación aquí.

 

Mark Message

Cuando quiera recibir una notificación de que el audio que ha transmitido ha finalizado, envíe un mensaje "Mark" después del mensaje "Media".

Recibirá un evento "Mark" con el nombre correspondiente de Talkdesk cuando el audio termine o si no hay audio en el buffer.

En el caso de que se haya utilizado el mensaje "Clear", también recibirá un evento "Mark" cuando se borre el buffer. 

Para más detalles sobre el formato y los parámetros del mensaje, consulte la documentación aquí.


Stop Message

El mensaje "Stop" se enviará cuando el flujo de conversación se detenga o la llamada haya terminado.

Para más detalles sobre el formato y los parámetros del mensaje, enviados por Talkdesk, consulte la documentación aquí

 

Mensajes que un Socio puede enviar a Talkdesk 

Media Message

Debe utilizar el mensaje "Media" para enviar un flujo de audio desde su sistema a Talkdesk. 

Los mensajes multimedia se almacenarán en el búfer y se reproducirán en el orden en que se reciban. Para interrumpir el audio almacenado en el búfer, debe enviar un mensaje Clear”.

Para más detalles sobre el formato y los parámetros del mensaje, consulte la documentación aquí.


Mark Message

Cuando quiera recibir una notificación de que el audio que ha transmitido ha finalizado, envíe un mensaje "Mark" después del mensaje "Media".

Recibirá un evento "Mark" con el nombre correspondiente de Talkdesk cuando el audio termine o si no hay audio en el buffer.

En el caso de que se haya utilizado el mensaje "Clear", también recibirá un evento "Mark" cuando se borre el buffer. 

Para más detalles sobre el formato y los parámetros del mensaje, consulte la documentación aquí.


Clear Message

Para interrumpir el flujo de audio, envíe un mensaje "Clear". Esto cancelará todos los mensajes "Media", que están en el buffer y no han sido reproducidos.

Esto vaciará todo el audio almacenado en el búfer y provocará el envío de un evento "Mark".

Para más detalles sobre el formato y los parámetros de los mensajes enviados por Talkdesk, consulte la documentación aquí.


Stop Message

Envíe un mensaje "Stop" si desea detener el flujo de audio y comunicar el resultado de la operación:

  • ok - El flujo de audio fue exitoso. 
  • error - Hubo un error durante la transmisión de audio.
  • escalate - El flujo de audio debe detenerse y la llamada debe ser derivada a un agente en vivo.

La siguiente tabla muestra los parámetros que debe enviar en un "Stop" encontrado en este mensaje:

Parámetro

Descripción

event

El tipo de evento.

stop

Un objeto que contiene metadatos de parada e información de la carga útil.

stop.command

Una de las opciones "ok"/"error"/"escalate".

Dependiendo del comando, se sigue una opción de salida diferente en el componente “Connect Virtual Agent”.

stop.ringGroup

En caso de escalada, este parámetro indica el grupo de timbre al que se redirige la llamada.

streamSid

El SID del flujo que debe recibir el flujo detenido.

 

Ejemplo:

{
 "event": "stop",
 "streamSid": "MZ18ad3ab5a668481ce02b83e7395059f0",
 "stop": {
   "command": "escalate",
   "ringGroup": "agents"
 }
}
Volver ""
Por favor, inicie sesión para enviar una solicitud.