Do not force a reconnection when adding or removing streams to a connection
@danxuliu is already working on this.
Since May 10, 2022.
- Dominant language
- PHP
- Stars
- 2.2k
- Forks
- 587
- Avg merge
- 18h 27m
- Merged PRs (30d)
- 333
Description
When publishing permissions change, or when a call is started without an audio or video device and then the device is selected during the call, WebRTC connections need to be updated to add or remove the media streams. This requires a renegotiation, which is not currently implemented (and it would need to be implemented by all clients). As a workaround when media streams need to be added or removed for now a forced reconnection is triggered: the participant leaves and joins the call again, which recreates the connection with the new streams.
A forced reconnection may not be needed since https://github.com/strukturag/nextcloud-spreed-signaling/commit/707b1257309f5ad66f6b67f9c0dc41eaa6f72532 when the HPB is used and publishing permissions are revoked, as the HPB will automatically close the connections, but this needs to be tested. In any case a forced reconnection will still be needed for the other cases, so at some point renegotiation should be implemented.
Steps:
- nextcloud-spreed-signaling and Janus changes (signaling >= v0.5.0 and Janus >= 0.12.4 are needed)
- https://github.com/nextcloud/talk-ios/issues/725
- https://github.com/nextcloud/talk-android/issues/1815
- https://github.com/nextcloud/spreed/pull/6896
- Add proactive establishment of connections when call flags change in mobile apps (#6934 for mobile apps)
- https://github.com/nextcloud/spreed/pull/6934
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.