Ü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.

Hinweis

Die Anrufautomatisierung unterstützt derzeit keine Rooms-Anrufe.

Gängige Anwendungsfälle

Mit der Anrufautomatisierung lassen sich unter anderem folgende gängige Anwendungsfälle implementieren:

  • Programmieren von VoIP- oder PSTN-Anrufen für Transaktionsworkflows wie Anruf per Mausklick oder Terminerinnerungen, um den Kundenservice zu verbessern
  • Erstellen interaktiver Interaktionsworkflows für Self-Service-Kundenszenarien, um Anwendungsfälle wie Auftragsbuchungen und -aktualisierungen über Aktionen vom Typ „Wiedergeben“ (Audio-URL, Text-zu-Sprache und SSML) und „Erkennen“ (DTMF und Voice) zu ermöglichen.
  • 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

Die Anrufautomatisierung von Azure Communication Services ermöglicht die Erstellung von Anrufworkflows für Kundenserviceszenarien, wie in dem allgemeinen Architekturüberblick zu sehen. Sie können eingehende Anrufe annehmen oder ausgehende Anrufe tätigen. Führen Sie Aktionen wie das Wiedergeben einer Willkommensnachricht und Verbinden des Kunden mit einem Mitarbeiter in einer Azure Communication Services Calling SDK-Client-App aus, um auf die eingehende Anrufanforderung zu reagieren. Durch Unterstützung von Azure Communication Services-PSTN oder Direct Routing können Sie diesen Workflow dann mit Ihrem Kontaktcenter verbinden.

Diagramm: Anrufablauf für ein Kundenserviceszenario

Capabilities

Die folgende Liste enthält die Features, die aktuell in Azure Communication Services Call Automation SDKs verfügbar sind:

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 ✔️ ✔️ ✔️ ✔️
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 ✔️ ✔️ ✔️ ✔️
Entfernen eines Endpunkts oder mehrerer Endpunkte aus einem vorhandenen Anruf ✔️ ✔️ ✔️ ✔️
Blind Transfer* eines 1:1-Anrufs an einen anderen Endpunkt ✔️ ✔️ ✔️ ✔️
Blind Transfer* 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 ✔️ ✔️ ✔️ ✔️

*Übertragung oder Umleitung eines VoIP-Anrufs an eine Telefonnummer wird derzeit 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.

Screenshot: Ablauf für eingehenden Anruf und Aktionen

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 „Abweisen“ oder „Weiterleiten“ vor einem Anruf, sondern nur die Aktion „Annehmen“.

Annehmen Mithilfe des IncomingCall-Ereignisses aus Event Grid und Call Automation SDK kann ein Anruf von Ihrer Anwendung angenommen werden. Diese Aktion ermöglicht IVR-Szenarien, in denen Ihre Anwendung programmgesteuert eingehende PSTN-Anrufe 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 kann ein Anruf an einen Endpunkt oder an mehrere Endpunkte umgeleitet werden, um ein Szenario mit einfachem oder gleichzeitigem Klingeln zu erreichen. Bei der Umleitungsaktion wird der Anruf nicht entgegengenommen, sondern lediglich an einen anderen Zielendpunkt umgeleitet oder weitergeleitet, um dort entgegengenommen zu werden.

Anruf erstellen: Die Aktion Anruf erstellen kann verwendet werden, 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.

Aktionen während eines Anrufs

Diese Aktionen können für die Anrufe ausgeführt werden, die mithilfe von Call Automation 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) Einer oder mehrere der Teilnehmer kann bzw. können in einer einzelnen Anforderung hinzugefügt werden, wobei jeder Teilnehmer eine Variation unterstützter 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 im Artikel mit den Konzepten und in der Schrittanleitung zum 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 Navigation in Ihrer Anwendung zu steuern. Weitere Informationen finden Sie im Artikel mit den Konzepten und in der Schrittanleitung zum Sammeln von Benutzereingaben.

