NCCO-Referenz

Ein Anrufsteuerungsobjekt (NCCO) wird durch ein JSON-Array dargestellt. Sie können es verwenden, um den Ablauf eines Voice API-Aufrufs zu steuern. Damit Ihr NCCO korrekt ausgeführt werden kann, müssen die JSON-Objekte gültig sein.

Beim Entwickeln und Testen von NCCOs können Sie den Voice Playground nutzen, um NCCOs interaktiv auszuprobieren. Sie können Lesen Sie mehr darüber in der Voice API Übersicht oder direkt zum Voice Playground im Dashboard gehen.

NCCO-Aktionen

Die Reihenfolge der Aktionen im NCCO steuert den Ablauf des Aufrufs. Aktionen, die abgeschlossen sein müssen, bevor die nächste Aktion ausgeführt werden kann, sind synchron. Andere Aktionen sind asynchrone. Das heißt, sie sollen die folgenden Aktionen fortsetzen, bis eine Bedingung erfüllt ist. Zum Beispiel, eine record Aktion wird beendet, wenn die endOnSilence Option erfüllt ist. Wenn alle Aktionen im NCCO abgeschlossen sind, endet der Aufruf.

Die NCCO-Aktionen und die Optionen und Typen für jede Aktion sind:

Aktion Beschreibung Synchron
Eintrag Ganzer oder teilweiser Aufruf Nein
Gespräch Erstellen oder Verbinden eines bestehenden Konversation Ja
verbinden An einen verbindungsfähigen Endpunkt wie eine Telefonnummer oder eine VBC-Nebenstelle. Ja
sprechen Senden Sie synthetisierte Sprache an eine Konversation. Ja, es sei denn bargeIn=true
Strom Senden Sie Audiodateien an eine Konversation. Ja, es sei denn bargeIn=true
Eingabe Erfassen Sie Ziffern oder Spracheingaben des Gesprächspartners, den Sie anrufen. Ja
benachrichtigen Senden Sie eine Anfrage an Ihre Anwendung, um den Fortschritt durch ein NCCO zu verfolgen Ja
warten Ausführung für eine bestimmte Anzahl von Sekunden unterbrechen Ja
Übertragung Verschieben von Gesprächsteilen aus einem laufenden Gespräch in ein anderes bestehendes Gespräch Ja

Hinweis: Einen eingehenden Anruf verbinden enthält ein Beispiel dafür, wie Sie Ihre NCCOs an Vonage übermitteln, nachdem ein Anruf oder eine Konferenz eingeleitet wurde.

Beachten Sie, dass bei allen Aktionen die eventUrl Parameter MUSS ein Array sein, auch wenn er nur einen einzigen Wert enthält.

Datensatz

Verwenden Sie die record Aktion, um einen Anruf oder einen Teil eines Anrufs aufzuzeichnen:

[
  {
    "action": "record",
    "eventUrl": ["https://example.com/recordings"]
  },
  {
    "action": "connect",
    "eventUrl": ["https://example.com/events"],
    "from":"447700900000",
    "endpoint": [
      {
        "type": "phone",
        "number": "447700900001"
      }
    ]
  }
]

Die Aufzeichnungsaktion ist asynchron. Sie können eine synchrone Bedingung definieren - endOnSilence, timeOut oder endOnKey - um die Aufzeichnung zu beenden, wenn sie erfüllt ist. Wenn keine Bedingung festgelegt ist, arbeitet die Aufzeichnung asynchron und fährt sofort mit der nächsten Aktion fort, während der Anruf weiter aufgezeichnet wird. Die Aufzeichnung wird erst dann beendet und das entsprechende Ereignis gesendet, wenn der Anruf beendet wird. Dies wird für ähnliche Szenarien wie die Anrufüberwachung verwendet.

Sie können eine Aufnahme mit der Funktion transcription Option. Sobald die Transkription der Aufnahme abgeschlossen ist, wird ein Rückruf an eine eventUrl. Mit den Transkriptionseinstellungen können Sie eine benutzerdefinierte eventUrl und language für Ihre Transkriptionen. Bitte beachten Sie, dass dies eine kostenpflichtige Funktion ist; die genauen Preise finden Sie auf der Seite Voice API-Preise Seite unter 'Programmierbare Funktionen'.

Informationen über den Arbeitsablauf finden Sie unter Aufnahme.

Sie können die folgenden Optionen verwenden, um eine record Aktion:

Option Beschreibung Erforderlich
format Zeichnen Sie den Anruf in einem bestimmten Format auf. Die Optionen sind:
  • mp3
  • wav
  • ogg
Der Standardwert ist mp3, oder wav wenn Sie mehr als 2 Kanäle aufnehmen.
Nein
split Nehmen Sie den gesendeten und den empfangenen Ton in getrennten Kanälen eines Stereo-Aufnahmegeräts auf, um conversation um dies zu ermöglichen. Nein
channels Die Anzahl der aufzuzeichnenden Kanäle (maximal 32). Übersteigt die Zahl der Teilnehmer channels alle weiteren Teilnehmer werden dem letzten Kanal in der Datei hinzugefügt. split conversation muss ebenfalls aktiviert sein. Nein
endOnSilence Stoppen Sie die Aufnahme nach n Sekunden Stille. Sobald die Aufnahme gestoppt ist, werden die Aufnahmedaten an event_url. Der Bereich der möglichen Werte ist 3<=endOnSilence&lt;=10. Nein
endOnKey Stoppt die Aufnahme, wenn eine Ziffer auf dem Hörer gedrückt wird. Mögliche Werte sind: *, # oder eine einzelne Ziffer, z. B. 9. Nein
timeOut Die maximale Länge einer Aufzeichnung in Sekunden. Wenn die Aufzeichnung gestoppt wird, werden die Aufzeichnungsdaten an event_url. Der Bereich der möglichen Werte liegt zwischen 3 Sekunden und 7200 Sekunden (2 Stunden). Nein
beepStart Eingestellt auf true um einen Signalton abzuspielen, wenn eine Aufnahme beginnt. Nein
eventUrl Die URL zum Webhook-Endpunkt, der asynchron aufgerufen wird, wenn eine Aufzeichnung beendet ist. Wenn die Nachrichtenaufzeichnung von Vonage gehostet wird, enthält dieser Webhook die URL, die Sie zum Herunterladen der Aufzeichnung und anderer Metadaten benötigen. Nein
eventMethod Die HTTP-Methode, die für die Anfrage an eventUrl. Der Standardwert ist POST. Nein
transcription [Beta] Auf ein leeres Objekt setzen, {}, um die Standardwerte zu verwenden oder sie mit Transkriptionseinstellungen Nein

