80 lines
4.0 KiB
Lua
80 lines
4.0 KiB
Lua
-- conference.localhost fragment. See prosody.cfg.lua for the fragment layout.
|
|
--
|
|
-- Kept in its own fragment so that extending environments (e.g. the
|
|
-- jitsi-meet-branding private plugins) can skip this Include and re-declare
|
|
-- the component with extra modules appended. Keep this block self-contained:
|
|
-- everything conference.localhost needs must live in this file.
|
|
|
|
Component "conference.localhost" "muc"
|
|
-- Module order follows prod (conference.8x8.vc) so that same-priority hook
|
|
-- execution order matches production. Test-only modules are inserted at
|
|
-- sensible positions relative to the shared modules they interact with.
|
|
modules_enabled = {
|
|
"muc_hide_all";
|
|
"token_verification"; -- prod pos 2: gate check runs before meeting-id / password logic
|
|
"muc_max_occupants";
|
|
"muc_resource_validate"; -- test-only: occupant gate, alongside muc_max_occupants
|
|
"muc_password_whitelist";
|
|
"token_affiliation"; -- test-only: reads auth_token set by token_verification above
|
|
"muc_meeting_id"; -- prod pos 9: after gate checks
|
|
"muc_flip";
|
|
"test_observer"; -- test-only
|
|
"filter_messages";
|
|
"muc_displayname"; -- prod pos 21: after filter_messages
|
|
-- mod_muc_limit_messages registers its message/bare hook at priority -1
|
|
-- (below the default 0 used by filter_messages), so filter_messages
|
|
-- always fires first. Messages it blocks (return true) never reach
|
|
-- muc_limit_messages and do not count toward the per-room cap.
|
|
"muc_limit_messages";
|
|
-- Destroys a room after a short timeout when only Jibri/transcriber remain.
|
|
"muc_cleanup_backend_services";
|
|
}
|
|
|
|
anonymous_strict = true
|
|
|
|
-- Same as prod: only Prosody admins (jicofo, i.e. focus@auth.localhost) may
|
|
-- create a room. Regular clients (anonymous or JWT) can only join a room
|
|
-- that focus has already created.
|
|
restrict_room_creation = true
|
|
|
|
-- Used by mod_muc_max_occupants tests (2 occupants max).
|
|
muc_max_occupants = 2
|
|
|
|
-- Clients on whitelist.localhost bypass the occupant limit.
|
|
-- Clients on auth.localhost are the focus (jicofo) admin; they also bypass
|
|
-- the limit and are not counted against it.
|
|
-- Clients on recorder.localhost are Jibri/transcriber accounts; they bypass
|
|
-- token_verification (is_jibri / is_transcriber JID prefix checks still apply).
|
|
muc_access_whitelist = { "whitelist.localhost", "auth.localhost", "recorder.localhost" }
|
|
|
|
-- Used by mod_muc_password_whitelist tests: clients from whitelist.localhost
|
|
-- are injected with the room password and bypass the password check.
|
|
muc_password_whitelist = { "whitelist.localhost" }
|
|
|
|
-- Required by util.lib.lua domain-mapping helpers and mod_jitsi_permissions.
|
|
muc_mapper_domain_base = "localhost"
|
|
muc_mapper_domain_prefix = "conference"
|
|
|
|
-- focus@auth.localhost is a Prosody admin and is therefore exempt from
|
|
-- token_verification on both muc-room-pre-create and muc-occupant-pre-join,
|
|
-- mirroring production where jicofo is a Prosody admin.
|
|
|
|
-- mod_muc_cleanup_backend_services: short timeout so tests don't wait 20 s.
|
|
services_empty_meeting_timeout = 1
|
|
|
|
-- mod_time_restricted (loaded on demand by mod_time_restricted_spec, not in
|
|
-- modules_enabled, so it does not destroy other tests' rooms): a fractional
|
|
-- limit keeps the test fast — 0.125 min = 7.5 s to the limit, plus a 3 s
|
|
-- wrap-up grace before the room is actually destroyed.
|
|
conference_max_minutes = 0.125
|
|
conference_grace_seconds = 3
|
|
|
|
-- mod_muc_limit_messages: cap per room and honour auth tokens.
|
|
muc_limit_messages_count = 3
|
|
muc_limit_messages_check_token = true
|
|
|
|
-- Blocks unauthenticated users from sending room-owner config IQs
|
|
-- (muc#owner queries), which is how moderator status is granted to other
|
|
-- participants and how room configuration is changed.
|
|
token_verification_require_token_for_moderation = true
|