Konzepte für eingehende Anrufe
Mit der Anrufautomatisierung für Azure Communication Services können Entwickler Anwendungen erstellen, die Anrufe tätigen und empfangen können. Es nutzt Event Grid-Abonnements, um Ereignisse bereitzustellen IncomingCall
, wodurch es wichtig ist, Ihre Umgebung so zu konfigurieren, dass sie diese Benachrichtigungen für Ihre Anwendung empfängt, um einen Anruf effektiv umzuleiten oder anzunehmen. Daher ist das Verständnis der Grundlagen eingehender Anrufe für die Nutzung des vollen Potenzials der Anrufautomatisierung für Azure Communication Services von entscheidender Bedeutung.
Anrufszenarien
Bevor Sie Ihre Umgebung einrichten, ist es wichtig, die Szenarien zu verstehen, die ein IncomingCall
Ereignis auslösen können. Um ein IncomingCall
Ereignis auszulösen, muss ein Anruf entweder an eine Azure Communication Services-Identität oder eine PSTN-Nummer (Public Switched Telephone Network) erfolgen, die Ihrer Azure Communication Services-Ressource zugeordnet ist. Nachfolgend sehen Sie einige Beispiele dieser Ressourcen:
- Eine Azure Communication Services-Identität
- Eine PSTN-Telefonnummer im Besitz Ihrer Azure Communication Services-Ressource
In diesen Beispielen lösen die folgenden Szenarien ein ereignis aus, das IncomingCall
an das Ereignisraster gesendet wird:
`Source` | Destination | Szenarien |
---|---|---|
Azure Communication Services-Identität | Azure Communication Services-Identität | Anruf, Umleitung, Teilnehmer hinzufügen, Übertragen |
Azure Communication Services-Identität | Eine PSTN-Nummer im Besitz Ihrer Azure Communication Services-Ressource | Anruf, Umleitung, Teilnehmer hinzufügen, Übertragen |
Öffentliche PSTN | Eine PSTN-Nummer im Besitz Ihrer Azure Communication Services-Ressource | Anruf, Umleitung, Teilnehmer hinzufügen, Übertragen |
Hinweis
Es ist wichtig zu verstehen, dass eine Azure Communication Services-Identität entweder einen Benutzer oder eine Anwendung darstellen kann. Die Plattform verfügt zwar nicht über ein integriertes Feature, um einem Benutzer oder einer Anwendung explizit eine Identität zuzuweisen, ihre Anwendung oder unterstützende Infrastruktur kann dies jedoch erreichen. Weitere Informationen zu diesem Thema finden Sie im Leitfaden zu Identitätskonzepten.
Registrieren eines Event Grid-Ressourcenanbieters
Wenn Sie Event Grid in Ihrem Azure-Abonnement noch nicht verwendet haben, müssen Sie möglicherweise den Event Grid-Ressourcenanbieter registrieren. Führen Sie die folgenden Schritte aus, um den Anbieter zu registrieren:
- Öffnen Sie das Azure-Portal.
- Wählen Sie im linken Menü Abonnements aus.
- Wählen Sie das Abonnement aus, das Sie für Event Grid verwenden.
- Wählen Sie im linken Menü unter Einstellungen die Option Ressourcenanbieter aus.
- Suchen Sie nach Microsoft.EventGrid.
- Wählen Sie Registrieren aus, falls Ihr Ressourcenanbieter nicht registriert ist.
Empfangen einer Benachrichtigung über eingehende Anrufe von Event Grid
In Azure Communication Services wird das Empfangen einer IncomingCall
Benachrichtigung über ein Event Grid-Abonnement ermöglicht. Als Empfänger der Benachrichtigung haben Sie die Flexibilität, auszuwählen, wie sie behandelt werden soll. Da die Anrufautomatisierungs-API Webhook-Rückrufe für Ereignisse nutzt, ist es üblich, ein "Webhook"-Ereignisrasterabonnement zu verwenden. Der Dienst bietet jedoch verschiedene Abonnementtypen an, und Sie haben die Freiheit, die für Ihre Bedürfnisse am besten geeignete zu wählen.
Diese Architektur hat die folgenden Vorteile:
- Mithilfe von Event Grid-Abonnementfiltern können Sie die
IncomingCall
-Benachrichtigung an bestimmte Anwendungen weiterleiten. - Die PSTN-Nummernzuweisung und Routinglogik können in Ihrer Anwendung vorhanden sein und müssen nicht statisch online konfiguriert werden.
- Wie im Abschnitt "Anrufszenarien " angegeben, kann Ihre Anwendung benachrichtigt werden, auch wenn Benutzer Anrufe zwischeneinander tätigen. Sie können dieses Szenario dann zusammen mit den Anrufaufzeichnungs-APIs kombinieren, um die Complianceanforderungen zu erfüllen.
Eine Beispielnutzlast des Ereignisses und weitere Informationen zu anderen aufrufenden Ereignissen, die in Event Grid veröffentlicht wurden, finden Sie in diesem Leitfaden.
Nachfolgend sehen Sie ein Beispiel für ein Event Grid Webhook-Abonnement, bei dem der Ereignistypfilter nur auf das IncomingCall
Ereignis lauscht.
Anrufweiterleitungsoptionen mit Anrufautomatisierung und Ereignisraster
In der Anrufautomatisierung und im Ereignisraster kann die Anrufweiterleitung auf Ihre spezifischen Anforderungen zugeschnitten werden. Mithilfe erweiterter Filter innerhalb Ihres Event Grid-Abonnements können Sie eine IncomingCall
Benachrichtigung abonnieren, die sich auf eine bestimmte Quell-/Zieltelefonnummer oder eine Azure Communication Services-Identität bezieht. Diese Benachrichtigung kann dann an einen Endpunkt weitergeleitet werden, z. B. ein Webhook-Abonnement. Mithilfe des Anrufautomatisierungs-SDK kann die Endpunktanwendung dann eine Entscheidung treffen, den Anruf an eine andere Azure Communication Services-Identität oder an das PSTN umzuleiten .
Hinweis
Um sicherzustellen, dass Ihre Anwendung nur die erforderlichen Ereignisse empfängt, empfiehlt es sich, die Filterung im Ereignisraster zu konfigurieren. Dies ist besonders wichtig in Szenarien, in denen Ereignisse generiert IncomingCall
werden, z. B. das Umleiten eines eingehenden PSTN-Anrufs an einen Azure Communication Services-Endpunkt. Wenn kein Filter verwendet wird, empfängt Ihr Event Grid-Abonnement zwei IncomingCall
Ereignisse – eine für den PSTN-Anruf und eine für den Azure Communication Services-Benutzer – obwohl Sie nur die erste Benachrichtigung erhalten möchten. Die Vernachlässigung solcher Szenarien mithilfe von Filtern oder anderen Mechanismen in Ihrer Anwendung kann zu endlosen Schleifen und anderen unerwünschten Verhaltensweisen führen.
Hier ist ein Beispiel für einen erweiterten Filter für ein Ereignisrasterabonnement, das data.to.PhoneNumber.Value
die Zeichenfolge ab einer PSTN-Telefonnummer von "+18005551212" überwacht.
Nummernzuweisung
Wenn Sie die IncomingCall
Benachrichtigung in Azure Communication Services verwenden, haben Sie die Freiheit, eine bestimmte Nummer einem beliebigen Endpunkt zuzuordnen. Wenn Sie beispielsweise eine PSTN-Telefonnummer +14255551212
erhalten und sie einem Benutzer mit einer Identität 375f0e2f-e8db-4449-9bf7-2054b02e42b4
in Ihrer Anwendung zuweisen möchten, sollten Sie eine Zuordnung dieser Nummer zur Identität Standard beibehalten. Wenn eine IncomingCall
Benachrichtigung gesendet wird, die der Telefonnummer im Feld "an " entspricht, können Sie die Redirect
API aufrufen und die Identität des Benutzers angeben. Mit anderen Worten, Sie können die Nummernzuweisung innerhalb Ihrer Anwendung verwalten und Anrufe zur Laufzeit weiterleiten oder beantworten.
Bewährte Methoden
Um sicherzustellen, dass Event Grid Ereignisse an Ihren Webhook-Endpunkt übermittelt und verhindert, dass böswillige Benutzer Ihren Endpunkt mit Ereignissen überfluten, müssen Sie den Besitz Ihres Endpunkts nachweisen. Um Probleme beim Empfangen von Ereignissen zu beheben, vergewissern Sie sich, dass der von Ihnen konfigurierte Webhook durch die Behandlung
SubscriptionValidationEvent
überprüft wird. Weitere Informationen finden Sie in diesem Handbuch.Wenn ein eingehendes Anrufereignis empfangen wird, reagiert die Anwendung nicht mit einem 200Ok-Statuscode innerhalb des erforderlichen Zeitrahmens mit einem 200Ok-Statuscode, verwendet Event Grid exponentielle Backoff-Wiederholungsversuche, um das Ereignis erneut zu senden. Ein eingehender Anruf klingelt jedoch nur für 30 Sekunden, und das Beantworten eines Anrufs nach dieser Zeit ist nicht wirksam. Um Wiederholungsversuche für abgelaufene oder veraltete Aufrufe zu verhindern, empfehlen wir, die Wiederholungsrichtlinie auf "Max. Ereignisübermittlungsversuche" auf "2" und "Ereigniszeit" auf "Live" auf 1 Minute festzulegen. Sie finden diese Einstellungen auf der Registerkarte "Zusätzliche Features" des Ereignisabonnements. Weitere Informationen zu Wiederholungen finden Sie hier.
Es wird empfohlen, die Protokollierung für Ihre Event Grid-Ressource zu aktivieren, um Ereignisse zu überwachen, die nicht zu liefern sind. Navigieren Sie dazu auf der Registerkarte "Ereignisse" Ihrer Kommunikationsressource zum Systemthema, und aktivieren Sie die Protokollierung über die Diagnoseeinstellungen. Fehlerprotokolle finden Sie in der Tabelle "AegDeliveryFailureLogs".
AegDeliveryFailureLogs | limit 10 | where Message has "incomingCall"
Nächste Schritte
- Probieren Sie die Schnellstartanleitung aus, um einen ausgehenden Anruf zu tätigen.