Skip to content

Commit b30c087

Browse files
authored
Merge pull request #176940 from ktoliver/public-82758-recreate
[PUBLIC_MOVE] commit from public PR 82758
2 parents 200ff3c + c95b569 commit b30c087

File tree

3 files changed

+34
-25
lines changed

3 files changed

+34
-25
lines changed

articles/communication-services/.openpublishing.redirection.communication-services.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
"redirect_url": "/azure/communication-services/concepts/ui-library/mobile-ui-library",
66
"redirect_document_id": false
77
},
8+
{
9+
"source_path_from_root": "/articles/communication-services/concepts/voice-video-calling/call-diagnostics.md",
10+
"redirect_url": "/azure/communication-services/concepts/voice-video-calling/user-facing-diagnostics",
11+
"redirect_document_id": false
12+
},
813
{
914
"source_path_from_root": "/articles/communication-services/quickstarts/meeting/getting-started-with-teams-embed.md",
1015
"redirect_url": "/azure/communication-services/quickstarts/ui-library/get-started-call",

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

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,36 @@
11
---
2-
title: Azure Communication Services Call Diagnostics
2+
title: Azure Communication Services User Facing Diagnostics
33
titleSuffix: An Azure Communication Services concept document
4-
description: Provides an overview of the Call Diagnostics feature.
4+
description: Provides an overview of the User Facing Diagnostics feature.
55
author: probableprime
66
ms.author: rifox
77
manager: chpalm
88

99
services: azure-communication-services
10-
ms.date: 08/17/2021
10+
ms.date: 10/21/2021
1111
ms.topic: conceptual
1212
ms.service: azure-communication-services
1313
ms.subservice: calling
1414
---
1515

16-
# Call diagnostics
16+
# User Facing Diagnostics
1717

18-
When working with calls in Azure Communication Services, issues or problems may arise that cause issues for your customers. To aid with that we have a feature called "Call Diagnostics" which enables you to examine various properties of a Call to determine what the issue might be.
18+
When working with calls in Azure Communication Services, problems may arise that cause issues for your customers. To help with this scenario, we have a feature called "User Facing Diagnostics" that you can use to examine various properties of a call to determine what the issue might be.
1919

20-
**Call diagnostics, is currently only supported for our JS / Web SDK.**
20+
> [!NOTE]
21+
> User-facing diagnostics is currently supported only for our JavaScript / Web SDK.
2122
2223
## Accessing diagnostics
2324

24-
Call diagnostics is an extended feature of the core `Call` API and allows you to diagnose an active call.
25+
User-facing diagnostics is an extended feature of the core `Call` API and allows you to diagnose an active call.
2526

2627
```js
27-
const callDiagnostics = call.api(Features.Diagnostics);
28+
const userFacingDiagnostics = call.api(Features.UserFacingDiagnostics);
2829
```
2930

3031
## Diagnostic values
3132

32-
The following users facing diagnostics are available:
33+
The following user-facing diagnostics are available:
3334

3435
### Network values
3536

@@ -38,14 +39,15 @@ The following users facing diagnostics are available:
3839
| noNetwork | There is no network available. | - Set to `True` when a call fails to start because there is no network available. <br/> - Set to `False` when there are ICE candidates present. | Device is not connected to a network. |
3940
| networkRelaysNotReachable | Problems with a network. | - Set to `True` when the network has some constraint that is not allowing you to reach ACS relays. <br/> - Set to `False` upon making a new call. | During a call when the WiFi signal goes on and off. |
4041
| networkReconnect | The connection was lost and we are reconnecting to the network. | - Set to `Bad` when the network is disconnected <br/> - Set to `Poor`when the media transport connectivity is lost <br/> - Set to `Good` when a new session is connected. | Low bandwidth, no internet |
41-
| networkReceiveQuality | An indicator regarding incoming stream quality. | - Set to `Bad` when there is a severe problem with receiving the stream. quality <br/> - Set to `Poor` when there is a mild problem with receiving the stream. quality <br/> - Set to `Good` when there is no problem with receiving the stream. | Low bandwidth |
42+
| networkReceiveQuality | An indicator regarding incoming stream quality. | - Set to `Bad` when there is a severe problem with receiving the stream. <br/> - Set to `Poor` when there is a mild problem with receiving the stream. <br/> - Set to `Good` when there is no problem with receiving the stream. | Low bandwidth |
43+
| networkSendQuality | An indicator regarding outgoing stream quality. | - Set to `Bad` when there is a severe problem with sending the stream. <br/> - Set to `Poor` when there is a mild problem with sending the stream. <br/> - Set to `Good` when there is no problem with sending the stream. | Low bandwidth |
4244

4345
### Audio values
4446

4547
| Name | Description | Possible values | Use cases |
4648
| ------------------------------ | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
4749
| noSpeakerDevicesEnumerated | There is 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 is a least 1 speaker device on the system, and speaker selection is supported. | All speakers are unplugged |
48-
| 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 un-mutes the microphone. <br/> \* Note: as of today, this isn't supported on safari yet, as the audio level samples are taken from webrtc. stats. | During a call, mute your microphone and speak into it. |
50+
| 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. |
4951
| 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 is at least 1 microphone device on the system. | All microphones are unplugged during the call. |
5052
| microphoneNotFunctioning | Microphone is not 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 |
5153
| 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. |
@@ -56,19 +58,23 @@ The following users facing diagnostics are available:
5658
| Name | Description | Possible values | Use cases |
5759
| ---------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
5860
| cameraFreeze | Camera stops producing frames for more than 5 seconds. | - Set to `True` when the local video stream is frozen. This means the remote side is seeing your video frozen on their screen or it means that the remote participants are not rendering your video on their screen. <br/> - Set to `False` when the freeze ends and users can see your video as per normal. | The Camera was lost during the call or bad network caused the camera to freeze. |
59-
| cameraStartFailed | Generic camera failure. | - Set to `True` when we fail to start sending local video because the camera device may have been disabled in the system or it is being used by another process~. <br/> - Set to `False` when selected camera device successfully sends local video. again. | Camera failures |
61+
| cameraStartFailed | Generic camera failure. | - Set to `True` when we fail to start sending local video because the camera device may have been disabled in the system or it is being used by another process~. <br/> - Set to `False` when selected camera device successfully sends local video again. | Camera failures |
6062
| cameraStartTimedOut | Common scenario where camera is in bad state. | - Set to `True` when camera device times out to start sending video stream. <br/> - Set to `False` when selected camera device successfully sends local video again. | Camera failures |
6163
| cameraPermissionDenied | Camera permissions were denied in settings. | - Set to `True` when camera permission is denied by system settings (video). <br/> - Set to `False` on successful stream acquisition. <br> Note: This diagnostic only works on macOS Chrome | Camera permissions are disabled in the settings. |
64+
| cameraStoppedUnexpectedly | Camera malfunction | - Set to `True` when camera enters stopped state unexpectedly. <br/> - Set to `False` when camera starts to successfully send video stream again. | Check camera is functioning correctly |
6265

6366
### Misc values
6467

6568
| Name | Description | Possible values | Use cases |
6669
| ---------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
6770
| screenshareRecordingDisabled | System screen sharing was denied by preferences in Settings. | - Set to `True` when screen sharing permission is denied by system settings (sharing). <br/> - Set to `False` on successful stream acquisition. <br/> Note: This diagnostic only works on macOS.Chrome. | Screen recording is disabled in Settings. |
71+
| capturerStartFailed | System screen sharing failed. | - Set to `True` when we fail to start capturing the screen. <br/> - Set to `False` when capturing the screen can start successfully. | |
72+
| capturerStoppedUnexpectedly | System screen sharing malfunction | - Set to `True` when screen capturer enters stopped state unexpectedly. <br/> - Set to `False` when screen capturer starts to successfully capture again. | Check screen sharing is functioning correctly |
6873

69-
## Diagnostic events
7074

71-
- Subscribe to the `diagnosticChanged` event to monitor when any call diagnostic changes.
75+
## User Facing Diagnostic events
76+
77+
- Subscribe to the `diagnosticChanged` event to monitor when any user-facing diagnostic changes.
7278

7379
```js
7480
/**
@@ -78,14 +84,12 @@ The following users facing diagnostics are available:
7884
* - DiagnosticQuality = enum { Good = 1, Poor = 2, Bad = 3 }.
7985
* - DiagnosticFlag = true | false.
8086
* - valueType = 'DiagnosticQuality' | 'DiagnosticFlag'
81-
* - mediaType is the media type associated with the event, e.g. Audio, Video, ScreenShare. These are defined in `CallDiagnosticEventMediaType`.
8287
*/
8388
const diagnosticChangedListener = (diagnosticInfo: NetworkDiagnosticChangedEventArgs | MediaDiagnosticChangedEventArgs) => {
8489
console.log(`Diagnostic changed: ` +
8590
`Diagnostic: ${diagnosticInfo.diagnostic}` +
8691
`Value: ${diagnosticInfo.value}` +
87-
`Value type: ${diagnosticInfo.valueType}` +
88-
`Media type: ${diagnosticInfo.mediaType}` +
92+
`Value type: ${diagnosticInfo.valueType}`);
8993

9094
if (diagnosticInfo.valueType === 'DiagnosticQuality') {
9195
if (diagnosticInfo.value === DiagnosticQuality.Bad) {
@@ -102,16 +106,16 @@ const diagnosticChangedListener = (diagnosticInfo: NetworkDiagnosticChangedEvent
102106
}
103107
};
104108

105-
callDiagnostics.network.on('diagnosticChanged', diagnosticChangedListener);
106-
callDiagnostics.media.on('diagnosticChanged', diagnosticChangedListener);
109+
userFacingDiagnostics.network.on('diagnosticChanged', diagnosticChangedListener);
110+
userFacingDiagnostics.media.on('diagnosticChanged', diagnosticChangedListener);
107111
```
108112

109-
## Get the latest diagnostics
113+
## Get the latest User Facing Diagnostics
110114

111-
- Get the latest call diagnostic values that were raised. If a diagnostic is undefined, that is because it was never raised.
115+
- Get the latest diagnostic values that were raised. If a diagnostic is undefined, that is because it was never raised.
112116

113117
```js
114-
const latestNetworkDiagnostics = callDiagnostics.network.getLatest();
118+
const latestNetworkDiagnostics = userFacingDiagnostics.network.getLatest();
115119

116120
console.log(
117121
`noNetwork: ${latestNetworkDiagnostics.noNetwork.value}, ` +
@@ -128,7 +132,7 @@ console.log(
128132
`value type = ${latestNetworkDiagnostics.networkReceiveQuality.valueType}`
129133
);
130134

131-
const latestMediaDiagnostics = callDiagnostics.media.getLatest();
135+
const latestMediaDiagnostics = userFacingDiagnostics.media.getLatest();
132136

133137
console.log(
134138
`speakingWhileMicrophoneIsMuted: ${latestMediaDiagnostics.speakingWhileMicrophoneIsMuted.value}, ` +

articles/communication-services/toc.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ items:
123123
href: concepts/call-flows.md
124124
- name: Call flow topologies
125125
href: concepts/detailed-call-flows.md
126-
- name: Call diagnostics
127-
href: concepts/voice-video-calling/call-diagnostics.md
126+
- name: User-facing diagnostics
127+
href: concepts/voice-video-calling/user-facing-diagnostics.md
128128
- name: Web best practices
129129
href: concepts/best-practices.md
130130
- name: Known issues

0 commit comments

Comments
 (0)