After upgrading to jitsi-meet 2.0.8218-1 and also to 2.0.8319-1 breakout rooms stopped working. A moderator can create one, and users can be assigned (which is also shown to them), but they are all alone in the breakout room. Also the participant list in the breakout room remains empty.
prosody.err
Mar 06 18:55:10 myjitsiserver.net:muc_breakout_rooms error No main room (87977d3f-afe6-43ef-85cf-f86f25b39120@breakout.myjitsiserver.net)!
jicofo.log
Jicofo 2023-03-05 15:08:04.442 INFO: [62] [room=c66281a0-15d2-4b44-9b38-45b6a16d6ca1@breakout.myjitsiserver.net] JitsiMeetConferenceImpl.s
top#423: Stopped.
Jicofo 2023-03-05 15:08:04.442 WARNING: [62] FocusManager.conferenceRequest#118: Exception while trying to start the conference
org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 15000ms (~15s). StanzaColl
ector has been cancelled. Waited for response using: AndFilter: (StanzaTypeFilter: Presence, OrFilter: (AndFilter: (FromMatchesFilter (ignor
eResourcepart): c66281a0-15d2-4b44-9b38-45b6a16d6ca1@breakout.myjitsiserver.net, MUCUserStatusCodeFilter: status=110), AndFilter: (FromMat
chesFilter (full): c66281a0-15d2-4b44-9b38-45b6a16d6ca1@breakout.myjitsiserver.net/focus, StanzaIdFilter: id=ED7DB-39, PresenceTypeFilter:
type=error))).
at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:124)
at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:104)
at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:281)
at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:408)
at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:546)
at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:521)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.joinAs(ChatRoomImpl.java:305)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.join(ChatRoomImpl.java:230)
at org.jitsi.jicofo.conference.JitsiMeetConferenceImpl.joinTheRoom(JitsiMeetConferenceImpl.java:473)
at org.jitsi.jicofo.conference.JitsiMeetConferenceImpl.start(JitsiMeetConferenceImpl.java:320)
at org.jitsi.jicofo.FocusManager.conferenceRequest(FocusManager.kt:115)
at org.jitsi.jicofo.FocusManager.conferenceRequest$default(FocusManager.kt:96)
at org.jitsi.jicofo.xmpp.ConferenceIqHandler.handleConferenceIq(ConferenceIqHandler.kt:95)
at org.jitsi.jicofo.xmpp.ConferenceIqHandler.handleIQRequest$lambda-8(ConferenceIqHandler.kt:170)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Jicofo 2023-03-05 15:08:04.443 SEVERE: [62] Main.lambda$main$0#50: An uncaught exception occurred in thread=Thread[Jicofo Global IO Poolpool
-1-thread-24,5,main]
myjitsiserver-cfg.lua
plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }
-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "myjitsiserver.net";
external_service_secret = "secret";
external_services = {
{ type = "turn", host = "turn.myjitsiserver.net", port = 3478 },
{ type = "turns", host = "turn.myjitsiserver.net", port = 443 }
};
-- cross options deprecate with 0.12.0 RAS
-- cross_domain_bosh = true;
-- cross_domain_websocket = true;
consider_bosh_secure = true;
consider_websocket_secure = true;
-- by default prosody 0.12 sends cors headers, if you want to disable it uncomment the following (the config is available on 0.12.1)
-- http_cors_override = {
-- bosh = {
-- enabled = false;
-- };
-- websocket = {
-- enabled = false;
-- };
-- }
-- https_ports = { }; -- Remove this line to prevent listening on port 5284
-- by default prosody 0.12 sends cors headers, if you want to disable it uncomment the following (the config is available on 0.12.1)
-- http_cors_override = {
-- bosh = {
-- enabled = false;
-- };
-- websocket = {
-- enabled = false;
-- };
-- }
-- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
ssl = {
protocol = "tlsv1_2+";
ciphers = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
dhparam = "/etc/prosody/certs/dh-2048.pem";
}
unlimited_jids = { "focus@auth.myjitsiserver.net", "jvb@auth.myjitsiserver.net" }
-- STAGING - remove on prod
http_default_host = "staging.myjitsiserver.net"
VirtualHost "myjitsiserver.net"
http_host = "staging.myjitsiserver.net"
-- enabled = false -- Remove this line to enable this host
-- authentication = "anonymous"
authentication = "token" -- do not delete me - NEW with 0.12.2
-- Properties below are modified by jitsi-meet-tokens package config
-- and authentication above is switched to "token"
app_id="jitsi"
app_secret="secret="
allow_empty_token = true;
-- Assign this host a certificate for TLS, otherwise it would use the one
-- set in the global section (if any).
-- Note that old-style SSL on port 5223 only supports one certificate, and will always
-- use the global one.
ssl = {
key = "/etc/prosody/certs/myjitsiserver.net.key";
certificate = "/etc/prosody/certs/myjitsiserver.net.crt";
dhparam = "/etc/prosody/certs/dh-2048.pem";
}
av_moderation_component = "avmoderation.myjitsiserver.net"
speakerstats_component = "speakerstats.myjitsiserver.net"
conference_duration_component = "conferenceduration.myjitsiserver.net"
end_conference_component = "endconference.myjitsiserver.net"
-- we need bosh
modules_enabled = {
"bosh";
"pubsub";
"ping"; -- Enable mod_ping
"speakerstats";
"external_services";
"conference_duration";
"end_conference";
"muc_lobby_rooms";
"av_moderation";
"muc_breakout_rooms";
"room_metadata"; -- NEW
"websocket"; -- deprecated?
-- "smacks"; -- deprecated?
}
c2s_require_encryption = false -- 09.04.2022
lobby_muc = "lobby.myjitsiserver.net"
main_muc = "conference.myjitsiserver.net"
breakout_rooms_muc = "breakout.myjitsiserver.net"
room_metadata_component = "metadata.myjitsiserver.net"
muc_lobby_whitelist = { "recorder.myjitsiserver.net" } -- Here we can whitelist jibri to enter lobby enabled rooms
-- smacks_max_unacked_stanzas = 5;
-- smacks_hibernation_time = 60;
-- smacks_max_hibernated_sessions = 1;
-- smacks_max_old_sessions = 1;
Component "conference.myjitsiserver.net" "muc"
restrict_room_creation = true
storage = "memory"
modules_enabled = {
"muc_meeting_id";
"muc_domain_mapper";
-- "token_verification"; -- NOT here anymore with 0.12.2?!
"muc_rate_limit";
"polls";
}
admins = { "focus@auth.myjitsiserver.net", "jibri@auth.myjitsiserver.net" }
muc_room_locking = false
muc_room_default_public_jids = true
-- internal muc component
Component "internal.auth.myjitsiserver.net" "muc"
storage = "memory"
modules_enabled = {
"ping";
}
admins = { "focus@auth.myjitsiserver.net", "jvb@auth.myjitsiserver.net", "jibri@auth.myjitsiserver.net" }
muc_room_locking = false
muc_room_default_public_jids = true
muc_room_cache_size = 1000
c2s_require_encryption = false -- 09.04.2022
VirtualHost "guest.myjitsiserver.net" -- not anymore in 0.12.2?!
-- trying https://community.jitsi.org/t/jwt-tokens-install-guide/53359/54
-- authentication = "token"
authentication = "anonymous"
c2s_require_encryption = false -- 09.04.2022
-- allow_empty_token = true
modules_enabled = {
"bosh";
"pubsub";
"ping"; -- Enable mod_ping
"speakerstats";
"external_services";
"conference_duration";
"muc_breakout_rooms";
"av_moderation";
-- "muc_lobby_rooms"; not anymore to guest
}
app_id="myjitsiserver.net";
app_secret="secret";
-- lobby_muc = "lobby.myjitsiserver.net" -- not used before in run
main_muc = "conference.myjitsiserver.net"
breakout_rooms_muc = "breakout.myjitsiserver.net"
VirtualHost "auth.myjitsiserver.net"
modules_enabled = { "limits_exception"; }
-- No SSL with 0.12.2?
ssl = {
key = "/etc/prosody/certs/auth.myjitsiserver.net.key";
certificate = "/etc/prosody/certs/auth.myjitsiserver.net.crt";
dhparam = "/etc/prosody/certs/dh-2048.pem";
}
authentication = "internal_hashed"
VirtualHost "recorder.myjitsiserver.net"
modules_enabled = {
"ping";
-- "smacks";
}
-- smacks_max_unacked_stanzas = 5;
-- smacks_hibernation_time = 60;
-- smacks_max_hibernated_sessions = 1;
-- smacks_max_old_sessions = 1;
authentication = "internal_plain"
c2s_require_encryption = false -- 09.04.2022
allow_empty_token = true
Component "focus.myjitsiserver.net" "client_proxy"
target_address = "focus@auth.myjitsiserver.net"
component_secret = "secret"
Component "speakerstats.myjitsiserver.net" "speakerstats_component"
muc_component = "conference.myjitsiserver.net"
Component "conferenceduration.myjitsiserver.net" "conference_duration_component"
muc_component = "conference.myjitsiserver.net"
Component "endconference.myjitsiserver.net" "end_conference"
muc_component = "conference.myjitsiserver.net"
Component "avmoderation.myjitsiserver.net" "av_moderation_component"
muc_component = "conference.myjitsiserver.net"
Component "lobby.myjitsiserver.net" "muc"
storage = "memory"
restrict_room_creation = true
muc_room_locking = false
muc_room_default_public_jids = true
modules_enabled = {
"muc_rate_limit";
"polls";
}
Component "breakout.myjitsiserver.net" "muc"
restrict_room_creation = true
-- allow_empty_token = true
storage = "memory"
modules_enabled = {
"muc_meeting_id";
"muc_domain_mapper";
-- "token_verification";
"muc_rate_limit";
"polls";
}
admins = { "focus@auth.myjitsiserver.net" }
muc_room_locking = false
muc_room_default_public_jids = true
Component "metadata.myjitsiserver.net" "room_metadata_component"
muc_component = "conference.myjitsiserver.net"
breakout_rooms_component = "breakout.myjitsiserver.net"
Anybody had a similar experience?