IBM Cloud Docs
Definieren eines Audio-Webhooks

Definieren eines Audio-Webhooks

Diese Funktion wird derzeit nur mit dem Genesys Audio Connector der Telefonintegration unterstützt.

Ein Audio-Webhook ruft einen externen Dienst oder eine externe Anwendung auf, wenn ein Aufzeichnungsantworttyp zum Sammeln von Audio verwendet wird. Der externe Dienst verarbeitet die Audiodaten, und wenn ein Fehler auftritt, wird die Verbindung unterbrochen. Der Audio-Webhook wird oft verwendet, um den Ton aus Compliance-Gründen zu speichern, da watsonx Assistant den Ton nicht speichert.

Vorbereitende Schritte

Der programmgesteuerte Aufruf an den externen Service muss die folgenden Voraussetzungen erfüllen:

  • Der Aufruf muss eine HTTP-Anforderung POST sein.

  • Der Körper der Anfrage muss ein JSON-Objekt sein (Content-Type: multipart/form-data).

  • Der Anruf muss innerhalb von 30 Sekunden oder weniger erfolgen.

Weitere Informationen zur Audioaufzeichnung finden Sie unter Aufzeichnung der Äußerungen eines Anrufers.

Vorgehensweise

Führen Sie die folgenden Schritte aus, um die Webhookdetails hinzufügen:

  1. Gehen Sie zu Home > Umgebungen.

  2. Klicken Sie entweder auf der Registerkarte „Entwurf “ > „Entwurfsumgebung“ oder auf der Registerkarte „Live “ > „Live-Umgebung“ auf das Zahnradsymbol „ Einstellungen“.

  3. Klicken Sie auf Audio-Webhook.

  4. Stellen Sie den Audio-Webhook-Schalter auf Enabled.

  5. In das Feld URL fügen Sie die URL für die externe Anwendung hinzu, an die Sie die HTTP POST-Anfrage senden möchten. Vergewissern Sie sich, dass die Website URL das SSL-Protokoll verwendet (z. B. mit https beginnend).

  6. Fügen Sie im Feld Secret einen privaten Schlüssel hinzu, der mit der Anfrage zur Authentifizierung beim externen Dienst übergeben wird. Der Schlüssel muss als Textstring (z. B. lila Einhorn) mit einer maximalen Länge von 1.024 Zeichen angegeben werden.

    Sie können keine Kontextvariablen angeben. Wenn für den externen Dienst kein Token erforderlich ist, können Sie eine beliebige Zeichenfolge angeben. Sie können dieses Feld nicht leer lassen. Um das Geheimnis während der Eingabe anzuzeigen, klicken Sie vor der Eingabe auf Kennwort anzeigen. Nach dem Speichern des Geheimnisses wird die Zeichenkette durch Sternchen ersetzt, und Sie können sie nicht mehr anzeigen. Weitere Informationen über die Verwendung dieses Feldes finden Sie unter Webhook-Sicherheit nur für die klassische Erfahrung.

  7. Geben Sie im Feld Timeout die Dauer (in Sekunden) an, die der Assistent auf eine Antwort vom Webhook warten soll, bevor er einen Fehler zurückgibt. Die Timeout-Dauer muss zwischen 1 und 30 Sekunden liegen.

  8. Fügen Sie im Abschnitt 'Header' alle Header, die Sie an den Service übergeben wollen, jeweils einzeln durch Klicken auf Header hinzufügen hinzu.

    Wenn die von Ihnen aufgerufene externe Anwendung beispielsweise eine Antwort zurückgibt, kann sie diese möglicherweise in mehreren Formaten senden. Der Webhook erfordert, dass die Antwort in JSON formatiert ist. Die folgende Tabelle veranschaulicht, wie eine Kopfzeile hinzugefügt werden kann, um sicherzustellen, dass der zurückgegebene Wert im JSON-Format vorliegt.

    Beispiel für einen Header
    Headername Headerwert
    Content-Type application/json

Nachdem Sie den Wert der Kopfzeile gespeichert haben, wird die Zeichenfolge durch Sternchen ersetzt und kann nicht mehr angezeigt werden.

Die Details Ihres Webhooks werden automatisch gespeichert.

Weitere Beispiele finden Sie unter Audio-Webhook-Beispiele.

Webhook testen

Testen Sie Ihren Webhook umfassend, bevor Sie ihn für einen Assistenten aktivieren, der in einer Produktionsumgebung verwendet wird.

Der Webhook wird ausgelöst, wenn während eines Telefongesprächs ein Aufzeichnungsantworttyp verwendet wird. Wenn die Anfrage an den Webhook fehlschlägt, wird die Verbindung unterbrochen. In den Protokollen der Telefonintegration finden Sie weitere Informationen darüber, warum der Webhook fehlgeschlagen ist. Weitere Informationen finden Sie unter Fehlerbehebung bei der Telefonintegration.

Anforderungshauptteil

Es ist nützlich, das Format des Anfragekörpers des Audio-Webhooks zu kennen, damit Ihr externer Code ihn verarbeiten kann.

Die Nutzdaten enthalten die Audio- und Metadaten als Content-Type: multipart/form-data. Ein Beispiel für einen solchen Antrag ist:

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>