Skip to content

Commit 4be41e5

Browse files
authored
Update 1
1 parent 51ff25f commit 4be41e5

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

articles/communication-services/concepts/voice-video-calling/includes/user-facing-diagnostics-web.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ ms.subservice: calling
1313
---
1414

1515
## Local vs Remote User Facing Diagnostics
16-
User Facing Diagnostics (UFD) are enabled to expose user-impacting events programmatically on a user's device. With an ACS, there are two methods for consuming and generating UFDs: local UFDs and remote UFDs. Local UFDs are generated on the local user's phone or browser. Remote UFDs are events occurring in a remote participant's environment, which allow a user to consume and view those events from a distance.
16+
User Facing Diagnostics (UFD) are enabled to expose user-impacting events happening on a users calling device via a programmatic API. With an ACS, there are two methods for consuming and generating UFDs: **local UFD's** and **remote UFD's**. **Local UFD's** are generated on the local user's phone or browser. **Remote UFD's** are events occurring in a remote participant's environment, which allow a local user to consume and view those remoote user impacting events locally.
17+
1718
User Facing Diagnostics (UFD) allows you to see when local or remote participants are experiencing issues that affect audio-video call quality. UFD provides real-time diagnostics on network conditions, device functionality, and media performance, helping developers identify problems such as poor connectivity, muted microphones, or low bandwidth. While UFD does not automatically fix these issues, it allows applications to offer proactive feedback to users, suggesting solutions like checking their internet connection or adjusting device settings. Based on this data, users can either correct the issue themselves (e.g., turn off video when the network is weak) or display the information through the User Interface.
18-
There are some minor differences between mote remote UFD's and local UFD's. Those differences are:
19-
• The calling SDK does not expose the speakingWhileIsMuted remote UFD due to privacy concerns.
20-
• The calling SDK will only expose and stream UFD (User Feedback Data) to a maximum of 20 participants on the call. When the number of participants exceeds 20, we limit and cease transmission of remote UFD to prevent overloading the network with these events.
21-
• The calling SDK will filter so you will only see 3 remote UFD events per minute coming from a unique client.
19+
20+
There are some minor differences in using **remote UFD's** and **local UFD's**. Those differences are:
21+
• The calling SDK does not expose the `speakingWhileMicrophoneIsMuted` via remote UFD's due to privacy concerns.
22+
• The calling SDK will only expose and stream UFD's up to a maximum of 20 participants on the call. When the number of participants exceeds 20, we limit and cease transmission of **remote UFD's** to prevent overloading the network with these events.
23+
• The calling SDK will filter so you will only see 3 **remote UFD** events per minute coming from a unique client.
2224
• From the client SDK perspective, you need to enable the functionality for the local UFDs to be sent remotely.
2325

