VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Передача медиапотока посредством tcp

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
abutorin
Сообщения: 4
Зарегистрирован: 01 май 2014, 19:48

Передача медиапотока посредством tcp

Сообщение abutorin »

Всем хорошего настроения!

Имеется схема:
Сервер Asterisk 12.2.0
Клиент 1: мобильный телефон на Android со встроенным SIP/VOIP клиентом, за натом
Клиент 2: мобильный телефон на Android со встроенным SIP/VOIP клиентом, за натом.

У клиента 1 зверский, входящие UDP пакеты блокирует полностью.
Клиент 2 за более щадящим натом, там UDP пропускается.

Звонок с Клиента 1 на Клиент 2 проходит, голос первого второй слышит, в обратном порядке нет.
Звонок с Клиента 2 на клиент 1 не проходил, сразу обрывался с сообщением невозможности прокладки маршрута.

Часть проблем решилась с установкой параметра
sip.conf
tcpenable=yes
transport=tcp

после этого звонок с клиента 2 до клиента 1 проходит (можно взять трубку) но звук всеравно есть только в одном направлении.

Из всего получившего сделал вывод что проблема в непроходимости входящих udp пакетов у клиента 1.

Внимание вопрос. как можно медиапоток завернуть через tcp? Понимаю что появятся серьезные задержки в связи, но я на это согласен.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Передача медиапотока посредством tcp

Сообщение ded »

Не факт, что выводы правильные. Изучали?
Изображение
Изображение
abutorin
Сообщения: 4
Зарегистрирован: 01 май 2014, 19:48

Re: Передача медиапотока посредством tcp

Сообщение abutorin »

ded писал(а):Не факт, что выводы правильные. Изучали?
Изучал.

Для проверки гипотезы брал клиента №3 у которого нат пропускает входящие udp пакеты. Все работает во всех направлениях.
Нигде в документации не нашел возможности пусть медиапоток через tcp поэтому и обратился. С sip все было проще, про транспорт внятно написано в демо примере, а с этим проблемы оказались.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Передача медиапотока посредством tcp

Сообщение ded »

Изучайте INVITE, делайте tcpdump, если сигналка по TCP проходит, то проблема только в преодолении НАТа, это разрешимо.
abutorin
Сообщения: 4
Зарегистрирован: 01 май 2014, 19:48

Re: Передача медиапотока посредством tcp

Сообщение abutorin »

Проблему я уже определил. Привел пример в какм случае все работает. Задал конкретный вопрос который указан в теме ветки. Меня конкретно интересует как заставить медиапоток идти через tcp если это возможно.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Передача медиапотока посредством tcp

Сообщение ded »

Это возможно. На теоретическом уровне. У Вас - практический конкретный уровень, и конкретику (назначенные ИП адреса, порты) можно увидеть через tcpdump, в пакетах INVITE и ответах на них. Проблема в том, что медиа протокол RTP, который используется в H.323 & SIP - это UDP. Я в таком случае ничкакого выхода кроме как тунеллирование - не вижу.
Вы написали про свой ТСР опыт:
звонок с клиента 2 до клиента 1 проходит (можно взять трубку) но звук всеравно есть только в одном направлении.
А в каком направлении? Исходящий от 1=> 2? Если понимать что НАТ
У клиента 1 зверский, входящие UDP пакеты блокирует полностью.
В общем, не забывайте, что форум предназначен, чтобы Вы сами решили свою проблему и опубликовали её решение. Как указано при регистрации.
abutorin
Сообщения: 4
Зарегистрирован: 01 май 2014, 19:48

Re: Передача медиапотока посредством tcp

Сообщение abutorin »

ded писал(а):А в каком направлении? Исходящий от 1=> 2?
Звонок инициирует клиент 2, звук идет 1=>2 от 2=>1 звука нет.
Меня интересовала практическая возможность передачи медиапотока через tcp путем изменения настроек asterisk. Спасибо за ответ, я понял что его средствами это не решить про туннели я думал, похоже прийдется так и поступить. Если получится отпишусь про решение в данной теме.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH