Übersicht über das Calling SDK
Mit Azure Communication Services können Endbenutzerbrowser, Anwendungen und Dienste die Sprach- und Videokommunikation steuern. Diese Seite konzentriert sich auf das Aufrufen des Client-SDK, das in Websites und systemeigene Anwendungen eingebettet werden kann. Auf dieser Seite finden Sie ausführliche Beschreibungen der Client-Anruffunktionen, z. B. Informationen zur Plattform- und Browserunterstützung. Dienste verwalten Anrufe programmatisch und greifen darauf zu, indem sie die Anrufautomatisierungs-APIs verwenden. Die Räume-API ist eine optionale Azure Communication Services-API, die einem Sprach- oder Videoanruf zusätzliche Funktionen hinzufügt, z. B. Rollen und Berechtigungen.
Wenn Sie ihre eigene Benutzererfahrung mit dem Anruf-SDK erstellen möchten, schauen Sie sich Anrufschnellstarts oder Anruf-Hero-Beispiel an.
Wenn Sie Hilfe bei der Endbenutzererfahrung benötigen, bietet die Azure Communication Services UI-Bibliothek eine Sammlung von produktionsfertigen Open-Source-UI-Komponenten, die Sie in Ihre Anwendung einfügen können. Mit dieser Reihe vordefinierter Steuerelemente können Sie mithilfe der Fluent-Entwurfssprache von Microsoft ansprechende Kommunikationserfahrungen erstellen. Wenn Sie mehr über die UI-Bibliothek erfahren möchten, besuchen Sie die Übersichtswebsite.
Sobald Sie mit der Entwicklung beginnen, können Sie auf der Seite mit den bekannten Problemen nach Fehlern suchen, an denen wir arbeiten.
SDK-Links
Plattform | Web (JavaScript) | Windows (.NET) | iOS | Android | Andere |
---|---|---|---|---|---|
Aufrufen | npm | NuGet | GitHub | Maven | |
UI-Bibliothek | npm | - | GitHub | GitHub | GitHub, Storybook |
Schlüsselfunktionen
- Geräteverwaltung und Medien: Das Calling SDK ermöglicht die Bindung an Audio- und Videogeräte, codiert Inhalte für eine effiziente Übertragung über die Kommunikationsdatenebene und rendert Inhalte für von Ihnen angegebene Ausgabegeräte und Ansichten. Darüber hinaus stehen APIs für die Bildschirm- und Anwendungsfreigabe zur Verfügung.
- Telefonfestnetz: Das Calling SDK kann Sprachanrufe über das herkömmliche Telefonfestnetz empfangen und tätigen – entweder unter Verwendung von Telefonnummern, die über das Azure-Portal beschafft wurden, oder programmgesteuert. Sie können auch eigene Nummern mit Session Border Controllern mitbringen.
- Teams Meetings und Calling – Das Calling SDK kann an Teams Meetings teilnehmen und mit der Sprach- und Videodatenebene von Teams interagieren.
- Verschlüsselung: Datenverkehr wird durch das Calling SDK verschlüsselt, um Manipulationen bei der Übertragung zu verhindern.
- Adressierung: Azure Communication Services bietet generische Identitäten zur Adressierung von Kommunikationsendpunkten. Clients nutzen diese Identitäten, um sich bei dem Dienst zu authentifizieren und miteinander zu kommunizieren. Diese Identitäten werden in Anruf-APIs verwendet, mit denen Clients die Anrufteilnehmer*innen (die Teilnehmerliste) ermitteln können.
- Sicherheit für den Benutzerzugriff
- Roster-Kontrolle, Zeitplan-Kontrolle und Benutzer-Rollen/Berechtigungen werden über Virtual Rooms durchgesetzt.
- Die Fähigkeit eines Benutzers, einen neuen Anruf einzuleiten oder einem bestehenden Anruf beizutreten, kann über Benutzeridentitäten und Token verwaltet werden
- Benachrichtigungen: Das Calling SDK stellt APIs bereit, die es ermöglichen, Clients über einen eingehenden Anruf zu informieren. In Situationen, in denen Ihre Anwendung nicht im Vordergrund läuft, stehen Muster zur Verfügung, um Popupbenachrichtigungen („Toasts“) auszulösen, die den Endbenutzer über einen eingehenden Anruf informieren.
- Medienstatistiken – Das Calling SDK bietet umfassende Einblicke in die Metriken Ihrer VoIP- und Videoanrufe. Mit diesen Informationen verfügen Entwickler über ein klareres Verständnis der Anrufqualität und können fundierte Entscheidungen treffen, um ihre Kommunikationserfahrung weiter zu verbessern.
- Videoeinschränkungen – Das Calling SDK bietet APIs, mit denen Sie die Videoqualität und andere Parameter während eines Videoanrufs regulieren können, indem Sie Parameter wie Auflösung und Bildfrequenz anpassen und so verschiedene Anrufsituationen für unterschiedliche Videoqualitätsebenen unterstützen
- Benutzerorientierte Diagnose (User Facing Diagnostics, UFD) – Das Calling SDK stellt Ereignisse bereit, die darauf ausgelegt sind, Einblicke in zugrundeliegende Probleme zu liefern, die sich auf die Anrufqualität auswirken können. Entwickler können Auslöser wie schwache Netzsignale oder stumm geschaltete Mikrofone abonnieren und so sicherstellen, dass sie immer über alle Faktoren informiert sind, welche die Anrufe beeinflussen.
Detaillierte Funktionen
Die folgende Liste enthält die Features, die aktuell in den Azure Communication Services Calling-SDKs verfügbar sind.
Featuregruppe | Funktion | JS | Windows | Java (Android) | Objective-C (iOS) |
---|---|---|---|---|---|
Grundlegende Funktionen | Tätigen eines 1:1-Anrufs zwischen zwei Benutzern | ✔️ | ✔️ | ✔️ | ✔️ |
Tätigen Sie einen Gruppenanruf mit mehr als zwei Benutzern (bis zu 100 Benutzer) | ✔️ | ✔️ | ✔️ | ✔️ | |
Höherstufen eines 1:1-Anrufs mit zwei Benutzern zu einem Gruppenanruf mit mehr als zwei Benutzern | ✔️ | ✔️ | ✔️ | ✔️ | |
Beitreten zu einem bereits gestarteten Gruppenanruf | ✔️ | ✔️ | ✔️ | ✔️ | |
Einladen eines weiteren VoIP-Teilnehmers zu einem laufenden Gruppenanruf | ✔️ | ✔️ | ✔️ | ✔️ | |
Steuerung während des Anrufs | Aktivieren/Deaktivieren Ihres Videos | ✔️ | ✔️ | ✔️ | ✔️ |
Stummschalten des Mikrofons/Aufheben der Stummschaltung | ✔️ | ✔️ | ✔️ | ✔️ | |
Andere Teilnehmer stummschalten | ✔️ | ✔️1 | ✔️1 | ✔️1 | |
Wechseln zwischen Kameras | ✔️ | ✔️ | ✔️ | ✔️ | |
Lokales Halten/Aufheben des Haltens | ✔️ | ✔️ | ✔️ | ✔️ | |
Aktiver Lautsprecher | ✔️ | ✔️ | ✔️ | ✔️ | |
Auswählen des Lautsprechers für Anrufe | ✔️ | ✔️ | ✔️ | ✔️ | |
Auswählen des Mikrofons für Anrufe | ✔️ | ✔️ | ✔️ | ✔️ | |
Anzeigen des Status eines Teilnehmers Beschäftigt, Early Media, Verbindungsaufbau, Verbunden, Gehalten, Im Wartebereich, Getrennt |
✔️ | ✔️ | ✔️ | ✔️ | |
Anzeigen des Zustands eines Anrufs Early Media, Eingehend, Verbindungsaufbau, Klingeln, Verbunden, Halten, Trennung, Getrennt |
✔️ | ✔️ | ✔️ | ✔️ | |
Anzeigen, ob ein Teilnehmer stummgeschaltet ist | ✔️ | ✔️ | ✔️ | ✔️ | |
Anzeigen des Grunds, warum ein Teilnehmer einen Anruf verlassen hat | ✔️ | ✔️ | ✔️ | ✔️ | |
Bildschirmfreigabe | Freigeben des gesamten Bildschirms innerhalb der Anwendung | ✔️ | ✔️2 | ✔️2 | ✔️2 |
Freigeben einer bestimmten Anwendung (aus der Liste aktiver Anwendungen) | ✔️ | ✔️2 | ❌ | ❌ | |
Freigeben eines Webbrowsertabs aus der Liste geöffneter Tabs | ✔️ | ||||
Freigeben von Systemaudio während der Bildschirmfreigabe | ✔️ | ❌ | ❌ | ❌ | |
Anzeigen von Remotebildschirmfreigabe durch Teilnehmer | ✔️ | ✔️ | ✔️ | ✔️ | |
Liste | Auflisten von Teilnehmern | ✔️ | ✔️ | ✔️ | ✔️ |
Entfernen eines Teilnehmers | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN | Tätigen eines 1:1-Anrufs mit einem PSTN-Teilnehmer | ✔️ | ✔️ | ✔️ | ✔️ |
Tätigen eines Gruppenanrufs mit PSTN-Teilnehmern | ✔️ | ✔️ | ✔️ | ✔️ | |
Höherstufen eines 1:1-Anrufs mit einem PSTN-Teilnehmer zu einem Gruppenanruf | ✔️ | ✔️ | ✔️ | ✔️ | |
Verlassen eines Gruppenanrufs als PSTN-Teilnehmer | ✔️ | ✔️ | ✔️ | ✔️ | |
Unterstützung für frühe Medien | ✔️ | ✔️ | ✔️ | ✔️ | |
Allgemein | Testen von Mikrofon, Lautsprecher und Kamera mit einem Audiotestdienst (verfügbar durch Anrufen von 8:echo123) | ✔️ | ✔️ | ✔️ | ✔️ |
-Geräteverwaltung | Bitten um Berechtigung zur Verwendung von Audio- und/oder Videofunktionen | ✔️ | ✔️ | ✔️ | ✔️ |
Abrufen einer Kameraliste | ✔️ | ✔️ | ✔️ | ✔️ | |
Festlegen der Kamera | ✔️ | ✔️ | ✔️ | ✔️ | |
Abrufen der ausgewählten Kamera | ✔️ | ✔️ | ✔️ | ✔️ | |
Abrufen der Mikrofonliste | ✔️ | ✔️ | ❌3 | ❌3 | |
Festlegen des Mikrofons | ✔️ | ✔️ | ❌3 | ❌3 | |
Abrufen des ausgewählten Mikrofons | ✔️ | ✔️ | ❌3 | ❌3 | |
Abrufen der Lautsprecherliste | ✔️ | ✔️ | ❌3 | ❌3 | |
Festlegen des Lautsprechers | ✔️ | ✔️ | ❌3 | ❌3 | |
Abrufen des ausgewählten Lautsprechers | ✔️ | ✔️ | ❌3 | ❌3 | |
Videorendering | Rendern eines Videos an mehreren Orten (lokale Kamera oder Remotedatenstrom) | ✔️ | ✔️ | ✔️ | ✔️ |
Festlegen/Aktualisieren des Skalierungsmodus | ✔️ | ✔️ | ✔️ | ✔️ | |
Rendern des Remote-Videodatenstroms | ✔️ | ✔️ | ✔️ | ✔️ | |
Videoeffekte | Verschwommener Hintergrund | ✔️ | ✔️ | ✔️ | ✔️ |
Benutzerdefiniertes Hintergrundbild | ✔️ | ✔️ | ✔️ | ✔️ | |
Audioeffekte | Music Mode | ❌ | ✔️ | ✔️ | ✔️ |
Echounterdrückung | ❌ | ✔️ | ✔️ | ✔️ | |
Rauschunterdrückung | ✔️ | ✔️ | ✔️ | ✔️ | |
Automatische Verstärkungssteuerung (AGC) | ❌ | ✔️ | ✔️ | ✔️ | |
Benachrichtigungen 4 | Pushbenachrichtigungen | ✔️ | ✔️ | ✔️ | ✔️ |
Benutzerdefinierter Kontext | Hinzufügen von Benutzer-zu-Benutzer-Headern (UUI) oder benutzerdefinierten Headern zu einem Anruf | ✔️ | ❌ | ❌ | ❌ |
1 Die Funktion zum Stummschalten anderer Personen befindet sich derzeit in der öffentlichen Vorschau.
2 Die Freigabebildschirmfunktion kann mithilfe von Raw Media-APIs erreicht werden. Weitere Informationen finden Sie im Schnellstartleitfaden für den Rohmedienzugriff.
3 Das Calling SDK verfügt nicht über eine explizite API für diese Funktionen, Sie sollten stattdessen die Android- und iOS-Betriebssystem-APIs verwenden, um dies zu erreichen.
4 Der maximale TTL-Wert in nativen Plattformen beträgt 180 Tage (15.552.000 Sekunden), und der Mindestwert ist 5 Minuten (300 Sekunden). Für CTE (Custom Teams Endpoint)/M365 Identity beträgt der maximale TTL-Wert 24 Stunden (86.400 Sekunden).
JavaScript Calling SDK: Unterstützung nach Betriebssystem und Browser
Die folgende Tabelle enthält die unterstützten Browser, die derzeit verfügbar sind. Wir unterstützen die neuesten drei Hauptversionen des Browsers (zuletzt drei Nebenversionen für Safari), sofern nicht anders angegeben.
Plattform | Chrome | Safari | Edge | Firefox | WebView | Electron |
---|---|---|---|---|---|---|
Android | ✔️ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
iOS | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
macOS | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Windows | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
Ubuntu/Linux | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
- Die ausgehende Bildschirmfreigabe wird in mobilen iOS- oder Android-Browsern nicht unterstützt.
- Firefox-Unterstützung befindet sich in der öffentlichen Vorschauphase.
- Derzeit unterstützt das aufrufende SDK nur Android System WebView unter Android, iOS WebView(WKWebView) in der öffentlichen Vorschau. Andere Arten von eingebetteten Browsern oder WebView auf anderen Betriebssystemplattformen werden offiziell nicht unterstützt, z. B. GeckoView, Chromium Embedded Framework (CEF), Microsoft Edge WebView2. Die Ausführung von JavaScript Calling SDK auf diesen Plattformen wird nicht aktiv getestet, es könnte also funktionieren oder auch nicht.
- Eine iOS-Anwendung auf Safari kann Mikrofon- und Lautsprechergeräte nicht aufzählen/auswählen (z. B. Bluetooth). Dieses Problem ist eine Einschränkung von iOS und das Betriebssystem steuert die Standardgeräteauswahl.
Anrufclient: Browsersicherheitsmodell
Verwenden Sie WebRTC über HTTPS
WebRTC-APIs wie getUserMedia
setzen voraus, dass die App, von der diese APIs aufgerufen werden, über HTTPS bedient wird. Für die lokale Entwicklung können Sie http://localhost
verwenden.
Einbetten des Anruf-SDK für Communication Services in ein iframe-Element
Eine neue Berechtigungsrichtlinie (auch Feature-Richtlinie genannt) ist in verschiedenen Browsern verfügbar. Durch diese Richtlinie wird über ein ursprungsübergreifendes iframe-Element gesteuert, wie Anwendungen auf die Kamera und das Mikrofon eines Geräts zugreifen können, was Auswirkungen auf Anrufszenarien hat.
Wenn Sie ein iframe-Element verwenden möchten, um einen Teil der App über eine andere Domäne zu hosten, müssen Sie Ihrem iframe-Element das Attribut allow
mit dem korrekten Wert hinzufügen.
Durch das folgende iframe-Element wird beispielsweise sowohl Kamera- als auch Mikrofonzugriff gewährt:
<iframe allow="camera *; microphone *">
Android Calling SDK-Unterstützung
- Unterstützung für Android-API Level 21 oder höher
- Unterstützung für Java 7 oder höher
- Unterstützung für Android Studio 2.0
Wir empfehlen dringend, Ihr Szenario zu bestimmen und zu validieren, indem Sie die unterstützten Android-Plattformen überprüfen.
iOS Calling SDK-Unterstützung
- Unterstützung für iOS 10.0 und höher zur Erstellungszeit und iOS 12.0 und höher zur Laufzeit
- Xcode 12.0 oder höher
- Unterstützung für iPadOS 13.0+
Maximale Anrufdauer
Die maximale Anrufdauer beträgt 30 Stunden, Teilnehmer, welche die maximale Dauer der Anrufdauer von 30 Stunden erreichen, werden vom Anruf getrennt.
Unterstützte Anzahl eingehender Videostreams
Das Calling SDK von Azure Communication Services unterstützt die folgenden Streamingkonfigurationen:
Begrenzung | Web | Windows/Android/iOS |
---|---|---|
Maximale Anzahl der ausgehenden Datenströme, die gleichzeitig gesendet werden können | 1 Video- und 1 Bildschirmfreigabe | 1 Video- und 1 Bildschirmfreigabe |
Maximale Anzahl der eingehenden Remotedatenströme, die gleichzeitig gerendert werden können | 16 Videos + 1 Bildschirmfreigabe auf Desktopbrowsern*, 4 Videos + 1 Bildschirmfreigabe auf mobilen Webbrowsern | 9 Videos und 1 Bildschirmfreigabe |
* Ab Azure Communication Services Web Calling SDK Version 1.16.3 Das Calling SDK erzwingt diese Grenzen zwar nicht, aber Ihre Benutzer könnten bei Überschreitung dieser Grenzen Leistungseinbußen erfahren. Verwenden Sie die API der Optimalen Videoanzahl, um zu bestimmen, wie viele aktuelle eingehende Videostreams Ihre Webumgebung unterstützen kann. Um 16 eingehende Videos ordnungsgemäß zu unterstützen, sollte der Computer mindestens 16 GB RAM und eine 4-Core- oder höhere CPU haben, die nicht älter als 3 Jahre ist.
Unterstützte Videoauflösungen
Das Azure Communication Services Calling SDK passt die Auflösungen von Video- und Bildschirmfreigabedatenströmen während des Anrufs automatisch an.
Hinweis
Die Auflösung kann je nach Anzahl der Teilnehmer an einem Anruf, verfügbarer Bandbreite für den Client oder Hardwarefunktionen des lokalen Teilnehmers, der Remotevideo-Streams und andere allgemeine Anrufparameter rendert, variieren.
Das Azure Communication Services Calling SDK unterstützt maximal das Senden folgender Videoauflösungen
Maximale Videoauflösung | WebJS | iOS | Android | Windows |
---|---|---|---|---|
Senden von Videos | 720P | 720P | 720P | 1080P |
Senden der Bildschirmfreigabe | 1080P | 1080P | 1080P | 1080P |
Empfangen eines Remotevideostreams oder einer Bildschirmfreigabe | 1080P | 1080P | 1080P | 1080P |
Anzahl unterstützter Teilnehmer bei einem Anruf
- Bis zu 350 Benutzer und Benutzerinnen können einem Gruppenanruf, einem Raum oder einem Teams + ACS-Anruf beitreten.
- Sobald der Anruf mehr 100 Teilnehmer erreicht hat, werden nur die 4 dominantesten Sprecher angezeigt, die ihre Videokamera aktiviert haben.
- Wenn die Anzahl der Personen im Anruf 100 übersteigt, verringert sich die sichtbare Anzahl eingehender Videos automatisch von 4x4 (16 eingehende Videos) auf 2x2 (4 eingehende Videos).
- Wenn die Anzahl der Benutzer unter 100 liegt, steigt die Anzahl der unterstützten eingehenden Videos wieder auf 4x4 (16 eingehende Videos).
Timeouts des Calling SDK
Für die Communication Services Calling SDKs gelten folgende Timeouts:
Aktion | Timeout in Sekunden |
---|---|
Erneutes Verbinden/Entfernen des Teilnehmers | 60 |
Hinzufügen oder Entfernen einer neuen Modalität aus einem Anruf (Video oder Bildschirmfreigabe starten/beenden) | 40 |
Timeout beim Vorgang zur Anrufübertragung | 60 |
Timeout bei 1:1-Verbindungsherstellung | 85 |
Timeout bei Gruppenverbindungsherstellung | 85 |
Timeout bei PSTN-Verbindungsherstellung | 115 |
Timeout beim Heraufstufen von 1:1-Anrufen auf Gruppenverbindungen | 115 |
Nächste Schritte
Weitere Informationen finden Sie in den folgenden Artikeln:
- Machen Sie sich mit allgemeinen Anrufflows vertraut.
- Informieren Sie sich über Anruftypen.
- Erfahren Sie mehr über die Anrufautomatisierungs-API, mit der Sie serverbasierte Anrufworkflows erstellen können, die Anrufe mit Clientanwendungen weiterleiten und steuern können.
- Planen Sie Ihre PSTN-Lösung.