Transkriptionseinstellungen

Option Beschreibung Erforderlich
language Die Sprache (BCP-47 Format) für die Aufnahme, die Sie transkribieren. Derzeit werden dieselben Sprachen wie bei der automatischen Sprachaufzeichnung unterstützt, und eine Liste ist verfügbar hier. Nein
eventUrl Die URL zum Webhook-Endpunkt, der asynchron aufgerufen wird, wenn eine Transkription beendet ist. Nein
eventMethod Die HTTP-Methode, die Vonage für die Anfrage an eventUrl. Der Standardwert ist POST. Nein
sentimentAnalysis [Entwickler-Vorschau] Führt eine Stimmungsanalyse für die Transkriptionssegmente der Anrufaufzeichnung durch. Gibt für jedes Segment einen Wert zwischen -1 (negative Stimmung) und 1 (positive Stimmung) zurück. Standardmäßig wird false. Nein

Bitte beachten Sie: Für die Transkription von Sprachanrufen gilt eine Höchstdauer von 2 Stunden.

Satzrückgabeparameter

Siehe die Webhook-Referenz für Datensatz- oder Transkriptionsparameter, die an den eventUrl.

Konversation

Sie können die conversation Aktion zur Erstellung von Standard- oder moderierten Konferenzen, wobei der Kommunikationskontext erhalten bleibt. Verwendung von conversation mit demselben name verwendet die gleiche persistierte Konversation. Die erste Person, die die dem Gespräch zugewiesene virtuelle Nummer anruft, erstellt es. Diese Aktion ist synchron.

Hinweis: Sie können bis zu 200 Personen zu Ihrer Konversation einladen.

Die folgenden NCCO-Beispiele zeigen, wie Sie verschiedene Arten von Konversationen konfigurieren können. Sie können die answer_url Webhook-GET-Anforderungsparameter, um sicherzustellen, dass Sie ein NCCO an die Teilnehmer und ein anderes an den Moderator übermitteln.

[
  {
    "action": "conversation",
    "name": "nexmo-conference-standard",
    "record": true,
    "transcription": {
      "eventUrl": [ "https://example.com/transcription" ],
      "eventMethod": "POST",
      "language": "he-IL"
    }
  }
]

Sie können die folgenden Optionen verwenden, um eine Gespräch Aktion:

Option Beschreibung Erforderlich
name Der Name des Konversationsraums. Die Namen werden bis zur Anwendungsebene mit einem Namensraum versehen und Region. Ja
musicOnHoldUrl Eine URL zum mp3 Datei an die Teilnehmer übertragen, bis das Gespräch beginnt. Standardmäßig beginnt das Gespräch, wenn die erste Person die mit Ihrer Voice-App verbundene virtuelle Nummer anruft. Um diese mp3-Datei zu streamen, bevor der Moderator dem Gespräch beitritt, setzen Sie startOnEnter zu falsch für alle Benutzer mit Ausnahme des Moderators. Nein
startOnEnter Der Standardwert von wahr stellt sicher, dass das Gespräch beginnt, wenn dieser Anrufer dem Gespräch beitritt name. Einstellen auf falsch für die Teilnehmer in einem moderierten Gespräch. Nein
endOnExit Gibt an, ob ein moderiertes Gespräch beendet wird, wenn der Moderator auflegt. Dies ist festgelegt auf falsch Das bedeutet, dass das Gespräch erst beendet wird, wenn der letzte verbleibende Teilnehmer auflegt, unabhängig davon, ob der Moderator noch im Gespräch ist. einstellen endOnExit zu wahr um das Gespräch zu beenden, wenn der Moderator auflegt. Nein
record Eingestellt auf wahr um dieses Gespräch aufzuzeichnen. Bei Standardkonversationen beginnen die Aufzeichnungen, wenn ein oder mehrere Teilnehmer eine Verbindung zu der Konversation herstellen. Bei moderierten Konversationen beginnt die Aufzeichnung, wenn der Moderator der Konversation beitritt. Das heißt, wenn ein NCCO für die genannte Konversation ausgeführt wird, bei dem startOnEnter wird eingestellt auf wahr. Wenn die Aufzeichnung beendet wird, wird die URL, von der Sie die Aufzeichnung herunterladen, an die Ereignis-URL gesendet. Sie können die Standard-URL des Aufzeichnungsereignisses und die Standard-HTTP-Methode außer Kraft setzen, indem Sie benutzerdefinierte eventUrl und eventMethod Optionen in der conversation Aktionsdefinition.
Standardmäßig wird Audio im MP3-Format aufgezeichnet. Siehe die Aufnahme Leitfaden für weitere Einzelheiten.
Nein
canSpeak Eine Liste von Bein-UUIDs, von denen dieser Teilnehmer gehört werden kann. Wenn keine Liste angegeben wird, kann der Teilnehmer von jedem gehört werden. Wenn eine leere Liste angegeben wird, kann der Teilnehmer von niemandem gehört werden. Nein
canHear Eine Liste der Bein-UUIDs, die dieser Teilnehmer hören kann. Wenn keine Liste angegeben wird, kann der Teilnehmer alle hören. Wenn eine leere Liste angegeben wird, kann der Teilnehmer keine anderen Teilnehmer hören. Nein
mute Eingestellt auf wahr um den Teilnehmer stumm zu schalten. Der Ton des Teilnehmers wird im Gespräch nicht wiedergegeben und nicht aufgezeichnet. Wenn Sie canSpeakdie mute Parameter wird nicht unterstützt. Nein
transcription Einstellungen für die Transkription. Falls vorhanden (auch als leeres Objekt), ist die Transkription aktiviert. Der Parameter record muss auf wahr. Siehe Transkriptionseinstellungen oben für weitere Einzelheiten. Nein

