Исправление ошибок ICE 1107 и 1020 в BigBlueButton

Дата: 2026-01-10
Проблема: Ошибки ICE 1107 (сбой подключения) и 1020 (медиа не может достичь сервера)
Домен: school.cdto.life

Выявленная проблема

Переменные external_rtp_ip и external_sip_ip были закомментированы в файле /opt/freeswitch/etc/freeswitch/vars.xml, что приводило к тому, что FreeSWITCH не знал внешний IP адрес для RTP трафика. Это критично для работы WebRTC.

Выполненные исправления

1. Раскомментирование переменных FreeSWITCH

Файл: /opt/freeswitch/etc/freeswitch/vars.xml

Переменные external_rtp_ip и external_sip_ip были установлены в значение 89.179.242.240 (внешний IP сервера).

Результат проверки:

external_rtp_ip: 89.179.242.240
external_sip_ip: 89.179.242.240
ext-rtp-ip: $${external_rtp_ip}
ext-sip-ip: $${external_sip_ip}

2. Перезапуск сервисов

  • ✅ FreeSWITCH перезапущен
  • ✅ bbb-webrtc-sfu перезапущен
  • ✅ Все сервисы работают

Текущая конфигурация

FreeSWITCH

  • external_rtp_ip: 89.179.242.240
  • external_sip_ip: 89.179.242.240
  • ext-rtp-ip: использует переменную $${external_rtp_ip}
  • ext-sip-ip: использует переменную $${external_sip_ip}

mediasoup (bbb-webrtc-sfu)

  • webrtc.announcedIp: 89.179.242.240
  • webrtc.listenIp: 0.0.0.0
  • plainRtp.announcedIp: 89.179.242.240
  • plainRtp.listenIp: 10.218.14.37 (внутренний IP контейнера)
  • TURN сервер настроен: school.cdto.life:3478
  • STUN сервер настроен: stun:school.cdto.life:3478

TURN сервер (coturn)

  • external-ip: 89.179.242.240
  • relay-ip: 10.218.14.37
  • listening-port: 3478 (UDP/TCP)
  • Статус: ✅ активен

Порты mediasoup workers

  • Диапазон портов WebRTC: 24577-32768 (UDP)
  • Порты открываются динамически при создании медиа-транспортов

Важные замечания

Порты на роутере

Для работы WebRTC необходимо пробросить следующие порты на роутере:

  1. 3478 (UDP/TCP) - TURN/STUN сервер
  2. 24577-32768 (UDP) - WebRTC медиа-порты (mediasoup workers)
  3. 80, 443 (TCP) - HTTP/HTTPS

Проверка доступности портов:
- Порты должны быть проброшены на внешний IP 89.179.242.240
- Проверьте конфигурацию роутера/файрвола

Возможные причины ошибок ICE 1107 и 1020

  1. Порты WebRTC не проброшены на роутере - медиа не может достичь сервера
  2. NAT traversal проблемы - клиенты не могут установить прямое соединение
  3. TURN сервер недоступен извне - порт 3478 должен быть доступен из интернета
  4. Firewall блокирует трафик - проверьте настройки файрвола

Настройка проброса портов на хосте

Выполнено: Настроен проброс UDP портов с хоста (192.168.1.112) в контейнер (10.218.14.37)

Настроенные правила iptables

  1. TURN/STUN порт (3478):
  2. UDP 3478 → 10.218.14.37:3478
  3. TCP 3478 → 10.218.14.37:3478

  4. WebRTC порты (16384-32768):

  5. UDP 16384-32768 → 10.218.14.37

  6. Forwarding правила:

  7. Разрешена пересылка трафика для всех настроенных портов

Скрипт для настройки: /home/cdto/DENKART/scripts/setup-bbb-udp-forwarding.sh

Следующие шаги

  1. ✅ Исправлена конфигурация FreeSWITCH
  2. ✅ Сервисы перезапущены
  3. ✅ Настроен проброс портов на хосте через iptables
  4. ✅ Порты проброшены на роутере (проверено пользователем):
  5. WebRTC: 16384-32768 UDP → 192.168.1.112
  6. HTTP: 80 TCP/UDP → 192.168.1.112
  7. HTTPS: 443 TCP/UDP → 192.168.1.112
  8. TURN-STUN: 3478 TCP/UDP → 192.168.1.112
  9. Тестирование соединения - попробуйте подключиться к конференции и проверить работу видео/аудио
  10. Проверка логов - следите за логами на наличие ошибок:
    bash lxc exec BBB-CONT22-1 -- journalctl -u bbb-webrtc-sfu -f lxc exec BBB-CONT22-1 -- tail -f /var/log/turnserver/turnserver.log

Сохранение правил iptables

Для сохранения правил после перезагрузки:

sudo apt install iptables-persistent
sudo netfilter-persistent save

Диагностика

Проверка конфигурации

# Проверка переменных FreeSWITCH
lxc exec BBB-CONT22-1 -- bbb-conf --check | grep -E "external_rtp_ip|external_sip_ip"

# Проверка конфигурации mediasoup
lxc exec BBB-CONT22-1 -- cat /etc/bigbluebutton/bbb-webrtc-sfu/production.yml

# Проверка TURN сервера
lxc exec BBB-CONT22-1 -- cat /etc/turnserver.conf | grep -E "external-ip|relay-ip"

Проверка портов

# Проверка TURN сервера
lxc exec BBB-CONT22-1 -- ss -tuln | grep 3478

# Проверка медиа-портов (открываются динамически)
lxc exec BBB-CONT22-1 -- ss -tuln | grep -E "24577|32768"

Связанные документы

  • /home/cdto/DENKART/docs/operations/bbb-ice-1010-complete-fix.md - Полное исправление ICE 1010
  • /home/cdto/DENKART/docs/troubleshooting/TURN-CONFIGURATION-COMPLETE.md - Конфигурация TURN сервера
  • /home/cdto/DENKART/docs/setup/router-port-forwarding.md - Настройка проброса портов на роутере