Страница 1 из 2

Dlink DVG-7111S как Sip-транк

Добавлено: 22 апр 2020, 11:01
dimm-dimm
Добрый день!
Не идут входящие звонки через FXO шлюз в Asterisk.
Шлюз D-link DVG-7111S
Со стороны шлюза настроил логин и пароль на FXO, а также включил SIP Proxy с адресом Астериска (скрин во вложении). Статус sip proxy register на шлюзе - Successful

На Астериске создал экстеншн с именем 300, и транк. Для входящих данные на нем такие:

host=dynamic
username=логин FXO
secret=пасс FXO
type=friend
context=from-trunk
qualify=yes
insecure=no

Пир транка в астериске в статусе - ОК

Шлюз при звонке просто сбрасывает после двух гудков. В консоли Астериска - тишина.

В чем может быть проблема?

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 22 апр 2020, 12:32
ded
А зачем вы замазываете внутренний адрес 192.168. на скриншоте? Чтобы всех запутать?
На Астериске создал экстеншн с именем 300,
Лучше не экстеншн, а SIP trunk - пир, который по отношению к внутренним экстенам будет внешним транком, и тогда контекст from-trunk, правильный. Пир обозначить не мифическим номером 400, а городским номером, который на этой телефонной линии, типа 7654321.
insecure=no
откуда такой параметр взяли? Скорее всего надо insecure=invite,port
но вы же при этом указываете
username=логин FXO
secret=пасс FXO
значит вызов (инвайт) идёт аутентифицированный через этот username / secret

Далее, чтобы понять где проблема - включайте sip debug ip (адрес шлюза) и смотрите что прилетает с него при входящем звонке из города.

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 22 апр 2020, 14:13
dimm-dimm
Лучше не экстеншн, а SIP trunk - пир, который по отношению к внутренним экстенам будет внешним транком, и тогда контекст from-trunk, правильный. Пир обозначить не мифическим номером 400, а городским номером, который на этой телефонной линии, типа 7654321.
Выставил настройки для пира с номером.

type=peer
username=8121234567
secret=пароль
qualify=yes
port=5060
insecure=port, invite
host=192.168.10.11
context=from-trunk
disallow=all
allow=g729&ulaw&alaw

Логин и секрет на шлюзе и на атс одинаковый.

При настройке его как пира, на АТС приходит ошибка регистрации от шлюза:

Код: Выделить всё

NOTICE[24130]: res_pjsip/pjsip_distributor.c:676 log_failed_request: Request 'REGISTER' from '"8121234567" <sip:8121234567@192.168.10.10>' failed for '192.168.10.11:5060' (callid: D1B9-1B1D-000000285FEF62824AC9-001@SipHost) - Failed to authenticate
При этом статус пира в атс - ОК.
Я что-то упустил с настройками пира?

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 22 апр 2020, 16:02
Zavr2008
insecure вообще убрать.
вместо username написать defaultuser
поставить host=dynamic

Но самый то прикол ниже!!!
Вы пишите про конфигурацию chan_sip, а прилетает то судя по всему с chan_pjsip!!!
NOTICE[24130]: res_pjsip/pjsip_distributor.c:676 ...
На Dlink указжите правильный порт 5160 )

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 22 апр 2020, 17:10
ded
Да-а-а.. фраза "Я что-то упустил?" приобретает глубокий смысл.
Если можно так ответить - многое упущено, если не всё.
В конфиге должно быть после правильной записи

Код: Выделить всё

[8121234567]
type=peer
username=8121234567
secret=пароль
qualify=no ; вам не нужно же пингать его всё время? Они же рядом?
port=5060
; insecure=port, invite это не нужно, если используется username и secret, я же написал выше?
host=dynamic
context=from-trunk
disallow=all
allow=g729&ulaw&alaw  ; зачем вам поганый сжатый g729 в локальной сети? Оставьте просто ulaw&alaw
ну и что-то надо решить с pjsip, если не изучили его как следует - не надо использовать. Он слушает у вас видать порт 5060, а chan_sip (как заметил коллега Zavr2008 - порт 5160.

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 23 апр 2020, 12:35
dimm-dimm
Поправил конфиги входящих до такого состояния:
type=peer
host=dynamic
username=8121234567
secret=123
qualify=no
port=5060
context=from-trunk
disallow=all
allow=ulaw&alaw
Zavr2008 писал(а):Вы пишите про конфигурацию chan_sip, а прилетает то судя по всему с chan_pjsip!!!
С этим тоже интересно. Сам транк создан как legacy sip, а не pjsip и слушает порт 5060. После смены порта на Dlinke на порт 5160, стало уже прилетать от обычного sip следующее:

Код: Выделить всё

chan_sip.c:28959 handle_request_register: Registration from '"8121234567" <sip:8121234567@192.168.10.10>' failed for '192.168.10.12:5060' - Wrong password
То есть, насколько я понял, что даже с настроенным портом 5061, от Dlink-a регистрация прилетает на порт 5060. Тут, чтобы не путаться, я думаю вариант с портом pjsip можно исключить, так как в обоих случаях все упирается в невозможность авторизации Dlink-a на Астериске через регистрационные данные.

При этом поле secret в настройках транка и поле password на Dlinke полностью идентичны. Также статус входящего пира на Астериске перешел из ОК в UNKNOWN.

То есть на текущий момент я вижу проблему в том, что Dlink через параметр Sip Proxy отправляет регистрацию на астер, через логин и пароль FXO порта, а астериск, по какой-то причине, не может его зарегистрировать из-за неверного логина.

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 23 апр 2020, 12:37
dimm-dimm
При этом, когда я регистрировал транк через внутренний номер, а не через пир, регистрация с Dlink-a проходила корректно. Входящие звонки на этот экстеншн все равно не шли, но это уже отдельная история)

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 23 апр 2020, 13:24
dimm-dimm
Сделал еще следующее:
Прописал на порт FSX данные от обычного внутреннего номера Астериска, и на нем регистрация прошла успешно.