Verbinden Sie

Sie können die connect Aktion, um einen Anruf mit Endpunkten wie Telefonnummern oder einer VBC-Nebenstelle zu verbinden.

Diese Aktion ist synchron, nach einer verbinden wird die nächste Aktion im NCCO-Stapel abgearbeitet. Eine Verbindungsaktion endet, wenn der angerufene Endpunkt besetzt oder nicht verfügbar ist. Sie rufen Endpunkte nacheinander an, indem Sie Verbindungsaktionen verschachteln.

Die folgenden NCCO-Beispiele zeigen, wie man verschiedene Arten von Verbindungen konfiguriert.

[
  {
    "action": "talk",
    "text": "Please wait while we connect you"
  },
  {
    "action": "connect",
    "eventUrl": ["https://example.com/events"],
    "timeout": "45",
    "from": "447700900000",
    "endpoint": [
      {
        "type": "phone",
        "number": "447700900001",
        "dtmfAnswer": "2p02p"
      }
    ]
  }
]

Sie können die folgenden Optionen verwenden, um eine connect Aktion:

Option Beschreibung Erforderlich
endpoint Array von endpoint Objekte, mit denen eine Verbindung hergestellt werden soll. Unterstützt derzeit eine maximal eines endpoint Objekt. Verfügbare Endpunkttypen. Ja
from Eine Nummer in E.164 Format, das den Anrufer identifiziert. Dies muss eine Ihrer virtuellen Vonage-Nummern sein, wenn Sie eine Verbindung zu einem echten Telefon herstellen, da der Anruf sonst nicht zustande kommt. Nein
randomFromNumber Eingestellt auf true um eine zufällige Rufnummer als from. Die Nummer wird aus der Liste der Nummern ausgewählt, die der aktuellen Anwendung zugeordnet sind. Die Anwendung versucht, Nummern aus dem gleichen Land wie das Ziel zu verwenden (falls verfügbar). randomFromNumber: true kann nicht zusammen verwendet werden mit from. Der Standardwert ist false. Nein
eventType Eingestellt auf synchronous zu:
  • machen die connect Aktion synchron
  • aktivieren. eventUrl um einen NCCO zurückzugeben, der den aktuellen NCCO außer Kraft setzt, wenn ein Aufruf in bestimmte Zustände übergeht.
Nein
timeout Wenn der Anruf nicht angenommen wird, legen Sie die Anzahl der Sekunden fest, bevor Vonage aufhört zu klingeln endpoint. Muss eine ganze Zahl sein zwischen 1 und 120. Der Standardwert ist 60. Nein
limit Maximale Länge des Anrufs in Sekunden. Der Standard- und Höchstwert ist 7200 Sekunden (2 Stunden). Nein
machineDetection Konfigurieren Sie das Verhalten, wenn Vonage feststellt, dass ein Ziel ein Anrufbeantworter ist. Stellen Sie entweder:
  • continue - Vonage sendet eine HTTP-Anfrage an event_url mit dem Ereignis Call machine
  • hangup - das Gespräch beenden
Nein
advancedMachineDetection Konfigurieren Sie das Verhalten der erweiterten Maschinenerkennung von Vonage. Überschreibt machineDetection wenn beide eingestellt sind. Siehe die API-Referenz für Details zu den Parametern. Diese Funktion ist kostenpflichtig; die genauen Preise finden Sie auf der Seite Voice API-Preise Seite unter 'Programmierbare Funktionen'. Nein
eventUrl Legen Sie den Webhook-Endpunkt fest, den Vonage asynchron auf jedem der möglichen Staaten anrufen. Wenn eventType wird eingestellt auf synchronous die eventUrl kann einen NCCO zurückgeben, der den aktuellen NCCO überschreibt, wenn eine Zeitüberschreitung auftritt. Nein
eventMethod Die HTTP-Methode, die Vonage für die Anfrage an eventUrl. Der Standardwert ist POST. Nein
ringbackTone Ein URL-Wert, der auf eine ringbackTone die in der Wiederholung an den Empfänger abgespielt werden Anruferdamit sie die Stille nicht hören. Die ringbackTone wird automatisch beendet, wenn der Anruf vollständig verbunden ist. Es wird nicht empfohlen, diesen Parameter zu verwenden, wenn Sie eine Verbindung zu einem Telefon-Endpunkt herstellen, da der Anbieter seine eigenen ringbackTone. Beispiel: "ringbackTone": "http://example.com/ringbackTone.wav". Nein
shaken Für Vonage-Kunden, die von der FCC verpflichtet sind, ihre Anrufe in die USA selbst zu signieren, bieten wir die Möglichkeit, Voice API-Anrufe mit Ihrer eigenen Signatur zu tätigen.

Diese Funktion ist nur auf Anfrage verfügbar. Anrufe mit einer ungültigen Signatur werden abgewiesen. Bitte kontaktieren Sie uns für weitere Informationen.

Wenn Sie diese Option verwenden, müssen Sie den Inhalt des STIR/SHAKEN-Identitäts-Headers angeben, den Vonage für diesen Anruf verwenden muss. Das erwartete Format besteht aus:
  • ein JWT mit der Kopfzeile, der Nutzlast und der Signatur
  • eine info Parameter mit einem Link zum Zertifikat
  • eine alg (Algorithmus)-Parameter, der den verwendeten Verschlüsselungstyp angibt
  • a ppt (Reisepasstyp), der wie folgt lauten sollte shaken
Siehe dazu das Beispiel unter der Tabelle.
Nein

Beispiel für den shaken Option:

eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUuY29tL3Bhc3Nwb3J0LnBlbSJ9.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMjEyNTU1MTIxMiJdfSwiaWF0IjoxNjk0ODcwNDAwLCJvcmlnIjp7InRuIjoiMTQxNTU1NTEyMzQifSwib3JpZ2lkIjoiMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwIn0.MEUCIQCrfKeMtvn9I6zXjE2VfGEcdjC2sm5M6cPqBvFyV9XkpQIgLxlvLNmC8DJEKexXZqTZ;info=<https://stir-provider.example.net/cert.cer>;alg=ES256;ppt="shaken"

Endpunkttypen und Werte

Telefon (PSTN) - Telefonnummern im E.164-Format

Wert Beschreibung
type Der Endpunkttyp: phone für einen PSTN-Endpunkt.
number Die Telefonnummer, mit der die Verbindung in E.164 Format.
dtmfAnswer Legen Sie die Ziffern fest, die an den Benutzer gesendet werden, sobald der Anruf angenommen wird. Die * und # Die Ziffern werden beachtet. Sie erstellen Pausen mit p. Jede Pause beträgt 500 ms.
onAnswer Ein JSON-Objekt, das eine erforderliche url Schlüssel. Die URL dient dazu, einen NCCO in der Nummer, mit der Sie verbunden sind, auszuführen, bevor der Anruf mit Ihrem bestehenden Gespräch verbunden wird. Optional kann die ringbackTone Schlüssel kann mit einem URL-Wert angegeben werden, der auf eine ringbackTone die in der Wiederholung an den Empfänger abgespielt werden AnruferSie hören also nicht nur Stille. Die ringbackTone wird automatisch beendet, wenn der Anruf vollständig verbunden ist. Beispiel: {"url":"https://example.com/answer", "ringbackTone":"http://example.com/ringbackTone.wav" }. Bitte beachten Sie, dass die Taste ringback wird weiterhin unterstützt.
shaken Für Vonage-Kunden, die von der FCC verpflichtet sind, ihre Anrufe in die USA selbst zu signieren, bieten wir die Möglichkeit, Voice API-Anrufe mit Ihrer eigenen Signatur zu tätigen.

Diese Funktion ist nur auf Anfrage verfügbar. Anrufe mit einer ungültigen Signatur werden abgewiesen. Bitte kontaktieren Sie uns für weitere Informationen.

Wenn Sie diese Option verwenden, müssen Sie den Inhalt des STIR/SHAKEN-Identitäts-Headers angeben, den Vonage für diesen Anruf verwenden muss. Das erwartete Format besteht aus:
  • ein JWT mit der Kopfzeile, der Nutzlast und der Signatur
  • eine info Parameter mit einem Link zum Zertifikat
  • eine alg (Algorithmus)-Parameter, der den verwendeten Verschlüsselungstyp angibt
  • a ppt (Reisepasstyp), der wie folgt lauten sollte shaken
Siehe dazu das Beispiel unter der Tabelle.

Beispiel für den shaken Option:

eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUuY29tL3Bhc3Nwb3J0LnBlbSJ9.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMjEyNTU1MTIxMiJdfSwiaWF0IjoxNjk0ODcwNDAwLCJvcmlnIjp7InRuIjoiMTQxNTU1NTEyMzQifSwib3JpZ2lkIjoiMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwIn0.MEUCIQCrfKeMtvn9I6zXjE2VfGEcdjC2sm5M6cPqBvFyV9XkpQIgLxlvLNmC8DJEKexXZqTZ;info=<https://stir-provider.example.net/cert.cer>;alg=ES256;ppt="shaken"

App - Verbinden Sie den Anruf mit einer RTC-fähigen Anwendung

Wert Beschreibung
type Der Endpunkttyp: app für eine Applikation.
user Der Benutzername des Benutzers, mit dem eine Verbindung hergestellt werden soll. Dieser Benutzername muss als Benutzer hinzugefügt.

WebSocket - der WebSocket, mit dem eine Verbindung hergestellt werden soll

Wert Beschreibung
type Der Endpunkttyp: websocket für einen WebSocket.
uri Der URI des Websockets, an den Sie streamen.
content-type den Internet-Medientyp für das zu streamende Audio. Mögliche Werte sind: audio/l16;rate=16000 oder audio/l16;rate=8000.
headers ein JSON-Objekt, das alle gewünschten Metadaten enthält. Siehe Verbindung zu einem Websocket zum Beispiel Kopfzeilen.

SIP - der SIP-Endpunkt, mit dem eine Verbindung hergestellt werden soll

