правильная настройка сервера Ejabberd

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

av.elev
Сообщения: 1
ОС: Fedora 25

правильная настройка сервера Ejabberd

Сообщение av.elev »

Всем доброго дня.
надеюсь только на вашу помощь.
дайте правильную ссылку на настройку сервера Ejabberd , так как все пишут по разному.
планируем использовать Ejabberd внутри локальной сети. настроил запустил MySQL.
Используется fedora 25 , MySQL
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21279
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: правильная настройка сервера Ejabberd

Сообщение Bizdelnick »

av.elev писал:
15.05.2020 03:20
Используется fedora 25
Серьёзно? Она же пару лет как не поддерживается. И вообще, если у Вас нет желания полностью обновлять систему раз в полгода, Fedora — крайне неудачный выбор.

По настройке советую читать официальную документацию, а не тех, кто «пишут по-разному», только делать поправку на способ установки, соответствующий дистрибутиву (dnf install ejabberd).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gesigor
Сообщения: 410
ОС: Fedora 30

Re: правильная настройка сервера Ejabberd

Сообщение gesigor »

Здравствуйте.
Прошу в помощи настройки аудио-видео звонков.
ejabberd.yml

Код: Выделить всё

hosts:
  - "test.ru"

loglevel: 4
ca_file: /opt/ejabberd/conf/certificate_ca.crt
certfiles:
  - /opt/ejabberd/conf/certificate_pr.crt
  - /opt/ejabberd/conf/certificate.crt
  - /opt/ejabberd/conf/certificate.key
listen:
  -
    port: 5222
    ip: "::"
    module: ejabberd_c2s
    max_stanza_size: 262144
    shaper: c2s_shaper
    access: c2s
    starttls_required: true
  -
    port: 5223
    ip: "::"
    module: ejabberd_c2s
    max_stanza_size: 262144
    shaper: c2s_shaper
    access: c2s
    tls: true
  -
    port: 5280
    ip: "::"
    module: ejabberd_http
    request_handlers:
      /admin: ejabberd_web_admin
#      /.well-known/acme-challenge: ejabberd_acme
  -
    port: 3478
    transport: udp
    module: ejabberd_stun
    use_turn: true
    turn_min_port: 49152
    turn_max_port: 65535
    ## The server's public IPv4 address:
    turn_ipv4_address: 88.88.88.88
#  -
#    port: 5478
#    transport: udp
#    use_turn: true
#    turn_ipv4_address: 88.88.88.88
#    module: ejabberd_stun
#  -
#    port: 5478
#    module: ejabberd_stun
  -
    port: 5349
    transport: tcp
    module: ejabberd_stun
    use_turn: true
    tls: true
    turn_min_port: 49152
    turn_max_port: 65535
    ip: 88.88.88.88
    turn_ipv4_address: 88.88.88.88
    certfile: /opt/ejabberd/conf/certificate.crt
acl:
  local:
    user_regexp: ""
  loopback:
    ip:
      - 127.0.0.0/8
      - ::1/128
      - ::FFFF:127.0.0.1/128
  admin:
    user:
      - "admin@test.ru"
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: deny
api_permissions:
  "console commands":
    from: ejabberd_ctl
    who: all
    what: "*"
  "webadmin commands":
    from: ejabberd_web_admin
    who: admin
    what: "*"
  "adhoc commands":
    from: mod_adhoc_api
    who: admin
    what: "*"
  "http access":
    from: mod_http_api
    who:
      access:
        allow:
          - acl: loopback
          - acl: admin
      oauth:
        scope: "ejabberd:admin"
        access:
          allow:
            - acl: loopback
            - acl: admin
    what:
      - "*"
      - "!stop"
      - "!start"
  "public commands":
    who:
      ip: 127.0.0.1/8
    what:
      - status
      - connected_users_number
shaper:
  normal:
    rate: 3000
    burst_size: 20000
  fast: 100000
modules:
  mod_stun_disco:
        services:
        -  host: 88.88.88.88
           port: 3478
           type: stun
           transport: udp
           restricted: false
        -  host: 88.88.88.88
           port: 3478
           type: turn
           transport: udp
           restricted: true
        -  host: test.ru
           port: 5349
           type: stuns
           transport: tcp
           restricted: false
        -  host: test.ru
           port: 5349
           type: turns
           transport: tcp
           restricted: true
  mod_roster:
    versioning: true
В ДНС записи внесены, порты открыты. Если клиенты (смартфоны с андроидом) в одной сети (wi-fi), то все работает. Сертификаты правильные, куплены. Ругани в логах нет. Единственный "варнинг"
2025-08-21 19:42:04.778805+03:00 [warning] <0.568.0>@ejabberd_captcha:get_prog_name/0:445 The option captcha_cmd is not configured, but some module wants to use the CAPTCHA feature.
Программа на телефонах - cOnnectPRO.
ОС Rocky 9, ejabberd 25.07
Тут -
https://www.process-one.net/blog/how-to-set-up-ejabberd-video-voice-calling/ утверждают, что аудио за NAT сделали.
И еще, [codenetstat -p --udp --listen][/code] не показывает ни один из портов из конфига. И если сканировать онлайн-сервисом порт, например 5349, то показывает - порт не доступен.

Код: Выделить всё

