Übersicht über die Anrufautomatisierung
Mit der Anrufautomatisierung von Azure Communication Services können Entwickler serverbasierte, intelligente Anrufworkflows und Anrufaufzeichnung für VoIP- und Public Switched Telephone Network (PSTN)-Kanäle erstellen. Die in C#, Java, JavaScript und Python verfügbaren SDKs verwenden ein Aktion-Ereignis-Modell, um Sie bei der Erstellung personalisierter Kundeninteraktionen zu unterstützen. Ihre Kommunikationsanwendungen können auf Echtzeitanrufereignisse lauschen und Aktionen auf Steuerungsebene (wie Annehmen, Durchstellen, Wiedergeben von Audio, Starten der Aufzeichnung usw.) ausführen, um Anrufe basierend auf Ihrer Geschäftslogik zu steuern.
Gängige Anwendungsfälle
Im Folgenden finden Sie einige allgemeine Anwendungsfälle für die Anrufautomatisierung:
- Programmieren von VoIP- oder PSTN-Anrufen für Transaktionsworkflows wie Anruf per Mausklick oder Terminerinnerungen, um den Kundenservice zu verbessern
- Erstellen interaktiver Interaktionsworkflows, um für Anwendungsfälle wie Auftragsbuchungen und -aktualisierungen über Aktionen vom Typ „Wiedergeben“ (Audio-URL, Text-zu-Sprache und SSML) und „Erkennen“ (Mehrfrequenzverfahren und Sprache) eine Self-Service-Funktion für Kunden bereitzustellen.
- Integrieren Ihrer Kommunikationsanwendungen in Kontaktcenter und in Ihre privaten Telefonienetzwerke mithilfe von Direct Routing
- Schützen der Identität Ihrer Kunden durch Erstellen von Nummernmaskierungsdiensten, um auf Ihrer Plattform Kontakte zwischen Käufern und Verkäufern oder zwischen Benutzern und Partneranbietern zu ermöglichen
- Verbessern der Kundenbindung durch Erstellen automatisierter Kundenkontaktprogramme für Marketing und Kundenservice
- Analysieren der Aufzeichnungen von nicht gemischtem Audio nach einem Anruf zur Qualitätssicherung
Verwenden Sie die Anrufautomatisierung von Azure Communication Services, um wie im allgemeinen Architekturüberblick gezeigt Anrufworkflows für Kundenserviceszenarien zu erstellen. Sie können eingehende Anrufe annehmen oder ausgehende Anrufe tätigen. Führen Sie Aktionen wie das Wiedergeben einer Begrüßungsnachricht und das Verbinden des Kunden mit einem Mitarbeiter in einer Azure Communication Services Anruf-SDK-Client-App aus, um eingehende Anrufe anzunehmen. Durch Unterstützung von Azure Communication Services-PSTN oder Direct Routing können Sie diesen Workflow dann mit Ihrem Kontaktcenter verbinden.
Capabilities
Die folgenden Features sind derzeit in Azure Communication Services -Anrufautomatisierungs-SDKs verfügbar.
Featurebereich | Funktion | .NET | Java | JavaScript | Python |
---|---|---|---|---|---|
Vor einen Anruf | Annehmen eines 1:1-Anrufs | ✔️ | ✔️ | ✔️ | ✔️ |
Annehmen eines Gruppenanrufs | ✔️ | ✔️ | ✔️ | ✔️ | |
Tätigen eines neuen ausgehenden Anrufs mit einem Endpunkt oder mit mehreren Endpunkten | ✔️ | ✔️ | ✔️ | ✔️ | |
Umleiten* eines Anrufs an einen Endpunkt oder an mehrere Endpunkte (Verbinden) | ✔️ | ✔️ | ✔️ | ✔️ | |
Abweisen eines eingehenden Anrufs | ✔️ | ✔️ | ✔️ | ✔️ | |
Herstellen einer Verbindung mit einem laufenden Anruf oder Raum | ✔️ | ✔️ | ✔️ | ✔️ | |
Während eines Anrufs | Hinzufügen eines Endpunkts oder mehrerer Endpunkte zu einem vorhandenen Anruf | ✔️ | ✔️ | ✔️ | ✔️ |
Hinzufügen eines Endpunkts zu einem bestehenden Anruf abbrechen | ✔️ | ✔️ | ✔️ | ✔️ | |
Wiedergeben von Audio aus einer Audiodatei | ✔️ | ✔️ | ✔️ | ✔️ | |
Audio mit Text-zu-Sprache abspielen | ✔️ | ✔️ | ✔️ | ✔️ | |
Erkennen von Benutzereingaben mithilfe von DTMF | ✔️ | ✔️ | ✔️ | ✔️ | |
Benutzerspracheingaben erkennen | ✔️ | ✔️ | ✔️ | ✔️ | |
Fortlaufende DTMF-Erkennung starten | ✔️ | ✔️ | ✔️ | ✔️ | |
Fortlaufende DTMF-Erkennung beenden | ✔️ | ✔️ | ✔️ | ✔️ | |
DTMF senden | ✔️ | ✔️ | ✔️ | ✔️ | |
Teilnehmer stummschalten | ✔️ | ✔️ | ✔️ | ✔️ | |
Audio-Streaming starten/beenden (Public Preview) | ✔️ | ✔️ | ✔️ | ✔️ | |
Echtzeittranskription starten/beenden (Public Preview) | ✔️ | ✔️ | ✔️ | ✔️ | |
Entfernen eines Endpunkts oder mehrerer Endpunkte aus einem vorhandenen Anruf | ✔️ | ✔️ | ✔️ | ✔️ | |
Durchstellen eines 1:1-Anrufs an einen anderen Endpunkt | ✔️ | ✔️ | ✔️ | ✔️ | |
Durchstellen eines Teilnehmers eines Gruppenanrufs an einen anderen Endpunkt | ✔️ | ✔️ | ✔️ | ✔️ | |
Auflegen (Entfernen des Anrufzweigs) | ✔️ | ✔️ | ✔️ | ✔️ | |
Beenden eines Anrufs (Entfernen aller Teilnehmer und Beenden des Anrufs) | ✔️ | ✔️ | ✔️ | ✔️ | |
Medienvorgänge abbrechen | ✔️ | ✔️ | ✔️ | ✔️ | |
Benutzerdefinierte Informationen (über VOIP- oder SIP-Header) an Endpunkte freigeben, wenn diese zu einem Anruf hinzugefügt werden oder ein Anruf an sie weitergeleitet wird | ✔️ | ✔️ | ✔️ | ✔️ | |
Abfrageszenarien | Abrufen des Anrufzustands | ✔️ | ✔️ | ✔️ | ✔️ |
Abrufen eines Anrufteilnehmers | ✔️ | ✔️ | ✔️ | ✔️ | |
Auflisten aller Anrufteilnehmer | ✔️ | ✔️ | ✔️ | ✔️ | |
Anrufaufzeichnung | Starten/Anhalten/Fortsetzen/Beenden der Aufzeichnung | ✔️ | ✔️ | ✔️ | ✔️ |
* Die Umleitung eines VoIP-Anrufs an eine Telefonnummer wird nicht unterstützt.
Aufbau
Bei der Anrufautomatisierung wird eine REST-API-Schnittstelle verwendet, um Anforderungen zu empfangen und Reaktionen für alle Aktionen bereitzustellen, die innerhalb des Diensts ausgeführt werden. Da Anrufe asynchron erfolgen, verfügen die meisten Aktionen über entsprechende Ereignisse, die ausgelöst werden, wenn die Aktion erfolgreich oder mit Fehlern abgeschlossen wird.
Azure Communication Services verwendet das Ereignisraster zum Bereitstellen des IncomingCall-Ereignisses und HTTPS-Webhooks für alle Aktionsrückrufe bei laufenden Anrufen.
Anrufaktionen
Aktionen vor einem Anruf
Diese Aktionen werden ausgeführt, bevor die Verbindung mit dem in der IncomingCall
-Ereignisbenachrichtigung angegebenen Zielendpunkt hergestellt wird. Webhookrückruf-Ereignisse kommunizieren keine Aktionen vom Typ reject
oder redirect
vor einem Anruf, sondern nur die Aktion answer
.
Annehmen: Mithilfe des IncomingCall-Ereignisses von Event Grid und des Anrufautomatisierungs-SDK kann Ihre Anwendung einen Anruf annehmen. Verwenden Sie diese Aktion in IVR-Szenarien (Interactive Voice Response, interaktive Sprachantwort), in denen Ihre Anwendung eingehende Anrufe aus dem Telefonfestnetz (Public Switched Telephone Network, PSTN) programmgesteuert annehmen kann. Es sind aber auch noch andere Szenarien möglich, etwa das Annehmen eines Anrufs für einen Benutzer.
Abweisen: Beim Abweisen eines Anrufs empfängt die Anwendung das IncomingCall
-Ereignis und verhindert, dass der Anruf mit dem Zielendpunkt verbunden wird.
Umleiten: Mithilfe des IncomingCall
-Ereignisses von Event Grid können Sie einen Anruf an einen anderen Endpunkt umleiten. Die Umleitungsaktion nimmt den Anruf nicht an. Der Anruf wird an einen anderen Zielendpunkt umgeleitet oder weitergeleitet, um dort entgegengenommen zu werden.
Anruf erstellen: Verwenden Sie die Aktion „Anruf erstellen”, um ausgehende Anrufe an Telefonnummern und andere Kommunikationsbenutzer zu tätigen. Ein möglicher Anwendungsfall wären beispielsweise von Ihrer Anwendung getätigte ausgehende Anrufe, um Benutzer proaktiv über einen Ausfall oder über eine Aktualisierung bei einer Bestellung zu informieren.
Anruf verbinden: Verwenden Sie die Aktion „Anruf verbinden“, um eine Verbindung mit einem laufenden Anruf herzustellen und Anrufaktionen auszuführen. Sie können diese Aktion auch verwenden, um einen Raum-Anruf programmgesteuert zu verbinden und zu verwalten, z. B. ausgehende PSTN-Anrufe für einen Raum mit Ihrem Dienst.
Aktionen während eines Anrufs
Ihre Anwendung kann diese Aktionen für Anrufe ausführen, die mithilfe von Anrufautomatisierungs-SDKs angenommen oder getätigt werden. Jede Aktion während eines Anrufs verfügt über ein entsprechendes Webhookrückruf-Ereignis für den Fall, dass der Vorgang erfolgreich oder nicht erfolgreich war.
Hinzufügen oder Entfernen von Teilnehmer(n): Sie können einen oder mehrere Teilnehmer in einer einzelnen Anforderung hinzufügen, wobei jeder Teilnehmer eine Variation der unterstützten Zielendpunkte ist. Ein Webhookrückruf wird für jeden Teilnehmer gesendet, der dem Anruf erfolgreich hinzugefügt wurde.
Wiedergeben: Wenn Ihre Anwendung einen Anruf annimmt oder einen ausgehenden Anruf tätigt, können Sie eine Audioaufforderung für den Anrufer wiedergeben. Hierbei kann bei Bedarf eine Wiedergabeschleife verwendet werden, um beispielsweise Warteschleifenmusik wiederzugeben. Weitere Informationen finden Sie unter Wiedergeben von Audiodaten in einem Anruf und Anpassen von sprachbasierten Eingabeaufforderungen für Benutzer mit der Wiedergabeaktion.
Eingabe erkennen: Nachdem Ihre Anwendung eine Audioaufforderung wiedergegeben hat, können Sie Benutzereingaben anfordern, um Geschäftslogik und die Navigation in Ihrer Anwendung zu steuern. Weitere Informationen finden Sie unter Erfassen der Benutzereingabe und in der Schrittanleitung Erfassen von Benutzereingaben mit der Erkennungsaktion.
Kontinuierliche MFV-Erkennung: Wenn Ihre Anwendung in der Lage sein muss, MFV-Töne (Mehrfrequenzverfahren) an jedem Punkt des Anrufs zu empfangen, ohne dass die Anwendung eine bestimmte Erkennungsaktion auslösen muss. Dies kann in Szenarien hilfreich sein, in denen sich ein Agent in einem Anruf befindet und der Benutzer eine bestimmte Art von ID oder Verfolgungsnummer eingeben muss. Weitere Informationen finden Sie unter So steuern Sie Medienaktionen während eines Anrufs mit der Anrufautomatisierung.
MFV senden: Wenn Ihre Anwendung MFV-Töne an einen externen Teilnehmer senden muss. Verwenden Sie diese Aktion, um einen externen Agenten anzuwählen und ihm die Durchwahlnummer mitzuteilen oder in einem externen IVR-Menü zu navigieren.
Stumm: Die Anwendung kann bestimmte Benutzer basierend auf Ihrer Geschäftslogik stummschalten. Der Benutzer muss dann die Stummschaltung manuell aufheben, wenn er sprechen möchte.
Durchstellen: Wenn Ihre Anwendung einen Anruf annimmt oder einen ausgehenden Anruf an einen Endpunkt tätigt, kann dieser Anruf an einen anderen Zielendpunkt durchgestellt werden. Wenn ein 1:1-Anruf durchgestellt wird, kann der Anruf nicht mehr von Ihrer Anwendung über die Call Automation SDKs gesteuert werden.
Aufzeichnen: Sie entscheiden basierend auf der Geschäftslogik Ihrer Anwendung, wann Sie die Aufzeichnung starten, anhalten, fortsetzen oder beenden möchten. Alternativ können Sie dem Endbenutzer die Kontrolle über das Auslösen dieser Aktionen übertragen. Weitere Informationen finden Sie in unseren Konzepten und dem Schnellstart.
Auflegen: Wenn Ihre Anwendung einen 1:1-Anruf angenommen hat, führt das Auflegen dazu, dass der Anrufzweig entfernt und das Gespräch mit dem anderen Endpunkt beendet wird. Hat der Anruf mehr als zwei Teilnehmer (Gruppenanruf), führt das Auflegen dazu, dass der Endpunkt Ihrer Anwendung aus dem Gruppenanruf entfernt wird.
Beenden: Diese Aktion entfernt alle Teilnehmer und beendet den Anruf. Dabei spielt es keine Rolle, ob Ihre Anwendung einen 1:1-Anruf oder einen Gruppenanruf angenommen oder einen ausgehenden Anruf mit einem einzelnen Teilnehmer oder mit mehreren Teilnehmern getätigt hat. Dieser Vorgang wird ausgelöst, indem die forEveryOne
-Eigenschaft in der Anrufaktion „Auflegen“ auf true
festgelegt wird.
Medienvorgänge abbrechen: Auf der Grundlage der Geschäftslogik muss Ihre Anwendung laufende und in die Warteschlange eingereihte Medienvorgänge möglicherweise abbrechen. Je nach abgebrochenem Medienvorgang und den Vorgängen in der Warteschlange empfängt Ihre Anwendung möglicherweise ein Webhookereignis, das angibt, dass die Aktion abgebrochen wurde.
Audio-Streaming starten/beenden (Public Preview): Audiostreaming ermöglicht es Ihnen, Audiostreams aus einem laufenden Anruf in Echtzeit zu abonnieren. Ausführlichere Anleitungen zu den ersten Schritten mit Audio-Streaming und Informationen zu Audio-Streaming-Rückrufereignissen finden Sie im Konzept und im Schnellstart.
Echtzeittranskription starten/beenden (Public Preview): Echtzeittranskription ermöglicht Ihnen den Zugriff auf Livetranskriptionen für das Audio eines laufenden Anrufs. Ausführlichere Anleitungen für die ersten Schritte mit der Echtzeittranskription und Informationen zu Echtzeittranskriptions-Rückrufereignissen finden Sie im Konzept und im Schnellstart.
Abfrageszenarien
Teilnehmer auflisten: Gibt eine Liste mit allen Teilnehmern eines Anrufs zurück. Aufzeichnungs- und Transkriptions-Bots werden aus dieser Liste weggelassen.
Ereignisse
In der folgenden Tabelle werden die aktuellen Ereignisse beschrieben, die von Azure Communication Services ausgegeben werden. Die beiden folgenden Tabellen beschreiben die Ereignisse, die von Event Grid und von der Anrufautomatisierung als Webhookereignisse ausgegeben werden.
Event Grid-Ereignisse
Die meisten von Event Grid gesendeten Ereignisse sind plattformunabhängig. Sie werden unabhängig vom SDK (Anruf-SDK oder Anrufautomatisierung) gesendet. Sie können zwar ein Abonnement für ein beliebiges Ereignis erstellen, es empfiehlt sich jedoch, für alle Anwendungsfälle der Anrufautomatisierung, in denen Sie den Anruf programmgesteuert steuern möchten, das IncomingCall
-Ereignis zu verwenden. Verwenden Sie die anderen Ereignisse zu Berichts- bzw. Telemetriezwecken.
Ereignis | Beschreibung |
---|---|
IncomingCall |
Benachrichtigung eines Anrufs für einen Kommunikationsbenutzer oder eine Telefonnummer. |
CallStarted |
Ein Anruf wurde eingerichtet (eingehend oder ausgehend). |
CallEnded |
Ein Anruf wurde beendet, und alle Teilnehmer wurden entfernt. |
ParticipantAdded |
Einem Anruf wurde ein Teilnehmer hinzugefügt. |
ParticipantRemoved |
Ein Teilnehmer wurde aus einem Anruf entfernt. |
RecordingFileStatusUpdated |
Eine Aufzeichnungsdatei ist verfügbar. |
Weitere Informationen zu diesen Ereignissen und zum Nutzlastschema finden Sie unter Azure Communication Services – Ereignisse für Sprach- und Videoanrufe.
Webhookereignisse der Anrufautomatisierung
Die Anrufautomatisierungsereignisse werden an den angegeben Webhookrückruf-URI gesendet, wenn Sie einen Anruf annehmen oder einen neuen ausgehenden Anruf tätigen.
Ereignis | Beschreibung |
---|---|
CallConnected |
Der Anruf wurde erfolgreich gestartet (bei Verwendung der Aktion Answer oder Create ), oder Ihre Anwendung hat erfolgreich eine Verbindung mit einem laufenden Anruf hergestellt (bei Verwendung der Aktion Connect ). |
CallDisconnected |
Ihre Anwendung wurde vom Anruf getrennt. |
CreateCallFailed |
Ihre Anwendung konnte den Aufruf nicht erstellen. |
AnswerFailed |
Ihre Anwendung konnte den Aufruf nicht annehmen. |
ConnectFailed |
Ihre Anwendung konnte keine Verbindung mit einem Anruf herstellen (nur für die Aktion Connect ). |
CallTransferAccepted |
Die Aktion „Weiterleiten“ wurde erfolgreich abgeschlossen, und der weitergeleitete Teilnehmer ist mit dem Zielteilnehmer verbunden. |
CallTransferFailed |
Die Aktion „Weiterleiten“ ist fehlgeschlagen. |
AddParticipantSucceeded |
Ihre Anwendung hat einen Teilnehmer erfolgreich zum Anruf hinzugefügt. |
AddParticipantFailed |
Ihre Anwendung konnte dem Anruf keinen Teilnehmer hinzufügen (aufgrund eines Fehlers oder weil der Teilnehmer die Einladung nicht angenommen hat). |
CancelAddParticipantSucceeded |
Ihre Anwendung hat eine Anforderung zum Hinzufügen eines Teilnehmers (AddParticipant ) erfolgreich abgebrochen (der Teilnehmer wurde dem Anruf nicht hinzugefügt). |
CancelAddParticipantFailed |
Ihre Anwendung konnte eine Anforderung zum Hinzufügen eines Teilnehmers (AddParticipant) nicht abbrechen (möglicherweise wurde die Anforderung bereits verarbeitet). |
RemoveParticipantSucceeded |
Ihre Anwendung hat einen Teilnehmer erfolgreich aus dem Anruf entfernt. |
RemoveParticipantFailed |
Das Entfernen eines Teilnehmers durch Ihre Anwendung war nicht erfolgreich. |
ParticipantsUpdated |
Der Status eines Teilnehmers hat sich geändert, während Ihre Anwendung mit einem Anruf verbunden war. |
PlayCompleted |
Die bereitgestellte Audiodatei wurde von Ihrer Anwendung erfolgreich wiedergegeben. |
PlayFailed |
Die Audiowiedergabe durch Ihre Anwendung war nicht erfolgreich. |
PlayCanceled |
Die angeforderte Wiedergabeaktion wurde abgebrochen. |
RecognizeCompleted |
Die Erkennung der Benutzereingabe wurde erfolgreich abgeschlossen. |
RecognizeCanceled |
Die angeforderte Aktion Recognize wurde abgebrochen. |
RecognizeFailed |
Die Erkennung der Benutzereingabe war nicht erfolgreich. Weitere Informationen zum Erkennen von Aktionsereignissen finden Sie in unserer Schrittanleitung zum Sammeln von Benutzereingaben. |
RecordingStateChanged |
Status der Aufzeichnungsaktion hat sich von aktiv zu inaktiv oder umgekehrt geändert. |
ContinuousDtmfRecognitionToneReceived |
StartContinuousDtmfRecognition wurde erfolgreich abgeschlossen und ein DTMF-Ton wurde vom Teilnehmer empfangen. |
ContinuousDtmfRecognitionToneFailed |
StartContinuousDtmfRecognition wurde abgeschlossen, aber bei der Verarbeitung eines DTMF-Tons vom Teilnehmer ist ein Fehler aufgetreten. |
ContinuousDtmfRecognitionStopped |
Die Ausführung von StopContinuousRecognition war erfolgreich. |
SendDtmfCompleted |
SendDTMF wurde erfolgreich abgeschlossen, und die DTMF-Töne wurden an den Zielteilnehmer gesendet. |
SendDtmfFailed |
Fehler beim Senden der DTMF-Töne. |
Informationen dazu, welche Ereignisse für unterschiedliche Aktionen veröffentlicht werden, finden Sie unter Steuern und Weiterleiten von Anrufen mit der Anrufautomatisierung. Der Artikel enthält Codebeispiele und Sequenzdiagramme für verschiedene Anrufsteuerungsflüsse.
Als bewährte Methode wird empfohlen, beim Bestätigen von Rückrufereignissen mit standardmäßigen HTTP-Statuscodes wie 200 OK zu reagieren. Detaillierte Informationen sind unnötig und eignen sich besser für Ihre Debuggingprozesse.
Wie Sie die Zustellung von Rückrufereignissen schützen können, erfahren Sie unter Schützen des Webhook-Endpunkts.
Rückruf-URI des Vorgangs
Der Rückruf-URI des Vorgangs ist ein optionaler Parameter in einigen Mid-Call-APIs, die Ereignisse als asynchrone Antworten verwenden. Standardmäßig werden alle Ereignisse an die Standard-Rückruf-URI gesendet, die von CreateCall
/ AnswerCall
-API-Ereignissen festgelegt wird, wenn der Benutzer einen Anruf tätigt. Bei der Verwendung der Rückruf-URI des Vorgangs sendet die API entsprechende Ereignisse dieser einzelnen (einmaligen) Anforderung an die neue URI.
Unterstützte API | Zugehöriges Ereignis |
---|---|
AddParticipant |
AddParticipantSucceed / AddParticipantFailed |
RemoveParticipant |
RemoveParticipantSucceed / RemoveParticipantFailed |
TransferCall |
CallTransferAccepted / CallTransferFailed |
CancelAddParticipant |
CancelAddParticipantSucceeded / CancelAddParticipantFailed |
Play |
PlayCompleted / PlayFailed / PlayCanceled |
PlayToAll |
PlayCompleted / PlayFailed / PlayCanceled |
Recognize |
RecognizeCompleted / RecognizeFailed / RecognizeCanceled |
StopContinuousDTMFRecognition |
ContinuousDtmfRecognitionStopped |
SendDTMF |
ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed |
Hold |
HoldFailed |
StartMediaStreaming |
MediaStreamingStarted / MediaStreamingFailed |
StopMediaStreaming |
MediaStreamingStopped / MediaStreamingFailed |
StartTranscription |
TranscriptionStarted / TranscriptionFailed |
UpdateTranscription |
TranscriptionUpdated / TranscriptionFailed |
StopTranscription |
TranscriptionStopped / TranscriptionFailed |
Nächste Schritte
Verwandte Artikel
- Anhand von Beispielen können Sie die Rechnungsstellung für verschiedene Anrufanwendungsfälle verstehen.
- Lesen Sie Schnellstart: Tätigen eines ausgehenden Anrufs mithilfe der Anrufautomatisierung.
- Erfahren Sie mehr über Nutzungs- und Betriebsprotokolle, die von der Anrufautomatisierung veröffentlicht wurden.