Wert Beschreibung
type Der Endpunkttyp: sip für SIP.
uri Die SIP-URI des Endpunkts, mit dem Sie sich verbinden, im Format sip:rebekka@sip.example.com. Zur Verwendung TLS und/oder SRTPumfassen jeweils transport=tls oder media=srtp an die URL mit dem Semikolon ; als Begrenzungszeichen, zum Beispiel: sip:rebekka@sip.example.com;transport=tls;media=srtp. Beachten Sie, dass diese Eigenschaft sich gegenseitig ausschließt mit user und domain.
user Die user Bestandteil des URI. Sie wird zusammen mit dem domain Eigenschaft, um den vollständigen SIP-URI zu erstellen. Wenn Sie diese Eigenschaft festlegen, müssen Sie auch domain und gehen uri nicht festgelegt.
domain Der Bezeichner für eine über das Dashboard erstellte Stammdatenbank. Es muss sich um eine erfolgreich bereitgestellte Domäne handeln, die mit dem SIP Trunking Dashboard oder die Programmierbare SIP-API. Die im Stamm bereitgestellten URIs werden entlang der user Eigenschaft, um den vollständigen SIP-URI zu erstellen. Wenn die URI im Stamm also zum Beispiel lautet: sip.example.com und user ist example_usersendet Vonage den Anruf an example_user@sip.example.com. Wenn Sie diese Eigenschaft einstellen, müssen Sie die uri nicht gesetzt. Beachten Sie, dass sich diese Eigenschaft auf den Domänennamen und nicht auf den Domänen-URI bezieht.
headers key => value String-Paare, die alle benötigten Metadaten enthalten, z. B. { "location": "New York City", "occupation": "developer" }. Die Header werden als Teil des SIP-INVITE übertragen als X-key: value Kopfzeilen. Im Beispiel werden also diese Kopfzeilen gesendet: X-location: New York City und X-occupation: developer.
standardHeaders Ein JSON-Objekt, das einen einzelnen Schlüssel enthält User-to-User. Dies wird verwendet, um Informationen von Benutzer zu Benutzer zu übermitteln, wenn dies vom Anbieter unterstützt wird, wie in RFC 7433. Anders als headerswird der Schlüssel nicht mit X-da sie genormt ist. Zum Beispiel: { "User-to-User": "342342ef34;encoding=hex" }. Vonage validiert den Inhalt des User-to-User-Headers nicht, sondern stellt nur sicher, dass er gültige Zeichen verwendet und die maximal zulässige Anzahl von Zeichen (256) nicht überschreitet.

Wie Ihre Anwendung stattdessen SIP Custom Headers empfangen und verarbeiten kann, erfahren Sie auf der folgenden Seite Programmierbares SIP

VBC - die Vonage Business Cloud (VBC)-Erweiterung zur Verbindung mit

Wert Beschreibung
type Der Endpunkttyp: vbc für eine VBC-Erweiterung.
extension die VBC-Nebenstelle, mit der der Anruf verbunden werden soll.

Gespräch

Die talk Aktion sendet synthetisierte Sprache an eine Konversation.

Der Text, der in der Talk-Aktion angegeben wird, kann entweder einfach sein oder mit SSML. SSML-Tags enthalten weitere Anweisungen für den Text-to-Speech-Synthesizer, mit denen Sie die Tonhöhe und die Aussprache festlegen und Text in mehreren Sprachen miteinander kombinieren können. SSML-Tags sind XML-basiert und werden inline im JSON-String gesendet.

Standardmäßig ist die Gesprächsaktion synchron. Wenn Sie jedoch bargeIn zu wahr müssen Sie eine Eingabe Aktion später im NCCO-Stack. Das folgende NCCO-Beispiel zeigt, wie man eine synthetische Sprachnachricht an eine Konversation oder einen Anruf sendet:

[
  {
    "action": "talk",
    "text": "You are listening to a Call made with Voice API"
  }
]

Sie können die folgenden Optionen verwenden, um eine sprechen Aktion:

Option Beschreibung Erforderlich
text Eine Zeichenkette von bis zu 1.500 Zeichen (ohne SSML-Tags), die die Nachricht enthält, die in dem Anruf oder der Konversation synthetisiert werden soll. Ein einzelnes Komma in text fügt der synthetisierten Sprache eine kurze Pause hinzu. Um eine längere Pause hinzuzufügen, muss ein break Tag muss in SSML verwendet werden. Zur Verwendung SSML Tags, müssen Sie den Text in einen speak Element. Ja
bargeIn Eingestellt auf true so dass diese Aktion beendet wird, wenn der Benutzer mit der Anwendung interagiert, entweder mit DTMF oder ASR-Spracheingabe. Verwenden Sie diese Funktion, um Benutzern die Möglichkeit zu geben, eine Option auszuwählen, ohne die gesamte Nachricht in Ihrer Anwendung anhören zu müssen. Interaktive Sprachausgabe (IVR). Wenn Sie die bargeIn zu true die nächste Nicht-Gesprächs-Aktion im NCCO-Stapel muss ein sein input Aktion. Der Standardwert ist false.

Sobald bargeIn wird eingestellt auf true es wird bleiben true (auch wenn bargeIn: false in einer folgenden Aktion gesetzt wird), bis eine input Aktion wird angetroffen
Nein
loop Die Anzahl der Male text wird wiederholt, bevor der Aufruf geschlossen wird. Der Standardwert ist 1. Setzen Sie ihn auf 0, um eine Endlosschleife zu erzeugen. Nein
level Der Lautstärkepegel, mit dem die Sprache wiedergegeben wird. Dies kann ein beliebiger Wert sein zwischen -1 zu 1 mit 0 ist die Standardeinstellung. Nein
language Die Sprache (BCP-47 Format) für die Nachricht, die Sie senden. Standard: en-US. Die möglichen Werte sind in der Tabelle Text-To-Speech-Anleitung. Nein
style Der Gesangsstil (Stimmumfang, Tessitura und Timbre). Standard: 0. Die möglichen Werte sind in der Tabelle Text-To-Speech-Anleitung. Nein
premium Eingestellt auf true um die Premium-Version des angegebenen Stils zu verwenden, falls verfügbar, andernfalls wird die Standard-Version verwendet. Der Standardwert ist false. Weitere Informationen über Premium Voices finden Sie in der Text-To-Speech-Anleitung. Nein

