Публикация потока из внутренней корпоративной сети через TMG 2010

Evgeny

New Member
Добрый день!

Есть ли какая-то документация по поводу того как настроить трансляцию rtsp стрима, который идет из внутренней корпоративной сети через WCS, также находящийся внутри сети, далее через TMG 2010 в сеть интернет.
Внутри сети трансляцию настроить удалось. Далее, сделали публикацию адресов WCS сервера и IP камеры в интернет, однако при отображении стрима, например в хроме, получаем ошибку: "WebSocket connection to 'wss://******:8443/' failed: WebSocket opening handshake was canceled"
 

Max

Administrator
Staff member
Добрый день.
В данный момент WCS поддерживает работу через HAProxy или TURN server. Попробуйте, какой из этих вариантов Вам подойдет.
 

Max

Administrator
Staff member
TMG 2010 - это firewall и прокси сервер, судя по описанию.
Поэтому если WCS-сервер расположен внутри сети, он находится за этим firewall.
Для нормального функционирования и раздачи RTSP потока во внешнюю сеть, на вашем TMG 2010 должны быть открыты следующие порты, в зависимости от способа трансляции:

1. Трансляция WebRTC UDP
Порты:
Code:
8443 TCP
31000-32000 UDP
2. Трансляция RTMP
Порты:
Code:
8443 TCP
1935 TCP
3. MSE
Порты:
Code:
8443 TCP
4. WSPlayer
Code:
8443 TCP
5. Трансляция WebRTC TCP через TURN сервер
Code:
8443 TCP
443 TCP (порт TURN сервера)
Проверить открыт ли TCP порт можно с помощью telnet, для этого вам нужно выполнить команду с хоста вне вашей сети:
Пример:
telnet 88.22.88.22 8443
здесь 88.22.88.22 - адрес WCS сервера

Проверить открыт ли UDP порт можно так.

Если вы решите использовать способ (5), то нужно будет установить TURN сервер.
 

Evgeny

New Member
Попробовали выполнить настройки из п. 1-4, пока не помогло.
Правильно ли мы понимаем, что можно временно опубликовать наш поток RTSP в интернет и попробовать воспроизвести его на вашем демо WCS-сервере из сети интернет. Если воспроизведение пройдет успешно, значит проблема в работе самого WCS через наш firewall?
Работает ли сейчас демо-сервер? При попытке перейти на узел https://wcs5-eu.flashphoner.com/login.xhtml возникает ошибка: "Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused (Connection refused)", также, при попытке установить соединение с WCS через https://wcs5-eu.flashphoner.com/cli...ming/two_way_streaming/two_way_streaming.html возникает ошибка: "Establishing a tunnel via proxy server failed."
 

Max

Administrator
Staff member
Демо сейчас работает по адресу https://demo.flashphoner.com

Правильно ли мы понимаем, что можно временно опубликовать наш поток RTSP в интернет и попробовать воспроизвести его на вашем демо WCS-сервере из сети интернет. Если воспроизведение пройдет успешно, значит проблема в работе самого WCS через наш firewall?
Да, если у вас внутри сети играет через WCS сервер то должно играть и с внешней сети.

Если так удобнее, то можете выставить RTSP поток в интернет. Мы поможем протестировать через demo.flashphoner.com.

Code:
Попробовали выполнить настройки из п. 1-4, пока не помогло.
Способы стриминга 1-4 можно выбирать в примере Embed Player
Страница здесь:
https://demo.flashphoner.com/client2/examples/demo/streaming/embed_player/sample.html
Документация:
https://docs.flashphoner.com/display/WCS5RU/Embed+Player

Если вы используете способ (1) - WebRTC UDP, то убедитесь что у вас правильно сконфигурированы ip адреса
ip=внешний адрес, который видно извне
ip_local=локальный адрес, на котором слушает порты
 

Evgeny

New Member
Если так удобнее, то можете выставить RTSP поток в интернет. Мы поможем протестировать через demo.flashphoner.com.
Поток опубликован, как нам организовать тестирование?
 

Max

Administrator
Staff member
Письмо получили, но RTSP адреса в нем нет.
Отправьте пожалуйста еще раз.
 

Max

Administrator
Staff member
Адрес RTSP потока получили.
Однако он недоступен. Попробуйте проверить с VLC плеера - подключиться к вашему адресу с внешней сети.
Убедитесь что открыт порт 554.
 

Evgeny

New Member
Мы делали ping и telnet со своего внешнего ПК, они проходят. На счет VLC сейчас проверим.
 

Max

Administrator
Staff member
telnet проходит. порт открыт
VLC не соединяется.

Code:
core debug: looking for access module matching "rtsp": 21 candidates
core debug: net: connecting to host port 554

core debug: connection succeeded (socket = 1756)

access_realrtsp debug: rtsp connected

access_realrtsp warning: only real/helix rtsp servers supported for now

core debug: no access modules matched

core error: open of `rtsp://host:554/live1.sdp' failed

core debug: finished input

core debug: dead input

core debug: changing item without a request (current 1/2)

core debug: nothing to play

qt4 debug: IM: Deleting the input
 

Max

Administrator
Staff member
Если попробовать
Code:
ffprobe rtsp://host:554/live.sdp
то тоже не работает
Invalid data found when processing input
 

Evgeny

New Member
Публикация стрима, также, идет через tmg 2010, видимо каких-то настроек на стороне firewall-а не хватает. Будем искать.
 

Max

Administrator
Staff member
Схема трансляции следующая.
В вашей сети есть устройство, например IP камера, которая имеет локальный адрес, например 192.168.1.22 и порт 554.
Камера ждет подключения к этому порту по RTSP и после подключения начинае отдавать аудио и видео.
WCS сервер должен подключиться по адресу и порту rtsp://192.168.1.22:554/live.sdp
Но так как камера внутри локальной сети и под NAT/firewall TMG 2010, то нужно пробросить порт 554 чтобы все внешние TCP подключения по порту 554 шли на внутренний хост 192.168.1.22. Возможно каких-то правил не хватает, т.к. VLC работает обычно со всеми камерами и RTSP-серверами.
 

Evgeny

New Member
RTSP поток настроен, можно пробовать.
Осталось решить проблему с подключением к WCS серверу: "WebSocket connection to 'wss://******:8443/' failed: WebSocket opening handshake was canceled"
 

Max

Administrator
Staff member
WebSocket connection to 'wss://******:8443/' failed: WebSocket opening handshake was canceled
Здесь должно быть использовано доменное имя сервера:
wss://mydomain.com:8443
И на это имя mydomain.com нужен действительный SSL сертификат.
Сертификат можно купить или взять бесплатный от letsencrypt и импортировать в WCS-сервер:
Примеры импорта сертификата есть здесь:
https://docs.flashphoner.com/pages/viewpage.action?pageId=1049363
 

Max

Administrator
Staff member
Сейчас работает.
Проверить с вашим RTSP потоком можно здесь:
Player
https://demo.flashphoner.com/client2/examples/demo/streaming/player/player.html
Нужно ввести адрес и нажать Play
На стороне сервера была добавлена дополнительная настройка
Code:
rtp_force_synchronization=true
в конфиг WCS_HOME/conf/flashphoner.properties
без нее играть не будет, т.к. ваша камера не дает синхронизацию по протоколу RTCP
 
Top