2426
## Diagnostic values
@@ -41,7 +43,7 @@ The following user-facing diagnostics are available:
4143
| Name | Description | Possible values | Use cases | Mitigation steps |
4244
| -------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
4345
| noSpeakerDevicesEnumerated | there's no audio output device (speaker) on the user's system. | - Set to `True` when there are no speaker devices on the system, and speaker selection is supported. <br/> - Set to `False` when there's a least one speaker device on the system, and speaker selection is supported. | All speakers are unplugged | When value set to `True`, consider giving visual notification to end user that their current call session doesn't have any speakers available. |
44-
| speakingWhileMicrophoneIsMuted | Speaking while being on mute. | - Set to `True` when local microphone is muted and the local user is speaking. <br/> - Set to `False` when local user either stops speaking, or unmutes the microphone. <br/> \* Note: Currently, this option isn't supported on Safari because the audio level samples are taken from WebRTC stats. | During a call, mute your microphone and speak into it. | When value set to `True` consider giving visual notification to end user that they might be talking and not realizing that their audio is muted. |
46+
| speakingWhileMicrophoneIsMuted | Speaking while being on mute. | - Set to `True` when local microphone is muted and the local user is speaking. <br/> - Set to `False` when local user either stops speaking, or unmutes the microphone. <br/> \* Note: Currently, this option isn't supported on Safari because the audio level samples are taken from WebRTC stats. 'speakingWhileMicrophoneIsMuted' is not available as a remote UFD | During a call, mute your microphone and speak into it. | When value set to `True` consider giving visual notification to end user that they might be talking and not realizing that their audio is muted. |
4547
| noMicrophoneDevicesEnumerated | No audio capture devices (microphone) on the user's system | - Set to `True` when there are no microphone devices on the system. <br/> - Set to `False` when there's at least one microphone device on the system. | All microphones are unplugged during the call. | When value set to `True` consider giving visual notification to end user that their current call session doesn't have a microphone. For more information, see [enable microphone from device manager](../../best-practices.md#plug-in-a-microphone-or-enable-a-microphone-from-the-device-manager-when-a-call-is-in-progress) section. |
4648
| microphoneNotFunctioning | Microphone isn't functioning. | - Set to `True` when we fail to start sending local audio stream because the microphone device may have been disabled in the system or it is being used by another process. This UFD takes about 10 seconds to get raised. <br/> - Set to `False` when microphone starts to successfully send audio stream again. | No microphones available, microphone access disabled in a system | When value set to `True` give visual notification to end user that there's a problem with their microphone. |
4749
| microphoneMuteUnexpectedly | Microphone is muted | - Set to `True` when microphone enters muted state unexpectedly. <br/> - Set to `False` when microphone starts to successfully send audio stream | Microphone is muted from the system. Most cases happen when user is on an Azure Communication Services call on a mobile device and a phone call comes in. In most cases, the operating system mutes the Azure Communication Services call so a user can answer the phone call. | When value is set to `True`, give visual notification to end user that their call was muted because a phone call came in. For more information, see how to best handle [OS muting an Azure Communication Services call](../../best-practices.md#handle-the-os-muting-a-call-when-a-phone-call-comes-in) section for more details. |
@@ -111,9 +113,10 @@ const diagnosticChangedListener = (diagnosticInfo: NetworkDiagnosticChangedEvent
111113

112114
userFacingDiagnostics.network.on('diagnosticChanged', diagnosticChangedListener);
113115
userFacingDiagnostics.media.on('diagnosticChanged', diagnosticChangedListener);
114-
116+
```
115117

116118
## Using Remote User Facing Diagnostics
119+
117120
```js
118121
/***************
119122
* Interfaces **
@@ -154,11 +157,11 @@ remoteUfdsFeature.on('diagnosticChanged', remoteDiagnosticChangedListener);
154157
remoteUfdsFeature.startSendingDiagnostics();
155158
// Stop sending local UFDs to remote clients.
156159
remoteUfdsFeature.stopSendingDiagnostics();
157-
```
158160

159-
## Get the latest User Facing Diagnostics
160161

161-
- Get the latest diagnostic values that were raised. If a diagnostic is undefined, that is because it was never raised.
162+
## Raise the latest User Facing Diagnostics fired off
163+
164+
Here is sample code to generate the latest diagnostic value raised by the calling SDK. If a diagnostic is undefined, it means the UFD has not been raised.
162165

163166
```js
164167
const latestNetworkDiagnostics = userFacingDiagnostics.network.getLatest();

articles/communication-services/concepts/voice-video-calling/user-facing-diagnostics.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
title: Azure Communication Services User Facing Diagnostics
33
titleSuffix: An Azure Communication Services concept document
44
description: Provides an overview of the User Facing Diagnostics feature.
5-
author: tophpalmer
6-
ms.author: chpalm
7-
manager: chpalm
5+
author: sloanster
6+
ms.author: micahvivion
87

98
services: azure-communication-services
10-
ms.date: 10/21/2021
9+
ms.date: 06/04/2025
1110
ms.topic: conceptual
1211
ms.service: azure-communication-services
1312
ms.subservice: calling

0 commit comments

Comments
 (0)