This is a workaround that shaves off some edge cases around wrongfully done camera reconnections and outbound cameras getting stuck in the UI even though they arent being shared anymore
Problem: setReconnectionTimeout was being called in the first candidate generation to set the negotiation/reconnection timeout up. That caused some browsers or specific scenarios (mainly envs without STUN) to establish the negotiation (playStart) before generating any useful out-of-band candidates (relay). That would cause the timeout to be set AFTER it is supposed to be cleared due to success (playStart), making the webcam drop after a while
So I moved the setReconnectionTimeout call to a safer spot: right after the first negotiation requisition goes out to bbb-webrtc-sfu
There's some scenarios that video errors triggers multiple toast notifications
that don't have any mapped defined message feedback so they all drop to the default
permission error. This leaves the impression that something is broken at the toast
container.
Since those messages don't bring up much information about the problem we can avoid sending
them until we don't have a more informative one to notify the user.
Moderators are able to send a message to the meeting's guest lobby. This new
event reaches bbb-web and is sent to the guest user with her/his status response
while polling. All guest users that are waiting for acceptance will be able to
read this message.
enableGuestLobbyMessage is disabled by default.
It is safer to look at subscriptions's state to users instead of depending
on the initial state of the collection at mounting time. Although
i couldn't force any race conditions on this, there's a chance it could
happen. The fix avoid this problem.
This complements #11533
Replaces the PR #10604, which has been temporarily fixed a problem in 2.3a2, that is, the slide size gets crazy when turning on and off fullscreen mode. Since #10604 was just a workaround, I tried to fix it in a way making more sense.
### Closes Issue(s)
closes#10459 (already closed by #10604) and #10589
### Motivation
#10604 is fixing the problem by calling "slide change" event, although the slide has not been changed actually. I tried to fix the same problem by adding a "full screen change" event listener in the layout manager, which I think is more elegant.
Without 'exact' match, the browser fallbacks to the default inputDeviceId
This prevents the error (input device error) when breakout is ended and we try
to skipCheck the microphone when user returns to main room (assuming the
user had the microphone active before joining breakout room).