Commit Graph

40 Commits

Author SHA1 Message Date
damencho
6bd3ed5ae4 feat(visitors): Adds showing shared files in the meeting. 2025-07-10 19:34:37 +03:00
damencho
939fdf6c8e feat(visitors): Drops propagating moderator_id to visitor nodes.
It is not needed to propagate it as based on userId and the request of forcePromote we can make decision in main prosody.
2025-03-31 11:49:26 -05:00
damencho
5fd050b77f feat(prosody): Moves is_admin to util. 2025-03-17 08:43:37 -05:00
damencho
33e484a847 fix(fmuc): Updates auto-promote case checks. 2025-02-19 18:18:52 -06:00
damencho
8d8e83cdfd fix(visitors): Destroy visitors room earlier on main=0.
Sometimes jicofo may leave before the disconnect iq reaches the visitor prosody, that will cause a reload for all visitors instead of a dialog for conference ended.
2025-01-27 09:41:36 -06:00
damencho
938d112f6b fix(visitors): Fix a check that can result missing main participants. 2024-12-17 10:59:26 -06:00
damencho
b0ffc2cd69 feat(visitors): Propagate moderator role to visitor nodes.
Features that depend on presence and moderator role will start working for visitors (like follow-me).
2024-12-05 11:50:33 -06:00
damencho
da35c96afd fix(visitors): Fixes detection of turning of subtitles by visitor. 2024-11-07 11:12:08 -06:00
damencho
15ba1bb280 fix(visitors): Skips a log if room is being destroyed. 2024-10-10 14:16:26 -05:00
damencho
62856b0f58 feat(prosody): Moves respond_iq_result to util. 2024-09-20 15:31:35 -05:00
Дамян Минков
ede26956e8 feat(visitors): Transcriptions for visitors. (#15119)
* feat(visitors): Transcriptions for visitors.

* squash: Fixes filter iq.

* feat: Rewrites room name requests in rayo iq for visitors.

* squash: Handles visitors count that request transcriptions and the languages requested.

* fix(subtitles): Make sure we show captions button when no features but is transcribing.
2024-09-13 18:35:34 -05:00
damencho
b989307c1e feat(visitors): Adds option to turn off auto promotion with token.
Fixes #14699.
2024-09-06 12:56:33 -05:00
damencho
8ddab7464c feat(visitors): Force promote works for all moderators. 2024-06-27 16:04:32 +03:00
damencho
205f88ec5a fix(system_chat_message): Fixes delivering system messages to visitors. 2024-06-12 07:20:26 -05:00
damencho
6691f56d0e feat: Checking for visitors in available hosts.
Supports different domains for visitors, including one for jigasi and jigasis to be visitors.
2024-05-08 15:47:54 -05:00
Дамян Минков
f279e634e4 * feat(visitors): Shows notification when not-allowed error is detected.
* feat(visitors): Adds extensions to errors to distinguish them.

* feat: Shows notification when not-allowed error is detected.

* chore(deps) lib-jitsi-meet@latest

https://github.com/jitsi/lib-jitsi-meet/compare/v1822.0.0+58a91446...v1823.0.0+ec98b020

* squash: Update texts.
2024-05-03 16:30:43 -05:00
damencho
ba1102100a feat(visitors): Adds conference duration for visitors. 2024-02-06 10:16:30 -06:00
damencho
0a0b0a760e fix: Fixes promoting the only moderator in a non vpass meeting. 2024-01-31 17:53:16 -06:00
Дамян Минков
fec6de4536 fix(visitors): Lowers visitor's hand on leave. (#14302)
* fix(visitors): Lowers visitor's hand on leave.

* squash: Drop not needed nick.

That is used only when raising hand.
2024-01-31 11:49:16 -06:00
Дамян Минков
5871e50a20 * feat: Stores vpaas check in room object.
* feat: Clear queues on destroy for muc rate limit join/leave.

* feat: Stores vpaas check in room object.

* squash: Replace one regexp with starts_with.
2024-01-22 11:48:35 -06:00
Дамян Минков
9ebab2c7d0 feat: Visitors promotion (#14119)
* fix: Fixes wrong warning message.

* fix: Detect enables/disables visitors for a room.

* fix: We need customusername in all cases of auto-allow setting.

* feat: Sends promotion-request to all moderators.

* feat(visitors): Implements request promotion.

* feat(visitors): Implements single moderator and vpass cases for moderators.

* fix: Fixes clearing request instances from UI.

* feat: Implements visitors approval for mobile.

* squash: Drops unused and wrong report for auto allow promotion.

* squash: Returns early based on count.

* squash: Moves translation to common key.

* squash: Adds dependencies for useCallback.

* squash: comments.

* squash: Refactor 1 to unify with native.

* squash: Rename some styles.

* squash: Fixes error dew to fewer hooks error.

* squash: Renames VISITOR_PROMOTION_REQUEST_DENIED.

* squash: Fix renaming component.

* squash: Suggestions.
2023-12-14 08:31:58 -06:00
Дамян Минков
0e55cbbda6 Clean up prosody modules with some extra checks (#14020)
* fix: Adds check for jitsi_meet_room not being string.

Oct 20 12:22:50 mod_bosh        error   Traceback[bosh]: /usr/share/jitsi-meet/prosody-plugins/token/util.lib.lua:336: bad argument #1 to 'lower' (string expected, got userdata)
        stack traceback:
        [C]: in function 'lower'
        /usr/share/jitsi-meet/prosody-plugins/token/util.lib.lua:336: in function 'verify_room'
        ...re/jitsi-meet/prosody-plugins/mod_token_verification.lua:78: in function 'verify_user'

* fix: Adds check for missing speaker stats for occupant.

error   Traceback[c2s]: ...itsi-meet/prosody-plugins/mod_speakerstats_component.lua:124: attempt to index field '?' (a nil value)
        stack traceback:
        ...itsi-meet/prosody-plugins/mod_speakerstats_component.lua:124: in function '?'

* fix: Nil check for breakout_rooms.

c2saaaad95a16c0 error   Traceback[c2s]: ...re/jitsi-meet/prosody-plugins/mod_muc_breakout_rooms.lua:345: attempt to index local 'main_room' (a nil value)
        stack traceback:
        ...re/jitsi-meet/prosody-plugins/mod_muc_breakout_rooms.lua:345: in function '?'
        /usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>
        (...tail calls...)
        /usr/lib/prosody/modules/muc/muc.lib.lua:496: in function </usr/lib/prosody/modules/muc/muc.lib.lua:492>

* fix: Adds nil check in allowners.

c2saaaae3024810 error   Traceback[c2s]: /usr/share/jitsi-meet/prosody-plugins/mod_muc_allowners.lua:171: attempt to index local 'room' (a nil value)
        stack traceback:
        /usr/share/jitsi-meet/prosody-plugins/mod_muc_allowners.lua:171: in function '?'
        /usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>

* fix: Adds nil check in lobby.

mod_bosh        error   Traceback[bosh]: ...share/jitsi-meet/prosody-plugins/mod_muc_lobby_rooms.lua:168: attempt to index local 'lobby_room' (a nil value)
        stack traceback:
        ...share/jitsi-meet/prosody-plugins/mod_muc_lobby_rooms.lua:168: in function '?'
        /usr/share/lua/5.2/prosody/util/filters.lua:25: in function 'filter'
        /usr/lib/prosody/modules/mod_bosh.lua:361: in function 'send'
        /usr/lib/prosody/modules/muc/mod_muc.lua:495: in function '?'

* fix: Fixes nil error in fmuc.

s2sinaaaaf2817260       error   Traceback[s2s]: /usr/share/jitsi-meet/prosody-plugins/mod_fmuc.lua:295: attempt to index local 'occupant' (a nil value)
        stack traceback:
        /usr/share/jitsi-meet/prosody-plugins/mod_fmuc.lua:295: in function '?'
        /usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>
        (...tail calls...)
        /usr/lib/prosody/modules/muc/muc.lib.lua:1201: in function </usr/lib/prosody/modules/muc/muc.lib.lua:1194>

* fix: Fixes nil occupant.

c2s55f4d5411dd0 error   Traceback[c2s]: /usr/share/jitsi-meet/prosody-plugins/mod_muc_flip.lua:120: attempt to index local 'kicked_occupant' (a nil value)
        stack traceback:
        /usr/share/jitsi-meet/prosody-plugins/mod_muc_flip.lua:120: in function '?'
        /usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>
        (...tail calls...)
        /usr/lib/prosody/modules/muc/muc.lib.lua:791: in function </usr/lib/prosody/modules/muc/muc.lib.lua:616>

* fix: Fixes caching main room.

Objects should not be set in room._data as this field is being serialized and we see errors like.

error   Traceback[c2s]: /usr/share/lua/5.2/prosody/util/serialization.lua:34: Can't serialize userdata
        stack traceback:
        [C]: in function 'error'
        /usr/share/lua/5.2/prosody/util/serialization.lua:34: in function </usr/share/lua/5.2/prosody/util/serialization.lua:33>
        (...tail calls...)
        /usr/share/lua/5.2/prosody/util/serialization.lua:199: in function 'serialize_table'
        /usr/share/lua/5.2/prosody/util/serialization.lua:197: in function 'serialize_table'
        /usr/share/lua/5.2/prosody/util/serialization.lua:197: in function 'serialize_table'
        /usr/share/lua/5.2/prosody/util/serialization.lua:219: in function </usr/share/lua/5.2/prosody/util/serialization.lua:217>
        (...tail calls...)
        /usr/lib/prosody/modules/mod_storage_memory.lua:42: in function </usr/lib/prosody/modules/mod_storage_memory.lua:40>
        (...tail calls...)
        ...re/jitsi-meet/prosody-plugins/mod_muc_breakout_rooms.lua:207: in function 'create_breakout_room'

* fix: Fixes calling save_occupant after changing its role.

* squash: Fixed passed value to type.
2023-11-06 15:31:59 -06:00
damencho
53960baf76 fix(visitors): Fixes filtering initial msgs to main participants.
Filters initial msg for <subject/>.
2023-10-24 18:27:16 -05:00
eemehmet
106452d857 fix(visitors): Fixes duplicated messages sent from guest domain. 2023-10-06 10:33:23 -05:00
damencho
9ccdb62872 fix(visitors): Fixes delivering visitors presence to jicofo. 2023-06-02 10:46:46 -05:00
damencho
06e86a2f3e fix(visitors): Fixes s2s multiple connections.
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).
2023-05-31 18:20:05 -05:00
damencho
c781884532 fix(visitors): Filters some more presences coming back to main prosody.
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.
2023-05-23 09:35:03 -05:00
damencho
7272fd62a0 fix(visitors): Filters some presences coming back to main prosody.
Still is not filtering stanzas coming on s2s and it directly routes it back to the main prosody when it goes through jicofo lock feature.
2023-05-23 09:35:03 -05:00
damencho
f21bd62ed0 fix(visitors): Change log level. 2023-05-23 09:35:03 -05:00
damencho
22c6b72a75 fix: Do not allow visitors while lobby is enabled. 2023-05-15 16:19:16 -05:00
damencho
2710273069 feat: Sets meeting id using the connect method. 2023-05-02 12:40:08 -05:00
damencho
07af18e284 fix: Handles disconnect coming from jicofo to destroy visitor rooms.
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.
2023-05-02 12:40:08 -05:00
Дамян Минков
e3e5f1fbfa feat(visitors): Handles locked rooms for visitors. (#13296)
* 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.
2023-05-01 17:16:16 -05:00
damencho
e169979bab fix: Fix logs to use module logger.
When using log in the log file is printed 'general' instead of the module that logs it.
2023-04-19 08:55:58 -05:00
damencho
deadd8ad07 fix: Updates the rules for visitor room destroy.
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.
2023-04-05 17:12:37 -05:00
Дамян Минков
275e7b00a9 feat: Visitors stats (#13139)
* 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.
2023-03-30 17:23:04 -05:00
Дамян Минков
397b94da79 feat: Visitors chat (#13112)
* 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.
2023-03-28 09:02:43 -05:00
Дамян Минков
1c04a41081 fix(visitors): Visitor updates - request to participate (#13106)
* 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.
2023-03-24 11:54:11 -05:00
Дамян Минков
9fbbe05d6c feat: Adds docs, config and scripts around the visitor mode. (#12658)
* feat: Moves handle of vnode from conferenceIQ stanza error to result.

* feat: Handles redirected to visitor node event.

* feat: Adds README and configurations.

* squash: Drop comment.

* copy edits

* image fix

* fix background for dark mode

* fix the background

* feat: Update s2soutinjection.

* Update README commands formatting.

* Update doc/extra-large-conference/README.md

Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>

* squash: Creates a generateVisitorConfig helper.

* squash: Moves the folder from doc.

* squash: Update example.

* squash: Drop config.

* squash: Rename var to look like template.

* squash: Fix plugins path.

* squash: Fix sort order of import.

* squash: Fix lint errors.

Co-authored-by: scott boone <scott.e.boone@gmail.com>
Co-authored-by: Scott Boone <scott.boone@8x8.com>
Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
2022-12-13 08:26:22 -06:00
Дамян Минков
76471a0ea9 feat: Modules for implementing visitor nodes. (#12593)
* 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.
2022-11-28 14:18:33 -06:00