Freigeben über


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. Das Pre-Call-Diagnose-Feature 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

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.

Nächste Schritte