Gespräch Rückgabeparameter

Siehe Webhook-Referenz für die Parameter, die an den eventUrl.

Stream

Die stream Aktion können Sie einen Audiostrom an eine Konversation senden

Standardmäßig ist die Stream-Aktion synchron. Wenn Sie jedoch die Option bargeIn zu wahr müssen Sie eine Eingabe Aktion später im NCCO-Stapel.

Das folgende NCCO-Beispiel zeigt, wie man einen Audiostrom an eine Konversation oder einen Anruf sendet:

[
  {
    "action": "stream",
    "streamUrl": ["https://acme.com/streams/music.mp3"]
  }
]

Sie können die folgenden Optionen verwenden, um eine Strom Aktion:

Option Beschreibung Erforderlich
streamUrl Ein Array, das eine einzelne URL zu einer mp3- oder wav-Audiodatei (16-Bit) enthält, die an den Anruf oder die Konversation gestreamt werden soll. Ja
level Legt den Audiopegel des Streams im Bereich -1 &gt;=level&lt;=1 mit einer Genauigkeit von 0,1 fest. Der Standardwert ist 0. Nein
bargeIn Eingestellt auf true so dass diese Aktion beendet wird, wenn der Benutzer mit der Anwendung interagiert, entweder mit DTMF oder ASR-Spracheingabe. Verwenden Sie diese Funktion, um Benutzern die Möglichkeit zu geben, eine Option auszuwählen, ohne die gesamte Nachricht in Ihrer Anwendung anhören zu müssen. Interaktive Sprachausgabe (IVR) ). Wenn Sie die bargeIn zu true auf eine weitere Stream-Aktion, dann auf die nächste Nicht-Stream-Aktion im NCCO-Stapel muss ein sein input Aktion. Der Standardwert ist false.

Sobald bargeIn wird eingestellt auf true es wird bleiben true (auch wenn bargeIn: false in einer folgenden Aktion gesetzt wird), bis eine input Aktion angetroffen wird.
Nein
loop Die Anzahl der Male audio wird wiederholt, bevor der Aufruf geschlossen wird. Der Standardwert ist 1. Einstellen auf 0 zu einer Endlosschleife. Nein

Der angegebene Audiostrom sollte eine Datei im MP3- oder WAV-Format sein. Wenn Sie Probleme mit der Wiedergabe der Datei haben, kodieren Sie sie bitte gemäß der folgenden technischen Spezifikation: Welche Art von voraufgezeichneten Audiodateien kann ich verwenden?

Wenn Sie dieselbe Audiodatei mehrmals abspielen, z. B. dieselbe Aufnahme in vielen Anrufen verwenden, sollten Sie eine Cache-Kontrolle Header in der URL-Antwort mit den richtigen Werten.

Cache-Control: public, max-age=360000

Dadurch kann Vonage Ihre Audiodatei zwischenspeichern, anstatt sie jedes Mal herunterzuladen, was die Leistung und die Benutzerfreundlichkeit erheblich verbessern kann. Caching wird sowohl für HTTP- als auch für HTTPS-URLs unterstützt.

Stream Return Parameter

Siehe Webhook-Referenz für die Parameter, die an den eventUrl.

Eingabe

Sie können die input Aktion, um Ziffern oder Spracheingaben des Anrufers zu erfassen. Diese Aktion ist synchron, Vonage verarbeitet die Eingaben und leitet sie an die Parameter die an den eventUrl Webhook-Endpunkt, den Sie in Ihrer Anfrage konfigurieren. Ihr Webhook-Endpunkt sollte ein anderes NCCO zurückgeben, das das bestehende NCCO ersetzt und den Anruf auf der Grundlage der Benutzereingabe steuert. Sie können diese Funktionalität nutzen, um eine interaktive Sprachantwort (IVR) zu erstellen. Wenn Ihr Benutzer zum Beispiel drückt 4 oder "Verkauf" sagt, geben Sie eine verbinden NCCO, der den Anruf an Ihre Vertriebsabteilung weiterleitet.

Das folgende NCCO-Beispiel zeigt, wie man einen IVR-Endpunkt konfiguriert:

[
  {
    "action": "talk",
    "text": "Please enter a digit or say something"
  },
  {
    "action": "input",
    "eventUrl": [
      "https://example.com/ivr"
    ],
    "type": [ "dtmf", "speech" ],
    "dtmf": {
      "maxDigits": 1
    },
    "speech": {
      "context": [ "sales", "support" ]
    }
  }
]

Das folgende NCCO-Beispiel zeigt, wie man bargeIn um einem Benutzer die Unterbrechung einer talk Aktion. Beachten Sie, dass eine input Aktion muss folgen jeder Aktion, die eine bargeIn Eigenschaft (z.B. talk oder stream).

[
  {
    "action": "talk",
    "text": "Please enter a digit or say something",
    "bargeIn": true
  },
  {
    "action": "input",
    "eventUrl": [
      "https://example.com/ivr"
    ],
    "type": [ "dtmf", "speech" ],	
    "dtmf": {
      "maxDigits": 1
    },
    "speech": {
      "context": [ "sales", "support" ]
    }	
  }
]

