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
If you're using Safari on macOS, your app won't be able to enumerate/select speakers through the Communication Services Device Manager. In this scenario, devices must be selected via the OS. If you use Chrome on macOS, the app can enumerate/select devices through the Communication Services Device Manager.
47
47
48
-
#### Audio connectivity is lost when receiving SMS messages or calls during an ongoing VoIP call
49
-
This problem may occur due to multiple reasons:
48
+
#### Device will get muted and incoming video will stop rendering when an interruption occurs that takes over device access.
49
+
This problem may occur primarily from another application or OS taking over the control of microphone or camera, some examples can be seen bellow:
50
50
51
-
- Some mobile browsers don't maintain connectivity while in the background state. This can lead to a degraded call experience if the VoIP call was interrupted by an event that pushes your application into the background.
52
-
- Sometimes, an SMS or PSTN call captures the audio sound, and doesn't release audio back to the VoIP call. Apple fixed this issue in iOS versions 14.4.1+.
51
+
- User while is in the call, an incoming PSTN call arrives and captures the microphone device access.
52
+
- User while is in the call, will navigate to another native application that will capture access to the microphone or camera, for example play a YouTube video or start a FaceTime call.
53
+
- User while is in the call, will enable Siri which will capture access to the microphone again.
54
+
55
+
To recover from all these cases user will have to go back to the application to unmute and start video in order to have the audio and video start flowing after the interruption.
56
+
57
+
In some occasions the devices (Microphone or camera) won't be released on time and that can cause issues with the original call, for example if user tries to unmute while watching a YouTube video or a PSTN call is active simultaneously.
53
58
54
59
<br/>Client library: Calling (JavaScript)
55
-
<br/>Browsers: Safari, Chrome
56
-
<br/>Operating System: iOS, Android
60
+
<br/>Browsers: Safari
61
+
<br/>Operating System: iOS
57
62
58
63
#### Repeatedly switching video devices may cause video streaming to temporarily stop
59
64
@@ -100,8 +105,8 @@ If users decide to quickly turn video on/off while call is in `Connecting` state
100
105
##### Possible causes
101
106
Under investigation.
102
107
103
-
#### Enumerating/accessing devices for Safari on MacOS and iOS
104
-
If access to devices are granted, after some time, device permissions are reset. Safari on MacOS and on iOS does not keep permissions for very long time unless there is a stream acquired. The simplest way to work around this is to call DeviceManager.askDevicePermission() API before calling the device manager's device enumeration APIs (DeviceManager.getCameras(), DeviceManager.getSpeakers(), and DeviceManager.getMicrophones()). If the permissions are there, then user will not see anything, if not, it will re-prompt.
108
+
#### Enumerating/accessing devices for Safari on macOS and iOS
109
+
If access to devices are granted, after some time, device permissions are reset. Safari on macOS and on iOS does not keep permissions for very long time unless there is a stream acquired. The simplest way to work around this is to call DeviceManager.askDevicePermission() API before calling the device manager's device enumeration APIs (DeviceManager.getCameras(), DeviceManager.getSpeakers(), and DeviceManager.getMicrophones()). If the permissions are there, then user will not see anything, if not, it will re-prompt.
105
110
106
111
<br/>Devices affected: iPhone
107
112
<br/>Client library: Calling (JavaScript)
@@ -114,8 +119,8 @@ During an ongoing group call, _User A_ sends video and then _User B_ joins the c
114
119
#### Using 3rd party libraries to access GUM during the call may result in audio loss
115
120
Using getUserMedia separately inside the application will result in losing audio stream since a third party library takes over device access from ACS library.
116
121
Developers are encouraged to do the following:
117
-
1. Don't use 3rd party libraries that are using internally GetUserMedia API during the call.
118
-
2. If you still need to use 3rd party library, only way to recover is to either change the selected device (if the user has more than one) or restart the call.
122
+
- Don't use 3rd party libraries that are using internally GetUserMedia API during the call.
123
+
- If you still need to use 3rd party library, only way to recover is to either change the selected device (if the user has more than one) or restart the call.
119
124
120
125
<br/>Browsers: Safari
121
126
<br/>Operating System: iOS
@@ -124,7 +129,7 @@ Developers are encouraged to do the following:
124
129
In some browsers (Safari for example), acquiring your own stream from the same device will have a side-effect of running into race conditions. Acquiring streams from other devices may lead the user into insufficient USB/IO bandwidth, and sourceUnavailableError rate will skyrocket.
125
130
126
131
#### Support for Simulcast
127
-
Simulcast is a technique by which a client encodes the same video stream twice in different resolutions and bitrates and letting the ACS intrastrucutre decide which stream a client should receive. The ACS calling library SDK for Windows, Android, or iOS support sending simulcast streams. The ACS Web SDK does not currently support sending simulcast streams out.
132
+
Simulcast is a technique by which a client encodes the same video stream twice in different resolutions and bitrates and letting the ACS infrastructure decide which stream a client should receive. The ACS calling library SDK for Windows, Android, or iOS support sending simulcast streams. The ACS Web SDK does not currently support sending simulcast streams out.
128
133
129
134
## Azure Communication Services Call Automation APIs
0 commit comments