Kontinuierliche DTMF-Erkennung Wenn Ihre Anwendung in der Lage sein muss, DTMF-Töne 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 Nachverfolgungsnummer eingeben muss. Weitere Informationen zur Verwendung dieser Ansicht finden Sie in unserem Leitfaden.

DTMF senden Wenn Ihre Anwendung DTMF-Töne an einen externen Teilnehmer senden muss, z. B. um einen externen Agenten anzuwählen und ihm die Durchwahlnummer mitzuteilen oder um ein externes 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 Bei dieser Aktion werden alle Teilnehmer entfernt, und der Anruf wird beendet. 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 Eigenschaft forEveryOne in der Anrufaktion „Auflegen“ auf „true“ festgelegt wird.

Abbrechen von Medienvorgängen Auf der Grundlage der Geschäftslogik muss Ihre Anwendung laufende und in der Warteschlange stehende Medienvorgänge möglicherweise abbrechen. Je nach abgebrochenem Medienvorgang und den in der Warteschlange angezeigten Ereignissen erhalten Sie ein Webhook-Ereignis, das angibt, dass die Aktion abgebrochen wurde.

Abfrageszenarien

Teilnehmer auflisten Erzeugt eine Liste mit allen Teilnehmern eines Anrufs. 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 der von Event Grid gesendeten Ereignisse sind plattformunabhängig und werden somit unabhängig vom SDK (Calling SDK oder Call Automation SDK) ausgegeben. 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 Ein Teilnehmer wurde einem Anruf hinzugefügt.
ParticipantRemoved Ein Teilnehmer wurde aus einem Anruf entfernt.
RecordingFileStatusUpdated Eine Aufzeichnungsdatei ist verfügbar.

Weitere Informationen zu diesen Ereignissen und dem Nutzdatenschema finden Sie hier.

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 Anrufzweig Ihrer Anwendung wurde verbunden (ausgehend oder ausgehend).
CallDisconnected Der Anrufzweig Ihrer Anwendung wurde getrennt.
CallTransferAccepted Der Anrufzweig Ihrer Anwendung wurde an einen anderen Endpunkt übertragen.
CallTransferFailed Die Übertragung des Anrufzweigs Ihrer Anwendung war nicht erfolgreich.
AddParticipantSucceeded Von Ihrer Anwendung wurde ein Teilnehmer hinzugefügt.
AddParticipantFailed Das Hinzufügen eines Teilnehmers durch Ihre Anwendung war nicht erfolgreich.
CancelAddParticipantSucceeded Ihre Anwendung hat das Hinzufügen eines Teilnehmers abgebrochen
CancelAddParticipantFailed Ihre Anwendung konnte das Hinzufügen eines Teilnehmers nicht abbrechen
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 der Anrufzweig Ihrer 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 Erkennungsaktion 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 erfolgreich abgeschlossen und ein DTMF-Ton wurde vom Teilnehmer empfangen
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition abgeschlossen, aber bei der Verarbeitung eines DTMF-Tons vom Teilnehmer ist ein Fehler aufgetreten
ContinuousDtmfRecognitionStopped StopContinuousRecognition erfolgreich ausgeführt
SendDtmfCompleted SendDTMF wurde erfolgreich abgeschlossen, und die DTMF-Töne wurden an den Zielteilnehmer gesendet
SendDtmfFailed Fehler beim Senden der DTMF-Töne

Um zu verstehen, welche Ereignisse für verschiedene Aktionen veröffentlicht werden, lesen Sie diesen Leitfaden. Er enthält Codebeispiele und Sequenzdiagramme für verschiedene Anrufsteuerungsflows.

Beim Bestätigen von Rückrufereignissen empfiehlt es sich, 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 gewährleisten können, erfahren Sie in diesem Leitfaden.

Rückruf-URI des Vorgangs

Es handelt sich um einen optionalen 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 festgelegt wurde, wenn der Benutzer einen Anruf tätigt. Mit der Verwendung der Rückruf-URI des Vorgangs werden entsprechende Ereignisse dieser einzelnen Anforderung (nur einmal) an die neue URI gesendet.

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

Nächste Schritte

Hier sind einige für Sie interessante Artikel: