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/resources/troubleshooting/voice-video-calling/audio-issues/incoming-audio-low-volume.md
+21-2Lines changed: 21 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,16 +28,35 @@ This value is derived from `audioLevel` in WebRTC Stats. [https://www.w3.org/TR/
28
28
A low `audioOutputLevel` value indicates that the volume sent by the sender is also low.
29
29
30
30
## How to mitigate or resolve
31
-
If the `audioOutputLevel` value is low, this is likely that the volume sent by the sender is also low.
31
+
If the `audioOutputLevel` value is low, it's likely that the volume sent by the sender is also low.
32
32
To troubleshoot this issue, users should investigate why the audio input volume is low on the sender's side.
33
33
This problem could be due to various factors, such as microphone settings, or hardware issues.
34
34
35
-
If the `audioOutputLevel` value appears normal, the issue may be related to system volume settings or speaker issues on the receiver's side.
35
+
The value of `audioOutputLevel` ranges from 0 - 65536. In practice, values lower than 60 can be considered quiet, and values lower than 150 are often considered low volume.
36
+
36
37
Users can check their device's volume settings and speaker output to ensure that they're set to an appropriate level.
38
+
If the `audioOutputLevel` value appears normal, the issue may be related to system volume settings or speaker issues on the receiver's side.
39
+
40
+
For example, if the user uses Windows, they should check the volume mixer settings and apps volume settings.
41
+
42
+
:::image type="content" source="./media/apps-volume-mixer.png" alt-text="Screenshot of volume mixer.":::
37
43
38
44
### Using Web Audio GainNode to increase the volume
39
45
It may be possible to address this issue at the application layer using Web Audio GainNode.
40
46
By using this feature with the raw audio stream, it's possible to increase the output volume of the stream.
41
47
42
48
You can also look to display a [volume level indicator](../../../../quickstarts/voice-video-calling/get-started-volume-indicator.md?pivots=platform-web) in your client user interface to let your users know what the current volume level is.
43
49
50
+
## References
51
+
### Troubleshooting process
52
+
Below is a flow diagram of the troubleshooting process for this issue.
53
+
54
+
:::image type="content" source="./media/low-volume-troubleshooting.svg" alt-text="Diagram of troubleshooting the low volume issue.":::
55
+
56
+
1. When a user reports experiencing low audio volume, the first thing to check is whether the volume of the incoming audio is low. The application can obtain this information by checking `audioOutputLevel` in the media stats.
57
+
2. If the `audioOutputLevel` value is constantly low, it indicates that the volume of audio sent by the speaking participant is low. In this case, ask the user to verify if the speaking participant has issues with their microphone device or input volume settings.
58
+
3. If the `audioOutputLevel` value isn't always low, the user may still experience low audio volume issue due to system volume settings. Ask the user to check their system volume settings.
59
+
4. If the user's system volume is set to a low value, the user should increase the volume in the settings.
60
+
5. In some systems that support app-specific volume settings, the audio volume output from the app may be low even if system volume isn't low. In this case, the user should check their volume setting of the app within the system.
61
+
6. If the volume setting of the app in the system is low, the user should increase it.
62
+
7. If you still can't determine why the audio output volume is low, ask the user to check their speaker device or select another audio output device. The issue may be due to a device problem and not related to the software or operating system. Not all platforms support speaker enumeration in the browser. For example, you can't select an audio output device through the JavaScript API in the Safari browser or in Chrome on Android. In these cases, you should configure the audio output device in the system settings.
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/media/low-volume-troubleshooting.svg
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/media/microphone-issue-troubleshooting.svg
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/media/network-issue-troubleshooting.svg
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/media/permission-issue-troubleshooting.svg
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/media/poor-audio-quality-issue-troubleshooting.svg
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/media/speaker-issue-troubleshooting.svg
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/microphone-issue.md
+22Lines changed: 22 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,3 +42,25 @@ For example, a hardware mute button of some headset models can trigger this even
42
42
The application should listen to the [User Facing Diagnostics API](../../../../concepts/voice-video-calling/user-facing-diagnostics.md) events.
43
43
The application should display a warning message when receiving events.
44
44
By doing so, the user is aware of the issue and can troubleshoot by switching to a different microphone device or by unplugging and plugging in their current microphone device.
45
+
46
+
## References
47
+
### Troubleshooting process
48
+
If a user can't hear sound during a call, one possibility is that the speaking participant has an issue with their microphone.
49
+
If the speaking participant is using your application, you can follow this flow diagram to troubleshoot the issue.
50
+
51
+
:::image type="content" source="./media/microphone-issue-troubleshooting.svg" alt-text="Diagram of troubleshooting the microphone issue.":::
52
+
53
+
1. First, check if a microphone is available. The application can obtain this information by invoking `DeviceManager.getMicrophone` API or by detecting a `noMicrophoneDevicesEnumerated` UFD Bad event.
54
+
2. If no microphone device is available, prompt the user to plug in a microphone.
55
+
3. If a microphone is available but there's no outgoing audio, consider other possibilities such as permission issues, device issues, or network problems.
56
+
4. If permission is denied, refer to [The speaking participant doesn't grant the microphone permission](./microphone-permission.md) for more information.
57
+
5. If permission is granted, consider whether the issue is due to an external problem, such as `microphoneMuteUnexpectedly` UFD.
58
+
6. The `microphoneMuteUnexpectedly` UFD Bad event is triggered when the browser mutes the audio input track. The application can monitor this UFD but isn't able to detect the reason at JavaScript layer. You can still provide instructions in the app and ask if the user is using hardware mute button on their headset.
59
+
7. If the user releases the hardware mute and the `microphoneMuteUnexpectedly` UFD recovers, the issue is resolved.
60
+
8. If the user isn't using the hardware mute, ask the user to unplug and replug the microphone, or to select another microphone. Ensure the user hasn't muted the microphone at the system level.
61
+
9. No outgoing audio issue can also happen when there's a `microphoneNotFunctioning` UFD Bad event.
62
+
10. If there's no `microphoneNotFunctioning` UFD Bad event, consider other possibilities, such as network issues.
63
+
11. If there's a `networkReconnect` Bad UFD, outgoing audio may be temporarily lost due to a network disconnection. Refer to [There's a network issue in the call](./network-issue.md) for detailed information.
64
+
12. If there are no microphone-related events and no network-related events, create a support ticket for ACS team to investigate the issue. Refer to [Reporting an issue](../general-troubleshooting-strategies/report-issue.md).
65
+
13. If a `microphoneNotFunctioning` UFD Bad event occurs, and the user has no outgoing audio, they can try to recover the stream by using ACS [mute](/javascript/api/azure-communication-services/@azure/communication-calling/call?view=azure-communication-services-js&preserve-view=true#@azure-communication-calling-call-mute) and [unmute](/javascript/api/azure-communication-services/@azure/communication-calling/call?view=azure-communication-services-js&preserve-view=true#@azure-communication-calling-call-unmute).
66
+
14. If the `microphoneNotFunctioning` UFD doesn't recover after the user performs ACS mute and unmute, there might be an issue with the microphone device. Ask the user to unplug and replug the microphone or select another microphone.
Copy file name to clipboardExpand all lines: articles/communication-services/resources/troubleshooting/voice-video-calling/audio-issues/microphone-permission.md
+16-2Lines changed: 16 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,9 +26,23 @@ The listener should check for events with the value of `microphonePermissionDeni
26
26
It's important to note that if the user revokes access permission during the call, this `microphonePermissionDenied` event also fires.
27
27
28
28
## How to mitigate or resolve
29
-
Your application should always call the `askDevicePermission` API after the `CallClient` is initialized.
29
+
Your application should always call the [askDevicePermission](/javascript/api/azure-communication-services/@azure/communication-calling/devicemanager?view=azure-communication-services-js&preserve-view=true#@azure-communication-calling-devicemanager-askdevicepermission) API after the `CallClient` is initialized.
30
30
This way gives the user a chance to grant the device permission if they didn't do so before or if the permission state is `prompt`.
31
+
The application can also show a warning message if the user denies the permission, so the user can fix it before joining a call.
31
32
32
-
It's also important to listen for the `microphonePermissionDenied` event. Display a warning message if the user revokes the permission during the call. By doing so, the user is aware of the issue and can adjust their browser or system settings accordingly.
33
+
It's also important to listen for the [microphonePermissionDenied](../references/ufd/microphone-permission-denied.md) UFD event. Display a warning message if the user revokes the permission during the call. By doing so, the user is aware of the issue and can adjust their browser or system settings accordingly.
33
34
35
+
## References
36
+
### Troubleshooting process
37
+
If a user can't hear sound during a call, one possibility is that the speaking participant hasn't granted microphone permission.
38
+
If the speaking participant is using your application, you can follow this flow diagram to troubleshoot the issue.
34
39
40
+
:::image type="content" source="./media/permission-issue-troubleshooting.svg" alt-text="Diagram of troubleshooting the permission issue.":::
41
+
42
+
1. Check if there's a `microphonePermissionDenied` Bad UFD event for the speaking participant. This usually indicates that the user has denied the permission or that the permission isn't requested.
43
+
2. If a `microphonePermissionDenied` Bad UFD event occurs, verify whether the app has called `askDevicePermission` API.
44
+
3. The app must call `askDevicePermission` if this API hasn't been invoked before the user joins the call. The app can offer a smoother user experience by determining the current state of permissions. For instance, it can display a message instructing the user to adjust their permissions if necessary.
45
+
4. If the app has called `askDevicePermission` API, but the user still gets a `microphonePermissionDenied` Bad UFD event. The user has to reset or grant the microphone permission in the browser. If they have confirmed that the permission is granted in the browser, they should check if the OS is blocking mic access to the browser.
46
+
5. If there's no `microphonePermissionDenied` Bad UFD, we need to consider other possibilities. For the speaking participant, there might be other potential reasons for issues with outgoing audio, such as network reconnection, or device issues.
47
+
6. If there's a `networkReconnect` Bad UFD, the outgoing audio may be temporarily lost due to a network disconnection. See [There's a network issue in the call](./network-issue.md) for detailed information.
48
+
7. If no `networkReconnect` Bad UFD occurs, there might be a problem on the speaking participant's microphone. See [The speaking participant's microphone has a problem](./microphone-issue.md) for detailed information.
0 commit comments