我正在尝试禁止某些用户进行音频和视频通话。阅读文档后,我找到了 mod_stun_disco 的访问规则。所以我的配置如下所示:
acl:
local:
user_regexp: ""
loopback:
ip:
- 127.0.0.0/8
- 10.10.0.0/16
- ::1/128
- ::FFFF:127.0.0.1/128
### split users and admins for acl message shaper and admin login
admin:
user:
- [email protected]
- [email protected]
poweruser:
user:
- [email protected]
access_rules:
local:
allow: local
c2s:
deny: blocked
allow: all
announce:
allow: admin
configure:
allow: admin
muc_create:
allow: local
pubsub_createnode:
allow: local
trusted_network:
allow: loopback
stundisco:
allow: poweruser
deny: all
mod_disco: {}
mod_stun_disco:
credentials_lifetime: 12h
offer_local_services: false
access: stundisco
services:
-
host: 10.10.10.10
port: 3478
type: stun
transport: udp
restricted: false
-
host: 10.10.10.10
port: 3478
type: turn
transport: udp
restricted: true
但这不会限制管理员和用户 1 进行音频或视频通话。这是 ejabberd 日志的一部分:
2022-06-11 15:11:08.442999+02:00 [debug] <0.586.0>@supervisor:report_progress/2:1562 PROGRESS REPORT:
supervisor: {local,ejabberd_gen_mod_sup}
started: [{pid,<0.614.0>},
{id,mod_stun_disco_4a85c490},
{mfargs,
{gen_server,start_link,
[{local,mod_stun_disco_4a85c490},
mod_stun_disco,
[<<"myxmpp.com">>,
#{access => stundisco,
credentials_lifetime => 43200000,
offer_local_services => false,secret => undefined,
services =>
[{service,undefined,undefined,
{10,10,10,10},
<<>>,<<>>,3478,false,udp,stun,<<>>,
undefined},
{service,undefined,undefined,
{10,10,10,10},
<<>>,<<>>,3478,true,udp,turn,<<>>,
undefined}]}],
[{max_queue,10000}]]}},
{restart_type,transient},
{significant,false},
{shutdown,60000},
{child_type,worker}]
那么我可以使用 mod_stun_disco 访问规则来禁止语音和视频通话吗?还是我还需要做其他事情?谢谢。
答案1
您的配置看起来符合此目的。我安装了 ejabberd 22.05,配置与您展示的类似,并且它按预期工作:管理员用户在发送时收到禁止错误此查询. 并且 user2 通过该查询获取已配置的服务。
也许您在更改配置后忘记重新加载/重新启动 ejabberd?或者修改了 ejabberd 根本无法读取的配置文件(也许有多个配置文件来自较旧的版本...)。或者也许您正在使用较旧的 ejabberd 版本,该版本可能存在一些错误...您没有提到您正在使用哪个 ejabberd 版本。