Bearbeiten

Architekturgestaltung von Azure Communication Services

Azure Communication Services
Microsoft Entra ID
Azure-Funktionen

In diesem Leitfaden werden Datenflussdiagramme für Azure Communication Services vorgestellt. Verwenden Sie diese Diagramme, um zu verstehen, wie Ihre Clients und Dienste mit Azure interagieren, um Kommunikationserfahrungen bereitzustellen.

Communication Services sind cloudbasierte Dienste mit REST-APIs und Clientbibliothek-SDKs, die Sie dabei unterstützen, Ihre Anwendungen mit Kommunikationsfunktionen auszustatten. Communication Services unterstützen mehrere Kommunikationsformate: Sprach- und Videoanrufe, Textchat, SMS und benutzerdefinierte Binärdaten.

Sie können Kommunikation zu Web- und mobilen Apps hinzufügen, benutzerdefinierte Dienste und Bots integrieren und programmgesteuert auf das Telefonienetzwerk (Public Switched Telefony Network, PSTN) zugreifen. Sie können Telefonnummern direkt über Azure Communication Services-APIs oder das Azure-Portal abrufen und diese Nummern für SMS- oder Sprachanrufanwendungen nutzen. Mithilfe des direkten Routings von Communication Services können Sie Ihren eigenen Telefonieanbieter über Session Initiation Protocol (SIP) und Session Border Controller mitbringen.

Die folgenden Komponenten werden in diesen Datenflussdiagrammen verwendet:

  • Clientanwendung. Eine Website oder native Anwendung, die von Endbenutzern für die Kommunikation verwendet wird. Communication Services bietet SDK-Clientbibliotheken für Browser und native Apps. Die open-source UI-Bibliothek, die auf diesen SDKs basiert, bietet programmierbare Webkomponenten (React), iOS und Android UI-Komponenten.
  • Identitätsverwaltungsdienst. Ein Dienst, den Sie erstellen, um Benutzern und Diensten Identitäten von Communication Services zuzuordnen. Dieser Dienst erstellt auch Tokens für Benutzer, wenn sie auf die Datenebene zugreifen müssen.
  • Kommunikationscontrollerdienst. Ein Dienst, den Sie erstellen, um Chatthreads und Sprach- und Videoanrufe zu steuern.
  • Kommunikationsdatendienst. Eine Dienstfunktion, die Sie erstellen, um direkt mit Kommunikationsinhalten zu interagieren, z. B. Senden von Chat- und SMS-Nachrichten oder Wiedergeben von Audio in einem Sprachanruf.

Branchenstandards für die Kommunikation, z. B WebRTC, separate Kommunikation in einer Steuerungs- und Signalebene und eine Datenebene. Mithilfe von Communication Services können Sie eine Kommunikationserfahrung erstellen, ohne die interne Implementierung des Diensts von WebRTC verstehen zu müssen. Diese Konzepte können Ihnen jedoch dabei helfen, Ihre App zu entwerfen:

System Funktion Protokolle Zugriffsmodell
Steuerungsebene Steuert, wer kommuniziert, wann und wie REST Microsoft Entra-Dienstanmeldeinformationen
Datenebene Enthält Kommunikationsinhalte, Sprache, Video, Text und Daten, die mit Menschen und Apps verbunden sind UDP, RTMP, WebSockets, REST Benutzerzugriffstoken und Microsoft Entra-Dienstanmeldeinformationen

Ein allgemeiner Datenfluss tritt auf, wenn Clientanwendungen die Kommunikation initiieren, indem Steuerelementinformationen von einem Dienstcontroller angefordert werden:

  • Welche Besprechungen habe ich heute?
  • Welche Telefonnummer verwende ich, um meinen Freund Joseph anzurufen?
  • Wie lauten die Namen meiner Teamkollegen? Welche laufenden Chatthreads haben wir?

Ihr Steuerelementdienst erfüllt diese Anforderungen, indem Clients Communication Services-Token und -Bezeichner für Benutzer, Threads, Telefonnummern und Anrufe bereitstellen. Clients verwenden dann diese Token und Bezeichner, um mit der Azure-Datenebene zu interagieren. Communication Services-APIs schränken das Design Ihrer Endbenutzererfahrung und die Prozesse nicht ein, die die Kommunikation steuern.

Im WebRTC-Standard fordern Clients Steuerungsinformationen von Diensten an, indem Steuerelementnachrichten in einem Prozess gesendet werden, der als Signalisierung bezeichnet wird. Communication Services-IDs wie die Anruf-ID sind mit WebRTC-Sitzungsbeschreibungen vergleichbar.

