feat: Returns an error on join request with no display name. (#13546)
* feat: Returns an error on join request with no display name.
When someone tries to join a room with lobby enabled and display name is not set returns an error.
* squash: Fixes handling DISPLAY_NAME_REQUIRED with preJoin disabled.
* squash: Fixes mobile build.
* squash: Move isDisplayNameRequired redux state in lobby and introduces isDisplayNameRequiredError.
* squash: Drops unused isDisplayNameRequired.
This was used on showing prejoin when connection was established on showing prejoin. We no longer establish it at that time, so it is not possible to hit it and act on it.
* ref(conference) Simplify track creation.
If gUM fails, we do not have to retry gUM with mic only and camera only constraints. gUM has come a long way and this is not needed anymore.
* ref(conference) Filter tracks that are added to conference.
* squash: Address review comments
* fix(prejoin): Display the exact gUM error in prejoin.
* squash: Address review comments
feat(conference): Enable forced reload of client on bridge failure.
* feat(conference): Enable forced reload of client on bridge failure.
Force the client to reload when the bridge that is handling the media goes down.
This mitigates issues seen on the bridge because of a client re-joining the call with the same endpointId, BWE issues, etc.
This behavior is configurable through 'enableForcedReload' setting in config.js.
The client skips the pre-join page when the page reloads.
* squash: refactor the restart logic.
* squash: fix description
* squash: dispatch conferenceWillLeave action before reload.
* Adds a dropdown indicator which displays the status of the internet connection.
* It uses the same data as `https://network.callstats.io`.
* The algorithm for the strings displayed to the user is also the one used on `network.callstas.io`.
* Add a checkbox for skipping the prejoin page on next use. (This is hidden for
now, until we also have a settings entry for it).
* Rework 'Join by Phone' buttons and add new overlay.
* Update the device status accordingly if there were errors while adding
devices.
* The input is filled with the display name if there was one previously used.
* Join the meeting on 'Enter' press.