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 Poor dem 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 < |
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 < |
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 < |
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 True ist, 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 " True Wert" 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 < |
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 <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 <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 Poor dem 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 < |
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 < |
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 True ist, 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 " True Wert" 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 < |
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 < |
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 < |
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 Poor dem 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 < |
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 < |
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 True ist, 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 " True Wert" 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 < |
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 < |
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 < |
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
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...
}
}
- Halten Sie einen Verweis auf
media
undnetwork
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 Poor dem 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 < |
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 < |
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 True ist, 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 " True Wert" 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 < |
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 < |
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 < |
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.