Failed by ICE timeout

Dinar

New Member
Прочитал на форуме все, что нашел по данному запросу, но проблема так и не решилась:

Тестирую вещание на странице .../client2/examples/demo/streaming/two_way_streaming/two_way_streaming.html.
1. Нажимаю Connect --> Publish - видео с камеры захватывается и отображается на странице.
2. Нажимаю Available - OK.
3. Нажимаю Play и выводится ошибка (на скриншоте)
upload_2019-7-16_15-6-20.png


Порты открыты, проверял как указано в документации https://docs.flashphoner.com/display/WCS52EN/Accessory tools#Accessorytools-Portroutingchecking, в том числе и утилитой jstack tools.

Логи:
Code:
sdr.log
0;WebRTC;ac82;8f537990-a7c1-11e9-8710-5bf63acd6156;0;FAILED;Stopped by session disconnect;PUBLISH;0;/87.239.31.102:54340/185.75.88.222:8443-7d09c0e9-20cb-4530-9359-45644361af6a;
0;WebRTC;ac8c;94ec82a0-a7c3-11e9-831d-f9ff65a21cae;0;FAILED;Failed by ICE timeout;PUBLISH;0;/87.239.31.102:57995/185.75.88.222:8443-c3d53269-f1a6-4e67-91aa-9f0a1b9df436;
Code:
conndr.log

2019-07-16 15:16:43;/87.239.31.102:57995/185.75.88.222:8443-c3d53269-f1a6-4e67-91aa-9f0a1b9df436;DISCONNECTED;Normal disconnect;70;
Code:
flashphoner.properties:

# Config flashphoner.properties
# To get more settings:
# ssh -p 2001 admin@localhost
# default password: admin
# show node-settings
# show node-settings | grep port

#server ip
#ip                     =185.75.88.222
ip =127.0.0.1
#ip_local               =185.75.88.222
ip_local =127.0.0.1

#webrtc ports range
media_port_from        =31001
media_port_to          =32000

#codecs
codecs                   =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv
codecs_exclude_sip       =mpeg4-generic,flv,mpv
codecs_exclude_streaming =flv,telephone-event
codecs_exclude_sip_rtmp  =opus,g729,g722,mpeg4-generic,vp8,mpv

#websocket ports
ws.port                 =8880
wss.port                =8443
Подскажите пожалуйста, что я делаю не так? У вас на демо сервере все работает без ошибок.
 

Attachments

Last edited:

Max

Administrator
Staff member
Добрый день.
Для просмотра вещания из внешней сети, вам необходимо указать в настройках публичный IP-адрес, через который доступен сервер с WCS:
Code:
ip=185.75.88.222
ip_local=0.0.0.0
 
Last edited:

Dinar

New Member
Добрый день.
Для просмотра вещания из внешней сети, вам необходимо указать в настройках публичный IP-адрес, через который доступен сервер с WCS:
Code:
ip=185.75.88.222
ip_local=0.0.0.0
upload_2019-7-16_18-48-20.png

Указал. Ошибка та же.
 

Attachments

Max

Administrator
Staff member
Укажите для локального IP:
Code:
ip_local=0.0.0.0
 

Dinar

New Member
Я проверял их:
Code:
echo -n "hello" | nc -4u -w1 wcs1.com 31001
upload_2019-7-16_20-25-42.png


Code:
echo -n "hello" | nc -4u -w1 wcs1.com 32000
upload_2019-7-16_20-26-29.png


Code:
echo -n "hello" | nc -4u -w1 wcs1.com 31000
upload_2019-7-16_20-27-38.png


Code:
echo -n "hello" | nc -4u -w1 wcs1.com 31300
upload_2019-7-16_20-28-29.png

Полный результат скана портов в файле:

Пакеты извне приходят.
 

Attachments

Last edited:

Max

Administrator
Staff member
По всей видимости, при условии открытия всех необходимых для WSC портов, возможны проблемы c реализацией ICE ввиду нескольких сетевых интерфейсов на вашем сервере.
Соберите и пришлите нам отладочную информацию и логи по инструкции на support@flashphoner.com.
 
Last edited:

Dinar

New Member
По всей видимости, при условии открытия всех необходимых для WSC портов, возможны проблемы c реализацией ICE ввиду нескольких сетевых интерфейсов на вашем сервере.
Соберите и пришлите нам отладочную информацию и логи по инструкции на support@flashphoner.com.
Архив отправил.
 

Max

Administrator
Staff member
Добрый день.
Пропишите в настройках flashphoner.properties:
Code:
ip=185.75.88.222
ip_local=185.75.88.222
В вашем случае NAT не используется.
Кроме того, проверьте доступность WebRTC портов (UDP 31001 - 32000) с сервера до вашего рабочего места (с которого осуществляется тестирование); не происходит публикации потока.
Если проблемы останутся, можете предоставить нам ssh доступ до сервера для дальнейшего тестирования (учетные данные следует отправить на email support@flashphoner.com).
 

Dinar

New Member
Настройки поменял, сервис перезапустил.
Порты на своей машине проверил: открыты и принимают пакеты с сервера.
Проблема осталась.
Получается, что каждому клиенту, который подключается к трансляции, нужно будет проверять указанные udp-порты? Я так понимаю, что они открыты по умолчанию.
По поводу доступа уточняю.
 

Dinar

New Member
Добрый день.
Пропишите в настройках flashphoner.properties:
Code:
ip=185.75.88.222
ip_local=185.75.88.222
В вашем случае NAT не используется.
Кроме того, проверьте доступность WebRTC портов (UDP 31001 - 32000) с сервера до вашего рабочего места (с которого осуществляется тестирование); не происходит публикации потока.
Если проблемы останутся, можете предоставить нам ssh доступ до сервера для дальнейшего тестирования (учетные данные следует отправить на email support@flashphoner.com).
Отправил запрос на вашу почту.
 

Max

Administrator
Staff member
Добрый день.
Мы проверили настройки Вашего сервера. Как и предполагалось, необходимо явно открыть UDP медиа порты в настройках iptables. По дампу трафика видно, что STUN-пакет приходит на UDP порт, после чего клиенту уходит ICMP-пакет с диагнозом "Port unreachable" (см прилагаемый скриншот)
traffic_dump.png

Таким образом, Вам необходимо в настройке iptables открыть порты 31001-32000, вставив соответствующее правило в цепочку INPUT до правила REJECT:
Code:
sudo iptables -I INPUT 11 -m udp -p udp --dport 31001:32000 -j ACCEPT
 

Dinar

New Member
Добрый день.
Мы проверили настройки Вашего сервера. Как и предполагалось, необходимо явно открыть UDP медиа порты в настройках iptables. По дампу трафика видно, что STUN-пакет приходит на UDP порт, после чего клиенту уходит ICMP-пакет с диагнозом "Port unreachable" (см прилагаемый скриншот)
View attachment 1363
Таким образом, Вам необходимо в настройке iptables открыть порты 31001-32000, вставив соответствующее правило в цепочку INPUT до правила REJECT:
Code:
sudo iptables -I INPUT 11 -m udp -p udp --dport 31001:32000 -j ACCEPT
Да, теперь все работает. Спасибо!
 
Top