Die folgenden Optionen können verwendet werden, um eine input Aktion:

Option Beschreibung Erforderlich
type Zulässiger Eingabetyp, kann eingestellt werden als [ "dtmf" ] nur für DTMF-Eingabe, [ "speech" ] nur für ASR, oder [ "dtmf", "speech" ] für beide. Ja
dtmf DTMF-Einstellungen. Nein
speech Einstellungen für die Spracherkennung. Nein
mode Eingabeverarbeitungsmodus, gilt derzeit nur für DTMF. Gültige Werte sind synchronous (der Standard) und asynchronous. Bei Einstellung auf asynchronousalle DTMF-Einstellungen muss leer gelassen werden. Im asynchronen Modus werden die Ziffern nacheinander in Echtzeit an den Ereignis-Webhook gesendet. In der Standardeinstellung synchronous Modus wird dies stattdessen durch die DTMF-Einstellungen gesteuert, und die Eingaben werden im Stapel gesendet. Nein
eventUrl Vonage sendet die vom Anrufer gedrückten Ziffern an diese URL 1) nach timeOut Pause in der Aktivität oder wenn # für DTMF gedrückt wird oder 2) nachdem der Benutzer aufhört zu sprechen oder 30 Sekunden Sprache für die Spracheingabe. Nein
eventMethod Die HTTP-Methode, die zum Senden von Ereignisinformationen an event_url Der Standardwert ist POST. Nein

DTMF-Eingabeeinstellungen

Anmerkung: Diese Einstellungen gelten nicht, wenn die mode wird eingestellt auf asynchronous.

Option Beschreibung Erforderlich
timeOut Das Ergebnis der Aktivität des Anrufers wird an den eventUrl Webhook-Endpunkt timeOut Sekunden nach der letzten Aktion. Der Standardwert ist 3. Maximal ist 10. Nein
maxDigits Die Anzahl der Ziffern, die der Benutzer drücken kann. Der Höchstwert ist 20ist der Standardwert 4 Ziffern. Nein
submitOnHash Eingestellt auf true so dass die Aktivität des Anrufers an Ihren Webhook-Endpunkt gesendet wird eventUrl nachdem sie auf #. Wenn # nicht gedrückt wird, wird das Ergebnis nach timeOut Sekunden. Der Standardwert ist false. Das heißt, das Ergebnis wird an Ihren Webhook-Endpunkt gesendet, nachdem timeOut Sekunden. Nein

Spracherkennungseinstellungen

Option Beschreibung Erforderlich
uuid Die eindeutige ID des Gesprächsabschnitts, dessen Sprache der Benutzer erfassen soll, definiert als Array mit einem einzigen Element. Standardmäßig der erste verbundene Teil des Anrufs. Nein
endOnSilence Legt fest, wie lange das System wartet, nachdem der Benutzer aufhört zu sprechen, um zu entscheiden, dass die Eingabe abgeschlossen ist. Der Standardwert ist 2.0 (Sekunden). Der Bereich der möglichen Werte liegt zwischen 0.4 Sekunden und 10.0 Sekunden. Nein
language Erwartete Sprache der Sprache des Benutzers. Format: BCP-47. Standard: en-US. Liste der unterstützten Sprachen. Nein
context Array mit Hinweisen (Strings) zur Verbesserung der Erkennungsqualität, wenn bestimmte Wörter vom Benutzer erwartet werden. Nein
startTimeout Legt fest, wie lange das System wartet, bis der Benutzer zu sprechen beginnt. Der Bereich der möglichen Werte liegt zwischen 1 Sekunde und 60 Sekunden. Der Standardwert ist 10. Nein
maxDuration Steuert die maximale Sprechdauer (ab dem Zeitpunkt, an dem der Benutzer zu sprechen beginnt). Der Standardwert ist 60 (Sekunden). Der Bereich der möglichen Werte liegt zwischen 1 und 60 Sekunden. Nein
saveAudio Eingestellt auf true so dass die Spracheingangsaufzeichnung (recording_url) wird an Ihren Webhook-Endpunkt gesendet unter eventUrl. Der Standardwert ist false. Nein
sensitivity Audioempfindlichkeit zur Unterscheidung von Lärm und Sprache. Ein ganzzahliger Wert, wobei 10 für geringe und 100 für maximale Empfindlichkeit steht. Standardwert ist 90. Nein

Das folgende Beispiel zeigt die Parameter, die an den eventUrl Webhook für DTMF-Eingabe:

{
  "speech": { "results": [ ] },
  "dtmf": {
    "digits": "1234",
    "timed_out": true
  },
  "from": "15551234567",
  "to": "15557654321",
  "uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "conversation_uuid": "bbbbbbbb-cccc-dddd-eeee-0123456789ab",
  "timestamp": "2020-01-01T14:00:00.000Z"
}

Das folgende Beispiel zeigt die Parameter, die zurück an die eventUrl Webhook für Spracheingabe:

{
  "speech": {
    "recording_url": "https://api-us.nexmo.com/v1/files/eeeeeee-ffff-0123-4567-0123456789ab",
    "timeout_reason": "end_on_silence_timeout",
    "results": [
      {
        "confidence": "0.9405097",
        "text": "sales"
      },
      {
        "confidence": "0.70543784",
        "text": "sails"
      },
      {
        "confidence": "0.5949854",
        "text": "sale"
      }
    ]
  },
  "dtmf": {
    "digits": null,
    "timed_out": false
  },
  "from": "15551234567",
  "to": "15557654321",  
  "uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "conversation_uuid": "bbbbbbbb-cccc-dddd-eeee-0123456789ab",
  "timestamp": "2020-01-01T14:00:00.000Z"
}

