Страница 1 из 2
register on port
Добавлено: 23 сен 2010, 17:24
expelled
Всем хорошего настроения!
Появилась проблема, нужно авторизоваться на стороннем sip proxy.
Казалось бы что ничего сложного:
register => fromuser@fromdomain:pass:user@host:port/number
сам прокси находится за фаерволом который слушает не стандартный порт 777 (к примеру), пишу:
Код: Выделить всё
register => 1111@domain.com:555:1111@10.10.10.10:7777/1111
[1111]
type=friend
host=dynamic
secret=555
Регистрация не проходит по 408 ошибке (request timeout), т.к. запрос регистрации получается:
1111@10.10.10.10:7777
1111@domain.com:7777
Т.е. шлюз принял пакет и передет его на domain.com, вот только астериск порт 7777 пририсовывает к нему
В то время когда сам прокси слушает стандартный 5060.
Вопрос: как сделать, что бы стало хорошо?
Как указать на какой порт обращаться за шлюзом?
Re: register on port
Добавлено: 23 сен 2010, 17:41
ded
ded писал(а):Сначала клятва.
Я, имярек, клянусь никогда не употреблять косноязычное инородное алогичное приветствие добрых суток.
Число, подпись (кровью).
И тогда - сразу получаете рецепт помощи. Как Вам сделка?
Re: register on port
Добавлено: 23 сен 2010, 17:43
expelled
Торжественно клянусь кровью своей не косноязычить времясутками, и прочим, и прочим..
Re: register on port
Добавлено: 23 сен 2010, 17:50
ded
Первый шаг: не усложняйте сущность там, где можно упростить.
register => 1111:пароль@10.10.10.10:7777/1111
Второй шаг: где это написано - ? на вашем Астериске?
[1111]
type=friend
secret=555
host=dynamic - предполагает, что сторонний прокси должен регистрироваться у вас как, 1111:555@ИП_АДРЕС_ВАШЕГО_АСТЕРИСКА, не вы у него.
И так и лучше, потому что он за NATом, а не ваш аАстериск.
Re: register on port
Добавлено: 23 сен 2010, 18:12
expelled
Первый шаг: не усложняйте сущность там, где можно упростить.
Да я бы с радостью, но доменное имя прокси указывать нужно, он, прокси, того требует..
По поставленной задаче авторизовывается астериск на проксе, с его авторизацией на астериске проблем нет.
Клятва дана, а рецепта так и нет
Re: register on port
Добавлено: 23 сен 2010, 18:30
ded
Есть рецепт, не сумлевайтесь!
expelled писал(а):Да я бы с радостью, но доменное имя прокси указывать нужно, он, прокси, того требует..(
Вот и нет! Доменное имя прокси надо указывать при звонке только - при посылке пакета инвайт. Для этого в настройках пира на вашей стороне надо указать параметры
fromuser=
fromdomain=
А при запросе на регистрацию - не обязательно. Если там регламентировано использование разных SIP доменов, и/или жОстко одного домена, то строка регистрации
register => 1111:пароль@fqdn.domen.org:7777/1111
Re: register on port
Добавлено: 23 сен 2010, 19:30
expelled
Код: Выделить всё
REGISTER 11 headers, 0 lines
Reliably Transmitting (NAT) to 10.10.10.10:7777:
REGISTER sip:5.5.5.5:7777 SIP/2.0
Via: SIP/2.0/TCP 33.33.33.33:5060;branch=z9hG4bK16daccff;rport
Max-Forwards: 70
From: <sip:1111@5.5.5.5>;tag=as0bfecf03
To: <sip:1111@5.5.5.5>
Call-ID: 20b75aeb59ba63820d4015c10538c94c@83.136.244.10
CSeq: 130 REGISTER
User-Agent: Asterisk PBX
Expires: 120
Contact: <sip:1111@33.33.33.33;transport=TCP>
Content-Length: 0
<--- SIP read from TCP:10.10.10.10:7777 --->
SIP/2.0 408 Request timeout
From: <sip:1111@5.5.5.5>;tag=as0bfecf03
To: <sip:1111@5.5.5.5>;tag=yRUcwH
Call-ID: 20b75aeb59ba63820d4015c10538c94c@33.33.33.33
CSeq: 130 REGISTER
Via: SIP/2.0/TCP 33.33.33.33:5060;rport=59694;received=33.33.33.33;branch=z9hG4bK16daccff
Server: sipXecs/4.2.1 sipXecs/sipXproxy (Linux)
Content-Length: 0
Строка "REGISTER sip:5.5.5.5:7777 SIP/2.0"
А нужно что бы было "REGISTER sip:5.5.5.5:5060 SIP/2.0"
Если
Код: Выделить всё
fromuser=1111
fromdomain=5.5.5.5
register => 1111:пароль@fqdn.domen.org:7777/1111
то она превращается в "REGISTER sip:10.10.10.10:7777 SIP/2.0"
т.е. астериск пытается авторизовываться на шлюзе, а не за шлюзом на чем то
Re: register on port
Добавлено: 23 сен 2010, 20:34
tma
Прописать
Код: Выделить всё
register => 1111:пароль@fqdn.domen.org:5060/1111
Не помогает?
Насколько я понял из лога, Вы пытаетесь регистрироваться на sipX?
У sipX есть встроенный SBC, который по умолчанию слушает порт 5080. Но через него регистрироваться нельзя.
Он используется для других целей.
Для регистрации на sipX, в случае, если он находится в открытой сети, а Вы -- за NAT, нужно отключать STUN
и прописать outbound proxy. Порт используется все тот же -- 5060.
Re: register on port
Добавлено: 23 сен 2010, 22:30
expelled
Дело в том что я в сети, а он за шлюзом натится
Re: register on port
Добавлено: 23 сен 2010, 22:52
ded
Неправильно НАТится (как заметили уже выше коллеги по цеху). SIP устройство за НАТом - это не вэб сервер за НАТом.
И в таком аспекте всегда правильней указывать устройство за НАТом как динамическое, обычно - без специальных НАТ манипуляций, оно регистрируется на статическом пубичном ИП Астериска. И происходит это обычно по произвольным верхним портам. Чтобы трансляция поддерживалась - она бомбардируется пакетами OPTIONS, каоторые посылает Астериск при наличии параметра qualify-yes на пире.
Вот такие рекомендации.
Все отступления от такой схемы - неверны теоретически и практически, лежат в области изощрённого мазохизма.
Так что если Вы BSDM - извините!