nextcloud / spreed

🗨️ Nextcloud Talk – chat, video & audio calls for Nextcloud
https://nextcloud.com/talk
GNU Affero General Public License v3.0
1.65k stars 438 forks source link

Improve amount of signaling messages when joining a call #8549

Open SystemKeeper opened 1 year ago

SystemKeeper commented 1 year ago

How to use GitHub


Steps to reproduce

  1. Have an ongoing call with about 55 participants
  2. Join the call

Expected behaviour

You receive a reasonable amount of signaling messages

Actual behaviour

In the first 26s you receive around 1070 signaling messages.

Details

Received signaling messages by type:

   1         type = answer;
  16         type = offer;
   1         type = answer;
 695         type = mute;
 351         type = nickChanged;
  16         type = offer;
  7          type = unmute;

https://github.com/nextcloud/spreed/pull/4181 implemented a mechanism to make sure that the initial status of all participants is actually received, which results in a high amount of signaling messages in the first 30s after joining a call. Additionally to those signaling message, some messages are also send/received via the webrtc data channel (nickChanged for example).

Some ideas

SystemKeeper commented 1 year ago

Inspired by the discussion at https://github.com/nextcloud/spreed/issues/9272, we could also think about using transient data to provide a current state to newly joined clients.