Delen via


Diagnostische gegevens voor gebruikers

Wanneer u werkt met aanroepen in Azure Communication Services, kunnen er problemen optreden die van invloed zijn op uw klanten. Om dit te helpen, biedt Azure Communication Services een functie met de naam User Facing Diagnostics (UFD) die kan worden gebruikt om verschillende eigenschappen van een aanroep te onderzoeken om te bepalen wat het probleem kan zijn. Diagnostische gegevens voor gebruikers zijn gebeurtenissen die worden uitgeschakeld die kunnen duiden op een onderliggend probleem (slecht netwerk, gebruiker heeft zijn microfoon gedempt) dat een gebruiker mogelijk een slechte ervaring heeft. Nadat een diagnostische gebruiker is geactiveerd, moet u overwegen feedback te geven aan een eindgebruiker die mogelijk een onderliggend probleem heeft. De gebruikersgerichte diagnostische uitvoer is echter alleen informatief en de aanroepende stack brengt geen wijzigingen aan op basis van een diagnostische gebruikersfunctie die wordt geactiveerd.

Diagnostische waarden

De volgende gebruikersgerichte diagnostische gegevens zijn beschikbaar:

Netwerkwaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
noNetwork Er is geen netwerk beschikbaar. - Ingesteld op True wanneer een oproep niet kan worden gestart omdat er geen netwerk beschikbaar is.
- Ingesteld op False wanneer er ICE-kandidaten aanwezig zijn.
Het apparaat is niet verbonden met een netwerk. Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkoptimalisatie voor meer informatie.
networkRelaysNotReachable Problemen met een netwerk. - Ingesteld op True wanneer het netwerk een beperking heeft die u niet toestaat om Azure Communication Services-relays te bereiken.
- Stel in op False het maken van een nieuwe oproep.
Tijdens een gesprek wanneer het Wifi-signaal in- en uitgaat. Zorg ervoor dat firewallregels en netwerkroutering client toestaat om servers van Microsoft turn te bereiken. Zie de sectie Firewallconfiguratie voor meer informatie.
networkReconnect De verbinding is verbroken en er wordt opnieuw verbinding gemaakt met het netwerk. - Ingesteld opBad wanneer de verbinding met het netwerk is verbroken
- Ingesteld op Poorwanneer de mediatransportverbinding is verbroken
- Ingesteld op Good wanneer een nieuwe sessie is verbonden.
Lage bandbreedte, geen internet Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie.
networkReceiveQuality Een indicator met betrekking tot de kwaliteit van binnenkomende stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het ontvangen van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het ontvangen van de stroom.
- Ingesteld op Good wanneer er geen probleem is met het ontvangen van de stream.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.
networkSendQuality Een indicator met betrekking tot de kwaliteit van uitgaande stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het verzenden van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het verzenden van de stream.
- Ingesteld op Good wanneer er geen probleem is met het verzenden van de stream.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel ook voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.

Audiowaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
noSpeakerDevicesEnumerated er is geen audio-uitvoerapparaat (luidspreker) op het systeem van de gebruiker. - Ingesteld op True wanneer er geen luidsprekerapparaten op het systeem aanwezig zijn en de selectie van luidsprekers wordt ondersteund.
- Ingesteld op False wanneer er ten minste één luidsprekerapparaat op het systeem staat en de selectie van luidsprekers wordt ondersteund.
Alle luidsprekers zijn losgekoppeld Wanneer de waarde is ingesteld Trueop, kunt u overwegen om een visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen sprekers beschikbaar heeft.
speakingWhileMicrophoneIsMuted Spreken tijdens het dempen. - Ingesteld op True wanneer lokale microfoon is gedempt en de lokale gebruiker spreekt.
- Ingesteld op False wanneer lokale gebruiker stopt met spreken of het dempen van de microfoon opheffen.
* Opmerking: deze optie wordt momenteel niet ondersteund in Safari omdat de voorbeelden op audioniveau worden genomen uit WebRTC-statistieken.
Tijdens een gesprek dempt u uw microfoon en spreekt u er in. Wanneer de waarde is ingesteld om te True overwegen om visuele meldingen te geven aan eindgebruikers dat ze mogelijk praten en zich niet realiseren dat hun audio is gedempt.
noMicrophoneDevicesEnumerated Geen audio-opnameapparaten (microfoon) op het systeem van de gebruiker - Ingesteld op True wanneer er geen microfoonapparaten op het systeem zijn.
- Ingesteld op False wanneer er ten minste één microfoonapparaat op het systeem staat.
Alle microfoons worden losgekoppeld tijdens het gesprek. Wanneer de waarde is ingesteld om een True visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen microfoon heeft. Zie de sectie Microfoon inschakelen vanuit apparaatbeheer voor meer informatie.
microphoneNotFunctioning De microfoon werkt niet. - Ingesteld op True wanneer er geen lokale audiostream kan worden verzonden omdat het microfoonapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces. Deze UFD duurt ongeveer 10 seconden om te worden verhoogd.
- Ingesteld op False wanneer de microfoon opnieuw audiostream wordt verzonden.
Er zijn geen microfoons beschikbaar, microfoontoegang uitgeschakeld in een systeem Wanneer de waarde is ingesteld om True een visuele melding te geven aan de eindgebruiker, is er een probleem met de microfoon.
microphoneMuteUnexpectedly Microfoon is gedempt - Ingesteld op True wanneer de microfoon onverwacht de gedempte status invoert.
- Ingesteld op False wanneer de microfoon begint met het verzenden van een audiostream
Microfoon is gedempt van het systeem. De meeste gevallen gebeuren wanneer de gebruiker zich in een Azure Communication Services-oproep bevindt op een mobiel apparaat en er een telefoongesprek binnenkomt. In de meeste gevallen dempt het besturingssysteem de Azure Communication Services-oproep, zodat een gebruiker het telefoongesprek kan beantwoorden. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan eindgebruikers dat hun oproep is gedempt omdat er een telefoongesprek is binnengekomen. Zie voor meer informatie hoe u het beste kunt omgaan met het dempen van een aanroepsectie van Azure Communication Services voor meer informatie.
microphonePermissionDenied er is een laag volume vanaf het apparaat of het is bijna stil op macOS. - Ingesteld op True wanneer audiomachtiging wordt geweigerd vanuit de systeeminstellingen (audio).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS.
Microfoonmachtigingen zijn uitgeschakeld in de Instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben ingeschakeld voor het gebruik van microfoon voor een Azure Communication Services-aanroep.

Camerawaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
cameraFreeze Camera stopt met het produceren van frames gedurende meer dan 5 seconden. - Ingesteld op True wanneer de lokale videostream is geblokkeerd. Deze diagnose betekent dat de externe zijde uw video op hun scherm ziet geblokkeerd of dat de externe deelnemers uw video niet op hun scherm weergeven.
- Ingesteld op False wanneer het blokkeren eindigt en gebruikers uw video kunnen zien zoals normaal.
De camera is verloren gegaan tijdens het gesprek of een slecht netwerk, waardoor de camera werd geblokkeerd. Wanneer de waarde is ingesteld Trueop, kunt u overwegen een melding te geven aan de eindgebruiker dat het externe deelnemersnetwerk mogelijk slecht is. Stel mogelijk voor dat ze hun camera uitschakelen om bandbreedte te besparen. Zie de sectie Netwerkbandbreedtevereisten voor de benodigde internetmogelijkheden voor een Azure Communication Services-aanroep voor meer informatie.
cameraStartFailed Algemene camerafout. - Ingesteld op True wanneer er geen lokale video wordt verzonden omdat het cameraapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces~.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan de eindgebruiker dat de camera niet kan worden gestart.
cameraStartTimedOut Veelvoorkomend scenario waarbij de camera een slechte status heeft. - Instellen True wanneer er een time-out optreedt op het cameraapparaat om te beginnen met het verzenden van videostreams.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).
cameraPermissionDenied Cameramachtigingen zijn geweigerd in instellingen. - Ingesteld op True wanneer de cameramachtiging wordt geweigerd vanuit de systeeminstellingen (video).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS Chrome.
Cameramachtigingen zijn uitgeschakeld in de instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben ingeschakeld om camera te gebruiken voor een Azure Communication Services-aanroep.
cameraStoppedUnexpectedly Camerastoring - Ingesteld op True wanneer de camera onverwacht de status Gestopt invoert.
- Ingesteld op False wanneer de camera opnieuw videostream wordt verzonden.
Controleer of de camera goed werkt. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).

Misc-waarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Oplossingsstappen
screenshareRecordingDisabled Het delen van het systeemscherm is geweigerd uit de voorkeuren in Instellingen. - Ingesteld op True wanneer de machtiging voor het delen van het scherm wordt geweigerd vanuit de systeeminstellingen (delen).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen op macOS.Chrome.
Schermopname is uitgeschakeld in Instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben ingeschakeld om hun scherm te delen voor een Azure Communication Services-aanroep.
capturerStartFailed Delen van systeemscherm is mislukt. - Ingesteld op True wanneer het scherm niet kan worden vastgelegd.
- Ingesteld op False wanneer het scherm wordt vastgelegd, kan worden gestart.
Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat er mogelijk een probleem is opgetreden bij het delen van hun scherm. (Wanneer de waarde is teruggezet op False, verwijder de melding).
capturerStoppedUnexpectedly Storing bij delen van systeemscherm - Ingesteld op True wanneer schermopname onverwacht de status gestopt treedt.
- Instellen wanneer False schermopname opnieuw wordt gestart.
Controleren of het delen van het scherm goed werkt Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat er mogelijk een probleem is waardoor het delen van het scherm wordt gestopt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).

Toegang tot diagnostische gegevens

Diagnostische gegevens op basis van de gebruiker is een uitgebreide functie van de kern-API Call en stelt u in staat een actieve aanroep te diagnosticeren.

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

Diagnostische gebeurtenissen voor gebruikers

  • Abonneer u op de diagnosticChanged gebeurtenis om te controleren wanneer er diagnostische wijzigingen worden aangebracht in de gebruiker.
/**
 *  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);

De meest recente diagnostische gegevens van de gebruiker ophalen

  • Haal de meest recente diagnostische waarden op die zijn gegenereerd. Als een diagnose niet is gedefinieerd, is dat omdat deze nooit is gegenereerd.
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}`
);

Diagnostische waarden

De volgende gebruikersgerichte diagnostische gegevens zijn beschikbaar:

Netwerkwaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
networkUnavailable Er is geen netwerk beschikbaar. - Ingesteld op True wanneer een oproep niet kan worden gestart omdat er geen netwerk beschikbaar is.
- Ingesteld op False wanneer er ICE-kandidaten aanwezig zijn.
Het apparaat is niet verbonden met een netwerk. Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkoptimalisatie voor meer informatie.
networkRelaysUnreachable Problemen met een netwerk. - Ingesteld op True wanneer het netwerk een beperking heeft die u niet toestaat om Azure Communication Services-relays te bereiken.
- Stel in op False het maken van een nieuwe oproep.
Tijdens een gesprek wanneer het Wifi-signaal in- en uitgaat. Zorg ervoor dat firewallregels en netwerkroutering client toestaat om servers van Microsoft turn te bereiken. Zie de sectie Firewallconfiguratie voor meer informatie.
networkReconnectionQuality De verbinding is verbroken en er wordt opnieuw verbinding gemaakt met het netwerk. - Ingesteld opBad wanneer de verbinding met het netwerk is verbroken
- Ingesteld op Poorwanneer de mediatransportverbinding is verbroken
- Ingesteld op Good wanneer een nieuwe sessie is verbonden.
Lage bandbreedte, geen internet Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie.
networkReceiveQuality Een indicator met betrekking tot de kwaliteit van binnenkomende stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het ontvangen van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het ontvangen van de stroom.
- Ingesteld op Good wanneer er geen probleem is met het ontvangen van de stream.
- Het is alleen zichtbaar als er een actieve audiostroom in het gesprek is, wat betekent dat een deelnemer gedurende een bepaalde periode actief spreekt.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.
networkSendQuality Een indicator met betrekking tot de kwaliteit van uitgaande stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het verzenden van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het verzenden van de stream.
- Ingesteld op Good wanneer er geen probleem is met het verzenden van de stream.
- Vergelijkbaar met het ontvangen van kwaliteitsdiagnose is het alleen zichtbaar als er een actieve audiostroom in het gesprek is, wat betekent dat een deelnemer gedurende een bepaalde periode actief spreekt. Maar het werkt alleen in een 1:1-aanroep omdat het afhankelijk is van informatie van de andere kant om de kwaliteit te verifiëren. Waar de andere kant de ontvangen gegevens moet signaleren.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel ook voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.

Audiowaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
noSpeakerDevicesAvailable er is geen audio-uitvoerapparaat (luidspreker) op het systeem van de gebruiker. - Ingesteld op True wanneer er geen luidsprekerapparaten op het systeem aanwezig zijn en de selectie van luidsprekers wordt ondersteund.
- Ingesteld op False wanneer er ten minste één luidsprekerapparaat op het systeem staat en de selectie van luidsprekers wordt ondersteund.
Alle luidsprekers zijn losgekoppeld Wanneer de waarde is ingesteld Trueop, kunt u overwegen om een visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen sprekers beschikbaar heeft.
speakingWhileMicrophoneIsMuted Spreken tijdens het dempen. - Ingesteld op True wanneer lokale microfoon is gedempt en de lokale gebruiker spreekt.
- Ingesteld op False wanneer lokale gebruiker stopt met spreken of het dempen van de microfoon opheffen.
- Deze diagnostische gebeurtenis kan automatisch worden uitgeschakeld als deze gedurende een bepaalde periode wordt geactiveerd zonder tussenkomst van de gebruiker om ruis te voorkomen en een betere gebruikerservaring te bieden. Deze wordt opnieuw ingeschakeld wanneer er een nieuwe dempactie wordt uitgevoerd.
Tijdens een gesprek dempt u uw microfoon en spreekt u er in. Wanneer de waarde is ingesteld om te True overwegen om visuele meldingen te geven aan eindgebruikers dat ze mogelijk praten en zich niet realiseren dat hun audio is gedempt.
noMicrophoneDevicesAvailable Geen audio-opnameapparaten (microfoon) op het systeem van de gebruiker - Ingesteld op True wanneer er geen microfoonapparaten op het systeem zijn.
- Ingesteld op False wanneer er ten minste één microfoonapparaat op het systeem staat.
Alle microfoons worden losgekoppeld tijdens het gesprek. Wanneer de waarde is ingesteld om een True visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen microfoon heeft. Zie de sectie Microfoon inschakelen vanuit apparaatbeheer voor meer informatie.
microphoneNotFunctioning De microfoon werkt niet. - Ingesteld op True wanneer er geen lokale audiostream kan worden verzonden omdat het microfoonapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces. Deze UFD duurt ongeveer 10 seconden om te worden verhoogd.
- Ingesteld op False wanneer de microfoon opnieuw audiostream wordt verzonden.
Er zijn geen microfoons beschikbaar, microfoontoegang uitgeschakeld in een systeem Wanneer de waarde is ingesteld om True een visuele melding te geven aan de eindgebruiker, is er een probleem met de microfoon.
microphoneMuteUnexpectedly Microfoon is gedempt - Ingesteld op True wanneer de microfoon onverwacht de gedempte status invoert.
- Ingesteld op False wanneer de microfoon begint met het verzenden van een audiostream
Microfoon is gedempt van het systeem. De meeste gevallen gebeuren wanneer de gebruiker zich in een Azure Communication Services-oproep bevindt op een mobiel apparaat en er een telefoongesprek binnenkomt. In de meeste gevallen dempt het besturingssysteem de Azure Communication Services-oproep, zodat een gebruiker het telefoongesprek kan beantwoorden. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan eindgebruikers dat hun oproep is gedempt omdat er een telefoongesprek is binnengekomen. Zie voor meer informatie hoe u het beste kunt omgaan met het dempen van een aanroepsectie van Azure Communication Services voor meer informatie.
microphonePermissionDenied er is een laag volume vanaf het apparaat of het is bijna stil op macOS. - Ingesteld op True wanneer audiomachtiging wordt geweigerd vanuit de systeeminstellingen (audio).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS.
Microfoonmachtigingen zijn uitgeschakeld in de Instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben om microfoon te gebruiken voor een Azure Communication Services-aanroep.

Camerawaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
cameraFrozen Camera stopt met het produceren van frames gedurende meer dan 5 seconden. - Ingesteld op True wanneer de lokale videostream is geblokkeerd. Deze diagnose betekent dat de externe zijde uw video op hun scherm ziet geblokkeerd of dat de externe deelnemers uw video niet op hun scherm weergeven.
- Ingesteld op False wanneer het blokkeren eindigt en gebruikers uw video kunnen zien zoals normaal.
De camera is verloren gegaan tijdens het gesprek of een slecht netwerk, waardoor de camera werd geblokkeerd. Wanneer de waarde is ingesteld Trueop, kunt u overwegen een melding te geven aan de eindgebruiker dat het externe deelnemersnetwerk mogelijk slecht is. Stel mogelijk voor dat ze hun camera uitschakelen om bandbreedte te besparen. Zie de sectie Netwerkbandbreedtevereisten voor de benodigde internetmogelijkheden voor een Azure Communication Services-aanroep voor meer informatie.
cameraStartFailed Algemene camerafout. - Ingesteld op True wanneer er geen lokale video kan worden verzonden omdat het cameraapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces~.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan de eindgebruiker dat de camera niet kan worden gestart.
cameraStartTimedOut Veelvoorkomend scenario waarbij de camera een slechte status heeft. - Instellen True wanneer er een time-out optreedt op het cameraapparaat om te beginnen met het verzenden van videostreams.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).
cameraPermissionDenied Cameramachtigingen zijn geweigerd in instellingen. - Ingesteld op True wanneer de cameramachtiging wordt geweigerd vanuit de systeeminstellingen (video).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS Chrome.
Cameramachtigingen zijn uitgeschakeld in de instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben verleend om camera te gebruiken voor een Azure Communication Services-aanroep.
cameraStoppedUnexpectedly Camerastoring - Ingesteld op True wanneer de camera onverwacht de status Gestopt invoert.
- Ingesteld op False wanneer de camera opnieuw videostream wordt verzonden.
Controleer of de camera goed werkt. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).

Alleen systeemeigen

Name Beschrijving Mogelijke waarden Gebruiksgevallen Oplossingsstappen
speakerVolumeIsZero Nul volume op een apparaat (luidspreker). - Ingesteld op True wanneer het luidsprekervolume nul is.
- Ingesteld op False wanneer luidsprekervolume niet nul is.
Geen geluid van deelnemers horen tijdens het gesprek. Wanneer de waarde is ingesteld op True, hebt u mogelijk per ongeluk het volume op laagste (nul).
speakerMuted Luidsprekerapparaat is gedempt. - Ingesteld op True wanneer het luidsprekerapparaat is gedempt.
- Ingesteld op False wanneer het luidsprekerapparaat niet wordt gedempt.
Geen geluid van deelnemers horen tijdens het gesprek. Wanneer de waarde is ingesteld op True, hebt u de luidspreker mogelijk per ongeluk gedempt.
speakerBusy Luidspreker is al in gebruik. Het apparaat wordt gebruikt in de exclusieve modus of het apparaat wordt gebruikt in de gedeelde modus en de beller heeft gevraagd het apparaat in de exclusieve modus te gebruiken. - Ingesteld op True wanneer er een time-out optreedt voor de aanschaf van het luidsprekerapparaat (audio).
- Ingesteld op False wanneer het verkrijgen van sprekers is geslaagd.
Geen geluid van deelnemers horen tijdens gesprek via spreker. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker, zodat deze kan controleren of een andere toepassing de luidspreker gebruikt en probeert u deze te sluiten.
speakerNotFunctioning Luidspreker werkt niet (de audioapparaatclient of het apparaat is langer dan 5 sec inactief geworden) - Ingesteld op True wanneer de luidspreker niet beschikbaar is of wanneer er een time-out optreedt voor apparaatstreaming (audio).
- Ingesteld op False wanneer het verkrijgen van sprekers is geslaagd.
Geen geluid van deelnemers horen tijdens gesprek via spreker. Controleer de status van het luidsprekerapparaat.
microphoneBusy Microfoon is al in gebruik. Het apparaat wordt gebruikt in de exclusieve modus of het apparaat wordt gebruikt in de gedeelde modus en de beller heeft gevraagd het apparaat in de exclusieve modus te gebruiken. - Ingesteld op True wanneer er een time-out optreedt voor de aanschaf van het microfoonapparaat (audio).
- Ingesteld op False wanneer het verkrijgen van de microfoon is geslaagd.
Uw audio bereikt geen andere deelnemers aan het gesprek. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker, zodat deze kan controleren of een andere toepassing de microfoon gebruikt en probeert u deze te sluiten.

Toegang tot diagnostische gegevens

Diagnostische gegevens op basis van de gebruiker is een uitgebreide functie van de kern-API Call en stelt u in staat een actieve aanroep te diagnosticeren.

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

Diagnostische gebeurtenissen voor gebruikers

  • Haal het functieobject op en voeg listeners toe aan de diagnostische gebeurtenissen.
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);

De meest recente diagnostische gegevens van de gebruiker ophalen

  • Haal de meest recente diagnostische waarden op die zijn gegenereerd in de huidige aanroep. Als we nog steeds geen waarde voor de diagnose hebben ontvangen, wordt er een uitzondering gegenereerd.
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 ...

Diagnostische waarden

De volgende gebruikersgerichte diagnostische gegevens zijn beschikbaar:

Netwerkwaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
networkUnavailable Er is geen netwerk beschikbaar. - Ingesteld op True wanneer een oproep niet kan worden gestart omdat er geen netwerk beschikbaar is.
- Ingesteld op False wanneer er ICE-kandidaten aanwezig zijn.
Het apparaat is niet verbonden met een netwerk. Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkoptimalisatie voor meer informatie.
networkRelaysUnreachable Problemen met een netwerk. - Ingesteld op True wanneer het netwerk een beperking heeft die u niet toestaat om Azure Communication Services-relays te bereiken.
- Stel in op False het maken van een nieuwe oproep.
Tijdens een gesprek wanneer het Wifi-signaal in- en uitgaat. Zorg ervoor dat firewallregels en netwerkroutering client toestaat om servers van Microsoft turn te bereiken. Zie de sectie Firewallconfiguratie voor meer informatie.
networkReconnectionQuality De verbinding is verbroken en er wordt opnieuw verbinding gemaakt met het netwerk. - Ingesteld opBad wanneer de verbinding met het netwerk is verbroken
- Ingesteld op Poorwanneer de mediatransportverbinding is verbroken
- Ingesteld op Good wanneer een nieuwe sessie is verbonden.
Lage bandbreedte, geen internet Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie.
networkReceiveQuality Een indicator met betrekking tot de kwaliteit van binnenkomende stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het ontvangen van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het ontvangen van de stroom.
- Ingesteld op Good wanneer er geen probleem is met het ontvangen van de stream.
- Het is alleen zichtbaar als er een actieve audiostroom in het gesprek is, wat betekent dat een deelnemer gedurende een bepaalde periode actief spreekt.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.
networkSendQuality Een indicator met betrekking tot de kwaliteit van uitgaande stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het verzenden van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het verzenden van de stream.
- Ingesteld op Good wanneer er geen probleem is met het verzenden van de stream.
- Vergelijkbaar met het ontvangen van kwaliteitsdiagnose is het alleen zichtbaar als er een actieve audiostroom in het gesprek is, wat betekent dat een deelnemer gedurende een bepaalde periode actief spreekt. Maar het werkt alleen in een 1:1-aanroep omdat het afhankelijk is van informatie van de andere kant om de kwaliteit te verifiëren. Waar de andere kant de ontvangen gegevens moet signaleren.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel ook voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.

Audiowaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
noSpeakerDevicesAvailable er is geen audio-uitvoerapparaat (luidspreker) op het systeem van de gebruiker. - Ingesteld op True wanneer er geen luidsprekerapparaten op het systeem aanwezig zijn en de selectie van luidsprekers wordt ondersteund.
- Ingesteld op False wanneer er ten minste één luidsprekerapparaat op het systeem staat en de selectie van luidsprekers wordt ondersteund.
Alle luidsprekers zijn losgekoppeld Wanneer de waarde is ingesteld Trueop, kunt u overwegen om een visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen sprekers beschikbaar heeft.
speakingWhileMicrophoneIsMuted Spreken tijdens het dempen. - Ingesteld op True wanneer lokale microfoon is gedempt en de lokale gebruiker spreekt.
- Ingesteld op False wanneer lokale gebruiker stopt met spreken of het dempen van de microfoon opheffen.
- Deze diagnostische gebeurtenis kan automatisch worden uitgeschakeld als deze gedurende een bepaalde periode wordt geactiveerd zonder tussenkomst van de gebruiker om ruis te voorkomen en een betere gebruikerservaring te bieden. Deze wordt opnieuw ingeschakeld wanneer er een nieuwe dempactie wordt uitgevoerd.
Tijdens een gesprek dempt u uw microfoon en spreekt u er in. Wanneer de waarde is ingesteld om te True overwegen om visuele meldingen te geven aan eindgebruikers dat ze mogelijk praten en zich niet realiseren dat hun audio is gedempt.
noMicrophoneDevicesAvailable Geen audio-opnameapparaten (microfoon) op het systeem van de gebruiker - Ingesteld op True wanneer er geen microfoonapparaten op het systeem zijn.
- Ingesteld op False wanneer er ten minste één microfoonapparaat op het systeem staat.
Alle microfoons worden losgekoppeld tijdens het gesprek. Wanneer de waarde is ingesteld om een True visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen microfoon heeft. Zie de sectie Microfoon inschakelen vanuit apparaatbeheer voor meer informatie.
microphoneNotFunctioning De microfoon werkt niet. - Ingesteld op True wanneer er geen lokale audiostream kan worden verzonden omdat het microfoonapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces. Deze UFD duurt ongeveer 10 seconden om te worden verhoogd.
- Ingesteld op False wanneer de microfoon opnieuw audiostream wordt verzonden.
Er zijn geen microfoons beschikbaar, microfoontoegang uitgeschakeld in een systeem Wanneer de waarde is ingesteld om True een visuele melding te geven aan de eindgebruiker, is er een probleem met de microfoon.
microphoneMuteUnexpectedly Microfoon is gedempt - Ingesteld op True wanneer de microfoon onverwacht de gedempte status invoert.
- Ingesteld op False wanneer de microfoon begint met het verzenden van een audiostream
Microfoon is gedempt van het systeem. De meeste gevallen gebeuren wanneer de gebruiker zich in een Azure Communication Services-oproep bevindt op een mobiel apparaat en er een telefoongesprek binnenkomt. In de meeste gevallen dempt het besturingssysteem de Azure Communication Services-oproep, zodat een gebruiker het telefoongesprek kan beantwoorden. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan eindgebruikers dat hun oproep is gedempt omdat er een telefoongesprek is binnengekomen. Zie voor meer informatie hoe u het beste kunt omgaan met het dempen van een aanroepsectie van Azure Communication Services voor meer informatie.
microphonePermissionDenied er is een laag volume vanaf het apparaat of het is bijna stil op macOS. - Ingesteld op True wanneer audiomachtiging wordt geweigerd vanuit de systeeminstellingen (audio).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS.
Microfoonmachtigingen zijn uitgeschakeld in de Instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben om microfoon te gebruiken voor een Azure Communication Services-aanroep.

Camerawaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
cameraFrozen Camera stopt met het produceren van frames gedurende meer dan 5 seconden. - Ingesteld op True wanneer de lokale videostream is geblokkeerd. Deze diagnose betekent dat de externe zijde uw video op hun scherm ziet geblokkeerd of dat de externe deelnemers uw video niet op hun scherm weergeven.
- Ingesteld op False wanneer het blokkeren eindigt en gebruikers uw video kunnen zien zoals normaal.
De camera is verloren gegaan tijdens het gesprek of een slecht netwerk, waardoor de camera werd geblokkeerd. Wanneer de waarde is ingesteld Trueop, kunt u overwegen een melding te geven aan de eindgebruiker dat het externe deelnemersnetwerk mogelijk slecht is. Stel mogelijk voor dat ze hun camera uitschakelen om bandbreedte te besparen. Zie de sectie Netwerkbandbreedtevereisten voor de benodigde internetmogelijkheden voor een Azure Communication Services-aanroep voor meer informatie.
cameraStartFailed Algemene camerafout. - Ingesteld op True wanneer er geen lokale video kan worden verzonden omdat het cameraapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces~.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan de eindgebruiker dat de camera niet kan worden gestart.
cameraStartTimedOut Veelvoorkomend scenario waarbij de camera een slechte status heeft. - Instellen True wanneer er een time-out optreedt op het cameraapparaat om te beginnen met het verzenden van videostreams.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).
cameraPermissionDenied Cameramachtigingen zijn geweigerd in instellingen. - Ingesteld op True wanneer de cameramachtiging wordt geweigerd vanuit de systeeminstellingen (video).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS Chrome.
Cameramachtigingen zijn uitgeschakeld in de instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben verleend om camera te gebruiken voor een Azure Communication Services-aanroep.
cameraStoppedUnexpectedly Camerastoring - Ingesteld op True wanneer de camera onverwacht de status Gestopt invoert.
- Ingesteld op False wanneer de camera opnieuw videostream wordt verzonden.
Controleer of de camera goed werkt. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).

Alleen systeemeigen

Name Beschrijving Mogelijke waarden Gebruiksgevallen Oplossingsstappen
speakerVolumeIsZero Nul volume op een apparaat (luidspreker). - Ingesteld op True wanneer het luidsprekervolume nul is.
- Ingesteld op False wanneer luidsprekervolume niet nul is.
Geen geluid van deelnemers horen tijdens het gesprek. Wanneer de waarde is ingesteld op True, hebt u mogelijk per ongeluk het volume op laagste (nul).
speakerMuted Luidsprekerapparaat is gedempt. - Ingesteld op True wanneer het luidsprekerapparaat is gedempt.
- Ingesteld op False wanneer het luidsprekerapparaat niet wordt gedempt.
Geen geluid van deelnemers horen tijdens het gesprek. Wanneer de waarde is ingesteld op True, hebt u de luidspreker mogelijk per ongeluk gedempt.
speakerBusy Luidspreker is al in gebruik. Het apparaat wordt gebruikt in de exclusieve modus of het apparaat wordt gebruikt in de gedeelde modus en de beller heeft gevraagd het apparaat in de exclusieve modus te gebruiken. - Ingesteld op True wanneer er een time-out optreedt voor de aanschaf van het luidsprekerapparaat (audio).
- Ingesteld op False wanneer het verkrijgen van sprekers is geslaagd.
Geen geluid van deelnemers horen tijdens gesprek via spreker. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker, zodat deze kan controleren of een andere toepassing de luidspreker gebruikt en probeert u deze te sluiten.
speakerNotFunctioning Luidspreker werkt niet (de audioapparaatclient of het apparaat is langer dan 5 sec inactief geworden) - Ingesteld op True wanneer de luidspreker niet beschikbaar is of wanneer er een time-out optreedt voor apparaatstreaming (audio).
- Ingesteld op False wanneer het verkrijgen van sprekers is geslaagd.
Geen geluid van deelnemers horen tijdens gesprek via spreker. Controleer de status van het luidsprekerapparaat.
microphoneBusy Microfoon is al in gebruik. Het apparaat wordt gebruikt in de exclusieve modus of het apparaat wordt gebruikt in de gedeelde modus en de beller heeft gevraagd het apparaat in de exclusieve modus te gebruiken. - Ingesteld op True wanneer er een time-out optreedt voor de aanschaf van het microfoonapparaat (audio).
- Ingesteld op False wanneer het verkrijgen van de microfoon is geslaagd.
Uw audio bereikt geen andere deelnemers aan het gesprek. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker, zodat deze kan controleren of een andere toepassing de microfoon gebruikt en probeert u deze te sluiten.

Toegang tot diagnostische gegevens

Diagnostische gegevens op basis van de gebruiker is een uitgebreide functie van de kern-API Call en stelt u in staat een actieve aanroep te diagnosticeren.

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

Diagnostische gebeurtenissen voor gebruikers

  • Implementeer de gemachtigden voor media en network diagnostische bronnen. MediaDiagnosticsDelegate respectievelijk NetworkDiagnosticsDelegate .
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...
  }
}
  • Houd een verwijzing naar media en diagnostische gegevens en network stel het gemachtigde object in voor het luisteren naar gebeurtenissen.
self.mediaDiagnostics = userFacingDiagnostics?.media
self.networkDiagnostics = userFacingDiagnostics?.network
self.mediaDiagnostics?.delegate = self.callObserver
self.networkDiagnostics?.delegate = self.callObserver

Notitie

Als u via SDK hebt ingeschakeld of CallKit-integratie in uw toepassing hebt CallKit geïmplementeerd, kan het rapporteren van de mutestatus aan CallKit ertoe leiden dat het besturingssysteem de microfoon loslaat vanwege privacyredenen waardoor de didIsSpeakingWhileMicrophoneIsMuted gebeurtenis niet werkt zoals verwacht, omdat er geen invoer van het microfoonapparaat kan worden vastgelegd om te detecteren dat de gebruiker spreekt.

De meest recente diagnostische gegevens van de gebruiker ophalen

  • Haal de meest recente diagnostische waarden op die zijn gegenereerd. Als we nog steeds geen waarde voor de diagnose hebben ontvangen of nil.unknown als resultaat hebben gekregen.
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.

Diagnostische waarden

De volgende gebruikersgerichte diagnostische gegevens zijn beschikbaar:

Netwerkwaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
networkUnavailable Er is geen netwerk beschikbaar. - Ingesteld op True wanneer een oproep niet kan worden gestart omdat er geen netwerk beschikbaar is.
- Ingesteld op False wanneer er ICE-kandidaten aanwezig zijn.
Het apparaat is niet verbonden met een netwerk. Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkoptimalisatie voor meer informatie.
networkRelaysUnreachable Problemen met een netwerk. - Ingesteld op True wanneer het netwerk een beperking heeft die u niet toestaat om Azure Communication Services-relays te bereiken.
- Stel in op False het maken van een nieuwe oproep.
Tijdens een gesprek wanneer het Wifi-signaal in- en uitgaat. Zorg ervoor dat firewallregels en netwerkroutering client toestaat om servers van Microsoft turn te bereiken. Zie de sectie Firewallconfiguratie voor meer informatie.
networkReconnectionQuality De verbinding is verbroken en er wordt opnieuw verbinding gemaakt met het netwerk. - Ingesteld opBad wanneer de verbinding met het netwerk is verbroken
- Ingesteld op Poorwanneer de mediatransportverbinding is verbroken
- Ingesteld op Good wanneer een nieuwe sessie is verbonden.
Lage bandbreedte, geen internet Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie.
networkReceiveQuality Een indicator met betrekking tot de kwaliteit van binnenkomende stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het ontvangen van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het ontvangen van de stroom.
- Ingesteld op Good wanneer er geen probleem is met het ontvangen van de stream.
- Het is alleen zichtbaar als er een actieve audiostroom in het gesprek is, wat betekent dat een deelnemer gedurende een bepaalde periode actief spreekt.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.
networkSendQuality Een indicator met betrekking tot de kwaliteit van uitgaande stromen. - Ingesteld opBad wanneer er een ernstig probleem is met het verzenden van de stream.
- Ingesteld op Poor wanneer er een mild probleem is met het verzenden van de stream.
- Ingesteld op Good wanneer er geen probleem is met het verzenden van de stream.
- Vergelijkbaar met het ontvangen van kwaliteitsdiagnose is het alleen zichtbaar als er een actieve audiostroom in het gesprek is, wat betekent dat een deelnemer gedurende een bepaalde periode actief spreekt. Maar het werkt alleen in een 1:1-aanroep omdat het afhankelijk is van informatie van de andere kant om de kwaliteit te verifiëren. Waar de andere kant de ontvangen gegevens moet signaleren.
Lage bandbreedte Zorg ervoor dat het gesprek een betrouwbare internetverbinding heeft die een spraakoproep kan ondersteunen. Zie de sectie Netwerkbandbreedtevereisten voor meer informatie. Stel ook voor dat de eindgebruiker zijn camera uitschakelt om de beschikbare internetbandbreedte te besparen.

Audiowaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
noSpeakerDevicesAvailable er is geen audio-uitvoerapparaat (luidspreker) op het systeem van de gebruiker. - Ingesteld op True wanneer er geen luidsprekerapparaten op het systeem aanwezig zijn en de selectie van luidsprekers wordt ondersteund.
- Ingesteld op False wanneer er ten minste één luidsprekerapparaat op het systeem staat en de selectie van luidsprekers wordt ondersteund.
Alle luidsprekers zijn losgekoppeld Wanneer de waarde is ingesteld Trueop, kunt u overwegen om een visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen sprekers beschikbaar heeft.
speakingWhileMicrophoneIsMuted Spreken tijdens het dempen. - Ingesteld op True wanneer lokale microfoon is gedempt en de lokale gebruiker spreekt.
- Ingesteld op False wanneer lokale gebruiker stopt met spreken of het dempen van de microfoon opheffen.
- Deze diagnostische gebeurtenis kan automatisch worden uitgeschakeld als deze gedurende een bepaalde periode wordt geactiveerd zonder tussenkomst van de gebruiker om ruis te voorkomen en een betere gebruikerservaring te bieden. Deze wordt opnieuw ingeschakeld wanneer er een nieuwe dempactie wordt uitgevoerd.
Tijdens een gesprek dempt u uw microfoon en spreekt u er in. Wanneer de waarde is ingesteld om te True overwegen om visuele meldingen te geven aan eindgebruikers dat ze mogelijk praten en zich niet realiseren dat hun audio is gedempt.
noMicrophoneDevicesAvailable Geen audio-opnameapparaten (microfoon) op het systeem van de gebruiker - Ingesteld op True wanneer er geen microfoonapparaten op het systeem zijn.
- Ingesteld op False wanneer er ten minste één microfoonapparaat op het systeem staat.
Alle microfoons worden losgekoppeld tijdens het gesprek. Wanneer de waarde is ingesteld om een True visuele melding te geven aan eindgebruikers dat hun huidige oproepsessie geen microfoon heeft. Zie de sectie Microfoon inschakelen vanuit apparaatbeheer voor meer informatie.
microphoneNotFunctioning De microfoon werkt niet. - Ingesteld op True wanneer er geen lokale audiostream kan worden verzonden omdat het microfoonapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces. Deze UFD duurt ongeveer 10 seconden om te worden verhoogd.
- Ingesteld op False wanneer de microfoon opnieuw audiostream wordt verzonden.
Er zijn geen microfoons beschikbaar, microfoontoegang uitgeschakeld in een systeem Wanneer de waarde is ingesteld om True een visuele melding te geven aan de eindgebruiker, is er een probleem met de microfoon.
microphoneMuteUnexpectedly Microfoon is gedempt - Ingesteld op True wanneer de microfoon onverwacht de gedempte status invoert.
- Ingesteld op False wanneer de microfoon begint met het verzenden van een audiostream
Microfoon is gedempt van het systeem. De meeste gevallen gebeuren wanneer de gebruiker zich in een Azure Communication Services-oproep bevindt op een mobiel apparaat en er een telefoongesprek binnenkomt. In de meeste gevallen dempt het besturingssysteem de Azure Communication Services-oproep, zodat een gebruiker het telefoongesprek kan beantwoorden. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan eindgebruikers dat hun oproep is gedempt omdat er een telefoongesprek is binnengekomen. Zie voor meer informatie hoe u het beste kunt omgaan met het dempen van een aanroepsectie van Azure Communication Services voor meer informatie.
microphonePermissionDenied er is een laag volume vanaf het apparaat of het is bijna stil op macOS. - Ingesteld op True wanneer audiomachtiging wordt geweigerd vanuit de systeeminstellingen (audio).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS.
Microfoonmachtigingen zijn uitgeschakeld in de Instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben om microfoon te gebruiken voor een Azure Communication Services-aanroep.

Camerawaarden

Name Beschrijving Mogelijke waarden Gebruiksgevallen Correctiestappen
cameraFrozen Camera stopt met het produceren van frames gedurende meer dan 5 seconden. - Ingesteld op True wanneer de lokale videostream is geblokkeerd. Deze diagnose betekent dat de externe zijde uw video op hun scherm ziet geblokkeerd of dat de externe deelnemers uw video niet op hun scherm weergeven.
- Ingesteld op False wanneer het blokkeren eindigt en gebruikers uw video kunnen zien zoals normaal.
De camera is verloren gegaan tijdens het gesprek of een slecht netwerk, waardoor de camera werd geblokkeerd. Wanneer de waarde is ingesteld Trueop, kunt u overwegen een melding te geven aan de eindgebruiker dat het externe deelnemersnetwerk mogelijk slecht is. Stel mogelijk voor dat ze hun camera uitschakelen om bandbreedte te besparen. Zie de sectie Netwerkbandbreedtevereisten voor de benodigde internetmogelijkheden voor een Azure Communication Services-aanroep voor meer informatie.
cameraStartFailed Algemene camerafout. - Ingesteld op True wanneer er geen lokale video kan worden verzonden omdat het cameraapparaat mogelijk is uitgeschakeld in het systeem of wordt gebruikt door een ander proces~.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan de eindgebruiker dat de camera niet kan worden gestart.
cameraStartTimedOut Veelvoorkomend scenario waarbij de camera een slechte status heeft. - Instellen True wanneer er een time-out optreedt op het cameraapparaat om te beginnen met het verzenden van videostreams.
- Ingesteld op False wanneer het geselecteerde cameraapparaat lokale video opnieuw verzendt.
Camerafouten Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).
cameraPermissionDenied Cameramachtigingen zijn geweigerd in instellingen. - Ingesteld op True wanneer de cameramachtiging wordt geweigerd vanuit de systeeminstellingen (video).
- Ingesteld op False geslaagde overname van stromen.
Opmerking: deze diagnose werkt alleen in macOS Chrome.
Cameramachtigingen zijn uitgeschakeld in de instellingen. Wanneer de waarde is ingesteld Trueop, geeft u een visuele melding aan eindgebruikers dat ze geen toestemming hebben verleend om camera te gebruiken voor een Azure Communication Services-aanroep.
cameraStoppedUnexpectedly Camerastoring - Ingesteld op True wanneer de camera onverwacht de status Gestopt invoert.
- Ingesteld op False wanneer de camera opnieuw videostream wordt verzonden.
Controleer of de camera goed werkt. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker dat de camera mogelijk problemen ondervindt. (Wanneer de waarde is teruggezet om de melding te False verwijderen).

Alleen systeemeigen

Name Beschrijving Mogelijke waarden Gebruiksgevallen Oplossingsstappen
speakerVolumeIsZero Nul volume op een apparaat (luidspreker). - Ingesteld op True wanneer het luidsprekervolume nul is.
- Ingesteld op False wanneer luidsprekervolume niet nul is.
Geen geluid van deelnemers horen tijdens het gesprek. Wanneer de waarde is ingesteld op True, hebt u mogelijk per ongeluk het volume op laagste (nul).
speakerMuted Luidsprekerapparaat is gedempt. - Ingesteld op True wanneer het luidsprekerapparaat is gedempt.
- Ingesteld op False wanneer het luidsprekerapparaat niet wordt gedempt.
Geen geluid van deelnemers horen tijdens het gesprek. Wanneer de waarde is ingesteld op True, hebt u de luidspreker mogelijk per ongeluk gedempt.
speakerBusy Luidspreker is al in gebruik. Het apparaat wordt gebruikt in de exclusieve modus of het apparaat wordt gebruikt in de gedeelde modus en de beller heeft gevraagd het apparaat in de exclusieve modus te gebruiken. - Ingesteld op True wanneer er een time-out optreedt voor de aanschaf van het luidsprekerapparaat (audio).
- Ingesteld op False wanneer het verkrijgen van sprekers is geslaagd.
Geen geluid van deelnemers horen tijdens gesprek via spreker. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker, zodat deze kan controleren of een andere toepassing de luidspreker gebruikt en probeert u deze te sluiten.
speakerNotFunctioning Luidspreker werkt niet (de audioapparaatclient of het apparaat is langer dan 5 sec inactief geworden) - Ingesteld op True wanneer de luidspreker niet beschikbaar is of wanneer er een time-out optreedt voor apparaatstreaming (audio).
- Ingesteld op False wanneer het verkrijgen van sprekers is geslaagd.
Geen geluid van deelnemers horen tijdens gesprek via spreker. Controleer de status van het luidsprekerapparaat.
microphoneBusy Microfoon is al in gebruik. Het apparaat wordt gebruikt in de exclusieve modus of het apparaat wordt gebruikt in de gedeelde modus en de beller heeft gevraagd het apparaat in de exclusieve modus te gebruiken. - Ingesteld op True wanneer er een time-out optreedt voor de aanschaf van het microfoonapparaat (audio).
- Ingesteld op False wanneer het verkrijgen van de microfoon is geslaagd.
Uw audio bereikt geen andere deelnemers aan het gesprek. Wanneer de waarde is ingesteld True, geeft u een visuele melding aan de eindgebruiker, zodat deze kan controleren of een andere toepassing de microfoon gebruikt en probeert u deze te sluiten.

Toegang tot diagnostische gegevens

Diagnostische gegevens op basis van de gebruiker is een uitgebreide functie van de kern-API Call en stelt u in staat een actieve aanroep te diagnosticeren.

this.diagnosticsCallFeature = call.Features.LocalUserDiagnostics;

Diagnostische gebeurtenissen voor gebruikers

  • Listeners implementeren voor diagnostische gebeurtenissen.
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
  • Gebeurtenismethoden instellen voor het luisteren naar gebeurtenissen.
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 ... 

De meest recente diagnostische gegevens van de gebruiker ophalen

  • Haal de meest recente diagnostische waarden op die zijn gegenereerd in de huidige aanroep. Als we nog steeds geen waarde voor de diagnose null hebben ontvangen of .unknown als deze worden geretourneerd.
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.