Benutzer, die über Benutzerzugriffstoken authentifiziert wurden

Communication Services-Clients präsentieren Benutzerzugriffstoken mit verbesserter Sicherheit für den Zugriff auf die Azure-Anruf- und Chatdatenebene. Generieren und verwalten Sie Benutzerzugriffstoken mithilfe eines vertrauenswürdigen Diensts. Das Token und die Verbindungszeichenfolge oder geheime Schlüssel von Microsoft Entra, die zum Generieren erforderlich sind, müssen geschützt werden. Wenn Zugriffstoken nicht ordnungsgemäß verwaltet werden, kann dies zu zusätzlichen Kosten aufgrund des falschen Einsatzes von Ressourcen führen.

Diagram that shows the user access token architecture.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Ein Benutzer startet die Clientanwendung.
  2. Die Clientanwendung kontaktiert Ihren Identitätsverwaltungsdienst. Der Identitätsverwaltungsdienst verwaltet eine Zuordnung zwischen Anwendungsidentitäten und Communication Services-Identitäten. (Anwendungsidentitäten umfassen Ihre Benutzer und andere adressierbare Objekte, z. B. Dienste oder Bots.)
  3. Der Identitätsverwaltungsdienst verwendet die Zuordnung zum Erstellen eines Benutzerzugriffstokens für die entsprechende Identität.

Azure App Service oder Azure Functions sind zwei Alternativen zum Betreiben des Identitätsverwaltungsdiensts. Diese Dienste lassen sich einfach skalieren und verfügen über integrierte Features zum Authentifizieren von Benutzern. Sie sind in OpenID und Identitätsanbieter von Drittanbietern wie Facebook integriert.

Ressourcen

Benutzer ruft eine App oder Telefonnummer auf

Das einfachste Szenario für Sprach- und Videoanrufe besteht darin, dass ein Benutzer einen anderen Benutzer im Vordergrund und ohne Pushbenachrichtigung anruft. Sie können Sprach- und Videoanrufe von Communication Services in Web-, native Mobile- und Windows-Desktop-Apps integrieren. Die Open-Source-UI-Bibliothek kann Ihnen helfen, die Entwicklung zu beschleunigen.

Diagram that shows Communication Services calling without push notifications.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Der Benutzer, der den Anruf initiiert, ruft die Communication Services-Identität der Person ab, die er anrufen möchte. In einem typischen Szenario ruft der Benutzer die Identität aus einer Freundesliste ab, die vom Identitätsverwaltungsdienst verwaltet wird. Die Liste sortiert die Freunde des Benutzers und zugeordnete Communication Services-Identitäten.
  2. Der initiierende Benutzer startet seinen Anrufclient und ruft den Remotebenutzer an.
  3. Der annehmende Benutzer wird vom Calling SDK über den eingehenden Anruf benachrichtigt. Um eingehende Anrufe zu empfangen, muss der Annehmende bereits den Anrufclient initialisiert haben.
  4. Die Benutzer kommunizieren mithilfe von Sprache und Video in einem Anruf miteinander.

Der Datenfluss ist nahezu identisch, wenn ein Benutzer eine externe Telefonnummer aufruft. Der wichtigste Unterschied besteht darin, dass der initiierende Benutzerclient für den Zugriff auf herkömmliche Telefonie Quell- und Zieltelefonnummern vom Controllerdienst anfordern muss, anstatt Benutzeridentitäten anzufordern.

In einigen Situationen möchten Sie möglicherweise, dass Apps Anrufe im Hintergrund annehmen, indem sie Plattformdienste wie die Pushbenachrichtigung von Apple verwenden. Sie können diese Funktionalität aktivieren, indem Sie Communication Services in Azure Notification Hubs integrieren.

Ressourcen

Benutzer tritt einem Gruppenanruf ohne Einladung bei

Möglicherweise möchten Sie, dass Benutzer ohne explizite Einladung an einem Gruppenanruf teilnehmen können. Ihre App stellt möglicherweise einen dauerhaften gemeinschaftlichen Bereich oder einen Club bereit, der einen Videoanrufkanal enthält, an dem Benutzer teilnehmen können, wenn sie möchten. Dieser Datenfluss zeigt einen Aufruf, der ursprünglich von einem Client erstellt wurde und einem Remoteclient die Teilnahme ohne explizite Einladung ermöglicht:

