You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/communication-services/concepts/voice-video-calling/includes/user-facing-diagnostics-web.md
+13-10Lines changed: 13 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,12 +13,14 @@ ms.subservice: calling
13
13
---
14
14
15
15
## 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
+
17
18
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.
22
24
• From the client SDK perspective, you need to enable the functionality for the local UFDs to be sent remotely.
23
25
24
26
## Diagnostic values
@@ -41,7 +43,7 @@ The following user-facing diagnostics are available:
41
43
| Name | Description | Possible values | Use cases | Mitigation steps |
| 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. |
45
47
| 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. |
46
48
| 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. |
47
49
| 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. |
- 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.
0 commit comments