Какие порты нужно оставить открытыми, чтобы принудительно пустить webrtc via tcp?

tobisaki

New Member
WCS сейчас не поддерживает WebRTC over TCP/TLS из коробки.
Для того чтобы этого заработало, нужно рядом с WCS был TURN сервер, который пропускает WebRTC через TLS.
В этой теме недавно обсуждали WebRTC стриминг через HTTPS.
Схема такая:
View attachment 372
1. На WCS сервере открыт для браузера один порт TCP 443 (websocket).
2. На WCS сервере для TURN-сервера открыты UDP порты 31000-32000.
3. На TURN сервере открыт для браузера TCP 443.
4. На TURN сервере открыты все порты для WCS сервера.

Т.е. нужно на этом же физическом сервере или на отдельном установить TURN по этой инструкции:
https://flashphoner.com/docs/wcs5/w...nd_testing-firewall_traversal-turn_server.htm

После этого при коннекте передавать адрес TURN сервера:
Code:
Flashphoner.createSession({urlServer: url, mediaOptions: {"iceServers": [ { 'url': 'turn:192.168.0.1:443?transport=tcp', 'credential': 'password1', 'username': 'username1' } ], "iceTransportPolicy": "relay"}});
Чтобы заработало, нужно править код плеера в этой строчке:
https://github.com/flashphoner/flas...examples/demo/streaming/player/player.js#L104

Порты WCS конфигурируются в файлах:
server.properties
flashphoner.properties

Протестировать можно с этим демо, используя только правую часть с плеером:
https://wcs5-eu.flashphoner.com/demo2/firewall-traversal-streaming
Если закрыть на Windows все порты, кроме 443 и 53, то демо должно работать и играть поток через https.
View attachment 373
Если вы используете turnserver из Google является
Flashphoner.createSession(
{ urlServer: url,
mediaOptions: { "iceServers": [ { 'urls': 'stun:stun.l.google.com:19302'} ] }
}
).on(SESSION_STATUS.ESTABLISHED, function(session){
// any thing
});
Есть ли у вас хорошо?
 

Max

Administrator
Staff member
mediaOptions: { "iceServers": [ { 'urls': 'stun:stun.l.google.com:19302'} ] }
Это не будет работать.
Правильно так:
Code:
Flashphoner.createSession({urlServer: url, mediaOptions: {"iceServers": [ { 'url': 'turn:192.168.0.1:3478?transport=tcp', 'credential': 'password1', 'username': 'username1' } ], "iceTransportPolicy": "relay"}})
Смотрите пример:
https://wcs5-eu.flashphoner.com/demo2/firewall-traversal-streaming
https://wcs5-eu.flashphoner.com/cli...l-streaming/firewall-traversal-streaming.html
https://wcs5-eu.flashphoner.com/cli...sal-streaming/firewall-traversal-streaming.js
 

tobisaki

New Member
"iceTransportPolicy": "relay"
Это будет корректно работать с Google Chrome
Firefox дает следующую ошибку
ICE failed, add a STUN server and see about:webrtc for more details
Есть ли способ работать с firefox?
 

Max

Administrator
Staff member
Проверили пример Firewall Streaming (firewall-traversal-streaming) на Ubuntu 16.04 (c TURN-сервером turn.flashphoner.com и последней версией WCS - 2428) - работает и с Firefox 55, и с Chrome 60 (с "iceTransportPolicy": "relay" и без).
Как проверялось с Firefox?
 

tobisaki

New Member
Спасибо, Маx

-- Серверная среда --
Ubuntu 16.04.3 LTS
Версия WCS 2267
Версия сервера TURN
WCS и TURN - это один и тот же узел за NAT.

-- Клиентская среда --
Ubuntu 16.04.3 LTS
Firefox версии 55.0.2
Версия Chrome 60.0.3112.113
 

Max

Administrator
Staff member
То есть сервер и клиент на одном и том же компьютере?
Вы не могли бы дать доступ к серверу и dashboard? (Выслать можно на logs@flashphoner.com.)
 
Top