Diagram that shows a call without an invitation.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Der initiierende Benutzer initialisiert seinen Anrufclient und startet einen Gruppenanruf.
  2. Der initiierende Benutzer teilt die Gruppenanruf-ID mit einem Kommunikationscontrollerdienst.
  3. Der Kommunikationscontrollerdienst teilt die Anruf-ID mit anderen Benutzern. Wenn die Anwendung beispielsweise Benutzerclubs bereitstellt, ist die Gruppenanruf-ID ein Attribut des Datenmodells des Clubs, das in Azure Cosmos DB gespeichert ist.
  4. Andere Benutzer treten dem Anruf mithilfe der Gruppenanruf-ID bei.
  5. Benutzer kommunizieren mithilfe von Sprache und Video in einem Anruf miteinander.

Microsoft 365 und Teams

Viele Organisationen verwenden Microsoft 365 und Teams für die Kommunikation. Communication Services und Teams sind interoperabel, was folgende Szenarien ermöglicht:

  • Erstellen Sie eine benutzerdefinierte Anwendung, damit ein externer Benutzer an einer Teams-Besprechung teilnehmen kann. Dieses Szenario ist ideal für virtuelle Besuchsszenarien, in denen ein Unternehmen, das Teams verwendet, eine Besprechung für externe Verbraucher hostet, die eine benutzerdefinierte App und eine benutzerdefinierte Identität verwenden. Weitere Informationen zu diesem Szenario finden Sie unter Lernprogramm für virtuelle Besuche und Beispiel-Generator.
  • Erstellen Sie eine benutzerdefinierte Anwendung für einen internen Benutzer mit Teams/Microsoft Entra-Anmeldeinformationen. Dieses Szenario ist für das Erstellen benutzerdefinierter Teams-Clients für Mitarbeiter konzipiert.

Diese benutzerdefinierten Anwendungsszenarien verwenden Microsoft Graph-APIs und Communication Services. Wenn Sie externe Apps und Dienste erstellen, die eine Verbindung mit Teams herstellen, verwenden Sie in der Regel Microsoft Graph als Teams-Steuerelementebene. Mit dieser Steuerelementebene können Sie mithilfe von APIs konfigurieren, wer kommuniziert und wie und wann er kommuniziert:

Sie verwenden Informationen aus diesen Steuerelement-APIs, z. B. die Besprechungs-URL und den Threadbezeichner, um Communication Services-Anrufe und Chatclients mit der Teams-Datenebene zu verbinden.

Teams verfügt auch über SDKs zum Hinzufügen benutzerdefinierter Funktionen innerhalb von Teams-Erfahrungen und über den Teams-Store, z. B. Registerkarten, Bots und Automatisierung. Diese Szenarien gehen über den Umfang dieses Artikels hinaus.

Communication Services unterstützen keine direkten Interaktionen mit Teams-Kanälen. Für benutzerdefinierte Anwendungen können Sie die Chat- und Kanal-APIs von Microsoft Graph verwenden, um benutzerdefinierte Clients für Mitarbeiter zu erstellen, die auf Kanäle zugreifen.

Die Anwendung tritt einem geplanten Teams-Anruf bei

Communication Services-Anwendungen können Teams-Anrufen beitreten. Für externe Benutzer benötigt die Anwendung einen Link zur Teams-Besprechung. Der Linkabruf wird über Microsoft Graph-APIs verwaltet. Hier ist der Dataflow:

Diagram showing Communication Services architecture for joining a Teams meeting.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. (1A) Der Kommunikationscontrollerdienst plant den Gruppenanruf mithilfe der Microsoft Graph-API. In einem anderen Anwendungsfall (1B) planen Benutzer den Gruppenanruf mithilfe von Outlook oder Teams.
  2. Der Kommunikationscontrollerdienst teilt die Details des Teams-Anrufs mit Communication Services-Clients.
  3. In der Regel muss ein Teams-Benutzer dem Anruf über die Teams-Benutzeroberfläche beitreten und externen Benutzern die Teilnahme über die Teams-Pre-Call-Lobby ermöglichen. Diese Anforderung hängt jedoch von der Konfiguration des Teams-Mandanten und den spezifischen Besprechungseinstellungen ab.
  4. Communication Services-Benutzer initialisieren den Anrufclient und nehmen mithilfe der in Schritt 2 erhaltenen Daten an der Teams-Besprechung teil.
  5. Benutzer kommunizieren mithilfe von Sprache und Video miteinander.

Ressourcen

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Andere Mitwirkende:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte