Mobile users have no way to change I/O devices after joining audio.
The removal of the audio options chevron in mobile browsers was supposed
to be replaced by something else - in this case, by the dedicated
leave/join audio button. That didn't happen, leave/join audio button
retained the old behavior.
Review device selection in mobile endpoints via two UI/UX changes:
- Restore the device selection chevron/icon in mobile endpoints
- Override the leave/join button action in mobile endpoints so that it
opens the device selection contextual menu, which also includes the
"Leave audio" option. This retains the old behavior (leaving audio)
while also providing an way for users to change devices mid-call in
mobile browsers.
Move device selection dropdown to microphone button
Move option 'leave audio' to an option within the dropdown
Remove the audio exit button when device !== mobile
When mic is locked, user is not able to talk so it doesn't make sense
to alert the user about unmuting (mute button is also disabled when mic
is locked).
Closes#12048
When joining/returning breakouts, audio would always connect
with full audio. This can lead to a performance problem, once
all listenonly users would join full audio, increasing the
number of streams in FreeSWITCH.
We now have a consistent behavior, which is:
1 - The choice made by the user in the main room is predominant:
if mic is active in main room, user will automatically
join mic in breakout room. When returning from breakout
room, user will also join with mic again.
2 - Changes made in breakout room won't have effect when
returning to the main room. This means if user, for example,
change from listenonly to mic in breakout room, the returning
will consider the option choosen previously (listenonly) and
listenonly will be active again in the main room.
3 - If user didn't join audio in the main room, the audio modal
will be prompted when joining the breakout room (this is
a special case of (1))
The following is some technicall information:
InputStreamLiveSelector (component.jsx) now calls
'handleLeaveAudio' function, which is the default
function when user leaves audio (also used when
dynamic devices are inactive).
We now store information about user's choice (mic or listenonly)
using local storage, instead of the previous cookie method (this
was triggering some warnings in browser's console).
Also did a small refactoring to match eslint rules.
Fixes#11662.
When listen only fallbacks from Kurento to FreeSWITCH, we must guarantee
the muted alert won't be created, speciallly because listen-only's fallback
uses a flow similar to microphone's. Client currently crashes when this
happens: this commit fixes this peoblem.
Allow listenonly users to change output devices
Fixed dynamic audio device change for firefox
Fixed shortcuts for audio join/leave
Show (with a bold font) the current selected device
[performance] Prevent calling mediaDevices.enumerateDevices every time we render
the selector. This adds a delay (~200ms, on my chrome setup) to render this component
[performance] Do not call enumerateDevices to search for new devices, instead we listen on mediaDevices.deviceChange event
Small refactoring and fixed a few errors that were being throw in browser's console
Fixed device selection when this is done in audio-settings modal
Fallback to default device when current device is removed
Truncate device name length
Renamed "Input","Output" labels to "Microphone","Speakers", respectively
Update eslint rule for accessKey
* updating old tests + collecting more snapshots [WIP]
* updates old test suites and collects more visual regressions screenshots
* remove snapshots and their collection temporary
* run tests from packages.json
* update test execution command/export constants from .env to core/constants.js
* update tests/puppeteer/README.md file
* update LOOP_INTERVAL variable call and assign timeouts to the webcam share spec
* redefine waitForSelector func in page.js, update chat test suite specs and add poll chat message test spec
* Merge remote-tracking branch 'upstream/develop' into updating-old-tests-visual-with-visual-regressions
* update webcam test specs collecting videoPreviewTimeout and use it to wait for videoPreview selector
* update custom parameters test suite
* update breakout test suite
* update webcam layout test suite
* update multiusers test suite
* update notifications test suite
* update presentation test suite
* whiteboard test suite
* screenshare test suite
* update sharednotes test suite
* user ELEMENT_WAIT_TIME variable from timeouts constants.js
* list TEST CONSTANTS by category
* add poll test suite and assigns the right unassigned timeouts
* set test pages to headless