Добрый день.
Во всех мануалах, связанных с NAT, пишут про то, что если клиенты находятся за NAT, то RTP надо пускать через Asterisk (directmedia=no).
А есть ли все таки какой-то способ пустить RTP напрямую между пирами, находящимися за NAT?
STUN и ICE в Астериске есть, но, насколько я понимаю, просто cам Астериск может работать как клиент и подключаться к STUN-серверу. А это не тот случай. Если STUN-сервер включить на стороне клиента, то этого как бы должно быть достаточно для хождения RTP напрямую. Но STUN не работает с симметричным NAT.
Кто как решает эту проблему?
вы, конечно, можете на астериске выставить
directrtpsetup=yes
но вы задолбаетесь решать проблемы типа " у нас почемуто звука нету".
stun можно отдельным сервисом повесить или использовать stun.xten.com
очень сильно возврастают требования к UA. Ибов этом случае все хаки встроенные в астериск chan_sip должны быть во ВСЕХ UA.
ну и настройки астериска само собой в этом случае никак не решают проблему, ибо астериск в принципе не может проверить правильно ли переданы rtp порты, ведь rtp он не получает. обычно он просто смотри откуда реально приходит поток.
Задан: 2014-01-05 19:05:08 +0400
Просмотрен: 1,624 раз
Обновлен: Jan 05 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
два вопроса: зачем ? и вы в курсе что диал-план тогда должен быть весь написан ручками ?
awsswa ( 2014-01-05 19:54:22 +0400 )редактироватьSTUN думал использовать публичный stun.xten.com или любой другой. Вопрос-то в том, что STUN работает не со всеми NAT, т.е. это не универсальное решение. UA используются у всех одинаковые и там поддержка STUN есть, т.е. с этим проблем не будет. Какие именно хаки chan_sip имеются в виду? И чем directrtpsetup отличается от directmedia (canreinvite в старых версиях)?
kir.mulai ( 2014-01-06 14:09:40 +0400 )редактироватьОтвет на вопрос "зачем", по моему, очевиден. Чтобы RTP шел между клиентами напрямую, тем самым исключая Астериск из маршрута и улучшая качество связи. Диалплан и так написан руками и никакой проблемы в этом нет. Как диалплан может помочь в решение этой задачи?
kir.mulai ( 2014-01-06 14:11:25 +0400 )редактироватьнасчет улучшал, вы заблуждаетесь. У вас огромные шансы поиметь проблему одностороннего звука, о чем вам уже сказали
svoy ( 2014-01-08 13:18:18 +0400 )редактироватьЭто и понятно. Вопрос как раз и заключается в том, как эту проблему решить и какие механизмы помогут это сделать.
kir.mulai ( 2014-01-08 15:30:59 +0400 )редактироватьваш вопрос заключается в том, как создать себе проблему включив прямой обмен..
svoy ( 2014-01-08 17:46:39 +0400 )редактироватьЕсть подозрение что для обеспечения такого сценария работы надо будет у всех абонентов обеспечить на натящих роутерах проброс rtp портов. Т.е. заходим в настройки телефона, смотрим на какой порт настроен rtp, пробрасываем эти порты на роутере на внутренний айпишник. Если за одним роутером клиентов больше одного - у всех надо настроить и пробросить разные порты. Вручную думаю заколебаетесь это делать, ищите телефоны/роутеры с поддержкой UPnP и возможностью ставить выбор случайного rtp порта.
Хотя при этом скорее всего будут проблемы со связью между абонентами находящимися за одним роутером...
SolarW ( 2014-01-12 04:04:04 +0400 )редактировать