We cannot use filters with s2s as not sending a stanza will result skipping existing connection and creating a new one.
This also clears some of the "No hosts[from_host] (please report)" errors, but there is still one (easy to repro is we disable the jicofo locking) on join we see a presence trying to be routed using the wrong from (virtual tenant jid).
When the first visitor joins and the jicofo-lock was activated some presences had wrong from (the tenant form that needs to be only between clients and server) and was processed and sent over s2s causing some errors on the other side.
Drops destroy room for no main participants from vnode. In case of breakout rooms we can end up with nobody in the main room for some time, till they are back from the breakout rooms.
* feat(visitors): Handles locked rooms for visitors.
* squash: Handle locked room password on promotion.
* squash: quotes.
* squash: Renames main_domain to local_domain.
* squash: Renames fmuc_main_domain to main_domain.
Adds required config to point to the main virtual host of the main prosody. There are cases when the first visitor tries to join and there are not main participants as they are in the queue waiting for the vnode connect message and we cannot get dynamically the main domain.
* squash: Fix check for main_domain config.
Will destroy room immediately when there are no main participant, cause anyway the main room will be destroyed and jicofo will leave this room.
Visitors will reload when seeing jicofo leaving.
When there are no visitors we give 15 seconds for them to connect and after that we destroy the room.
* fix: Fixes mac occupants check logic.
Now works and with missing muc_access_whitelist option.
* feat: Adds visitor stats.
* squash: Drops check for healthcheck room.
* 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.
* feat: Modules for implementing visitor nodes.
Still WIP, uses visitor nodes prosodies where we create the main participants and forward the visitors to watch. Used for huge conferences.
* squash: Fix comments.