Ejabberd,仅允许文本消息并禁止某些用户进行音频和视频通话

Ejabberd,仅允许文本消息并禁止某些用户进行音频和视频通话

我正在尝试禁止某些用户进行音频和视频通话。阅读文档后,我找到了 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 版本。

相关内容