Настройки Slyber TURN Server

Обновлено:

Раздел 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 address127.0.0.1:3478Хост и порт целевого TURN-сервера
Realm domainturn.localДомен области авторизации (realm), настроенный на сервере
Transport protocoludpТранспортный протокол: UDP, TCP, TLS или смешанный
Ice transport policyrelay onlyПолитика сбора кандидатов WebRTC
Authentication modesecretРежим проверки ключей: secret или redis
Credential ttl3600Время жизни сгенерированных ключей в секундах

Важные особенности настройки:

  • 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-соединения, останавливает захват медиапотоков, закрывает сигнальные сокеты и удаляет карточку пары с экрана.