diff --git a/deploy/coturn/turnserver.conf.template b/deploy/coturn/turnserver.conf.template index b2c8e54..08084b6 100644 --- a/deploy/coturn/turnserver.conf.template +++ b/deploy/coturn/turnserver.conf.template @@ -44,6 +44,17 @@ pkey=/etc/coturn/certs/key.pem log-file=stdout simple-log +# Умеренная verbose-логика (`-v`/`verbose` в терминах coturn, НЕ +# `Verbose`/`-V` — тот режим сам coturn документирует как "very annoying", +# построчный дамп пакетов). Без этого флага дефолтный уровень логов не +# печатает ни строки на ALLOCATE/CreatePermission/Refresh, даже когда TURN +# реально обслуживает relay — проверено на релизе 0.0.22 (`docker logs +# vidconf-coturn-1 | grep -ci allocate` = 0 при живом рабочем звонке, +# подтверждение пришлось брать из логов LiveKit). С этим флагом coturn +# печатает по сессии: create/delete allocation, create permission, refresh — +# достаточно, чтобы дальше проверять относительно скромный вывод. +verbose + # Внешний IP сервера — обязателен для клиентов вне docker-сети # (network_mode: host здесь не даёт coturn определить публичный IP # автоматически). Для локальной разработки (без внешних участников) diff --git a/docs/deploy/DEPLOYMENT.md b/docs/deploy/DEPLOYMENT.md index 9e0daaa..2b1b6d0 100644 --- a/docs/deploy/DEPLOYMENT.md +++ b/docs/deploy/DEPLOYMENT.md @@ -374,6 +374,19 @@ state: connected`, но собеседник не видит видео/не с `docker logs vidconf-coturn-1 --since 10m 2>&1 | grep -ci allocate`. Ноль при живом звонке из-за NAT означает, что до coturn не дошли — смотрите ufw и `TURN_EXTERNAL_IP`. + ⚠️ **Эта проверка работает только с `verbose` в + `deploy/coturn/turnserver.conf.template`** (включён по умолчанию). Без + этого флага coturn пишет в лог только служебные строки старта + (листенеры, `Total auth threads`) и НИКОГДА не логирует + ALLOCATE/CreatePermission/Refresh — `grep -ci allocate` даёт `0` даже + когда relay реально обслуживает звонок. Это не гипотеза: на релизе + 0.0.22 именно так и обнаружили — рабочий relay-звонок (LiveKit + `connectionType: turn`, реальные relay-кандидаты в `49160-49200`) при + дефолтном `simple-log` без `verbose` дал `grep -ci allocate` = `0`, + подтверждение пришлось брать из логов LiveKit. Если ваш конфиг старее + и `verbose` в нём нет — добавьте флаг, перерендерите + (`./deploy/render-templates.sh`) и пересоздайте `coturn`, прежде чем + доверять этой проверке. ### TURN over TLS (порт 5349) @@ -457,7 +470,11 @@ compose-файле): копирует `fullchain.pem`/`privkey.pem` в свой 8. Провести звонок, принудительно загнав клиента в relay-режим (ICE transport policy `relay` в браузере), и убедиться, что аллокации в `docker logs vidconf-coturn-1` растут именно через TLS-соединение, а - обычный TURN на 3478 продолжает работать для остальных клиентов. + обычный TURN на 3478 продолжает работать для остальных клиентов + (с `verbose`, см. предупреждение в п.4 выше, каждая аллокация видна + отдельной строкой `ALLOCATE processed, success` — можно отличить + TLS-сессию от обычной по времени и по тому, что порт входящего + соединения — 5349). ---