Freigeben über


Benutzerseitige Diagnose

Wenn Sie mit Anrufen in Azure Communication Services arbeiten, treten möglicherweise Probleme auf, die sich auf Ihre Kunden auswirken. Um dies zu unterstützen, bietet Azure Communication Services ein Feature namens "User Facing Diagnostics" (UFD), das verwendet werden kann, um verschiedene Eigenschaften eines Aufrufs zu untersuchen, um zu bestimmen, was das Problem sein könnte. Benutzerbezogene Diagnose sind Ereignisse, die ausgelöst werden, die aufgrund eines zugrunde liegenden Problems (schlechtes Netzwerk, Der Benutzer hat sein Mikrofon stummgeschaltet) angeben können, dass ein Benutzer möglicherweise eine schlechte Erfahrung hat. Nachdem eine Benutzerdiagnose ausgelöst wurde, sollten Sie einem Endbenutzer feedback geben, dass er möglicherweise ein zugrunde liegendes Problem hat. Die Ausgabe "Benutzerorientierte Diagnose" ist jedoch nur informationsbasiert, und der Aufrufstapel nimmt keine Änderungen basierend auf dem ausgelösten Benutzerdiagnose vor.

Diagnosewerte

Die folgenden benutzerseitigen Diagnosen sind verfügbar:

Netzwerkwerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
noNetwork Es ist kein Netzwerk verfügbar. – Legen Sie fest, True wann ein Anruf nicht gestartet werden kann, da kein Netzwerk verfügbar ist.
- Wird auf False festgelegt, wenn ICE-Kandidaten vorhanden sind.
Das Gerät ist nicht mit einem Netzwerk verbunden. Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkoptimierung ".
networkRelaysNotReachable Probleme mit einem Netzwerk. – Legen Sie fest, True wann das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht ermöglicht, Azure Communication Services-Relays zu erreichen.
- Wird bei einem neuen Anruf auf False festgelegt.
Während eines Anrufs, wenn das WLAN-Signal aktiviert und deaktiviert wird. Stellen Sie sicher, dass Firewallregeln und Netzwerkrouting es dem Client ermöglichen, Microsoft TURN-Server zu erreichen. Weitere Informationen finden Sie im Abschnitt Firewallkonfiguration.
networkReconnect Die Verbindung wurde unterbrochen und wir stellen die Verbindung zum Netzwerk wieder her. – Festgelegt aufBad den Zeitpunkt, an dem das Netzwerk getrennt wird
– Festgelegt auf den Zeitpunkt, an Poordem die Medientransportkonnektivität verloren geht
- Wird auf Good festgelegt, wenn eine neue Sitzung hergestellt wird.
Geringe Bandbreite, kein Internet Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" .
networkReceiveQuality Ein Indikator für die Qualität des eingehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Poor wann ein mildes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Empfangen des Datenstroms auftritt.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie vor, dass der Endbenutzer seine Kamera deaktiviert, um verfügbare Internetbandbreite zu sparen.
networkSendQuality Ein Indikator für die Qualität des ausgehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Senden des Datenstroms auftritt.
– Legen Sie fest, Poor wann ein mildes Problem beim Senden des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Senden des Datenstroms vorliegt.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera deaktiviert, um verfügbare Internetbandbreite zu sparen.

Audiowerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
noSpeakerDevicesEnumerated Auf dem System des Benutzers ist kein Audioausgabegerät (Lautsprecher) vorhanden. - Wird auf True festgelegt, wenn keine Lautsprechergeräte im System vorhanden sind und die Lautsprecherauswahl unterstützt wird.
– Legen Sie fest False , wann es ein mindestens ein Lautsprechergerät auf dem System gibt, und die Lautsprecherauswahl wird unterstützt.
Kein Lautsprecher ist angeschlossen. Wenn der Wert auf <a0/> festgelegt ist, sollten Sie endbenutzern eine visuelle Benachrichtigung erteilen, dass ihre aktuelle Anrufsitzung über keine Lautsprecher verfügt.
speakingWhileMicrophoneIsMuted Sprechen während der Stummschaltung. - Wird auf True festgelegt, wenn das lokale Mikrofon stummgeschaltet ist und der lokale Benutzer spricht.
- Wird auf False festgelegt, wenn der lokale Benutzer entweder aufhört zu sprechen oder die Stummschaltung des Mikrofons aufhebt.
* Hinweis: Diese Option wird in Safari derzeit nicht unterstützt, da die Audiobeispiele aus WebRTC-Statistiken entnommen werden.
Schalten Sie Ihr Mikrofon während eines Anrufs stumm, und sprechen Sie in das Mikrofon. Wenn der Wert so festgelegt ist, True dass er Endbenutzern visuelle Benachrichtigungen darüber gibt, dass sie möglicherweise sprechen und nicht erkennen, dass ihre Audio stumm geschaltet ist.
noMicrophoneDevicesEnumerated Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind.
– Legen Sie fest, False wann mindestens ein Mikrofongerät auf dem System vorhanden ist.
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. Wenn der Wert so festgelegt ist, True dass endbenutzern visuelle Benachrichtigungen angezeigt werden, dass ihre aktuelle Anrufsitzung nicht über ein Mikrofon verfügt. Weitere Informationen finden Sie im Abschnitt zum Aktivieren des Mikrofons aus dem Abschnitt "Geräteverwaltung ".
microphoneNotFunctioning Das Mikrofon funktioniert nicht. - Wird auf True festgelegt, wenn die Übertragung des lokalen Audiodatenstroms nicht gestartet werden kann, da das Mikrofongerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird. Es dauert ungefähr 10 Sekunden, bis dieses UFD ausgelöst wird.
- Wird auf False festgelegt, wenn das Mikrofon wieder erfolgreich einen Audiodatenstrom sendet.
Keine Mikrofone verfügbar, Mikrofonzugriff in einem System deaktiviert Wenn der Wert so festgelegt ist, True dass der Endbenutzer visuelle Benachrichtigungen darüber erhält, dass es ein Problem mit seinem Mikrofon gibt.
microphoneMuteUnexpectedly Das Mikrofon ist stummgeschaltet. - Wird auf True festgelegt, wenn das Mikrofon unerwartet stummgeschaltet wird.
- Wird auf False festgelegt, wenn das Mikrofon erfolgreich einen Audiodatenstrom sendet.
Das Mikrofon wird vom System stummgeschaltet. Dies tritt meistens dann auf, wenn sich Benutzer auf einem mobilen Gerät in einem Azure Communication Services-Anruf befinden und ein Telefonanruf eingeht. In den meisten Fällen schaltet das Betriebssystem den Azure Communication Services-Anruf stumm, damit ein Benutzer den Telefonanruf annehmen kann. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigung, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt zur optimalen Behandlung der Betriebssystem stummschaltung eines Azure Communication Services-Anrufabschnitts .
microphonePermissionDenied es gibt geringe Lautstärke vom Gerät oder es ist fast unbeaufsichtigt auf macOS. – Legen Sie fest, True wann die Audioberechtigung von den Systemeinstellungen (Audio) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS.
Die Mikrofonberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf <a0/> festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass sie nicht die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf aktiviert haben.

Kamerawerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
cameraFreeze Die Kamera erzeugt keine Bilder für mehr als fünf Sekunden. - Wird auf True festgelegt, wenn der lokale Videodatenstrom eingefroren ist. Diese Diagnose bedeutet, dass die Remoteseite Ihr Video auf dem Bildschirm fixiert sieht oder bedeutet, dass die Remoteteilnehmer Ihr Video nicht auf ihrem Bildschirm rendern.
- Wird auf False festgelegt, wenn das Einfrieren beendet ist und die Benutzer Ihr Video wie gewohnt sehen können.
Die Kamera wurde während des Anrufs getrennt oder ein schlechtes Netzwerk hat zum Einfrieren der Kamera geführt. Wenn der Wert auf "Wert" festgelegt Trueist, erwägen Sie, dem Endbenutzer Benachrichtigung zu geben, dass das Remoteteilnehmernetzwerk möglicherweise schlecht ist – möglicherweise schlägt vor, dass er seine Kamera ausschaltet, um Bandbreite zu sparen. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung " zu den erforderlichen Internetfähigkeiten für einen Azure Communication Services-Anruf.
cameraStartFailed Generischer Kamerafehler. - Wird auf True festgelegt, wenn die Übertragung des lokalen Videos nicht gestartet werden kann, da das Kameragerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf " TrueWert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass die Kamera nicht gestartet werden konnte.
cameraStartTimedOut Häufiges Szenario, in dem die Kamera einen fehlerhaften Zustand aufweist. - Wird auf True festgelegt, wenn das Kameragerät einen Timeout aufweist, um mit dem Senden des Videodatenstroms zu beginnen.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).
cameraPermissionDenied Die Kameraberechtigungen wurden in den Einstellungen verweigert. – Legen Sie fest, True wann die Kameraberechtigung von den Systemeinstellungen (Video) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS Chrome.
Die Kameraberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf <a0/> festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass sie nicht die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf aktiviert haben.
cameraStoppedUnexpectedly Fehlfunktion der Kamera - Wird auf True festgelegt, wenn die Kamera unerwartet in den Zustand „Beendet“ wechselt
- Wird auf False festgelegt, wenn die Kamera wieder erfolgreich einen Videodatenstrom sendet
Überprüfen der ordnungsgemäßen Funktion der Kamera Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).

Sonstige Werte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
screenshareRecordingDisabled Die Systembildschirmfreigabe wurde von den Einstellungen in Einstellungen verweigert. – Legen Sie fest, True wann die Bildschirmfreigabeberechtigung von den Systemeinstellungen (Freigabe) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS.Chrome.
Die Bildschirmaufzeichnung ist in den Einstellungen deaktiviert. Wenn der Wert auf True festgelegt ist, geben Sie Endbenutzern eine visuelle Benachrichtigung, dass sie nicht die Berechtigung zum Freigeben ihres Bildschirms für einen Azure Communication Services-Aufruf aktiviert haben.
capturerStartFailed Systemfehler bei der Bildschirmfreigabe - Wird auf True festgelegt, wenn die Bildschirmerfassung nicht gestartet werden kann
- Wird auf False festgelegt, wenn die Bildschirmerfassung erfolgreich gestartet werden kann
Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, dass möglicherweise ein Problem beim Freigeben des Bildschirms aufgetreten ist. (Wenn der Wert auf " zurückgesetzt False" ist , entfernen Sie die Benachrichtigung).
capturerStoppedUnexpectedly Fehlfunktion des Systems bei der Bildschirmfreigabe - Wird auf True festgelegt, wenn die Bildschirmaufzeichnung unerwartet in den Zustand „Beendet“ wechselt
- Wird auf False festgelegt, wenn die Bildschirmaufzeichnung wieder erfolgreich durchgeführt wird
Überprüfen der ordnungsgemäßen Funktion der Bildschirmfreigabe Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, dass möglicherweise ein Problem vorliegt, das dazu führt, dass die Freigabe des Bildschirms beendet wird. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).

Zugreifen auf die Diagnose

Die benutzerseitige Diagnose ist ein erweitertes Feature der Kern-API Call und ermöglicht Ihnen, einen aktiven Anruf zu diagnostizieren.

const userFacingDiagnostics = call.feature(Features.UserFacingDiagnostics);

Benutzerseitige Diagnoseereignisse

  • Abonnieren Sie das diagnosticChanged-Ereignis, um zu überwachen, wenn sich eine benutzerseitige Diagnose ändert.
/**
 *  Each diagnostic has the following data:
 * - diagnostic is the type of diagnostic, e.g. NetworkSendQuality, DeviceSpeakWhileMuted, etc...
 * - value is DiagnosticQuality or DiagnosticFlag:
 *     - DiagnosticQuality = enum { Good = 1, Poor = 2, Bad = 3 }.
 *     - DiagnosticFlag = true | false.
 * - valueType = 'DiagnosticQuality' | 'DiagnosticFlag'
 */
const diagnosticChangedListener = (diagnosticInfo: NetworkDiagnosticChangedEventArgs | MediaDiagnosticChangedEventArgs) => {
    console.log(`Diagnostic changed: ` +
        `Diagnostic: ${diagnosticInfo.diagnostic}` +
        `Value: ${diagnosticInfo.value}` +
        `Value type: ${diagnosticInfo.valueType}`);

    if (diagnosticInfo.valueType === 'DiagnosticQuality') {
        if (diagnosticInfo.value === DiagnosticQuality.Bad) {
            console.error(`${diagnosticInfo.diagnostic} is bad quality`);

        } else if (diagnosticInfo.value === DiagnosticQuality.Poor) {
            console.error(`${diagnosticInfo.diagnostic} is poor quality`);
        }

    } else if (diagnosticInfo.valueType === 'DiagnosticFlag') {
        if (diagnosticInfo.value === true) {
            console.error(`${diagnosticInfo.diagnostic}`);
        }
    }
};

userFacingDiagnostics.network.on('diagnosticChanged', diagnosticChangedListener);
userFacingDiagnostics.media.on('diagnosticChanged', diagnosticChangedListener);

Abrufen der aktuellen benutzerseitigen Diagnose

  • Rufen Sie die neuesten Diagnosewerte ab, die ausgelöst wurden. Wenn eine Diagnose nicht definiert ist, liegt dies daran, dass sie nie ausgelöst wurde.
const latestNetworkDiagnostics = userFacingDiagnostics.network.getLatest();

console.log(
  `noNetwork: ${latestNetworkDiagnostics.noNetwork.value}, ` +
    `value type = ${latestNetworkDiagnostics.noNetwork.valueType}`
);

console.log(
  `networkReconnect: ${latestNetworkDiagnostics.networkReconnect.value}, ` +
    `value type = ${latestNetworkDiagnostics.networkReconnect.valueType}`
);

console.log(
  `networkReceiveQuality: ${latestNetworkDiagnostics.networkReceiveQuality.value}, ` +
    `value type = ${latestNetworkDiagnostics.networkReceiveQuality.valueType}`
);

const latestMediaDiagnostics = userFacingDiagnostics.media.getLatest();

console.log(
  `speakingWhileMicrophoneIsMuted: ${latestMediaDiagnostics.speakingWhileMicrophoneIsMuted.value}, ` +
    `value type = ${latestMediaDiagnostics.speakingWhileMicrophoneIsMuted.valueType}`
);

console.log(
  `cameraStartFailed: ${latestMediaDiagnostics.cameraStartFailed.value}, ` +
    `value type = ${latestMediaDiagnostics.cameraStartFailed.valueType}`
);

console.log(
  `microphoneNotFunctioning: ${latestMediaDiagnostics.microphoneNotFunctioning.value}, ` +
    `value type = ${latestMediaDiagnostics.microphoneNotFunctioning.valueType}`
);

Diagnosewerte

Die folgenden benutzerseitigen Diagnosen sind verfügbar:

Netzwerkwerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
networkUnavailable Es ist kein Netzwerk verfügbar. – Legen Sie fest, True wann ein Anruf nicht gestartet werden kann, da kein Netzwerk verfügbar ist.
- Wird auf False festgelegt, wenn ICE-Kandidaten vorhanden sind.
Das Gerät ist nicht mit einem Netzwerk verbunden. Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkoptimierung ".
networkRelaysUnreachable Probleme mit einem Netzwerk. – Legen Sie fest, True wann das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht ermöglicht, Azure Communication Services-Relays zu erreichen.
- Wird bei einem neuen Anruf auf False festgelegt.
Während eines Anrufs, wenn das WLAN-Signal aktiviert und deaktiviert wird. Stellen Sie sicher, dass Firewallregeln und Netzwerkrouting es dem Client ermöglichen, Microsoft TURN-Server zu erreichen. Weitere Informationen finden Sie im Abschnitt Firewallkonfiguration.
networkReconnectionQuality Die Verbindung ist verloren gegangen, und wir verbinden uns erneut mit dem Netzwerk. – Festgelegt aufBad den Zeitpunkt, an dem das Netzwerk getrennt wird
– Festgelegt auf den Zeitpunkt, an Poordem die Medientransportkonnektivität verloren geht
- Wird auf Good festgelegt, wenn eine neue Sitzung hergestellt wird.
Geringe Bandbreite, kein Internet Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" .
networkReceiveQuality Ein Indikator für die Qualität des eingehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Poor wann ein mildes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Empfangen des Datenstroms auftritt.
– Es ist nur sichtbar, wenn im Anruf ein aktiver Audiofluss vorhanden ist, was bedeutet, dass ein Teilnehmer aktiv für einen bestimmten Zeitraum spricht.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie vor, dass der Endbenutzer seine Kamera ausschaltet, um verfügbare Internetbandbreite zu sparen.
networkSendQuality Ein Indikator für die Qualität des ausgehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Senden des Datenstroms auftritt.
– Legen Sie fest, Poor wann ein mildes Problem beim Senden des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Senden des Datenstroms vorliegt.
- Ähnlich wie beim Empfang einer Qualitätsdiagnose ist es nur sichtbar, wenn im Anruf ein aktiver Audiofluss vorhanden ist, was bedeutet, dass ein Teilnehmer aktiv für einen bestimmten Zeitraum spricht. Aber es funktioniert nur in einem 1:1-Aufruf, da es auf Informationen von der anderen Seite angewiesen ist, um die Qualität zu überprüfen. Wo die andere Seite die empfangenen Daten signalisieren muss.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera ausschaltet, um verfügbare Internetbandbreite zu sparen.

Audiowerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
noSpeakerDevicesAvailable Auf dem System des Benutzers ist kein Audioausgabegerät (Lautsprecher) vorhanden. - Wird auf True festgelegt, wenn keine Lautsprechergeräte im System vorhanden sind und die Lautsprecherauswahl unterstützt wird.
– Legen Sie fest False , wann es ein mindestens ein Lautsprechergerät auf dem System gibt, und die Lautsprecherauswahl wird unterstützt.
Kein Lautsprecher ist angeschlossen. Wenn der Wert auf <a0/> festgelegt ist, sollten Sie endbenutzern eine visuelle Benachrichtigung erteilen, dass ihre aktuelle Anrufsitzung über keine Lautsprecher verfügt.
speakingWhileMicrophoneIsMuted Sprechen während der Stummschaltung. - Wird auf True festgelegt, wenn das lokale Mikrofon stummgeschaltet ist und der lokale Benutzer spricht.
- Wird auf False festgelegt, wenn der lokale Benutzer entweder aufhört zu sprechen oder die Stummschaltung des Mikrofons aufhebt.
– Dieses Diagnoseereignis kann automatisch deaktiviert werden, wenn es für eine bestimmte Zeitspanne ohne Benutzeraktion ausgelöst wird, um Rauschen zu vermeiden und eine bessere Benutzererfahrung zu bieten. Es wird erneut aktiviert, wenn eine neue Stummschaltungsaktion auftritt.
Schalten Sie Ihr Mikrofon während eines Anrufs stumm, und sprechen Sie in das Mikrofon. Wenn der Wert so festgelegt ist, True dass er Endbenutzern visuelle Benachrichtigungen darüber gibt, dass sie möglicherweise sprechen und nicht erkennen, dass ihre Audio stumm geschaltet ist.
noMicrophoneDevicesAvailable Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind.
– Legen Sie fest, False wann mindestens ein Mikrofongerät auf dem System vorhanden ist.
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. Wenn der Wert so festgelegt ist, True dass endbenutzern visuelle Benachrichtigungen angezeigt werden, dass ihre aktuelle Anrufsitzung nicht über ein Mikrofon verfügt. Weitere Informationen finden Sie im Abschnitt zum Aktivieren des Mikrofons aus dem Abschnitt "Geräteverwaltung ".
microphoneNotFunctioning Das Mikrofon funktioniert nicht. – Legen Sie fest, True wann das Senden des lokalen Audiodatenstroms fehlschlägt, da das Mikrofongerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird. Es dauert ungefähr 10 Sekunden, bis dieses UFD ausgelöst wird.
- Wird auf False festgelegt, wenn das Mikrofon wieder erfolgreich einen Audiodatenstrom sendet.
Keine Mikrofone verfügbar, Mikrofonzugriff in einem System deaktiviert Wenn der Wert so festgelegt ist, True dass der Endbenutzer visuelle Benachrichtigungen darüber erhält, dass es ein Problem mit seinem Mikrofon gibt.
microphoneMuteUnexpectedly Das Mikrofon ist stummgeschaltet. - Wird auf True festgelegt, wenn das Mikrofon unerwartet stummgeschaltet wird.
- Wird auf False festgelegt, wenn das Mikrofon erfolgreich einen Audiodatenstrom sendet.
Das Mikrofon wird vom System stummgeschaltet. Dies tritt meistens dann auf, wenn sich Benutzer auf einem mobilen Gerät in einem Azure Communication Services-Anruf befinden und ein Telefonanruf eingeht. In den meisten Fällen schaltet das Betriebssystem den Azure Communication Services-Anruf stumm, damit ein Benutzer den Telefonanruf annehmen kann. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigung, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt zur optimalen Behandlung der Betriebssystem stummschaltung eines Azure Communication Services-Anrufabschnitts .
microphonePermissionDenied es gibt geringe Lautstärke vom Gerät oder es ist fast unbeaufsichtigt auf macOS. – Legen Sie fest, True wann die Audioberechtigung von den Systemeinstellungen (Audio) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS.
Die Mikrofonberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf True festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass sie nicht die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf aktiviert haben.

Kamerawerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
cameraFrozen Die Kamera erzeugt keine Bilder für mehr als fünf Sekunden. - Wird auf True festgelegt, wenn der lokale Videodatenstrom eingefroren ist. Diese Diagnose bedeutet, dass die Remoteseite Ihr Video auf dem Bildschirm eingefroren sieht oder bedeutet, dass die Remoteteilnehmer Ihr Video nicht auf ihrem Bildschirm rendern.
- Wird auf False festgelegt, wenn das Einfrieren beendet ist und die Benutzer Ihr Video wie gewohnt sehen können.
Die Kamera wurde während des Anrufs getrennt oder ein schlechtes Netzwerk hat zum Einfrieren der Kamera geführt. Wenn der Wert auf "Wert" festgelegt Trueist, erwägen Sie, dem Endbenutzer Benachrichtigung zu geben, dass das Remoteteilnehmernetzwerk möglicherweise schlecht ist – möglicherweise schlägt vor, dass er seine Kamera ausschaltet, um Bandbreite zu sparen. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung " zu den erforderlichen Internetfähigkeiten für einen Azure Communication Services-Anruf.
cameraStartFailed Generischer Kamerafehler. - Legen Sie fest, True wann das Senden von lokalen Videos fehlschlägt, da das Kameragerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf " TrueWert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass die Kamera nicht gestartet werden konnte.
cameraStartTimedOut Häufiges Szenario, in dem die Kamera einen fehlerhaften Zustand aufweist. - Wird auf True festgelegt, wenn das Kameragerät einen Timeout aufweist, um mit dem Senden des Videodatenstroms zu beginnen.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).
cameraPermissionDenied Die Kameraberechtigungen wurden in den Einstellungen verweigert. – Legen Sie fest, True wann die Kameraberechtigung von den Systemeinstellungen (Video) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS Chrome.
Die Kameraberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf <a0/> festgelegt ist, geben Sie Endbenutzern eine visuelle Benachrichtigung, dass sie nicht die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf aktiviert haben.
cameraStoppedUnexpectedly Fehlfunktion der Kamera - Wird auf True festgelegt, wenn die Kamera unerwartet in den Zustand „Beendet“ wechselt
- Wird auf False festgelegt, wenn die Kamera wieder erfolgreich einen Videodatenstrom sendet
Überprüfen der ordnungsgemäßen Funktion der Kamera Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).

Nur systemeigen

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
speakerVolumeIsZero Nulllautstärke auf einem Gerät (Lautsprecher). - Legen Sie fest, True wann die Lautsprecherlautstärke null ist.
– Legen Sie fest, False wann die Lautsprecherlautstärke nicht null ist.
Audio von Teilnehmern am Anruf nicht hören. Wenn der Wert auf True"Wert" festgelegt ist, haben Sie möglicherweise versehentlich das Volume mit der niedrigsten(Null) erreicht.
speakerMuted Lautsprechergerät ist stummgeschaltet. – Legen Sie fest, True wann das Lautsprechergerät stummgeschaltet ist.
– Legen Sie fest, False wann das Lautsprechergerät nicht stummgeschaltet ist.
Audio von Teilnehmern am Anruf nicht hören. Wenn der Wert auf True"Wert" festgelegt ist, haben Sie den Lautsprecher möglicherweise versehentlich stummgeschaltet.
speakerBusy Lautsprecher wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus verwendet, oder das Gerät wird im gemeinsam genutzten Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. – Legen Sie fest, True wann das Zeitüberschreitung des Audiodatenstroms des Lautsprechergeräts (Audio) erfolgt.
– Festlegen, False wann die Lautsprecherakquise erfolgreich ist.
Audio von Teilnehmern am Telefon nicht über Lautsprecher hören. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, damit sie überprüfen können, ob eine andere Anwendung den Lautsprecher verwendet, und versuchen Sie, sie zu schließen.
speakerNotFunctioning Der Lautsprecher funktioniert nicht (fehler beim Initialisieren des Audiogeräteclients oder Geräts wurde für mehr als 5 Sek.) inaktiv. – Legen Sie fest, True wann der Lautsprecher nicht verfügbar ist, oder zeitüberschreitung beim Gerätedatenstrom (Audio).
– Festlegen, False wann die Lautsprecherakquise erfolgreich ist.
Audio von Teilnehmern am Telefon nicht über Lautsprecher hören. Versuchen Sie, den Zustand des Lautsprechergeräts zu überprüfen.
microphoneBusy Mikrofon wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus verwendet, oder das Gerät wird im gemeinsam genutzten Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. – Legen Sie fest, True wann die Zeitüberschreitung des Mikrofondatenstroms (Audio) erfolgt.
– Festlegen, False wann die Mikrofonakquise erfolgreich ist.
Ihre Audiodaten erreichen keine anderen Teilnehmer am Anruf. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, damit sie überprüfen können, ob eine andere Anwendung das Mikrofon verwendet, und versuchen Sie, sie zu schließen.

Zugreifen auf die Diagnose

Die benutzerseitige Diagnose ist ein erweitertes Feature der Kern-API Call und ermöglicht Ihnen, einen aktiven Anruf zu diagnostizieren.

DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);

Benutzerseitige Diagnoseereignisse

  • Dient zum Abrufen eines Featureobjekts und Hinzufügen von Listenern zu den Diagnose Ereignissen.
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);

/* NetworkDiagnostic */
FlagDiagnosticChangedListener listener = (FlagDiagnosticChangedEvent args) -> {
  Boolean mediaValue = args.getValue();
  // Handle new value for no network diagnostic.
};

NetworkDiagnostics networkDiagnostics = diagnosticsCallFeature.getNetworkDiagnostics();
networkDiagnostics.addOnNetworkUnreachableChangedListener(listener);

// To remove listener for network quality event
networkDiagnostics.removeOnNetworkUnreachableChangedListener(listener);

// Quality Diagnostics
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);
QualityDiagnosticChangedListener listener = (QualityDiagnosticChangedEvent args) -> {
  DiagnosticQuality diagnosticQuality = args.getValue();
  // Handle new value for network reconnect diagnostic.
};

NetworkDiagnostics networkDiagnostics = diagnosticsCallFeature.getNetworkDiagnostics();
networkDiagnostics.addOnNetworkReconnectionQualityChangedListener(listener);

// To remove listener for media flag event
networkDiagnostics.removeOnNetworkReconnectionQualityChangedListener(listener);

/* MediaDiagnostic */
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);
FlagDiagnosticChangedListener listener = (FlagDiagnosticChangedEvent args) -> {
  Boolean mediaValue = args.getValue();
  // Handle new value for speaker not functioning diagnostic.
};

MediaDiagnostics mediaDiagnostics = diagnosticsCallFeature.getMedia();
mediaDiagnostics.addOnIsSpeakerNotFunctioningChangedListener(listener);

// To remove listener for media flag event
mediaDiagnostics.removeOnIsSpeakerNotFunctioningChangedListener(listener);

Abrufen der aktuellen benutzerseitigen Diagnose

  • Rufen Sie die neuesten Diagnosewerte ab, die im aktuellen Anruf ausgelöst wurden. Wenn weiterhin kein Wert für die Diagnose empfangen wurde, wird eine Ausnahme ausgelöst.
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);
NetworkDiagnostics networkDiagnostics = diagnosticsCallFeature.getNetwork();
MediaDiagnostics mediaDiagnostics = diagnosticsCallFeature.getMedia();

NetworkDiagnosticValues latestNetwork = networkDiagnostics.getLatestDiagnostics();
Boolean lastNetworkValue = latestNetwork.isNetworkUnavailable(); // null if there isn't a value for this diagnostic.
DiagnosticQuality lastReceiveQualityValue = latestNetwork.getNetworkReceiveQuality(); //  UNKNOWN if there isn't a value for this diagnostic.

MediaDiagnosticValues latestMedia = networkDiagnostics.getLatestDiagnostics();
Boolean lastSpeakerNotFunctionValue = latestMedia.isSpeakerNotFunctioning(); // null if there isn't a value for this diagnostic.

// Use the last values ...

Diagnosewerte

Die folgenden benutzerseitigen Diagnosen sind verfügbar:

Netzwerkwerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
networkUnavailable Es ist kein Netzwerk verfügbar. – Legen Sie fest, True wann ein Anruf nicht gestartet werden kann, da kein Netzwerk verfügbar ist.
- Wird auf False festgelegt, wenn ICE-Kandidaten vorhanden sind.
Das Gerät ist nicht mit einem Netzwerk verbunden. Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkoptimierung ".
networkRelaysUnreachable Probleme mit einem Netzwerk. – Legen Sie fest, True wann das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht ermöglicht, Azure Communication Services-Relays zu erreichen.
- Wird bei einem neuen Anruf auf False festgelegt.
Während eines Anrufs, wenn das WLAN-Signal aktiviert und deaktiviert wird. Stellen Sie sicher, dass Firewallregeln und Netzwerkrouting es dem Client ermöglichen, Microsoft TURN-Server zu erreichen. Weitere Informationen finden Sie im Abschnitt Firewallkonfiguration.
networkReconnectionQuality Die Verbindung ist verloren gegangen, und wir verbinden uns erneut mit dem Netzwerk. – Festgelegt aufBad den Zeitpunkt, an dem das Netzwerk getrennt wird
– Festgelegt auf den Zeitpunkt, an Poordem die Medientransportkonnektivität verloren geht
- Wird auf Good festgelegt, wenn eine neue Sitzung hergestellt wird.
Geringe Bandbreite, kein Internet Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" .
networkReceiveQuality Ein Indikator für die Qualität des eingehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Poor wann ein mildes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Empfangen des Datenstroms auftritt.
– Es ist nur sichtbar, wenn im Anruf ein aktiver Audiofluss vorhanden ist, was bedeutet, dass ein Teilnehmer aktiv für einen bestimmten Zeitraum spricht.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie vor, dass der Endbenutzer seine Kamera ausschaltet, um verfügbare Internetbandbreite zu sparen.
networkSendQuality Ein Indikator für die Qualität des ausgehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Senden des Datenstroms auftritt.
– Legen Sie fest, Poor wann ein mildes Problem beim Senden des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Senden des Datenstroms vorliegt.
- Ähnlich wie beim Empfang einer Qualitätsdiagnose ist es nur sichtbar, wenn im Anruf ein aktiver Audiofluss vorhanden ist, was bedeutet, dass ein Teilnehmer aktiv für einen bestimmten Zeitraum spricht. Aber es funktioniert nur in einem 1:1-Aufruf, da es auf Informationen von der anderen Seite angewiesen ist, um die Qualität zu überprüfen. Wo die andere Seite die empfangenen Daten signalisieren muss.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera ausschaltet, um verfügbare Internetbandbreite zu sparen.

Audiowerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
noSpeakerDevicesAvailable Auf dem System des Benutzers ist kein Audioausgabegerät (Lautsprecher) vorhanden. - Wird auf True festgelegt, wenn keine Lautsprechergeräte im System vorhanden sind und die Lautsprecherauswahl unterstützt wird.
– Legen Sie fest False , wann es ein mindestens ein Lautsprechergerät auf dem System gibt, und die Lautsprecherauswahl wird unterstützt.
Kein Lautsprecher ist angeschlossen. Wenn der Wert auf <a0/> festgelegt ist, sollten Sie endbenutzern eine visuelle Benachrichtigung erteilen, dass ihre aktuelle Anrufsitzung über keine Lautsprecher verfügt.
speakingWhileMicrophoneIsMuted Sprechen während der Stummschaltung. - Wird auf True festgelegt, wenn das lokale Mikrofon stummgeschaltet ist und der lokale Benutzer spricht.
- Wird auf False festgelegt, wenn der lokale Benutzer entweder aufhört zu sprechen oder die Stummschaltung des Mikrofons aufhebt.
– Dieses Diagnoseereignis kann automatisch deaktiviert werden, wenn es für eine bestimmte Zeitspanne ohne Benutzeraktion ausgelöst wird, um Rauschen zu vermeiden und eine bessere Benutzererfahrung zu bieten. Es wird erneut aktiviert, wenn eine neue Stummschaltungsaktion auftritt.
Schalten Sie Ihr Mikrofon während eines Anrufs stumm, und sprechen Sie in das Mikrofon. Wenn der Wert so festgelegt ist, True dass er Endbenutzern visuelle Benachrichtigungen darüber gibt, dass sie möglicherweise sprechen und nicht erkennen, dass ihre Audio stumm geschaltet ist.
noMicrophoneDevicesAvailable Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind.
– Legen Sie fest, False wann mindestens ein Mikrofongerät auf dem System vorhanden ist.
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. Wenn der Wert so festgelegt ist, True dass endbenutzern visuelle Benachrichtigungen angezeigt werden, dass ihre aktuelle Anrufsitzung nicht über ein Mikrofon verfügt. Weitere Informationen finden Sie im Abschnitt zum Aktivieren des Mikrofons aus dem Abschnitt "Geräteverwaltung ".
microphoneNotFunctioning Das Mikrofon funktioniert nicht. – Legen Sie fest, True wann das Senden des lokalen Audiodatenstroms fehlschlägt, da das Mikrofongerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird. Es dauert ungefähr 10 Sekunden, bis dieses UFD ausgelöst wird.
- Wird auf False festgelegt, wenn das Mikrofon wieder erfolgreich einen Audiodatenstrom sendet.
Keine Mikrofone verfügbar, Mikrofonzugriff in einem System deaktiviert Wenn der Wert so festgelegt ist, True dass der Endbenutzer visuelle Benachrichtigungen darüber erhält, dass es ein Problem mit seinem Mikrofon gibt.
microphoneMuteUnexpectedly Das Mikrofon ist stummgeschaltet. - Wird auf True festgelegt, wenn das Mikrofon unerwartet stummgeschaltet wird.
- Wird auf False festgelegt, wenn das Mikrofon erfolgreich einen Audiodatenstrom sendet.
Das Mikrofon wird vom System stummgeschaltet. Dies tritt meistens dann auf, wenn sich Benutzer auf einem mobilen Gerät in einem Azure Communication Services-Anruf befinden und ein Telefonanruf eingeht. In den meisten Fällen schaltet das Betriebssystem den Azure Communication Services-Anruf stumm, damit ein Benutzer den Telefonanruf annehmen kann. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigung, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt zur optimalen Behandlung der Betriebssystem stummschaltung eines Azure Communication Services-Anrufabschnitts .
microphonePermissionDenied es gibt geringe Lautstärke vom Gerät oder es ist fast unbeaufsichtigt auf macOS. – Legen Sie fest, True wann die Audioberechtigung von den Systemeinstellungen (Audio) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS.
Die Mikrofonberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf True festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass sie nicht die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf aktiviert haben.

Kamerawerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
cameraFrozen Die Kamera erzeugt keine Bilder für mehr als fünf Sekunden. - Wird auf True festgelegt, wenn der lokale Videodatenstrom eingefroren ist. Diese Diagnose bedeutet, dass die Remoteseite Ihr Video auf dem Bildschirm eingefroren sieht oder bedeutet, dass die Remoteteilnehmer Ihr Video nicht auf ihrem Bildschirm rendern.
- Wird auf False festgelegt, wenn das Einfrieren beendet ist und die Benutzer Ihr Video wie gewohnt sehen können.
Die Kamera wurde während des Anrufs getrennt oder ein schlechtes Netzwerk hat zum Einfrieren der Kamera geführt. Wenn der Wert auf "Wert" festgelegt Trueist, erwägen Sie, dem Endbenutzer Benachrichtigung zu geben, dass das Remoteteilnehmernetzwerk möglicherweise schlecht ist – möglicherweise schlägt vor, dass er seine Kamera ausschaltet, um Bandbreite zu sparen. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung " zu den erforderlichen Internetfähigkeiten für einen Azure Communication Services-Anruf.
cameraStartFailed Generischer Kamerafehler. - Legen Sie fest, True wann das Senden von lokalen Videos fehlschlägt, da das Kameragerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf " TrueWert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass die Kamera nicht gestartet werden konnte.
cameraStartTimedOut Häufiges Szenario, in dem die Kamera einen fehlerhaften Zustand aufweist. - Wird auf True festgelegt, wenn das Kameragerät einen Timeout aufweist, um mit dem Senden des Videodatenstroms zu beginnen.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).
cameraPermissionDenied Die Kameraberechtigungen wurden in den Einstellungen verweigert. – Legen Sie fest, True wann die Kameraberechtigung von den Systemeinstellungen (Video) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS Chrome.
Die Kameraberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf <a0/> festgelegt ist, geben Sie Endbenutzern eine visuelle Benachrichtigung, dass sie nicht die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf aktiviert haben.
cameraStoppedUnexpectedly Fehlfunktion der Kamera - Wird auf True festgelegt, wenn die Kamera unerwartet in den Zustand „Beendet“ wechselt
- Wird auf False festgelegt, wenn die Kamera wieder erfolgreich einen Videodatenstrom sendet
Überprüfen der ordnungsgemäßen Funktion der Kamera Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).

