Исправление проблемы: ICE consent expired timeout

Проблема

После присоединения к аудиоконференции через 1-2 секунды (на самом деле ~30 секунд) соединение разрывается с ошибкой:

ICE consent expired due to timeout, moving to 'disconnected' state
mediasoup: transport ICE state failed

Анализ логов

Что работает:

  1. ✅ WebSocket соединение устанавливается (код 101)
  2. ✅ Аудио сессия запускается ("Audio session started")
  3. ✅ Медиа начинает течь ("Client audio is FLOWING")
  4. ✅ ICE соединение устанавливается ("mediasoup: transport ICE state completed")

Что не работает:

  1. ❌ Через ~30 секунд ICE consent истекает
  2. ❌ Соединение переходит в состояние "disconnected"
  3. ❌ Транспорт ICE переходит в состояние "failed"

Причина

ICE (Interactive Connectivity Establishment) consent истекает из-за:
1. Проблемы с NAT/firewall - пакеты не проходят через NAT
2. Неправильная конфигурация STUN/TURN - серверы не настроены или недоступны
3. Проблемы с сетью - пакеты теряются или блокируются

Решения

1. Проверить конфигурацию STUN/TURN

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

# Проверить доступность STUN серверов
lxc exec BBB-CONT22-1 -- curl http://127.0.0.1:8090/bigbluebutton/api/stuns

2. Проверить внешний IP

# Проверить внешний IP в конфигурации
lxc exec BBB-CONT22-1 -- bbb-conf --check | grep external

Убедиться, что внешний IP правильный и доступен из интернета.

3. Проверить порты

Убедиться, что порты для WebRTC открыты:
- UDP/TCP: 16384-32768
- TCP: 80, 443

4. Настроить TURN сервер (если используется)

Если используется TURN сервер, убедиться, что он правильно настроен и доступен.

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

  1. Проверить конфигурацию STUN/TURN
  2. Проверить внешний IP и доступность портов
  3. Проверить настройки брандмауэра
  4. При необходимости настроить TURN сервер