Definizione di un webhook audio

Questa funzione è attualmente supportata solo dal connettore audio Genesys dell'integrazione telefonica.

Un webhook audio chiama un servizio o un'applicazione esterna ogni volta che viene utilizzato un tipo di risposta record per raccogliere l'audio. Il servizio esterno elabora l'audio e, in caso di errore, disconnette la chiamata. Il webhook audio viene spesso utilizzato per memorizzare l'audio per motivi di conformità, poiché l'assistente AI non memorizza l'audio.

Prima di iniziare

La chiamata programmatica al servizio esterno deve soddisfare questi requisiti:

  • La chiamata deve essere una richiesta POST HTTP.

  • Il corpo della richiesta deve essere un oggetto JSON (Content-Type: multipart/form-data).

  • La chiamata deve rientrare entro 30 secondi o meno.

Per ulteriori informazioni sulla registrazione dell'audio, vedere Registrazione dell'audio di un chiamante.

Procedura

Per aggiungere i dettagli webhook, completa i seguenti passi:

  1. Andate a Home > Ambienti.

  2. Fare clic su Impostazioni Icona dell'ingranaggio dalla scheda Bozza > Ambiente bozza o dalla scheda Vivi > Ambiente vivi.

  3. Fare clic su Webhook audio.

  4. Impostare l'interruttore webhook audio su Enabled.

  5. Nel campo URL aggiungere l'indirizzo URL dell'applicazione esterna a cui si vuole inviare la richiesta HTTP POST. Assicurarsi che il sito URL utilizzi il protocollo SSL (ad esempio, iniziando con https).

  6. Nel campo Secret, aggiungere una chiave privata da passare con la richiesta di autenticazione al servizio esterno. La chiave deve essere specificata come stringa di testo (ad esempio, unicorno viola), con una lunghezza massima di 1.024 caratteri.

    Non è possibile specificare una variabile di contesto. Se il servizio esterno non richiede un token, specificare una stringa a piacere. Non è possibile lasciare questo campo vuoto. Per visualizzare il segreto mentre lo si immette, fare clic su Mostra password prima di digitarlo. Dopo aver salvato il segreto, gli asterischi sostituiscono la stringa e non è più possibile visualizzarla. Per ulteriori informazioni sull'utilizzo di questo campo, vedere Sicurezza dei webhook solo per l'esperienza classica.

  7. Nel campo Timeout, specificare la durata (in secondi) in cui si desidera che l'assistente attenda una risposta dal webhook prima di restituire un errore. La durata del timeout deve essere compresa tra 1 e 30 secondi.

  8. Nella sezione Headers, aggiungi le intestazioni che vuoi passare al servizio una alla volta facendo clic su Add header.

    Ad esempio, se l'applicazione esterna chiamata restituisce una risposta, potrebbe essere in grado di inviare una risposta in più formati. Il webhook richiede che la risposta sia formattata in JSON. La tabella seguente illustra come aggiungere un'intestazione per garantire che il valore restituito sia in formato JSON.

    Esempio di intestazione
    Nome intestazione Valore intestazione
    Content-Type application/json

Dopo aver salvato il valore dell'intestazione, la stringa viene sostituita da asterischi e non può più essere visualizzata.

I dettagli del tuo webhook vengono salvati automaticamente.

Per ulteriori esempi, vedere Esempi di webhook audio.

Testare il webhook

Eseguire test approfonditi del webhook prima di abilitarlo per un assistente utilizzato in un ambiente di produzione.

Il webhook viene attivato quando viene utilizzato un tipo di risposta di registrazione durante una telefonata. Se la richiesta al webhook fallisce, la chiamata si disconnette. Per ulteriori dettagli sul motivo del fallimento del webhook, è possibile consultare i registri di integrazione del telefono. Per ulteriori informazioni, vedere Risoluzione dei problemi di integrazione del telefono.

Corpo della richiesta

È utile conoscere il formato del corpo della richiesta del webhook audio, in modo che il codice esterno possa elaborarlo.

Il payload contiene l'audio e i metadati come Content-Type: multipart/form-data. Un esempio di richiesta è:

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>