Nur systemeigen

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
speakerVolumeIsZero Nulllautstärke auf einem Gerät (Lautsprecher). - Legen Sie fest, True wann die Lautsprecherlautstärke null ist.
– Legen Sie fest, False wann die Lautsprecherlautstärke nicht null ist.
Audio von Teilnehmern am Anruf nicht hören. Wenn der Wert auf True"Wert" festgelegt ist, haben Sie möglicherweise versehentlich das Volume mit der niedrigsten(Null) erreicht.
speakerMuted Lautsprechergerät ist stummgeschaltet. – Legen Sie fest, True wann das Lautsprechergerät stummgeschaltet ist.
– Legen Sie fest, False wann das Lautsprechergerät nicht stummgeschaltet ist.
Audio von Teilnehmern am Anruf nicht hören. Wenn der Wert auf True"Wert" festgelegt ist, haben Sie den Lautsprecher möglicherweise versehentlich stummgeschaltet.
speakerBusy Lautsprecher wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus verwendet, oder das Gerät wird im gemeinsam genutzten Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. – Legen Sie fest, True wann das Zeitüberschreitung des Audiodatenstroms des Lautsprechergeräts (Audio) erfolgt.
– Festlegen, False wann die Lautsprecherakquise erfolgreich ist.
Audio von Teilnehmern am Telefon nicht über Lautsprecher hören. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, damit sie überprüfen können, ob eine andere Anwendung den Lautsprecher verwendet, und versuchen Sie, sie zu schließen.
speakerNotFunctioning Der Lautsprecher funktioniert nicht (fehler beim Initialisieren des Audiogeräteclients oder Geräts wurde für mehr als 5 Sek.) inaktiv. – Legen Sie fest, True wann der Lautsprecher nicht verfügbar ist, oder zeitüberschreitung beim Gerätedatenstrom (Audio).
– Festlegen, False wann die Lautsprecherakquise erfolgreich ist.
Audio von Teilnehmern am Telefon nicht über Lautsprecher hören. Versuchen Sie, den Zustand des Lautsprechergeräts zu überprüfen.
microphoneBusy Mikrofon wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus verwendet, oder das Gerät wird im gemeinsam genutzten Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. – Legen Sie fest, True wann die Zeitüberschreitung des Mikrofondatenstroms (Audio) erfolgt.
– Festlegen, False wann die Mikrofonakquise erfolgreich ist.
Ihre Audiodaten erreichen keine anderen Teilnehmer am Anruf. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, damit sie überprüfen können, ob eine andere Anwendung das Mikrofon verwendet, und versuchen Sie, sie zu schließen.

Zugreifen auf die Diagnose

Die benutzerseitige Diagnose ist ein erweitertes Feature der Kern-API Call und ermöglicht Ihnen, einen aktiven Anruf zu diagnostizieren.

let userFacingDiagnostics = self.call?.feature(Features.localUserDiagnostics)

Benutzerseitige Diagnoseereignisse

  • Implementieren Sie die Stellvertretungen für media und network Diagnosequellen. MediaDiagnosticsDelegate bzw. NetworkDiagnosticsDelegate verwenden.
extension CallObserver: MediaDiagnosticsDelegate {
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraFrozen args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerMuted args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraStartFailed args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerVolumeZero args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerNotFunctioning args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraPermissionDenied args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsMicrophoneNotFunctioning args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraStartTimedOut args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsMicrophoneMutedUnexpectedly args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsZeroSpeakerDevicesAvailable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...                            
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsZeroMicrophoneDevicesAvailable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakingWhileMicrophoneIsMuted args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerBusy args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsMicrophoneBusy args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
}

extension CallObserver: NetworkDiagnosticsDelegate {
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeIsNetworkRelaysUnreachable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeNetworkReconnectionQuality args: DiagnosticQualityChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeNetworkSendQuality args: DiagnosticQualityChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeIsNetworkUnavailable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeNetworkReceiveQuality args: DiagnosticQualityChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
}
  • Halten Sie einen Verweis auf media und network Diagnose und legen Sie das Delegatobjekt fest, um Ereignisse zu überwachen.
self.mediaDiagnostics = userFacingDiagnostics?.media
self.networkDiagnostics = userFacingDiagnostics?.network
self.mediaDiagnostics?.delegate = self.callObserver
self.networkDiagnostics?.delegate = self.callObserver

Hinweis

Wenn Sie die CallKit-Integration in Ihre Anwendung aktiviert oder die CallKit-Integration implementiert haben CallKit , kann die Meldung des Stummschaltzustands an CallKit dazu führen, dass die Anwendung den Haltebereich des Mikrofons aufgrund von Datenschutzgründen verliert, was dazu führen würde, dass das didIsSpeakingWhileMicrophoneIsMuted Ereignis nicht wie erwartet funktioniert, da wir keine Eingaben vom Mikrofongerät erfassen können, um zu erkennen, dass der Benutzer spricht.

Abrufen der aktuellen benutzerseitigen Diagnose

  • Rufen Sie die neuesten Diagnosewerte ab, die ausgelöst wurden. Wenn weiterhin kein Wert für die Diagnose nil empfangen wurde oder .unknown zurückgegeben wird.
let lastSpeakerNotFunctionValue = self.mediaDiagnostics.latest.isSpeakerNotFunctioning // Boolean?
let lastNetworkRelayNotReachableValue = self.networkDiagnostics.latest.networkRelaysUnreachable // Boolean?
let lastReceiveQualityValue = self.networkDiagnostics.latest.networkReceiveQuality // DiagnosticQuality (.good, .poor, .bad)
// or .unknown if there isn't a diagnostic for this.

Diagnosewerte

Die folgenden benutzerseitigen Diagnosen sind verfügbar:

Netzwerkwerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
networkUnavailable Es ist kein Netzwerk verfügbar. – Legen Sie fest, True wann ein Anruf nicht gestartet werden kann, da kein Netzwerk verfügbar ist.
- Wird auf False festgelegt, wenn ICE-Kandidaten vorhanden sind.
Das Gerät ist nicht mit einem Netzwerk verbunden. Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkoptimierung ".
networkRelaysUnreachable Probleme mit einem Netzwerk. – Legen Sie fest, True wann das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht ermöglicht, Azure Communication Services-Relays zu erreichen.
- Wird bei einem neuen Anruf auf False festgelegt.
Während eines Anrufs, wenn das WLAN-Signal aktiviert und deaktiviert wird. Stellen Sie sicher, dass Firewallregeln und Netzwerkrouting es dem Client ermöglichen, Microsoft TURN-Server zu erreichen. Weitere Informationen finden Sie im Abschnitt Firewallkonfiguration.
networkReconnectionQuality Die Verbindung ist verloren gegangen, und wir verbinden uns erneut mit dem Netzwerk. – Festgelegt aufBad den Zeitpunkt, an dem das Netzwerk getrennt wird
– Festgelegt auf den Zeitpunkt, an Poordem die Medientransportkonnektivität verloren geht
- Wird auf Good festgelegt, wenn eine neue Sitzung hergestellt wird.
Geringe Bandbreite, kein Internet Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" .
networkReceiveQuality Ein Indikator für die Qualität des eingehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Poor wann ein mildes Problem beim Empfangen des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Empfangen des Datenstroms auftritt.
– Es ist nur sichtbar, wenn im Anruf ein aktiver Audiofluss vorhanden ist, was bedeutet, dass ein Teilnehmer aktiv für einen bestimmten Zeitraum spricht.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie vor, dass der Endbenutzer seine Kamera ausschaltet, um verfügbare Internetbandbreite zu sparen.
networkSendQuality Ein Indikator für die Qualität des ausgehenden Datenstroms. – Legen Sie fest,Bad wann ein schwerwiegendes Problem beim Senden des Datenstroms auftritt.
– Legen Sie fest, Poor wann ein mildes Problem beim Senden des Datenstroms vorliegt.
– Legen Sie fest, Good wann kein Problem beim Senden des Datenstroms vorliegt.
- Ähnlich wie beim Empfang einer Qualitätsdiagnose ist es nur sichtbar, wenn im Anruf ein aktiver Audiofluss vorhanden ist, was bedeutet, dass ein Teilnehmer aktiv für einen bestimmten Zeitraum spricht. Aber es funktioniert nur in einem 1:1-Aufruf, da es auf Informationen von der anderen Seite angewiesen ist, um die Qualität zu überprüfen. Wo die andere Seite die empfangenen Daten signalisieren muss.
Geringe Bandbreite Stellen Sie sicher, dass Sie über eine zuverlässige Internetverbindung verfügen, die einen Sprachanruf aufrechterhalten kann. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung" . Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera ausschaltet, um verfügbare Internetbandbreite zu sparen.

Audiowerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
noSpeakerDevicesAvailable Auf dem System des Benutzers ist kein Audioausgabegerät (Lautsprecher) vorhanden. - Wird auf True festgelegt, wenn keine Lautsprechergeräte im System vorhanden sind und die Lautsprecherauswahl unterstützt wird.
– Legen Sie fest False , wann es ein mindestens ein Lautsprechergerät auf dem System gibt, und die Lautsprecherauswahl wird unterstützt.
Kein Lautsprecher ist angeschlossen. Wenn der Wert auf <a0/> festgelegt ist, sollten Sie endbenutzern eine visuelle Benachrichtigung erteilen, dass ihre aktuelle Anrufsitzung über keine Lautsprecher verfügt.
speakingWhileMicrophoneIsMuted Sprechen während der Stummschaltung. - Wird auf True festgelegt, wenn das lokale Mikrofon stummgeschaltet ist und der lokale Benutzer spricht.
- Wird auf False festgelegt, wenn der lokale Benutzer entweder aufhört zu sprechen oder die Stummschaltung des Mikrofons aufhebt.
– Dieses Diagnoseereignis kann automatisch deaktiviert werden, wenn es für eine bestimmte Zeitspanne ohne Benutzeraktion ausgelöst wird, um Rauschen zu vermeiden und eine bessere Benutzererfahrung zu bieten. Es wird erneut aktiviert, wenn eine neue Stummschaltungsaktion auftritt.
Schalten Sie Ihr Mikrofon während eines Anrufs stumm, und sprechen Sie in das Mikrofon. Wenn der Wert so festgelegt ist, True dass er Endbenutzern visuelle Benachrichtigungen darüber gibt, dass sie möglicherweise sprechen und nicht erkennen, dass ihre Audio stumm geschaltet ist.
noMicrophoneDevicesAvailable Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind.
– Legen Sie fest, False wann mindestens ein Mikrofongerät auf dem System vorhanden ist.
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. Wenn der Wert so festgelegt ist, True dass endbenutzern visuelle Benachrichtigungen angezeigt werden, dass ihre aktuelle Anrufsitzung nicht über ein Mikrofon verfügt. Weitere Informationen finden Sie im Abschnitt zum Aktivieren des Mikrofons aus dem Abschnitt "Geräteverwaltung ".
microphoneNotFunctioning Das Mikrofon funktioniert nicht. – Legen Sie fest, True wann das Senden des lokalen Audiodatenstroms fehlschlägt, da das Mikrofongerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird. Es dauert ungefähr 10 Sekunden, bis dieses UFD ausgelöst wird.
- Wird auf False festgelegt, wenn das Mikrofon wieder erfolgreich einen Audiodatenstrom sendet.
Keine Mikrofone verfügbar, Mikrofonzugriff in einem System deaktiviert Wenn der Wert so festgelegt ist, True dass der Endbenutzer visuelle Benachrichtigungen darüber erhält, dass es ein Problem mit seinem Mikrofon gibt.
microphoneMuteUnexpectedly Das Mikrofon ist stummgeschaltet. - Wird auf True festgelegt, wenn das Mikrofon unerwartet stummgeschaltet wird.
- Wird auf False festgelegt, wenn das Mikrofon erfolgreich einen Audiodatenstrom sendet.
Das Mikrofon wird vom System stummgeschaltet. Dies tritt meistens dann auf, wenn sich Benutzer auf einem mobilen Gerät in einem Azure Communication Services-Anruf befinden und ein Telefonanruf eingeht. In den meisten Fällen schaltet das Betriebssystem den Azure Communication Services-Anruf stumm, damit ein Benutzer den Telefonanruf annehmen kann. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigung, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt zur optimalen Behandlung der Betriebssystem stummschaltung eines Azure Communication Services-Anrufabschnitts .
microphonePermissionDenied es gibt geringe Lautstärke vom Gerät oder es ist fast unbeaufsichtigt auf macOS. – Legen Sie fest, True wann die Audioberechtigung von den Systemeinstellungen (Audio) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS.
Die Mikrofonberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf True festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass sie nicht die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf aktiviert haben.

