-
Notifications
You must be signed in to change notification settings - Fork 449
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix "silent" parameter not sent again when reconnecting #10688
Fix "silent" parameter not sent again when reconnecting #10688
Conversation
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When a call was joined the value of the "silent" parameter was not tracked by the signaling object, so if the call was joined again (for example, in a forced reconnection, or if joining the call was deferred because the room was not joined yet by the signaling) "silent" was undefined, which was treated as "false" by the API. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
/backport to stable27 |
/backport to stable26 |
/backport to stable25 |
This was done, so that people that click "Join call" while the call is being ended by a moderator do not recall everyone. Had this too often with the company call after "End for everyone" was added |
Got this when updating audio/video permissions, while participant is in call:
Might be a visual bug only, but trace look like this:
|
Didn't happen for me 🤔 |
I can reproduce with the HPB. It is unrelated to this pull request, so I will merge it :-) During a forced reconnection with the HPB |
/backport to stable27 |
/backport to stable26 |
When a call was joined the value of the
silent
parameter was not tracked by the signaling object, so if the call was joined again (for example, in a forced reconnection, or if joining the call was deferred because the room was not joined yet by the signaling)silent
was undefined, which was treated asfalse
by the API.The current set of scenarios that could trigger the issue is unlikely to happen in the real world, although it is possible nevertheless. Other slightly more common cases, like the participant starting without audio and video and then selecting the devices while already in the call would not trigger a reconnection, just an update of flags (at least if no one else joined yet, but if someone else joined then the reconnection will not cause the call to be started again, it would be just a participant leaving and then joining again).
I was surprised to find that the second scenario below is also fixed by this pull request. But it turns out that when another participant joins the call it always uses
silent = true
, no matter how the call was originally started (I assumed that, as the call was already started and no notification would be sent anyway,silent
would befalse
, which would have caused a notification to be sent if the rest of participants left and a participant that joined once the call was already started then had a reconnection, as that would cause the call to be started again). But it is fixed, so 🥳How to test (scenario 1)
Result with this pull request
The user B does not receive any notification about a started call, even if the call was started again due to the reconnection of user A
Result without this pull request
The user B receives a notification about a started call
How to test (scenario 2)
Result with this pull request
The user B does not receive any notification about a started call, even if the call was started again due to the reconnection of user A
Result without this pull request
The user B receives a notification about a started call