Failed by ICE keep alive

Ivan

Member
У некоторых пользователей при публикации потока или при просмотре потока вылетает ошибка
Failed by ICE keep alive
И если такая ошибка возникает, то множество попыток создать поток ни к чему не приводят.
Как понять из-за чего это ошибка?
Поймать самим ее у нас не получается.
 

Max

Administrator
Staff member
Т.е. у пользователей поток в принципе работает, они могут видеть видео, но потом он уходит в ICE Keep Alive Failed?
Пришлите пожалуйста логи и конфиги
Code:
WCS_HOME/conf
WCS_HOME/logs/server_logs/flashphoner.log (почасовая ротация)
WCS_HOME/logs/cdr
Убедитесь что в отправляемые логи попадает проблема с ICE Keep Alive Failed.
E-mail: logs@flashphoner.com

Или же пришлите SSH доступ к серверу с указанием на логи, где обнаружена проблема. Проверим.
 

Max

Administrator
Staff member
Попробуйте выкрутить timeout в flashphoner.properties или просто увеличить.
Code:
stun_freshness_timeout=999999999
По-умолчанию это значение 15000 (15 секунд).

Ошибка может связана с тем, что у пользователя NAT, который как-то подменяет порты UDP пакетов.
Если повышение таймаута не поможет,можно попробовать этих пользователей пускать через TURN сервер.
Пример: https://wcs5-eu.flashphoner.com/cli...l-streaming/firewall-traversal-streaming.html
Работает через наш turn.flashphoner.com:443
Инструкции по установке TURN сервера можно найти здесь:
https://flashphoner.com/docs/wcs5/w...nd_testing-firewall_traversal-turn_server.htm
 

Ivan

Member
Получается мы из js должны отправлять credential и username - т.е. они станут доступны всем и нашим turn сервером сможет пользоваться кто угодно...
Flashphoner.createSession({urlServer: url, mediaOptions: {"iceServers": [ { 'url': 'turn:192.168.0.1:3478?transport=tcp', 'credential': 'password1', 'username': 'username1' } ], "iceTransportPolicy": "relay"}})
Мы можем использовать 1 TURN сервер на несколько FWS?
 

Max

Administrator
Staff member
Получается мы из js должны отправлять credential и username - т.е. они станут доступны всем и нашим turn сервером сможет пользоваться кто угодно...
У вас TURN будет смотреть в мир одним портом, например 443. Остальной трафик между TURN и WCS серверами можно изолировать от внешнего мира.
Например разрешить входящий и исходящий UDP трафик только с WCS_IP.
Таким образом да, кто угодно сможет пройти аутентификацию на вашем TURN сервере, но никто не сможет им воспользоваться по назначению, кроме как публиковать или играть стримы с ваших же WCS - севреров.
Мы можем использовать 1 TURN сервер на несколько WCS?
Да.
 

Maksym

Member
Попробуйте выкрутить timeout в flashphoner.properties или просто увеличить.
Code:
stun_freshness_timeout=999999999
По-умолчанию это значение 15000 (15 секунд).
Подскажите, в flashphoner.properties параметры называются именно timeout и stun_freshness_timeout и где почитать про них. А то что-то не нашел в документации
 
Top