Kamerawerte

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
cameraFrozen Die Kamera erzeugt keine Bilder für mehr als fünf Sekunden. - Wird auf True festgelegt, wenn der lokale Videodatenstrom eingefroren ist. Diese Diagnose bedeutet, dass die Remoteseite Ihr Video auf dem Bildschirm eingefroren sieht oder bedeutet, dass die Remoteteilnehmer Ihr Video nicht auf ihrem Bildschirm rendern.
- Wird auf False festgelegt, wenn das Einfrieren beendet ist und die Benutzer Ihr Video wie gewohnt sehen können.
Die Kamera wurde während des Anrufs getrennt oder ein schlechtes Netzwerk hat zum Einfrieren der Kamera geführt. Wenn der Wert auf "Wert" festgelegt Trueist, erwägen Sie, dem Endbenutzer Benachrichtigung zu geben, dass das Remoteteilnehmernetzwerk möglicherweise schlecht ist – möglicherweise schlägt vor, dass er seine Kamera ausschaltet, um Bandbreite zu sparen. Weitere Informationen finden Sie im Abschnitt "Netzwerkbandbreitenanforderung " zu den erforderlichen Internetfähigkeiten für einen Azure Communication Services-Anruf.
cameraStartFailed Generischer Kamerafehler. - Legen Sie fest, True wann das Senden von lokalen Videos fehlschlägt, da das Kameragerät möglicherweise im System deaktiviert wurde oder von einem anderen Prozess verwendet wird.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf " TrueWert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass die Kamera nicht gestartet werden konnte.
cameraStartTimedOut Häufiges Szenario, in dem die Kamera einen fehlerhaften Zustand aufweist. - Wird auf True festgelegt, wenn das Kameragerät einen Timeout aufweist, um mit dem Senden des Videodatenstroms zu beginnen.
- Wird auf False festgelegt, wenn das ausgewählte Kameragerät wieder erfolgreich ein lokales Video sendet.
Kamerafehler Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).
cameraPermissionDenied Die Kameraberechtigungen wurden in den Einstellungen verweigert. – Legen Sie fest, True wann die Kameraberechtigung von den Systemeinstellungen (Video) verweigert wird.
- Wird bei erfolgreicher Datenstromerfassung auf False festgelegt.
Hinweis: Diese Diagnose funktioniert nur unter macOS Chrome.
Die Kameraberechtigungen sind in den Einstellungen deaktiviert. Wenn der Wert auf <a0/> festgelegt ist, geben Sie Endbenutzern eine visuelle Benachrichtigung, dass sie nicht die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf aktiviert haben.
cameraStoppedUnexpectedly Fehlfunktion der Kamera - Wird auf True festgelegt, wenn die Kamera unerwartet in den Zustand „Beendet“ wechselt
- Wird auf False festgelegt, wenn die Kamera wieder erfolgreich einen Videodatenstrom sendet
Überprüfen der ordnungsgemäßen Funktion der Kamera Wenn der Wert auf True"Wert" festgelegt ist, weisen Sie endbenutzern visuelle Benachrichtigungen zu, dass ihre Kamera möglicherweise Probleme hat. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung).

Nur systemeigen

Name Beschreibung Mögliche Werte Anwendungsfälle Schritte zur Problembehebung
speakerVolumeIsZero Nulllautstärke auf einem Gerät (Lautsprecher). - Legen Sie fest, True wann die Lautsprecherlautstärke null ist.
– Legen Sie fest, False wann die Lautsprecherlautstärke nicht null ist.
Audio von Teilnehmern am Anruf nicht hören. Wenn der Wert auf True"Wert" festgelegt ist, haben Sie möglicherweise versehentlich das Volume mit der niedrigsten(Null) erreicht.
speakerMuted Lautsprechergerät ist stummgeschaltet. – Legen Sie fest, True wann das Lautsprechergerät stummgeschaltet ist.
– Legen Sie fest, False wann das Lautsprechergerät nicht stummgeschaltet ist.
Audio von Teilnehmern am Anruf nicht hören. Wenn der Wert auf True"Wert" festgelegt ist, haben Sie den Lautsprecher möglicherweise versehentlich stummgeschaltet.
speakerBusy Lautsprecher wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus verwendet, oder das Gerät wird im gemeinsam genutzten Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. – Legen Sie fest, True wann das Zeitüberschreitung des Audiodatenstroms des Lautsprechergeräts (Audio) erfolgt.
– Festlegen, False wann die Lautsprecherakquise erfolgreich ist.
Audio von Teilnehmern am Telefon nicht über Lautsprecher hören. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, damit sie überprüfen können, ob eine andere Anwendung den Lautsprecher verwendet, und versuchen Sie, sie zu schließen.
speakerNotFunctioning Der Lautsprecher funktioniert nicht (fehler beim Initialisieren des Audiogeräteclients oder Geräts wurde für mehr als 5 Sek.) inaktiv. – Legen Sie fest, True wann der Lautsprecher nicht verfügbar ist, oder zeitüberschreitung beim Gerätedatenstrom (Audio).
– Festlegen, False wann die Lautsprecherakquise erfolgreich ist.
Audio von Teilnehmern am Telefon nicht über Lautsprecher hören. Versuchen Sie, den Zustand des Lautsprechergeräts zu überprüfen.
microphoneBusy Mikrofon wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus verwendet, oder das Gerät wird im gemeinsam genutzten Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. – Legen Sie fest, True wann die Zeitüberschreitung des Mikrofondatenstroms (Audio) erfolgt.
– Festlegen, False wann die Mikrofonakquise erfolgreich ist.
Ihre Audiodaten erreichen keine anderen Teilnehmer am Anruf. Wenn der Wert auf <a0/> festgelegt ist, geben Sie endbenutzern visuelle Benachrichtigungen, damit sie überprüfen können, ob eine andere Anwendung das Mikrofon verwendet, und versuchen Sie, sie zu schließen.

Zugreifen auf die Diagnose

Die benutzerseitige Diagnose ist ein erweitertes Feature der Kern-API Call und ermöglicht Ihnen, einen aktiven Anruf zu diagnostizieren.

this.diagnosticsCallFeature = call.Features.LocalUserDiagnostics;

Benutzerseitige Diagnoseereignisse

  • Implementieren sie Listener für Diagnoseereignisse.
private async void Call__OnNetworkUnavailableChanged(object sender, FlagDiagnosticChangedEventArgs args)
{
  var value = args.Value;
  // Handle the diagnostic event value changed...
}

// Listen to other network diagnostics

private async void Call__OnMediaSpeakerNotFunctioningChanged(object sender, FlagDiagnosticChangedEventArgs args)
{
  var value = args.Value;
  // Handle the diagnostic event value changed...
}

// Listen to other media diagnostics
  • Legen Sie Ereignismethoden zum Überwachen von Ereignissen fest.
this.diagnosticsCallFeature = call.Features.LocalUserDiagnostics;
this.networkDiagnostics = diagnosticsCallFeature.Network;
this.mediaDiagnostics = diagnosticsCallFeature.Media;

this.networkDiagnostics.NetworkUnavailableChanged += Call__OnNetworkUnavailableChanged;
// Listen to other network events as well ... 

this.mediaDiagnostics.SpeakerNotFunctioningChanged += Call__OnMediaSpeakerNotFunctioningChanged;
// Listen to other media events as well ... 

// Removing listeners

this.networkDiagnostics.NetworkUnavailable -= Call__NetworkUnavailableChanged;
// Remove the other listeners as well ... 

this.mediaDiagnostics.SpeakerNotFunctioningChanged -= Call__OnMediaSpeakerNotFunctioningChanged;
// Remove the other listeners as well ... 

Abrufen der aktuellen benutzerseitigen Diagnose

  • Rufen Sie die neuesten Diagnosewerte ab, die im aktuellen Anruf ausgelöst wurden. Wenn wir weiterhin keinen Wert für die Diagnose null erhalten haben oder .unknown für die zurückgegeben wird.
this.diagnosticsCallFeature = call.Features.LocalUserDiagnostics;
this.networkDiagnostics = diagnosticsCallFeature.Network;
this.mediaDiagnostics = diagnosticsCallFeature.Media;

bool? lastSpeakerNotFunctionValue = this.mediaDiagnostics.GetLatestDiagnostics().IsSpeakerNotFunctioning; // Boolean?
bool? lastNetworkRelayNotReachableValue = this.networkDiagnostics.GetLatestDiagnostics().IsNetworkRelaysUnreachable; // Boolean?
DiagnosticQuality lastReceiveQualityValue = this.networkDiagnostics.GetLatestDiagnostics().NetworkReceiveQuality; // DiagnosticQuality (.good, .poor, .bad)
// or .unknown if there isn't a diagnostic for this.