JitsiMeet 获取所有的房间列表
当部署 jitsi-meet 后,若与现有的系统进行集成,需要获取当前所有活动的房间列表来方便管理。此时需要通过 prosody 提供的 lua 插件来实现。
本文基于 docker 部署 jitsi-meet
阅读本文时请保证有 JitsiMeet docker 部署及设置 jw 授权 相关知识作为前提。
配置
使用 jitsi 提供的 muc_census,muc_size
两个插件来实现,具体配置步骤如下:
映射 prosody 端口
在 prosody 配置中,添加 ports 端口映射
1 | # ... |
修改 .env 文件加载插件
1 | # 添加如下配置 |
prosody 在 .env 中的所有配置可以通过
prosody\rootfs\defaults\conf.d\jitsi-meet.cfg.lua
来查看,里面以$
+大写字母的变量都是配置变量,可以根据代码推理每个配置的作用。
防火墙放行 7280/tcp 端口
1 | # 开放 tcp |
nginx 反向代理
1 | # nginx.conf 主文件 |
使用
获取当前所有房间
url:get
http://服务器ip:5280/room-census
结果
1
2
3
4
5
6
7
8
9{
"room_census": [
{
"room_name": "[email protected]",
"participants": 2,
"created_time": 1687876740000
}
]
}
获取房间的成员
url:get
http://192.168.3.240:5280/room?room=test&domain=meet.jitsi
其中 room 为需要查看的房间的名称,上述 room_name 中 @ 之前的部分
结果
1
2
3
4
5
6
7
8
9
10
11
12[
{
"display_name": "test3",
"jid": "[email protected]/8c5f7b20",
"email": ""
},
{
"display_name": "galens",
"jid": "[email protected]/adc31d69",
"email": ""
}
]
如果设置了 jwt 认证,则需要传递一个 token
参数,token
中 payload 的 room 值必须包含查询的房间名或者为
*
号
1 | { |
参考
Get the list of rooms - Developers / Jitsi Meet API - Jitsi Community Forum - developers & users
jitsi-meet/resources/prosody-plugins/mod_muc_census.lua at master · jitsi/jitsi-meet · GitHub
jitsi-meet/resources/prosody-plugins/mod_muc_size.lua at master · jitsi/jitsi-meet · GitHub