Eingabe Rückgabe Parameter

Siehe Webhook-Referenz für Eingabeparameter, die an den eventUrl.

benachrichtigen.

Verwenden Sie die notify Aktion, um eine benutzerdefinierte Nutzlast an Ihre Ereignis-URL zu senden. Ihr Webhook-Endpunkt kann ein anderes NCCO zurückgeben, das das vorhandene NCCO ersetzt, oder eine leere Nutzlast zurückgeben, was bedeutet, dass das vorhandene NCCO weiterhin ausgeführt wird.

[
  {
    "action": "notify",
    "payload": {
      "foo": "bar"
    },
    "eventUrl": [
      "https://example.com/webhooks/event"
    ],
    "eventMethod": "POST"
  }
]
Option Beschreibung Erforderlich
payload Der JSON-Body, der an Ihre Ereignis-URL gesendet wird. Ja
eventUrl Die URL, an die Ereignisse gesendet werden sollen. Wenn Sie einen NCCO zurücksenden, wenn Sie eine Benachrichtigung erhalten, wird dieser den aktuellen NCCO ersetzen. Ja
eventMethod Die zu verwendende HTTP-Methode beim Senden payload zu Ihrem eventUrl. Nein

Aufforderungen Spracheinstellungen

Option Beschreibung Erforderlich
language Die Sprache (BCP-47 Format) für die Eingabeaufforderungen. Standard: en-US. Die möglichen Werte sind in der Tabelle Text-To-Speech-Anleitung. Nein
style Der Gesangsstil (Stimmumfang, Tessitura und Timbre). Standard: 0. Die möglichen Werte sind in der Tabelle Text-To-Speech-Anleitung. Nein

Warten

Sie können die wait Aktion, um eine Wartezeit hinzuzufügen und die Ausführung des laufenden NCCO für eine bestimmte Anzahl von Sekunden anzuhalten.

Die Aktion ist synchron. Die Wartezeit beginnt, wenn die Warteaktion im NCCO ausgeführt wird, und endet nach dem angegebenen oder dem Standard-Timeout-Wert. Zu diesem Zeitpunkt setzt der NCCO die Ausführung fort. Die Website timeout ist ein Float-Wert. Gültige Werte reichen von 0,1 Sekunden bis 7200 Sekunden. Werte unter 0,1 Sekunden sind standardmäßig 0,1 Sekunden, und Werte über 7200 sind standardmäßig 7200 Sekunden. Wird kein Wert angegeben, wird der Standardwert 10 Sekunden sein.

HinweisWenn Sie einen Rückruf benötigen, der Sie darüber informiert, dass die Warteaktion beendet wurde, fügen Sie eine Benachrichtigungsaktion nach der Warteaktion hinzu.

Das folgende NCCO-Beispiel zeigt, wie man die Warteaktion ausführt:

[
  {
    "action": "talk",
    "text": "Welcome to a Vonage moderated conference"
  },
  {
    "action": "wait",
    "timeout": 0.5
  },
  {
    "action": "talk",
    "text": "We will connect you when an agent is available"
  }
]

Sie können die folgenden Optionen verwenden, um eine wait Aktion:

Option Beschreibung Erforderlich
timeout Steuert die Dauer der Wartezeit, bevor die nächste Aktion im NCCO ausgeführt wird. Dieser Parameter ist ein Float. Gültige Werte reichen von 0,1 Sekunden bis 7200 Sekunden. Werte unter 0,1 sind standardmäßig 0,1 Sekunden und Werte über 7200 sind standardmäßig 7200 Sekunden. Der Standardwert ist 10. Nein

Übertragung

Die transfer Aktion ist synchron. Sie können damit die Gesprächsabschnitte aus einem laufenden Gespräch in ein anderes bestehendes Gespräch verschieben. Die Seite transfer Die Aktion ist für das aktuelle Gespräch beendet, und der NCCO des Zielgesprächs steuert weiterhin das Verhalten des Zielgesprächs. Alle Teile der aktuellen Konversation werden in die Zielkonversation übertragen, wobei die Audioeinstellungen (canHear, canSpeak, mute), wenn sie zur Verfügung gestellt werden.

Das folgende NCCO-Beispiel zeigt, wie die Übertragungsaktion ausgeführt wird:

[
   ...
   {
     "action": "transfer",
     "conversationId": "CON-f972836a-550f-45fa-956c-12a2ab5b7d22",
     "canHear": [ "9c132730-8c22-4760-a4dc-40502f05b444" ]
   }
   ...
]

Sie können die folgenden Optionen verwenden, um eine Übertragungsaktion zu steuern:

Option Beschreibung Erforderlich
conversation_id Ziel-Conversation-ID, definiert als String. Ja
canHear Eine Liste von Bein-UUIDs, die dieser Teilnehmer hören kann, definiert als ein Array von Strings. Wenn keine Liste angegeben wird, kann der Teilnehmer alle hören. Wenn eine leere Liste angegeben wird, kann der Teilnehmer keine anderen Teilnehmer hören. Nein
canSpeak Eine Liste von Bein-UUIDs, von denen dieser Teilnehmer gehört werden kann, definiert als ein Array von Strings. Wenn nichts angegeben wird, kann der Teilnehmer von jedem gehört werden. Wenn eine leere Liste angegeben wird, wird der Teilnehmer von niemandem gehört. Nein
mute Setzen Sie diese Option auf true, um den Teilnehmer stumm zu schalten. Der Ton des Teilnehmers wird nicht in das Gespräch eingespielt und nicht aufgezeichnet. Bei Verwendung von canSpeakdie mute Parameter wird nicht unterstützt. Nein