/sbin/iptables -A INPUT -i enp3s0 -p tcp --dport 5222 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p tcp --dport 5223 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p tcp --dport 5269 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p tcp --dport 5270 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p tcp --dport 3478 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p udp -m udp --dport 3478 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p tcp --dport 5349 -j ACCEPT
#/sbin/iptables -A INPUT -i enp3s0 -p udp --dport 5280 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p udp -m udp --dport 5349 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p udp -m udp --dport 5478 -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p udp -m udp -m multiport --dports 49152:65535 -m comment --comment "stun UDP" -j ACCEPT
/sbin/iptables -A INPUT -i enp3s0 -p tcp -m tcp -m multiport --dports 49152:65535 -m comment --comment "stun TCP" -j ACCEPT
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21279
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: правильная настройка сервера Ejabberd

Сообщение Bizdelnick »

gesigor писал(а):
21.08.2025 20:25
Программа на телефонах - cOnnectPRO.
А другие клиенты пробовали? Может быть, он просто не умеет STUN/TURN искать через DNS? Попробуйте вручную прописать в настройках. И советую тестировать не через мобильный интернет, там последнее время всё очень уж жёстко стали резать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gesigor
Сообщения: 410
ОС: Fedora 30

Re: правильная настройка сервера Ejabberd

Сообщение gesigor »

Bizdelnick писал:
21.08.2025 20:44
gesigor писал(а):
21.08.2025 20:25
Программа на телефонах - cOnnectPRO.
А другие клиенты пробовали? Может быть, он просто не умеет STUN/TURN искать через DNS? Попробуйте вручную прописать в настройках. И советую тестировать не через мобильный интернет, там последнее время всё очень уж жёстко стали резать.
Другие не пробовал. По правде сейчас даже не знаю с какой начать.
Поищу, есть ли настройки в проге.
А тестировать иначе не получается. С вайфаем и с проводным интернетом есть только одна "точка". И в таком случае работает. Да и с джаббером затеялся только из-за ограничений.
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21279
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: правильная настройка сервера Ejabberd

Сообщение Bizdelnick »

gesigor писал(а):
21.08.2025 21:15
С вайфаем и с проводным интернетом есть только одна "точка".
Найдите вторую. А то будете прыгать неделю с настройками, а потом выясните, что дело вовсе и не в них.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gesigor
Сообщения: 410
ОС: Fedora 30

Re: правильная настройка сервера Ejabberd

Сообщение gesigor »

Bizdelnick писал:
21.08.2025 21:15
gesigor писал(а):
21.08.2025 21:15
С вайфаем и с проводным интернетом есть только одна "точка".
Найдите вторую. А то будете прыгать неделю с настройками, а потом выясните, что дело вовсе и не в них.
Хорошо, спасибо! Попробую.
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
gesigor
Сообщения: 410
ОС: Fedora 30

Re: правильная настройка сервера Ejabberd

Сообщение gesigor »

Нашел человека с домашним wi-fi проводным интернетом. Соединились. Ситуация аналогичная, текст - сообщения проходят, голос нет. Значит скорее не блокировках дело. Попробовал другой клиент - snikket. Ситуация не поменялась. udp вероятно не "выходят" наружу. Но как проверить пока не знаю. wireshark - не поможет. Там за секунду гигабайт информации появится.
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
gesigor
Сообщения: 410
ОС: Fedora 30

Re: правильная настройка сервера Ejabberd

Сообщение gesigor »

Еще наблюдения. Wireshark наблюдает за сетевыми картами сервера, внутрь сети и в интернет. В фильтрах указал udp.port==3478 or udp.port==5349. Ни одного пакета не прошло. Звонки пробовал делать: один внутри сети (wifi), другой - просто через мобильного оператора. Получается модуль mod_stun_disco не работает? Как его протестить можно?
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21279
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: правильная настройка сервера Ejabberd

Сообщение Bizdelnick »

gesigor писал(а):
26.08.2025 20:46
Получается модуль mod_stun_disco не работает? Как его протестить можно?
Скорее клиент к нему не обращается. Пока не обратится, понять, работает ли он, сложно. А в логе что-то про него есть?
Добавлено (20:58):
Попробуйте десктопный клиент какой-нибудь и поснифайте его трафик. Возможно, пакеты просто где-то не проходят.
Последний раз редактировалось Bizdelnick 27.08.2025 01:23, всего редактировалось 1 раз.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gesigor
Сообщения: 410
ОС: Fedora 30

Re: правильная настройка сервера Ejabberd

Сообщение gesigor »

Только при старте службы:

Код: Выделить всё

@mod_stun_disco:parse_listener/1:618 Going to offer STUN/TURN service: 88.88.88.88:3478 (udp)
есть упоминание о модуле.
Хорошо, попробую.
OC Centos, FC21
https://gesigor.ru
Спасибо сказали:
gesigor
Сообщения: 410
ОС: Fedora 30

Re: правильная настройка сервера Ejabberd

Сообщение gesigor »

Попробовал линуксовые клиенты:
pidgin - при звонке просто закрывался.
gajim - соединиться с сервером не удалось. Ошибка авторизации.
PSI+ - не нашел пакет psi-plus-plugin-psimedia
kopete - не разобрался с функциями дозвона.
Короче плюнул на это дело, зашел с другой стороны - проверил проходимость udp пакетов клиент-сервер.

Код: Выделить всё

nc -ul 5349
- на сервере

Код: Выделить всё

nc -u 88.88.88.88 5349
- у клиента.
Проверил все порты относящиеся к voice call. Пакеты проходят. Я вот думаю, а не могли ли разработчики выцарапать эту функцию из кода именно ejabberd-25.07-1.x86_64 ?
OC Centos, FC21
https://gesigor.ru
Спасибо сказали: