Benutzerseitige Diagnose
Wenn Sie mit Anrufen in Azure Communication Services arbeiten, treten möglicherweise Probleme auf, die sich auf Ihre Kunden auswirken. Um diese zu beheben, bietet Azure Communication Services ein Feature mit dem Namen „Benutzerseitige Diagnose“ (User Facing Diagnostics, UFD), das verwendet werden kann, um verschiedene Eigenschaften eines Anrufs zu untersuchen, um das mögliche Problem zu bestimmen. Benutzerseitige Diagnosen (UFD) sind ausgelöste Ereignisse, die auf ein zugrunde liegendes Problem (schlechtes Netzwerk, Mikrofon des Benutzers ist stummgeschaltet) hinweisen könnten, dass ein Benutzer möglicherweise ein schlechtes Erlebnis hat. Nachdem eine benutzerseitige Diagnose (UFD) ausgelöst wurde, sollten Sie einem Endbenutzer Feedback geben, dass er möglicherweise ein zugrunde liegendes Problem hat. Die Ausgabe der benutzerseitigen Diagnose (UFD) hat jedoch nur informativen Charakter, und der Anrufstapel nimmt keine Änderungen basierend auf einer ausgelösten benutzerseitigen Diagnose 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. | – Wird auf True festgelegt, wenn ein Anruf nicht gestartet werden kann, weil 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. | – Wird auf True festgelegt, wenn das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht erlaubt, 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. | - Wird auf Bad festgelegt, wenn das Netzwerk getrennt ist. - Wird auf Poor festgelegt, wenn die Medientransportkonnektivität verloren gegangen ist. - 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 Anforderung an die Netzwerkbandbreite. |
networkReceiveQuality | Ein Indikator für die Qualität des eingehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Empfang des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Empfang des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn kein Problem beim Empfang 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
networkSendQuality | Ein Indikator für die Qualität des ausgehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Senden des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Senden des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
Audiowerte
Name | Beschreibung | Mögliche Werte | Anwendungsfälle | Schritte zur Problembehebung |
---|---|---|---|---|
noSpeakerDevicesEnumerated | Im 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. – Wird auf False festgelegt, wenn mindestens ein Lautsprecher im System vorhanden ist und die Lautsprecherauswahl unterstützt wird. |
Kein Lautsprecher ist angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Lautsprecher verfügbar sind. |
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 auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass sie möglicherweise sprechen und nicht bemerken, dass ihr Audio stummgeschaltet ist. |
noMicrophoneDevicesEnumerated | Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. | - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind. – Wird auf False festgelegt, wenn mindestens ein Mikrofon im System vorhanden ist. |
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Mikrofone vorhanden sind. Weitere Informationen finden Sie im Abschnitt Aktivieren des Mikrofons über den Geräte-Manager. |
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 auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ein Problem mit dem Mikrofon vorliegt. |
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 Benutzer den Telefonanruf entgegennehmen können. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt Behandeln des Stummschaltens eines Azure Communication Services-Anrufs durch das Betriebssystem. |
microphonePermissionDenied | Die Lautstärke des Geräts ist gering, oder es ist unter macOS fast lautlos. | – Wird auf True festgelegt, wenn 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, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf nicht 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 ihrem Bildschirm eingefroren sieht oder 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 True festgelegt ist, sollten Sie Endbenutzer darüber benachrichtigen, dass das Remoteteilnehmernetzwerk möglicherweise fehlerhaft ist. Schlagen Sie eventuell vor, die Kamera zu deaktivieren, um Bandbreite zu sparen. Weitere Informationen zu den erforderlichen Internetvoraussetzungen für einen Azure Communication Services-Anruf finden Sie im Abschnitt Anforderung an die Netzwerkbandbreite. |
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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung). |
cameraPermissionDenied | Die Kameraberechtigungen wurden in den Einstellungen verweigert. | – Wird auf True festgelegt, wenn 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf nicht 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (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 Freigabe des Systembildschirms wurde von den Einstellungen verweigert. | – Wird auf True festgelegt, wenn die Berechtigung zur Bildschirmfreigabe 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, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zur Bildschirmfreigabe für einen Azure Communication Services-Anruf nicht 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass möglicherweise ein Problem beim Freigeben des Bildschirms aufgetreten ist. (Wenn der Wert zurück auf False festgelegt wird, 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 True festgelegt ist, benachrichtigen Sie Endbenutzer darüber, 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. | – Wird auf True festgelegt, wenn ein Anruf nicht gestartet werden kann, weil 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. | – Wird auf True festgelegt, wenn das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht erlaubt, 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 wurde unterbrochen und wir stellen die Verbindung zum Netzwerk wieder her. | - Wird auf Bad festgelegt, wenn das Netzwerk getrennt ist. - Wird auf Poor festgelegt, wenn die Medientransportkonnektivität verloren gegangen ist. - 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 Anforderung an die Netzwerkbandbreite. |
networkReceiveQuality | Ein Indikator für die Qualität des eingehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Empfang des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Empfang des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn kein Problem beim Empfang des Datenstroms vorliegt. – 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
networkSendQuality | Ein Indikator für die Qualität des ausgehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Senden des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Senden des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn 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 bei 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
Audiowerte
Name | Beschreibung | Mögliche Werte | Anwendungsfälle | Schritte zur Problembehebung |
---|---|---|---|---|
noSpeakerDevicesAvailable | Im 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. – Wird auf False festgelegt, wenn mindestens ein Lautsprecher im System vorhanden ist und die Lautsprecherauswahl unterstützt wird. |
Kein Lautsprecher ist angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Lautsprecher verfügbar sind. |
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 Anzahl von Malen ohne Benutzeraktion ausgelöst wird, um Rauschen zu vermeiden und ein besseres Benutzererlebnis 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 auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass sie möglicherweise sprechen und nicht bemerken, dass ihr Audio stummgeschaltet ist. |
noMicrophoneDevicesAvailable | Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. | - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind. – Wird auf False festgelegt, wenn mindestens ein Mikrofon im System vorhanden ist. |
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Mikrofone vorhanden sind. Weitere Informationen finden Sie im Abschnitt Aktivieren des Mikrofons über den Geräte-Manager. |
microphoneNotFunctioning | Das Mikrofon funktioniert nicht. | – Wird auf True festgelegt, wenn die Übertragung des lokalen Audiodatenstroms nicht gestartet werden kann, da das Mikrofon 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 auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ein Problem mit dem Mikrofon vorliegt. |
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 Benutzer den Telefonanruf entgegennehmen können. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt Behandeln des Stummschaltens eines Azure Communication Services-Anrufs durch das Betriebssystem. |
microphonePermissionDenied | Die Lautstärke des Geräts ist gering, oder es ist unter macOS fast lautlos. | – Wird auf True festgelegt, wenn 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, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf nicht 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 ihrem Bildschirm eingefroren sieht oder 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 True festgelegt ist, sollten Sie Endbenutzer darüber benachrichtigen, dass das Remoteteilnehmernetzwerk möglicherweise fehlerhaft ist. Schlagen Sie eventuell vor, die Kamera zu deaktivieren, um Bandbreite zu sparen. Weitere Informationen zu den erforderlichen Internetvoraussetzungen für einen Azure Communication Services-Anruf finden Sie im Abschnitt Anforderung an die Netzwerkbandbreite. |
cameraStartFailed | Generischer Kamerafehler. | – Wird auf True festgelegt, wenn die Übertragung des lokalen Videos nicht gestartet werden kann, da die Kamera 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung). |
cameraPermissionDenied | Die Kameraberechtigungen wurden in den Einstellungen verweigert. | – Wird auf True festgelegt, wenn 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf nicht 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (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 | Null Lautstärke auf einem Gerät (Lautsprecher). | – Wird auf True festgelegt, wenn die Lautsprecherlautstärke null ist. – Wird auf False festgelegt, wenn die Lautsprecherlautstärke nicht null ist. |
Das Audio der Anrufteilnehmer ist nicht zu hören. | Wenn der Wert auf True festgelegt ist, haben Sie möglicherweise versehentlich die Lautstärke auf den untersten Wert (Null) eingestellt. |
speakerMuted | Der Lautsprecher ist stummgeschaltet. | – Wird auf True festgelegt, wenn der Lautsprecher stummgeschaltet ist. – Wird auf False festgelegt, wenn der Lautsprecher nicht stummgeschaltet ist. |
Das Audio der Anrufteilnehmer ist nicht zu hören. | Wenn der Wert auf True festgelegt ist, haben Sie möglicherweise versehentlich den Lautsprecher stummgeschaltet. |
speakerBusy | Der Lautsprecher wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus oder im freigegebenen Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. | – Wird auf True festgelegt, wenn ein Timeout der Lautsprecherdatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Lautsprechererfassung erfolgreich ist. |
Das Audio der Anrufteilnehmer ist über den Lautsprecher nicht zu hören. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell, 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 das Gerät war für mehr als 5 Sek. inaktiv) | – Wird auf True festgelegt, wenn der Lautsprecher nicht verfügbar ist oder ein Timeout der Lautsprecherdatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Lautsprechererfassung erfolgreich ist. |
Das Audio der Anrufteilnehmer ist über den Lautsprecher nicht zu hören. | Versuchen Sie, den Zustand des Lautsprechers zu überprüfen. |
microphoneBusy | Das Mikrofon wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus oder im freigegebenen Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. | – Wird auf True festgelegt, wenn ein Timeout der Mikrofondatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Mikrofonerfassung erfolgreich ist. |
Ihr Audio erreicht keine anderen Anrufteilnehmer. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell, 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
- Abrufen eines Featureobjekts und Hinzufügen von Listenern zu Diagnoseereignissen.
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
- Abrufen der neuesten Diagnosewerte, 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. | – Wird auf True festgelegt, wenn ein Anruf nicht gestartet werden kann, weil 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. | – Wird auf True festgelegt, wenn das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht erlaubt, 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 wurde unterbrochen und wir stellen die Verbindung zum Netzwerk wieder her. | - Wird auf Bad festgelegt, wenn das Netzwerk getrennt ist. - Wird auf Poor festgelegt, wenn die Medientransportkonnektivität verloren gegangen ist. - 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 Anforderung an die Netzwerkbandbreite. |
networkReceiveQuality | Ein Indikator für die Qualität des eingehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Empfang des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Empfang des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn kein Problem beim Empfang des Datenstroms vorliegt. – 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
networkSendQuality | Ein Indikator für die Qualität des ausgehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Senden des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Senden des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn 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 bei 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
Audiowerte
Name | Beschreibung | Mögliche Werte | Anwendungsfälle | Schritte zur Problembehebung |
---|---|---|---|---|
noSpeakerDevicesAvailable | Im 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. – Wird auf False festgelegt, wenn mindestens ein Lautsprecher im System vorhanden ist und die Lautsprecherauswahl unterstützt wird. |
Kein Lautsprecher ist angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Lautsprecher verfügbar sind. |
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 Anzahl von Malen ohne Benutzeraktion ausgelöst wird, um Rauschen zu vermeiden und ein besseres Benutzererlebnis 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 auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass sie möglicherweise sprechen und nicht bemerken, dass ihr Audio stummgeschaltet ist. |
noMicrophoneDevicesAvailable | Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. | - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind. – Wird auf False festgelegt, wenn mindestens ein Mikrofon im System vorhanden ist. |
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Mikrofone vorhanden sind. Weitere Informationen finden Sie im Abschnitt Aktivieren des Mikrofons über den Geräte-Manager. |
microphoneNotFunctioning | Das Mikrofon funktioniert nicht. | – Wird auf True festgelegt, wenn die Übertragung des lokalen Audiodatenstroms nicht gestartet werden kann, da das Mikrofon 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 auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ein Problem mit dem Mikrofon vorliegt. |
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 Benutzer den Telefonanruf entgegennehmen können. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt Behandeln des Stummschaltens eines Azure Communication Services-Anrufs durch das Betriebssystem. |
microphonePermissionDenied | Die Lautstärke des Geräts ist gering, oder es ist unter macOS fast lautlos. | – Wird auf True festgelegt, wenn 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, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf nicht 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 ihrem Bildschirm eingefroren sieht oder 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 True festgelegt ist, sollten Sie Endbenutzer darüber benachrichtigen, dass das Remoteteilnehmernetzwerk möglicherweise fehlerhaft ist. Schlagen Sie eventuell vor, die Kamera zu deaktivieren, um Bandbreite zu sparen. Weitere Informationen zu den erforderlichen Internetvoraussetzungen für einen Azure Communication Services-Anruf finden Sie im Abschnitt Anforderung an die Netzwerkbandbreite. |
cameraStartFailed | Generischer Kamerafehler. | – Wird auf True festgelegt, wenn die Übertragung des lokalen Videos nicht gestartet werden kann, da die Kamera 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung). |
cameraPermissionDenied | Die Kameraberechtigungen wurden in den Einstellungen verweigert. | – Wird auf True festgelegt, wenn 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf nicht 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (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 | Null Lautstärke auf einem Gerät (Lautsprecher). | – Wird auf True festgelegt, wenn die Lautsprecherlautstärke null ist. – Wird auf False festgelegt, wenn die Lautsprecherlautstärke nicht null ist. |
Das Audio der Anrufteilnehmer ist nicht zu hören. | Wenn der Wert auf True festgelegt ist, haben Sie möglicherweise versehentlich die Lautstärke auf den untersten Wert (Null) eingestellt. |
speakerMuted | Der Lautsprecher ist stummgeschaltet. | – Wird auf True festgelegt, wenn der Lautsprecher stummgeschaltet ist. – Wird auf False festgelegt, wenn der Lautsprecher nicht stummgeschaltet ist. |
Das Audio der Anrufteilnehmer ist nicht zu hören. | Wenn der Wert auf True festgelegt ist, haben Sie möglicherweise versehentlich den Lautsprecher stummgeschaltet. |
speakerBusy | Der Lautsprecher wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus oder im freigegebenen Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. | – Wird auf True festgelegt, wenn ein Timeout der Lautsprecherdatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Lautsprechererfassung erfolgreich ist. |
Das Audio der Anrufteilnehmer ist über den Lautsprecher nicht zu hören. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell, 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 das Gerät war für mehr als 5 Sek. inaktiv) | – Wird auf True festgelegt, wenn der Lautsprecher nicht verfügbar ist oder ein Timeout der Lautsprecherdatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Lautsprechererfassung erfolgreich ist. |
Das Audio der Anrufteilnehmer ist über den Lautsprecher nicht zu hören. | Versuchen Sie, den Zustand des Lautsprechers zu überprüfen. |
microphoneBusy | Das Mikrofon wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus oder im freigegebenen Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. | – Wird auf True festgelegt, wenn ein Timeout der Mikrofondatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Mikrofonerfassung erfolgreich ist. |
Ihr Audio erreicht keine anderen Anrufteilnehmer. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell, 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 der Delegierten für
media
- undnetwork
-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...
}
}
- Verweis auf die
media
- undnetwork
-Diagnose und Festlegen des Delegatobjekts für das Überwachen von Ereignissen.
self.mediaDiagnostics = userFacingDiagnostics?.media
self.networkDiagnostics = userFacingDiagnostics?.network
self.mediaDiagnostics?.delegate = self.callObserver
self.networkDiagnostics?.delegate = self.callObserver
Hinweis
Wenn Sie CallKit
über das SDK aktiviert haben oder die CallKit-Integration in Ihre Anwendung implementieren, kann die Meldung des Status „Stummschalten“ an CallKit dazu führen, dass das Betriebssystem dafür sorgt, dass die Anwendung den Zugriff auf das Mikrofon aus Datenschutzgründen verliert, was bewirken würde, dass das didIsSpeakingWhileMicrophoneIsMuted
-Ereignis nicht wie erwartet funktioniert, da keine Eingaben vom Mikrofon erfasst werden 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 empfangen wurde, wird
nil
oder.unknown
zurückgegeben.
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. | – Wird auf True festgelegt, wenn ein Anruf nicht gestartet werden kann, weil 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. | – Wird auf True festgelegt, wenn das Netzwerk eine Einschränkung aufweist, die es Ihnen nicht erlaubt, 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 wurde unterbrochen und wir stellen die Verbindung zum Netzwerk wieder her. | - Wird auf Bad festgelegt, wenn das Netzwerk getrennt ist. - Wird auf Poor festgelegt, wenn die Medientransportkonnektivität verloren gegangen ist. - 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 Anforderung an die Netzwerkbandbreite. |
networkReceiveQuality | Ein Indikator für die Qualität des eingehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Empfang des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Empfang des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn kein Problem beim Empfang des Datenstroms vorliegt. – 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
networkSendQuality | Ein Indikator für die Qualität des ausgehenden Datenstroms. | – Wird auf Bad festgelegt, wenn ein schwerwiegendes Problem beim Senden des Datenstroms vorliegt. – Wird auf Poor festgelegt, wenn ein geringfügiges Problem beim Senden des Datenstroms vorliegt. – Wird auf Good festgelegt, wenn 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 bei 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 Anforderung an die Netzwerkbandbreite. Schlagen Sie außerdem vor, dass der Endbenutzer seine Kamera deaktiviert, um die verfügbare Internetbandbreite zu sparen. |
Audiowerte
Name | Beschreibung | Mögliche Werte | Anwendungsfälle | Schritte zur Problembehebung |
---|---|---|---|---|
noSpeakerDevicesAvailable | Im 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. – Wird auf False festgelegt, wenn mindestens ein Lautsprecher im System vorhanden ist und die Lautsprecherauswahl unterstützt wird. |
Kein Lautsprecher ist angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Lautsprecher verfügbar sind. |
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 Anzahl von Malen ohne Benutzeraktion ausgelöst wird, um Rauschen zu vermeiden und ein besseres Benutzererlebnis 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 auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass sie möglicherweise sprechen und nicht bemerken, dass ihr Audio stummgeschaltet ist. |
noMicrophoneDevicesAvailable | Keine Audioaufnahmegeräte (Mikrofon) im System des Benutzers vorhanden. | - Wird auf True festgelegt, wenn keine Mikrofongeräte im System vorhanden sind. – Wird auf False festgelegt, wenn mindestens ein Mikrofon im System vorhanden ist. |
Alle Mikrofone sind während des Gesprächs nicht angeschlossen. | Wenn der Wert auf True festgelegt ist, sollten Sie Endbenutzer visuell darüber benachrichtigen, dass in ihrer aktuellen Anrufsitzung keine Mikrofone vorhanden sind. Weitere Informationen finden Sie im Abschnitt Aktivieren des Mikrofons über den Geräte-Manager. |
microphoneNotFunctioning | Das Mikrofon funktioniert nicht. | – Wird auf True festgelegt, wenn die Übertragung des lokalen Audiodatenstroms nicht gestartet werden kann, da das Mikrofon 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 auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ein Problem mit dem Mikrofon vorliegt. |
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 Benutzer den Telefonanruf entgegennehmen können. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass ihr Anruf stummgeschaltet wurde, da ein Telefonanruf einging. Weitere Informationen finden Sie im Abschnitt Behandeln des Stummschaltens eines Azure Communication Services-Anrufs durch das Betriebssystem. |
microphonePermissionDenied | Die Lautstärke des Geräts ist gering, oder es ist unter macOS fast lautlos. | – Wird auf True festgelegt, wenn 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, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden des Mikrofons für einen Azure Communication Services-Anruf nicht 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 ihrem Bildschirm eingefroren sieht oder 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 True festgelegt ist, sollten Sie Endbenutzer darüber benachrichtigen, dass das Remoteteilnehmernetzwerk möglicherweise fehlerhaft ist. Schlagen Sie eventuell vor, die Kamera zu deaktivieren, um Bandbreite zu sparen. Weitere Informationen zu den erforderlichen Internetvoraussetzungen für einen Azure Communication Services-Anruf finden Sie im Abschnitt Anforderung an die Netzwerkbandbreite. |
cameraStartFailed | Generischer Kamerafehler. | – Wird auf True festgelegt, wenn die Übertragung des lokalen Videos nicht gestartet werden kann, da die Kamera 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (Wenn der Wert zurück auf False festgelegt wird, entfernen Sie die Benachrichtigung). |
cameraPermissionDenied | Die Kameraberechtigungen wurden in den Einstellungen verweigert. | – Wird auf True festgelegt, wenn 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 True festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass sie die Berechtigung zum Verwenden der Kamera für einen Azure Communication Services-Anruf nicht 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 festgelegt ist, benachrichtigen Sie Endbenutzer visuell darüber, dass die Kamera eventuell fehlerhaft ist. (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 | Null Lautstärke auf einem Gerät (Lautsprecher). | – Wird auf True festgelegt, wenn die Lautsprecherlautstärke null ist. – Wird auf False festgelegt, wenn die Lautsprecherlautstärke nicht null ist. |
Das Audio der Anrufteilnehmer ist nicht zu hören. | Wenn der Wert auf True festgelegt ist, haben Sie möglicherweise versehentlich die Lautstärke auf den untersten Wert (Null) eingestellt. |
speakerMuted | Der Lautsprecher ist stummgeschaltet. | – Wird auf True festgelegt, wenn der Lautsprecher stummgeschaltet ist. – Wird auf False festgelegt, wenn der Lautsprecher nicht stummgeschaltet ist. |
Das Audio der Anrufteilnehmer ist nicht zu hören. | Wenn der Wert auf True festgelegt ist, haben Sie möglicherweise versehentlich den Lautsprecher stummgeschaltet. |
speakerBusy | Der Lautsprecher wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus oder im freigegebenen Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. | – Wird auf True festgelegt, wenn ein Timeout der Lautsprecherdatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Lautsprechererfassung erfolgreich ist. |
Das Audio der Anrufteilnehmer ist über den Lautsprecher nicht zu hören. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell, 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 das Gerät war für mehr als 5 Sek. inaktiv) | – Wird auf True festgelegt, wenn der Lautsprecher nicht verfügbar ist oder ein Timeout der Lautsprecherdatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Lautsprechererfassung erfolgreich ist. |
Das Audio der Anrufteilnehmer ist über den Lautsprecher nicht zu hören. | Versuchen Sie, den Zustand des Lautsprechers zu überprüfen. |
microphoneBusy | Das Mikrofon wird bereits verwendet. Entweder wird das Gerät im exklusiven Modus oder im freigegebenen Modus verwendet, und der Anrufer wird aufgefordert, das Gerät im exklusiven Modus zu verwenden. | – Wird auf True festgelegt, wenn ein Timeout der Mikrofondatenstromerfassung auftritt (Audio). – Wird auf False festgelegt, wenn die Mikrofonerfassung erfolgreich ist. |
Ihr Audio erreicht keine anderen Anrufteilnehmer. | Wenn der Wert auf True festgelegt ist, benachrichtigen Sie Endbenutzer visuell, 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 von Listenern 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
- Festlegen von Ereignismethoden zum Überwachen von Ereignissen.
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
- Abrufen der neuesten Diagnosewerte, die im aktuellen Anruf ausgelöst wurden. Wenn weiterhin kein Wert für die Diagnose empfangen wurde, wird
null
oder.unknown
zurückgegeben.
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.