Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Вечный вопрос, RTP за NAT

Вечный вопрос, RTP за NAT

Проблема хождения rtp трафика за NAT
1 23>
Откуда: Обнинск
Сообщений: 17

Вечный вопрос, RTP за NAT

Всем доброго времени суток!
Прошу помочь разобраться в проблеме, если есть немного времени:

Есть астериск, работает на белом IP, есть два клиента, один на белом IP другой за НАТ.

Один клиент - Cisco 1751, регистрируется под экстеншном 2000, входящие звонки при дозвоне из города по одному из sipnet IVR работают нормально, исходящая связь также в порядке.

Второй клиент - что за НАТ, регистрируется под экстеншном 1000 и представляет собой Cisco IP Phone 7912 с SIP прошивкой. При входящем звонке с экстеншна 2000 связь работает отлично, rtp ходит в обе стороны. При исходящем звонке на экстеншн 2000 - сигнализация проходит, соединение устанавливается, но rtp не ходит, в трубке тишина. Абоненты не слышат друг-друга.


Пока еще не пробовал указать клиенту с экстеншном 1000 outbound proxy, поможет ли это ходить rtp трафику через Asterisk принудительно?

Подскажите, пожалуйста, куда копать?

Смущает то, что ожидались проблемы со звонками от клиента с белым IP (2000) к клиенту за НАТ (2000), т.к. от 2000 до 1000 нет прямой маршрутизации, а получилось с точностью до наоборот.
Прилагаю sip.conf:
[root@softswitch asterisk]# cat sip.conf | grep -v ";"
[general]

allow=alaw

register => SIP_ID:SIP_PASSWD@sipnet.ru/2000

[authentication]

[sipnet1]
type=friend
username=SIP_ID
secret=SIP_PASSWD
callerid=SIP_CALLER_ID
host=sipnet.ru
nat=no
fromuser=SIP_USER
fromdomain=sipnet.ru
dtmfmode=rfc2833
insecure=very
context=default
disallow=all
allow=alaw
allow=gsm
allow=g729

[1000]
type=peer
regexten=1000
callerid="Home" <1000>
host=dynamic
secret=1000_PASSWD
nat=route
qualify=yes
canreinvite=no
disallow=all
allow=g729
allow=alaw
allow=ulaw
contect=default

[2000]
type=peer
regexten=2000
callerid="Cisco" <2000>
host=dynamic
secret=CISCO_PASSWD
nat=no
canreinvite=yes
disallow=all
allow=g729
allow=alaw
allow=ulaw
contect=default
2010-11-09 17:47

Avatara of zzuz
Откуда: SPb
Сообщений: 1307

Re: Вечный вопрос, RTP за NAT

qulify можно и отключить
nat поставить в yes
настроить корректно маршрутизатор и с утками использовать поиск.
http://линия24.рф - Астериск и прочие бубны!
2010-11-09 18:33

Откуда: Обнинск
Сообщений: 17

Re: Вечный вопрос, RTP за NAT

Большое спасибо за ответ!
А что Вы имеете ввиду под "настроить корректно маршрутизатор"?
Где нат поставить в yes? в клиенте 1000 или 2000 ?
На 2000 нет необходимости ставить нат в yes, он на белом айпи.
softswitch*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
2000/2000 212.106.59.183 D 5060 Unmonitored
1000/1000 95.167.107.3 D N 62502 OK (52 ms)
sipnet1/home48153 212.53.40.40 5060 Unmonitored
2010-11-09 19:07

Откуда: саранск
Сообщений: 273

Re: Вечный вопрос, RTP за NAT

contect=default?..

[sipnet1]
type=friend
???

[1000]
type=peer
???

[2000]
type=peer
???
Вы хотите, чтобы сипнет и звонил, и принимал, а клиенты 1000 и 2000 только звонили? И все это в каком-то contect`e ))) Тут и без NAT проблемы могут быть.
2010-11-09 19:08

Откуда: Обнинск
Сообщений: 17

Re: Вечный вопрос, RTP за NAT

Update:

Входящие звонки из городов по sipnet.ru IVR нормально проходят на оба экстеншна и на 1000 и на 2000, независимо от НАТ-а.

Проблема заключается только в звонках от клиента за НАТ-ом клиенту на белом IP.
2010-11-09 19:10

Откуда: Обнинск
Сообщений: 17

Re: Вечный вопрос, RTP за NAT

esveka:

contect=default?..

[sipnet1]
type=friend
???

[1000]
type=peer
???

[2000]
type=peer
???
Вы хотите, чтобы сипнет и звонил, и принимал, а клиенты 1000 и 2000 только звонили? И все это в каком-то contect`e ))) Тут и без NAT проблемы могут быть.
Предлагаете 1000 и 2000 сделать friend?
2010-11-09 19:11

Откуда: Обнинск
Сообщений: 17

Re: Вечный вопрос, RTP за NAT

Исправил ошибки, стало так:
[sipnet1]
type=friend
username=XXXX
secret=XXX
callerid=sipnet1_XXX
host=XXX
nat=no
fromuser=XXX
fromdomain=sipnet.ru
dtmfmode=rfc2833
insecure=very
context=default
disallow=all
allow=alaw
allow=gsm
allow=g729

[1000]
type=friend
regexten=1000
callerid="Home" <1000>
host=dynamic
secret=XXX
nat=route
qualify=yes
canreinvite=no
disallow=all
allow=g729
allow=alaw
allow=ulaw
context=default


[2000]
type=friend
regexten=2000
callerid="Cisco" <2000>
host=dynamic
secret=XXX
nat=no
canreinvite=yes
disallow=all
allow=g729
allow=alaw
allow=ulaw
context=default




Сипнет отсюда вообще можно исключить, пока проблема в вызовах между зарегистрированными на * экстеншнами.
2010-11-09 19:17

Откуда: саранск
Сообщений: 273

Re: Вечный вопрос, RTP за NAT

2000/2000 212.106.59.183 D 5060 Unmonitored
Это к "зарегистрированным".
Звонки через NAT бегают без проблем. Голос вот бывает не бегает)
Кстати, а sip reload делали?
[1000]
nat=yes
Если все у Вас все в порядке в sip.conf и диалпланы верные, и настройки клиентов верные, то на маршрутизаторе пробросьте порты udp 5060 и udp в диапазоне 10000-20000
2010-11-09 19:25

Откуда: Обнинск
Сообщений: 17

Re: Вечный вопрос, RTP за NAT

esveka:

2000/2000 212.106.59.183 D 5060 Unmonitored
Это к "зарегистрированным".
Звонки через NAT бегают без проблем. Голос вот бывает не бегает)
Кстати, а sip reload делали?
[1000]
nat=yes
Если все у Вас все в порядке в sip.conf и диалпланы верные, и настройки клиентов верные, то на маршрутизаторе пробросьте порты udp 5060 и udp в диапазоне 10000-20000
Проблема именно в голосе.
Я же написал, что с сигнализацией проблем не наблюдается.

Поставил qualify=yes на 2000 экстеншн:

softswitch*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
2000/2000 212.106.59.183 D 5060 OK (37 ms)
1000/1000 95.167.107.3 D N 62502 OK (123 ms)
sipnet1/home48153 212.53.40.40 5060 Unmonitored


Со стороны экстеншна 2000 все тоже ОК:
VoIP_GW#sh sip-ua register status
Line peer expires(sec) registered
============ ============= ============ ===========
2000 2 487 yes
2010-11-09 19:54

Откуда: Обнинск
Сообщений: 17

Re: Вечный вопрос, RTP за NAT

Увы, не могу пробросить ничего на маршрутизаторе, ибо сделал бы это в первую очередь.

Роутер находится в зоне действия домашнего провайдера, и врят-ли они будут со мной сотрудничать..
Я думаю, что именно регистрация экстеншнов на Астериск и должна выполнять задачу разруливания трафика между end-devices.

Как заставить rtp трафик гулять нормально при звонках от одного экстеншна к другому - ума не приложу..
2010-11-09 19:56

1 23>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru