* feat(visitors): Visitors chat.
Only live chat is supported, no room history is loaded on visitor nodes.
* feat(visitors): Append display name to promotion requests.
* feat: Indicate visitor's chat messages.
* fix: Fixes preconfigure vnodes script.
* fix: Fixes few cases around routing messages.
Disables private messaging on visitor node and add anonymous name to those visitors without a pre-set name.
* fix: Fixes grouping visitor's messages and some error translations.
* squash: Fixes main.json.
* fix(visitors): Updates docs and instructions.
* fix(visitors): Show counter only for main participants.
* fix(visitors): Skip showing the label even for 0 visitors.
It was showing 0 when visitor count down back to 0.
* feat(visitors): Small optimization for jid.split calls.
* fix: Fix skipping properties changed received before conference joined.
* fix(visitors): Propagates newly joined participants to visitor nodes.
* feat(visitors): When iAmVisitor is set, subtract visitor from participants count.
* feat(visitors): Visitors request to participate impl.
Adds option for auto promotion setting which is the only one available at the moment.
* squash: Fix comments.
* squash: Fix default case when vnode is missing.
Use a fixed set of remote tracks for a call based on the ssrc-limit set in jvb config. When this feature is enabled, JVB will signal the audio and video SSRCs and their owner/endpoint info using a bridge channel message. For audio, the mappings are determined based on the energy rankings on the audio sources present in the call and for video, the mappings are calculated based on the video sources the client requests through the video receiver constraints.
Remote tracks are then created/remapped by the client based on these mappings.
* Added track_owner_changed action
* Skip track-based large-video selection in rewriting mode.
* Register OWNER_CHANGED handler at track level.
* feat(participants) Add source info to participants in redux.
With ssrc-rewriting, the receiver constraints need to be generated using the source info received in presence. Currently they are generated from the track info in redux but with ssrc-rewriting, remote sources are not signaled and therefore created until they are being requested through receiver constraints.
Co-authored-by: James A <jqdrqgnq@users.noreply.github.com>