Skip to content
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

Start and end connections based on "inCall" flags changes #2610

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

danxuliu
Copy link
Member

@danxuliu danxuliu commented Dec 4, 2022

Until now the connections were started when a participant joined with audio and/or video (or, if there was no HPB, if the self participant had audio and/or video), and ended when a participant left the call. If a participant starts or stops publishing while being in the call, either because the user now selected a microphone or camera or because the participant was granted permissions, the participant force reconnected to the call (leave and join it again), which ensured that all other participants started or ended the connections as needed. To avoid having to force reconnect and have a smoother call experience now the clients are expected to keep track of the "inCall" flags and start and end the connections as needed with the existing session.

Note that if the client is used against an older Talk version everything would still work as before; as the other participant leaves and joins the call again with a different session when needed the call flags would not be updated for the previous session (other than to leave it), so the new code to handle the updated call flags should have no effect (and, even if it does, the connection would be established as needed against the new session once the participant joins again).

The code also takes into account the scenario when the HPB is not used, but forced reconnections may still be used without HPB for the time being. In any case, it should work as expected with or without forced reconnections.

How to test

Result with this pull request

The participant from the browser can be heard or seen from the Android app

Result without this pull request

The participant from the browser can not be heard nor seen from the Android app

@mahibi mahibi added this to the 15.2.0 milestone Dec 27, 2022
Until now the connections were started when a participant joined with
audio and/or video (or, if there was no HPB, if the self participant had
audio and/or video), and ended when a participant left the call. If a
participant starts or stops publishing while being in the call, either
because the user now selected a microphone or camera or because the
participant was granted permissions, the participant force reconnected
to the call (leave and join it again), which ensured that all other
participants started or ended the connections as needed. To avoid having
to force reconnect and have a smoother call experience now the clients
are expected to keep track of the "inCall" flags and start and end the
connections as needed with the existing session.

Note that if the client is used against an older Talk version everything
would still work as before; as the other participant leaves and joins
the call again with a different session when needed the call flags would
not be updated for the previous session (other than to leave it), so the
new code to handle the updated call flags should have no effect (and,
even if it does, the connection would be established as needed against
the new session once the participant joins again).

Signed-off-by: Daniel Calviño Sánchez <[email protected]>
@danxuliu danxuliu force-pushed the start-and-end-connections-based-on-incall-flags-changes branch from 7dcd44d to 215dbf5 Compare January 16, 2023 10:36
@github-actions
Copy link
Contributor

Codacy

Lint

TypemasterPR
Warnings111111
Errors00

SpotBugs

CategoryBaseNew
Correctness1212
Dodgy code174176
Internationalization55
Malicious code vulnerability33
Performance1010
Security22
Total206208

SpotBugs increased!

@github-actions
Copy link
Contributor

APK file: https://www.kaminsky.me/nc-dev/android-artifacts/2610-talk.apk

qrcode

To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud Talk app.

@mahibi mahibi modified the milestones: 16.0.0, 16.1.0 Mar 20, 2023
@AndyScherzinger AndyScherzinger modified the milestones: 16.1.0, 17.0.0 May 1, 2023
@mahibi mahibi modified the milestones: 17.0.0, 17.1.0 Jun 12, 2023
@AndyScherzinger AndyScherzinger removed this from the 17.1.0 milestone Aug 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants