Полное исправление проблемы ICE 1010 в BigBlueButton
Дата: 2026-01-09
Проблема: Тайм-аут согласования соединения (Ошибка ICE 1010)
Причина: Комплексная проблема с конфигурацией WebRTC, TURN/STUN, FreeSWITCH и mediasoup
Проблема
Пользователи получают ошибку:
- "Попытка переподключения аудио. Тайм-аут согласования соединения (Ошибка ICE 1010)"
- "Обнаружена потеря соединения и звук не появляется"
В логах видны таймауты:
CRITICAL: job timed out
MEDIA_SERVER_REQUEST_TIMEOUT
Причина
Проблема вызвана несколькими факторами:
1. Дубликаты параметров в external.xml (auto-nat и переменные)
2. Отсутствие STUN сервера в конфигурации mediasoup
3. Неправильная конфигурация TURN сервера
4. Проблемы с NAT traversal
Решение
1. Исправление FreeSWITCH конфигурации
Файл: /opt/freeswitch/etc/freeswitch/sip_profiles/external.xml
Проблема: Дубликаты параметров ext-rtp-ip и ext-sip-ip
Исправление: Удалить строки с auto-nat и оставить только те, которые используют переменные:
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>
Команды:
lxc exec BBB-CONT22-1 -- sed -i '/param name="ext-rtp-ip" value="auto-nat"/d' /opt/freeswitch/etc/freeswitch/sip_profiles/external.xml
lxc exec BBB-CONT22-1 -- sed -i '/param name="ext-sip-ip" value="auto-nat"/d' /opt/freeswitch/etc/freeswitch/sip_profiles/external.xml
2. Добавление STUN сервера в mediasoup
Файл: /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
Исправление: Добавить STUN сервер в конфигурацию:
turn:
enabled: true
urls:
- turn:school.cdto.life:3478?transport=udp
- turn:school.cdto.life:3478?transport=tcp
secret: 8e3f6c01a3bbac78ad826d04c03cd4ab3de2fba747943005af2427e7865a09fa
username: bbb
stunServers:
- urls: stun:school.cdto.life:3478
3. Проверка TURN сервера (coturn)
Файл: /etc/turnserver.conf
Проверка:
external-ip=89.179.242.240
relay-ip=10.218.14.37
4. Перезапуск сервисов
lxc exec BBB-CONT22-1 -- systemctl restart freeswitch
lxc exec BBB-CONT22-1 -- systemctl restart coturn
lxc exec BBB-CONT22-1 -- systemctl restart bbb-webrtc-sfu
Автоматизация
Скрипт для автоматического исправления:
/home/cdto/DENKART/scripts/fix-bbb-ice-1010-complete.sh
Использование:
./scripts/fix-bbb-ice-1010-complete.sh [BBB_CONTAINER] [CONTAINER_IP] [EXTERNAL_IP] [DOMAIN]
Пример:
./scripts/fix-bbb-ice-1010-complete.sh BBB-CONT22-1 10.218.14.37 89.179.242.240 school.cdto.life
Проверка
1. Проверка FreeSWITCH
lxc exec BBB-CONT22-1 -- cat /opt/freeswitch/etc/freeswitch/sip_profiles/external.xml | grep -E "ext-rtp-ip|ext-sip-ip"
Ожидаемый результат: Только строки с переменными, без auto-nat
2. Проверка mediasoup
lxc exec BBB-CONT22-1 -- cat /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
Ожидаемый результат: STUN сервер присутствует в конфигурации
3. Проверка TURN сервера
lxc exec BBB-CONT22-1 -- cat /etc/turnserver.conf | grep -E "external-ip|relay-ip"
Ожидаемый результат:
external-ip=89.179.242.240
relay-ip=10.218.14.37
4. Проверка статуса сервисов
lxc exec BBB-CONT22-1 -- systemctl status freeswitch coturn bbb-webrtc-sfu
Ожидаемый результат: Все сервисы active (running)
Связанные исправления
- FreeSWITCH конфигурация (
external_rtp_ip,external_sip_ip) -
См.
/home/cdto/DENKART/docs/operations/bbb-audio-fix.md -
mediasoup конфигурация (
webrtc.announcedIp,plainRtp.listenIp) -
См.
/home/cdto/DENKART/docs/operations/bbb-ice-1010-fix.md -
TURN сервер в bbb-webrtc-sfu
-
См.
/home/cdto/DENKART/docs/operations/bbb-ice-1010-turn-fix.md -
TURN сервер (coturn) relay-ip
- См.
/home/cdto/DENKART/docs/operations/bbb-turn-relay-ip-fix.md
Примечания
- Дубликаты параметров в
external.xmlмогут вызывать конфликты - STUN сервер необходим для правильной работы ICE
- TURN сервер необходим для обхода ограничений NAT
- Порты 3478 (UDP/TCP) и 32769-65535 (UDP) должны быть проброшены на роутере
Следующие шаги
- Протестируйте звук в BigBlueButton
- Проверьте логи на наличие ошибок:
lxc exec BBB-CONT22-1 -- journalctl -u bbb-webrtc-sfu -flxc exec BBB-CONT22-1 -- tail -f /var/log/turnserver/turnserver.log- Если проблема сохраняется:
- Проверьте порты на роутере
- Проверьте файрвол
- Проверьте сетевые маршруты