Значит Астериск не понимает регистрационные данные, посылаемые от Dlink-a, которые прописаны у него в транке во входящих настройках пира.
Есть ли еще какие-либо критерии авторизации, кроме полей username и secret?

В интернете ходят легенды, что название транка должно совпадать с полем Username в D-link. Это я тоже пробовал - не помогло.

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 23 апр 2020, 13:53
ded
прилетает не на порт 5060, а с порта 5060 -
'192.168.10.12:5060' - Wrong password
Ещё раз, чтобы не путались:
прилетает от 192.168.10.12:5060 => на 192.168.10.10:5160 (у вас на скриншоте так и указано - sip proxy port 5160)

Код: Выделить всё

<sip:8121234567@192.168.10.10>' failed for '192.168.10.12:5060' - Wrong password
У вас должен быть пир 8121234567 на выводе команды
CLI> sip show peers

Для эксперимента в области паролей Wrong password - уберите всё из поля Password на порту FXO и/или замаркируйте
;secret=
в параметрах пира. Смотрите
CLI> sip set debug ip 192.168.10.12
Добейтесь регистрации. Если не получается - убирайте совсем птичку Register из настрое порта FXO, в настройках пира в Астериске вместо host=dynamic укажите статически host= 192.168.10.12 и уж тогда incecure=invite.
И контролируйте через дебаг
CLI> sip set debug ip 192.168.10.12

Re: Dlink DVG-7111S как Sip-транк

Добавлено: 23 апр 2020, 14:58
dimm-dimm
У вас должен быть пир 8121234567 на выводе команды
CLI> sip show peers
Вывод команды sip show peers:

Код: Выделить всё

[root@asterisk ~]# asterisk -rx "sip show peers"
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description
8121234567/8121234567     192.168.10.12                                Yes        Yes            5060     Unmonitored
rostelecom_outgoing       192.168.10.12                               Yes        Yes            5060     OK (22 ms)
2 sip peers [Monitored: 1 online, 0 offline Unmonitored: 1 online, 0 offline]
В статусе ОК сейчас находится пир для исходящих, который работает корректно.

Вывод дебага ошибки авторизации с включенной регистрацией:

Код: Выделить всё

[2020-04-23 14:42:20] NOTICE[1673]: chan_sip.c:28959 handle_request_register: Registration from '"8121234567" <sip:8121234567@192.168.10.10>' failed for '192.168.10.12:5060' - Wrong password
Scheduling destruction of SIP dialog 'D1B9-1B1D-00000028A72EDF26C892-001@SipHost' in 32000 ms (Method: REGISTER)
Пробовал убирать пароли из FXO Dlink, закомментировал строку secret - все равно выдает Wrong password.
Если не получается - убирайте совсем птичку Register из настрое порта FXO, в настройках пира в Астериске вместо host=dynamic укажите статически host= 192.168.10.12 и уж тогда incecure=invite.
И контролируйте через дебаг
При данных манипуляциях в дебаге вижу вот это:

Код: Выделить всё

<--- SIP read from UDP:192.168.10.12:5060 --->
SIP/2.0 200 OK
Allow:INVITE,ACK,OPTIONS,BYE,CANCEL,INFO,PRACK,REFER,SUBSCRIBE,NOTIFY,UPDATE,SERVICE
Via: SIP/2.0/UDP 192.168.10.10:5160;rport;branch=z9hG4bK379f9346
From: "Unknown" <sip:Unknown@192.168.10.10:5160>;tag=as7aa450fd
To: <sip:192.168.10.12>;tag=aa8af630-347
Call-ID: 1de333e961a8d91f1dae92706e415875@192.168.10.10:5160
CSeq: 102 OPTIONS
Contact: <sip:192.168.10.12:5060>
User-Agent: dlink 12-3895-11529-1.4.2.196-SP350SO
Content-Length: 0
Как я понял, для входящих Dlink должна регистрироваться самостоятельно. Но почему-то регистрируется только как внутренний экстеншн, а не как пир.