Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

SIP and RTP

0

Всем привет!

Мужики объясните по портам что использует * и девайсы которые подключаются к нему.

И так что имеем, допустим развернули * sip.conf сигнальный порт у нас по стандарту стоит UDP:5060 в rtp.conf UDP:9000-20000. Все классно хорошо. Берем из коробки новый допустим Grandstream ATA или Gateway не столь так важно что за железка пускай даже Cisco. Я буду исходить из Grandstream так как его использую. Запустил захожу в настройки создаю подключение к * прописал там user name, security все хорошо доходим до портов а тут бац порты прописанные Local SIP port: 5060 Local RTP Port 5004. Так вот по портам, к 5060 претензий не имею по этому порту железка стучится к * регистрируется и сигналит ему друг что. А вот меня начало смущать RTP порт на железке Который прописан 5004 который никак не подпадает под правило RTP.conf где прописан диапазон портов начиная с 9000 заканчивая 20000. Так вот объясните мне где я и чего не дочитал по VoIP как так может быть и работать там же нужно указывать диапазон портов тех которые у тебя слушает * или я не прав. Благодарен буду за любую информацию.

удалить закрыть спам изменить тег редактировать

спросил 2011-12-05 17:32:24 +0400

iStory Gravatar iStory flag of Ukraine
144 8 3 12

обновил 2011-12-06 15:46:51 +0400

Zavr2008 Gravatar Zavr2008 flag of Russian Federation
2886 11 9 40
http://mh.otx.ru/

3 Ответа

1

RTP сессия просто так не начинается . А инфа по sip show peers берется строго из информации , которую прислал клиент в пакете REGISTER (читаем про пакеты OPTIONS). Если пакет из под ната , то в нем будет указан порт роутера, куда пересылать сигнализацию и , скорее всего , адрес внутри роутера самого sip-клиента. Вполне нормальная ситуация. Если вы паранойете по поводу секьюрности , то в руки вам фаерволы , fail2ban'ы , документация по sip.conf и собственные костыли.

ссылка удалить спам редактировать

ответил 2011-12-06 19:17:35 +0400

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

обновил 2011-12-06 19:18:00 +0400

1

в rtp.conf указаны порты на стороне Астера. Когда телефон зареген на *, в начале звонка они договариваются о портах и телефон говорит куда Астеру передавать. Так что всё ок если внутри сетки, без всяких там NAT-ов:)

ссылка удалить спам редактировать

ответил 2011-12-05 17:35:40 +0400

Zavr2008 Gravatar Zavr2008 flag of Russian Federation
2886 11 9 40
http://mh.otx.ru/

Comments

Ты правильно сказал если внутри сетки. А тут такая вот ерунда у меня внешнее подключения и получается так что они типа потрешали между собой договорились и * дал порты которые у меня не пробрешы и все писец голоса нет. Как тут быть как жестко прописать порты на девайсах или на * что бы все было в шоколаде?

iStory ( 2011-12-05 17:39:26 +0400 )редактировать

ну так это зиависит от вашего роутера. никто конкретно ничего не скажет. вообще сип какправило работает нормально и пробрасывать надо только один сип порт.

meral ( 2011-12-05 19:04:11 +0400 )редактировать

тогда стоит копать в сторону правильной настройки случая asterisk сидит за nat: проброс портов, nat=yes, externip= в sip.conf..

Zavr2008 ( 2011-12-05 19:07:47 +0400 )редактировать

meral тут правильно говорит, пробрасывать нужно в данном случае только порт сигнализации. Голосовой порт на стороне железки может быть любым. это её дело. А на стороне астериска сервер открывает именно те порты , которые указаны ему . То есть железка откроет порт 5004 и будет принимать UDP на этот порт , а астериск откроет порт, например , 13456 и будет работать с ним. Задача роутера только транслировать адреса, так как rtp порты какникак динамически могут меняться.

zzuz ( 2011-12-05 19:43:56 +0400 )редактировать
1

Получается так:

Divace(SIP5060)=>Firewall=>Internet <=Firewall=<Asterisk(5060) - Договорились как и кому что слать. SIP 5060.

[Выполняем звонок на Asterisk через SIP Divace на Эхо-тест]

Divace(RTP Local 5040)=>Firewall(5060 Open)=>Internet <=(SIP5060 Open)Firewall=<(RTP9000-20000)Asterisk - Все хорошо голос ходит туда и обратно.

Выполняем команду asterisk cli> sip show peers и видим картину

100/100 Внешний IP Divace D N A 55820 OK (41 ms)

Так вот, кто дал такой порт 55820 Divac-у, asterisk или сама железка сделала Port string из диапазона UDP и заняла его либо этот порт появился в результате обмена информации через 5060?

И второй вопрос зачем тогда открывать и пробрасывать порты RTP на Firewall если они открываться с обоих сторон автоматически одна сторона инициатор другая ответчик?

iStory ( 2011-12-06 13:16:18 +0400 )редактировать

Такой порт назначает роутер, а астериск с этим согласен , потому что в настройках стоит nat=yes

zzuz ( 2011-12-06 13:50:41 +0400 )редактировать

не забыть поставить externip= или externhost= !!!!

Zavr2008 ( 2011-12-06 14:27:05 +0400 )редактировать

externip= указан externhost= !!!! в FreePBX не нашел где указывать, лезть конфиг файлы пока нет возможности. На сколько критично что не указан externhost? Стоит ли добавить на девайсах STUN и на Asteriske? И как можно научить роутер работать с теми портами которые прописаны rtp.conf.

iStory ( 2011-12-06 14:32:51 +0400 )редактировать

По мне так 'externip=' не так уж критично, но это когда понимаешь собственную топологию .В вашем случае видимо обязательно. Советую почитать книжек чтоль , так как тут видится полное непонимание предмета вопроса.

zzuz ( 2011-12-06 14:46:49 +0400 )редактировать

Что тут понимать externip говорит астеру какой у него внешний айпи. externhost=какой у астера домен но это при условии если где то на девайсах прописан домен тот же хост.

iStory ( 2011-12-06 14:57:59 +0400 )редактировать

смотрите, для 1.6 externip работает - если на статике - не надо externhost, для 1.8 - уже нет, устарел, там только externhost!!

Zavr2008 ( 2011-12-06 15:44:03 +0400 )редактировать

externip указан глобально вместе с nat=yes?

Zavr2008 ( 2011-12-06 15:44:35 +0400 )редактировать

Во FreePBX все просто в меню закладка "Tools" далее пункт "Asterisk SIP Settings" где указываем топологию сети. Я так же не понимал по какому принципу используются RTP порты и только недавно понял что если указать обычный проброс RTP портов то каждая из железок будет использовать рандомно порт согласно своему диапазону) но если наш роутер умеет SIP ALG то при звонке устройства договариваются об одном и том же RTP порте) почитав что такое SIP ALG я понял что это позволяет использовать соеднинеию одну tcp сессию и так получилось реализовать тот же проброс на фаирволе но с флагом static port

DJs3000 ( 2011-12-06 17:05:44 +0400 )редактировать

по сути SIP ALG это ничто иное как нат только делает трансляцию без изменения порта.

DJs3000 ( 2011-12-06 17:15:55 +0400 )редактировать

"я понял что это позволяет использовать соеднинеию одну tcp сессию"

Разговор всё еще про RTP ?

zzuz ( 2011-12-06 17:45:39 +0400 )редактировать
0

Что типа никто не знает или лень помочь с ответом? Мужики надо, уделите пару минут времени пожалуйста.

ссылка удалить спам редактировать

ответил 2011-12-05 18:54:33 +0400

iStory Gravatar iStory flag of Ukraine
144 8 3 12

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-12-05 17:32:24 +0400

Просмотрен: 23,983 раз

Обновлен: Dec 06 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.