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:

  1. Eine Azure Communication Services-Identität
  2. 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:

  1. Öffnen Sie das Azure-Portal.
  2. Wählen Sie im linken Menü Abonnements aus.
  3. Wählen Sie das Abonnement aus, das Sie für Event Grid verwenden.
  4. Wählen Sie im linken Menü unter Einstellungen die Option Ressourcenanbieter aus.
  5. Suchen Sie nach Microsoft.EventGrid.
  6. 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.

Image showing IncomingCall subscription.

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.

Image showing Event Grid advanced filter.

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

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

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

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