Übersicht über die Pre-Call-Diagnose
Wichtig
Dieses Feature von Azure Communication Services befindet sich derzeit in der Vorschau.
Vorschau-APIs und -SDKs werden ohne Vereinbarung zum Servicelevel bereitgestellt. Es wird empfohlen, diese nicht für Produktionsworkloads zu verwenden. Einige Features werden möglicherweise nicht unterstützt oder bieten nur eingeschränkte Funktionalität.
Weitere Informationen finden Sie in den ergänzenden Nutzungsbestimmungen für Microsoft Azure-Vorschauversionen.
Mit dem Pre-Call-API-Feature können Entwickler die Bereitschaft eines Clients zur Teilnahme an einem Azure Communication Services-Anruf programmgesteuert überprüfen. Auf die Pre-Call-Features kann nur über das Calling SDK zugegriffen werden. Das Pre-Call-Diagnose-Feature bietet mehrere Diagnosefunktionen, unter anderem für Geräte, Verbindungen und Anrufqualität. Die Pre-Call-Diagnose ist nur für das Web (JavaScript) verfügbar. Es ist geplant, diese Funktionen künftig plattformübergreifend verfügbar zu machen. Geben Sie uns Feedback darüber, für welche Plattformen die Pre-Call-Diagnose aktiviert werden soll.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
Für Node.js werden aktive LTS-Versionen (Long Term Support) empfohlen.
Eine aktive Communication Services-Ressource. Erstellen Sie eine Communication Services-Ressource.
Ein Benutzerzugriffstoken, um den Anruf-Client zu instanziieren. Erfahren Sie mehr über das Erstellen und Verwalten von Benutzerzugriffstoken. Sie können auch die Azure-Befehlszeilenschnittstelle verwenden und den nächsten Befehl mit Ihrer Verbindungszeichenfolge ausführen, um Benutzende und Zugriffstoken zu erstellen. Denken Sie daran, die Verbindungszeichenfolge über das Azure-Portal aus der Ressource zu kopieren.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Weitere Informationen finden Sie unter Verwenden der Azure CLI zum Erstellen und Verwalten von Zugriffstoken.
Zugreifen auf die Pre-Call-Diagnose
Wichtig
Die Pre-Call-Diagnose ist ab Version 1.9.1-beta.1 des Calling SDK verfügbar. Stellen Sie sicher, dass Sie mindestens diese Version verwenden, um diese Anweisungen zu befolgen.
Um auf die Pre-Call-Diagnose zuzugreifen, müssen Sie ein callClient
initialisieren und ein Azure Communication Services-Zugriffstoken bereitstellen. Dort können Sie auf das PreCallDiagnostics
-Feature und die Methode startTest
zugreifen.
import { CallClient, Features} from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential("INSERT ACCESS TOKEN");
const preCallDiagnosticsResult = await callClient.feature(Features.PreCallDiagnostics).startTest(tokenCredential);
Sobald die Ausführung abgeschlossen ist, können Entwickler auf das Objekt mit dem Ergebnis zugreifen.
Diagnoseergebnisse
Die Pre-Call-Diagnose gibt eine vollständige Diagnose des Geräts zurück, einschließlich Details wie Geräteberechtigungen, Verfügbarkeit und Kompatibilität, Anrufqualitätsstatistiken und Diagnosen zum eigentlichen Anruf. Die Ergebnisse werden als PreCallDiagnosticsResult
-Objekt zurückgegeben.
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
Sie können mithilfe des Typs preCallDiagnosticsResult
auf einzelne Ergebnisobjekte zugreifen. Ergebnisse einzelner Tests werden nach Abschluss des Tests zurückgegeben. Viele der Testergebnisse sind sofort verfügbar. Wenn Sie den inCallDiagnostics
-Test verwenden, sind die Ergebnisse möglicherweise erst nach bis zu einer Minute verfügbar, da der Test die Video- und Audioqualität überprüft.
Browserunterstützung
Browserkompatibilitätsprüfung – Überprüft die Kompatibilität mit Browser
und OS
und gibt den Wert Supported
oder NotSupported
zurück.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Wenn der Test fehlerhaft war und der von den Benutzenden verwendete Browser NotSupported
ist, können Sie dies am einfachsten beheben, indem Sie die Benutzenden auffordern, zu einem unterstützten Browser zu wechseln. Weitere Informationen zu den unterstützten Browsern finden Sie unter Übersicht über das Calling SDK > JavaScript-Unterstützung für das Calling SDK durch Betriebssystem und Browser.
Hinweis
Bekanntes Problem: Der browser support
-Test gibt Unknown
zurück, obwohl er in diesem Fall einen korrekten Wert zurückgeben sollte.
Gerätezugriff
Bei der Berechtigungsprüfung wird bestimmt, ob Video- und Audiogeräte hinsichtlich der Berechtigungen verfügbar sind. Stellt einen boolean
-Wert für audio
- und video
- Geräte bereit.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Wenn der Test fehlerhaft war und die Berechtigungen für Audio und Video FALSE sind, sollte das Beitreten der Benutzenden zu einem Anruf unterbrochen werden. Fordern Sie die Benutzenden stattdessen auf, die Berechtigungen zu aktivieren. Dazu stellen Sie am besten spezifische Anweisung zum Zugreifen auf Berechtigungen basierend auf dem verwendeten Betriebssystem, der Version und dem Browser bereit. Weitere Informationen zu Berechtigungen finden Sie in der Prüfliste für erweiterte Anruffunktionen in Webbrowsern.
Geräteenumeration
Geräteverfügbarkeit – Überprüft, ob Mikrofon, Kamera und Lautsprecher im System erkannt wurden und zur Verwendung bereit sind. Gibt als Wert NotAvailable
oder Available
zurück.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Wenn Geräte nicht verfügbar sind, sollte das Beitreten der Benutzenden zu einem Anruf unterbrochen werden. Fordern Sie die Benutzenden stattdessen auf, die Geräteverbindungen zu überprüfen, um sicherzustellen, dass Headsets, Kameras oder Lautsprecher ordnungsgemäß verbunden sind. Weitere Informationen zur Geräteverwaltung finden Sie unter Verwalten von Videos während Anrufen.
InCall-Diagnose
Führt einen schnellen Anruf aus, um die Audio- und Videoqualität von Anrufen zu überprüfen und Ergebnismetriken zurückzugeben. Diese umfassen Konnektivität (connected
, boolean), Bandbreitenqualität (bandWidth
, 'Bad' | 'Average' | 'Good'
) und Diagnosewerte für Audio und Video von Anrufen (diagnostics
). Zu den bereitgestellten Diagnosekategorien gehören jitter
, packetLoss
und rtt
, und die Ergebnisse werden mit einer einfachen Qualitätsnote ('Bad' | 'Average' | 'Good'
) generiert.
Die In-Call-Diagnose nutzt Medienqualitätsstatistiken, um Qualitätsbewertungen zu berechnen und Probleme zu diagnostizieren. Während der Pre-Call-Diagnose stehen die vollständigen Medienqualitätsstatistiken für die Verwendung zur Verfügung. Diese Statistiken umfassen Rohwerte von Video- und Audiometriken, die Sie programmgesteuert verwenden können.
Die In-Call-Diagnose bietet eine Komfortschicht auf Grundlage von Medienqualitätsstatistiken, sodass Sie die Ergebnisse verwenden können, ohne alle Rohdaten zu verarbeiten. Weitere Informationen und Anweisungen für den Zugriff finden Sie unter Medienqualitätsstatistiken für einen laufenden Anruf.
const inCallDiagnostics = await preCallDiagnosticsResult.inCallDiagnostics;
if(inCallDiagnostics) {
console.log(inCallDiagnostics.connected)
console.log(inCallDiagnostics.bandWidth)
console.log(inCallDiagnostics.diagnostics.audio)
console.log(inCallDiagnostics.diagnostics.video)
}
In diesem Schritt gibt es mehrere mögliche Fehlerpunkte. Die von der API bereitgestellten Werte basieren auf den vom Dienst benötigten Schwellenwerten. Die rohen Schwellenwerte finden Sie in den Medienqualitätsstatistiken.
- Wenn eine Verbindung fehlschlägt, fordern Sie die Benutzenden auf, die Netzwerkkonnektivität erneut zu überprüfen. Verbindungsfehler können auch durch Netzwerkbedingungen wie DNS, Proxys oder Firewalls verursacht werden. Weitere Informationen zur empfohlenen Netzwerkeinstellung finden Sie unter Netzwerkempfehlungen.
- Wenn die Bandbreite
Bad
ist, fordern Sie die Benutzenden auf, ein anderes Netzwerk auszuprobieren oder die Bandbreitenverfügbarkeit in ihrem aktuellen Netzwerk zu überprüfen. Stellen Sie sicher, dass keine anderen Aktivitäten viel Bandbreite erfordern.
Preise
Wenn der Pre-Call-Diagnosetest ausgeführt wird, werden im Hintergrund Anrufminuten verbraucht. Der Test dauert ca. 30 Sekunden und verbraucht dabei 30 Sekunden Anrufzeit, die mit dem Standardsatz von 0,004 USD pro Teilnehmendem pro Minute abgerechnet wird. Bei der Pre-Call-Diagnose entsteht eine Gebühr für 1 Teilnehmenden × 30 Sekunden = 0,002 USD.