Раздел Slyber TURN Server внутри Slyber Inspector предназначен для комплексной проверки ретрансляции WebRTC-трафика, диагностики сетевых задержек и тестирования обоих режимов авторизации.
1. Верхняя панель глобальной телеметрии
В правой верхней части рабочей области расположены четыре сводных индикатора, которые обновляются каждую секунду:
- Active pairs: общее количество карточек пар пиров, созданных в текущей сессии.
- Relay sessions: общее количество активных релейных соединений, успешно прошедших согласование ICE-кандидатов; каждая активная пара дает две релейные сессии.
- Total throughput: суммарный входящий битрейт всех активных видеозвонков в килобитах или мегабитах в секунду.
- Relayed traffic: общий объем медиаданных в мегабайтах, прошедший через тестируемый TURN-сервер с момента запуска пар.
Нижний ряд шапки содержит вкладки переключения модулей, ссылку на документацию, ссылку на репозиторий GitHub и кнопку Reset saved state, которая полностью очищает сохраненные настройки в браузере и удаляет загруженные видеоролики из локальной базы данных IndexedDB.
2. Блок Turn server configuration
Левая панель отвечает за настройку подключения к тестируемому узлу и выбор метода получения учетных данных.
| Поле интерфейса | Значение по умолчанию | Описание параметра |
| Turn server address | 127.0.0.1:3478 | Хост и порт целевого TURN-сервера |
| Realm domain | turn.local | Домен области авторизации (realm), настроенный на сервере |
| Transport protocol | udp | Транспортный протокол: UDP, TCP, TLS или смешанный |
| Ice transport policy | relay only | Политика сбора кандидатов WebRTC |
| Authentication mode | secret | Режим проверки ключей: secret или redis |
| Credential ttl | 3600 | Время жизни сгенерированных ключей в секундах |
Важные особенности настройки:
- Ice transport policy: по умолчанию выбран принудительный режим
relay, который отключает прямые P2P-соединения и гарантирует, что весь медиапоток идет строго через TURN-сервер. - Verify server connection: кнопка в правом верхнем углу панели отправляет тестовый пакет STUN Binding на указанный адрес, проверяет доступность хранилища ключей и выводит точное время отклика сервера в миллисекундах.
3. Настройка режимов авторизации
В зависимости от выбранного значения в выпадающем списке Authentication mode открывается одна из двух дополнительных панелей:
Панель режима secret
- Credential provisioning: выбор способа генерации временного пароля HMAC-SHA1 — локальный расчет самим инспектором по общему ключу или HTTP-запрос к собственному эндпоинту TURN-сервера
/api/turn-credentials. - Shared secret key: секретная кодовая фраза, которая должна совпадать с переменной
TURN_SECRETна стороне сервера. - Turn http api url: адрес внутреннего HTTP API TURN-сервера для удаленного получения учетных данных.
Панель режима redis
- Redis address or url: сетевой адрес сервера Redis в формате хоста и порта или полной строки подключения.
- Redis acl username: имя пользователя для списков контроля доступа (ACL) Redis 6+, если они используются.
- Redis password: пароль для авторизации в базе данных Redis.
- Redis db index: числовой индекс базы данных, по умолчанию равен 0.
В режиме redis при создании каждой новой пары Slyber Inspector автоматически генерирует уникальные имена пользователей вида p3_u1_da37e6 и p3_u2_da37e6, вычисляет для них MD5-хеш по стандарту RFC 5389 и напрямую записывает ключи в Redis с указанным временем жизни (TTL).
4. Блок Media pool & pair generator
Правая панель управляет источниками медиапотоков и запуском нагрузочных пар:
- Upload video files: загрузка собственных видеороликов с компьютера. Все выбранные файлы автоматически сохраняются во встроенную базу данных браузера IndexedDB, поэтому их не нужно загружать заново после обновления страницы.
- Add 4 demo streams: мгновенное создание четырех синтетических потоков с анимированной Canvas-графикой и звуковыми генераторами тона от 220 до 520 Гц для тестирования без локальных файлов.
- Clear pool: удаление всех видеороликов из пула и очистка хранилища браузера.
- Pairs to spawn и Spawn pairs: одновременный запуск заданного количества пар звонков от 1 до 50; для каждой пары алгоритм случайным образом выбирает два разных видеоролика из пула, чтобы пиры передавали друг другу отличные друг от друга потоки.
- +1 pair: быстрое добавление еще одной пары к уже работающим соединениям.
- Mute all и Terminate all: глобальное отключение звука во всех видеоплеерах или полное завершение всех активных сессий.
5. Карточка пары и живая диагностика соединения
Каждая созданная пара отображается в виде отдельного блока, разделенного на верхнюю строку состояния и два симметричных окна участников — Peer 1 слева и Peer 2 справа.
Индикаторы и метрики карточки:
- Статус сессии пары: цветной индикатор рядом с номером пары показывает текущее состояние — желтый при выделении портов или перезапуске сессии, зеленый при активной передаче видео и звука, красный при обрыве связи.
- Релейный адрес пира: в правом верхнем углу каждого участника на зеленой плашке выводится реальный внешний IP-адрес TURN-сервера и выделенный релейный UDP-порт, например relay 89.111.175.67:49213 у первого пира и relay 89.111.175.67:49212 у второго.
- Маршрутизация медиапотоков: над каждым плеером указано имя отправляемого файла в строке Sending to peer и имя принимаемого видеопотока в строке Receiving on screen from peer, что позволяет визуально убедиться в отсутствии путаницы каналов.
- Живая телеметрия пира: справа над плеером каждую секунду обновляются текущий битрейт потока в килобитах в секунду, объем полученных данных в мегабайтах и задержка кругового пути пакета (RTT) в миллисекундах.
Кнопки управления внутри карточки пары:
- Unmute peer audio / Mute peer audio: включает или отключает прослушивание входящей звуковой дорожки конкретного участника через Web Audio API.
- Ice restart: запускает процедуру пересогласования кандидатов
pc.createOffer({ iceRestart: true })без обрыва звонка. При нажатии статус кратковременно меняется на желтый индикатор перезапуска сессии, сервер выделяет новую пару релейных UDP-портов, и поток бесшовно переключается на новый маршрут. - Revoke redis key: отображается при работе в режиме redis и позволяет одним кликом удалить ключ конкретного участника из базы данных Redis для проверки реакции сервера и клиента на отзыв доступа.
- Remove pair: корректно закрывает оба WebRTC-соединения, останавливает захват медиапотоков, закрывает сигнальные сокеты и удаляет карточку пары с экрана.