|
@@ -31,6 +31,7 @@ local st = require 'util.stanza';
|
31
|
31
|
local uuid_gen = require 'util.uuid'.generate;
|
32
|
32
|
|
33
|
33
|
local util = module:require 'util';
|
|
34
|
+local internal_room_jid_match_rewrite = util.internal_room_jid_match_rewrite;
|
34
|
35
|
local is_healthcheck_room = util.is_healthcheck_room;
|
35
|
36
|
|
36
|
37
|
local BREAKOUT_ROOMS_IDENTITY_TYPE = 'breakout_rooms';
|
|
@@ -94,12 +95,13 @@ function get_participants(room)
|
94
|
95
|
local participants = {};
|
95
|
96
|
|
96
|
97
|
if room then
|
97
|
|
- for nick, occupant in room:each_occupant() do
|
|
98
|
+ for room_nick, occupant in room:each_occupant() do
|
98
|
99
|
-- Filter focus as we keep it as a hidden participant
|
99
|
100
|
if jid_node(occupant.jid) ~= 'focus' then
|
100
|
101
|
local display_name = occupant:get_presence():get_child_text(
|
101
|
102
|
'nick', 'http://jabber.org/protocol/nick');
|
102
|
|
- participants[nick] = {
|
|
103
|
+ local real_nick = internal_room_jid_match_rewrite(room_nick);
|
|
104
|
+ participants[real_nick] = {
|
103
|
105
|
jid = occupant.jid,
|
104
|
106
|
role = occupant.role,
|
105
|
107
|
displayName = display_name
|
|
@@ -125,12 +127,13 @@ function broadcast_breakout_rooms(room_jid)
|
125
|
127
|
main_room._data.is_broadcast_breakout_scheduled = false;
|
126
|
128
|
main_room:save(true);
|
127
|
129
|
|
128
|
|
- local main_room_node = jid_node(main_room_jid)
|
|
130
|
+ local real_jid = internal_room_jid_match_rewrite(main_room_jid);
|
|
131
|
+ local real_node = jid_node(real_jid);
|
129
|
132
|
local rooms = {
|
130
|
|
- [main_room_node] = {
|
|
133
|
+ [real_node] = {
|
131
|
134
|
isMainRoom = true,
|
132
|
|
- id = main_room_node,
|
133
|
|
- jid = main_room_jid,
|
|
135
|
+ id = real_node,
|
|
136
|
+ jid = real_jid,
|
134
|
137
|
name = main_room._data.subject,
|
135
|
138
|
participants = get_participants(main_room)
|
136
|
139
|
};
|