Kamailio + Asterisk PJSIP без регистрации
Добавлено: 15 окт 2022, 21:37
У меня есть Kamailio и Asterisk 16 в локальной изолированной сети. Все абоненты регистрируются на Kamailio и получается регистрация на Asterisk вроде как не нужна. Звонок (легА) приходит на Kamailio, тот передает его в Asterisk. Asterisk по диалплану делает новый звонок (легБ) и отправляет его обратно в Kamailio, Т.к. позвонить могут только на Kamailio а Asterisk им недоступен, то вроде получается у Asterisk нет никаких своих внутренних абонентов и задача сводится к принять с транка и направить в тот же транк...
- Как в PJSIP сделать взаимодействие Kamailio <---> Asterisk без регистраций/паролей итд? Чтобы Asterisk обрабатывал любые номера (неверные отсечет Kamailio)
- Такая схема имеет смысл? Или надо действовать иначе?
Интернет говорит, что надо идентифицировать Kamailio по IP адресу и не указывать блок auth...
pjsip.conf
[global]
;================================ TRANSPORTS ==
[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0
;================================ ENDPOINT TEMPLATES ==
[kamailio]
type = endpoint
transport = transport-udp
context = kamailio-in
allow = !all,alaw,ulaw
direct_media = no
dtmf_mode = rfc4733
aors = kamailio
[kamailio]
type = identify
endpoint = kamailio
srv_lookups = no
match = 192.168.1.170 ; это адрес Kamailio
[kamailio]
type = aor
contact = sip:192.168.1.170:5060
extensions.conf
[globals]
INTERNAL_DIAL_OPT=30
[kamailio-in]
exten = _X.,1,NoOp("New Call ---- From[${CALLERID(name)}] ---> To[${EXTEN}]")
same = n, Dial(PJSIP/${EXTEN}@kamailio, ${INTERNAL_DIAL_OPT})
same = n. Hangup()
В результате имею:
Connected to Asterisk 16.16.1~dfsg-1+deb11u1 currently running on ast1 (pid = 8260)
Core debug is still 5.
-- Executing [2012@kamailio-in:1] NoOp("PJSIP/kamailio-00000000", ""New Call ---- From[2011] ---> To[2012]"") in new stack
-- Executing [2012@kamailio-in:2] Dial("PJSIP/kamailio-00000000", "PJSIP/2012@kamailio, 30") in new stack
-- Called PJSIP/2012@kamailio
[Oct 15 21:35:02] WARNING[8287]: res_pjsip_outbound_authenticator_digest.c:178 digest_create_request_with_auth: Endpoint: 'kamailio': Unable to create request with auth. No auth credentials for realm(s) '192.168.1.173' in challenge.
== Everyone is busy/congested at this time (1:0/0/1)
-- Auto fallthrough, channel 'PJSIP/kamailio-00000000' status is 'CHANUNAVAIL'
ast1*CLI>
Т.е. Asterisk не может создать исходящий без auth.
- Как в PJSIP сделать взаимодействие Kamailio <---> Asterisk без регистраций/паролей итд? Чтобы Asterisk обрабатывал любые номера (неверные отсечет Kamailio)
- Такая схема имеет смысл? Или надо действовать иначе?
Интернет говорит, что надо идентифицировать Kamailio по IP адресу и не указывать блок auth...
pjsip.conf
[global]
;================================ TRANSPORTS ==
[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0
;================================ ENDPOINT TEMPLATES ==
[kamailio]
type = endpoint
transport = transport-udp
context = kamailio-in
allow = !all,alaw,ulaw
direct_media = no
dtmf_mode = rfc4733
aors = kamailio
[kamailio]
type = identify
endpoint = kamailio
srv_lookups = no
match = 192.168.1.170 ; это адрес Kamailio
[kamailio]
type = aor
contact = sip:192.168.1.170:5060
extensions.conf
[globals]
INTERNAL_DIAL_OPT=30
[kamailio-in]
exten = _X.,1,NoOp("New Call ---- From[${CALLERID(name)}] ---> To[${EXTEN}]")
same = n, Dial(PJSIP/${EXTEN}@kamailio, ${INTERNAL_DIAL_OPT})
same = n. Hangup()
В результате имею:
Connected to Asterisk 16.16.1~dfsg-1+deb11u1 currently running on ast1 (pid = 8260)
Core debug is still 5.
-- Executing [2012@kamailio-in:1] NoOp("PJSIP/kamailio-00000000", ""New Call ---- From[2011] ---> To[2012]"") in new stack
-- Executing [2012@kamailio-in:2] Dial("PJSIP/kamailio-00000000", "PJSIP/2012@kamailio, 30") in new stack
-- Called PJSIP/2012@kamailio
[Oct 15 21:35:02] WARNING[8287]: res_pjsip_outbound_authenticator_digest.c:178 digest_create_request_with_auth: Endpoint: 'kamailio': Unable to create request with auth. No auth credentials for realm(s) '192.168.1.173' in challenge.
== Everyone is busy/congested at this time (1:0/0/1)
-- Auto fallthrough, channel 'PJSIP/kamailio-00000000' status is 'CHANUNAVAIL'
ast1*CLI>
Т.е. Asterisk не может создать исходящий без auth.