Definición de un webhook de audio

Actualmente, esta función sólo es compatible con el conector de audio Genesys de la integración telefónica.

Un webhook de audio llama a un servicio o aplicación externa cada vez que se utiliza un tipo de respuesta de grabación para recopilar audio. El servicio externo procesa el audio y, si se produce un error, desconecta la llamada. El webhook de audio se suele utilizar para almacenar el audio por motivos de cumplimiento normativo, ya que el asistente de IA no almacena el audio.

Antes de empezar

La llamada mediante programa al servicio externo debe cumplir estos requisitos:

  • La llamada debe ser una solicitud POST HTTP.

  • El cuerpo de la solicitud debe ser un objeto JSON (Content-Type: multipart/form-data).

  • La llamada debe volver en 30 segundos o menos.

Para obtener más información sobre la grabación de audio, consulte Grabar la locución de un interlocutor.

Procedimiento

Para añadir los detalles de webhook, complete los pasos siguientes:

  1. Vaya a Inicio > Entornos.

  2. Haz clic en «Configuración» Icono de engranaje en la pestaña «Borrador» > «Entorno de borrador» o en la pestaña «Activo» > «Entorno activo ».

  3. Haga clic en Audio webhook.

  4. Ponga el interruptor Audio webhook en Enabled.

  5. En el campo URL añada la dirección URL de la aplicación externa a la que desea enviar la solicitud POST HTTP. Asegúrate de que la dirección URL utilice el protocolo SSL (por ejemplo, que empiece por https).

  6. En el campo Secreto, añada una clave privada para pasar con la solicitud para autenticarse con el servicio externo. La clave debe especificarse como una cadena de texto (por ejemplo, unicornio morado), con una longitud máxima de 1.024 caracteres.

No puede especificar una variable de contexto. Si el servicio externo no requiere un token, especifique cualquier cadena que desee. No puede dejar este campo vacío. Para ver el secreto a medida que lo introduce, haga clic en Mostrar contraseña antes de escribirla. Después de guardar el secreto, los asteriscos sustituyen a la cadena y no puedes volver a verla. Para obtener más información sobre cómo se utiliza este campo, consulte Seguridad de Webhook sólo para la experiencia clásica.

  1. En el campo Tiempo de espera, especifique la duración (en segundos) que desea que el asistente espere una respuesta del webhook antes de devolver un error. La duración del tiempo de espera debe estar comprendida entre 1 y 30 segundos.

  2. En la sección Headers, añada las cabeceras que quiera pasar al servicio de una en una, pulsando Añadir cabecera.

Por ejemplo, si la aplicación externa a la que llamas devuelve una respuesta, podría enviar una respuesta en varios formatos. El webhook requiere que la respuesta esté formateada en JSON. La siguiente tabla ilustra cómo añadir una cabecera para garantizar que el valor resultante que se devuelve está en formato JSON.

Tabla 1. Ejemplo de encabezado

Nombre de cabecera

Valor de cabecera

Content-Type

application/json

Después de guardar el valor de la cabecera, la cadena se sustituye por asteriscos y no se puede volver a ver.

Los detalles de su webhook se guardan de forma automática.

Para ver más ejemplos, consulta los ejemplos de webhooks de audio.

Prueba del webhook

Someta el webhook a pruebas exhaustivas antes de habilitarlo para un asistente que se utiliza en un entorno de producción.

El webhook se activa cuando se utiliza un tipo de respuesta de grabación durante una llamada telefónica. Si la petición al webhook falla, la llamada se desconecta. Puedes mirar los registros de integración del teléfono para obtener más detalles sobre por qué falló el webhook. Para obtener más información, consulte Solución de problemas de integración telefónica.

Cuerpo de solicitud

Es útil conocer el formato del cuerpo de la petición del webhook de audio para que tu código externo pueda procesarlo.

La carga útil contiene el audio y los metadatos como Content-Type: multipart/form-data. Un ejemplo de solicitud es:

POST /audio-webhook HTTP/1.1
Content-Type: multipart/form-data; boundary=----------3676416B-9AD6-440C-B3C8-FC66DDC7DB45
----------3676416B-9AD6-440C-B3C8-FC66DDC7DB45
Content-Disposition: form-data; name="metadata"
Content-Type: application/json
{
    "assistant_id": "dadf4b56-3b67-411a-b48d-079806b626d3",
    "environment_id": "6205aead-fe91-44af-bfe1-b4435015ba23",
    "session_id": "50989a59-9976-4b3f-9a98-af42adcad69a",
    "recording_id": "3daeb5d2-f52b-4c3e-a869-328b6fc6327c",
    "start_timestamp": "2024-10-21T17:22:07.789Z",
    "stop_timestamp": "2024-10-21T17:22:37.789Z"
}
----------3676416B-9AD6-440C-B3C8-FC66DDC7DB45
Content-Disposition: form-data; name="audio_recording"
Content-Type: audio/mulaw;rate=8000

<binary data>