VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Kamailio + Asterisk PJSIP без регистрации

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Kamailio + Asterisk PJSIP без регистрации

Сообщение AndyBack »

У меня есть 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.
Turbid
Сообщения: 21
Зарегистрирован: 22 окт 2015, 14:59

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение Turbid »

Вангую что Kamailio на INVITE тебе отдает 407 с просьбой авторизоваться (как последнего абонента какого-то), а астериск такой - ты чего, мы же друзья.

Надо научить Kamailio принимать входящие от астериска без авторизации.
AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение AndyBack »

Надо научить Kamailio принимать входящие от астериска без авторизации.
Я научил. Это не сложно. https://blog.ipcalls24.com/kamailio-dispatcher/

Суть в том, что надо проверять IP-адрес, с которого приходит запрос. И если это адрес одного из астерисков, не делать авторизацию, а сразу идти дальше по конфигу. Гораздо сложнее было научить астериск (pjsip) обрабатывать любые звонки с любыми номерами без какой-либо авторизации. Астериски у меня в локальной сети и никакие посторонние звонки там невозможны (будут отсечены Kamailio). С этим я тоже справился - нужно в настройках не указывать никакие пароли.
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение ded »

астериск может обрабатывать любые звонки с любыми номерами без какой-либо авторизации через chan_sip.
Это самая простая форма вызова по SIP - SIP URI. Cisco systems, SNOM, много лет используют универсальные унифицированные resource indicators для своих сотрудников. Mail URI = SIP URI (Stuart.Biggs@cisco.com). Можно писать, и можно звонить.

exten => 1234,1,Dial(SIP/Stuart.Biggs@cisco.com)
exten => 5678,1,Dial(Mark.Spenser@digium.com)

А с PJSIP как раз проблемы у такой формы.
AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение AndyBack »

Да allowguest=yes в sip.conf решает проблемы. Но это работает только для старого chan_sip. Chan_sip в последних астерисках творит какую-то бесовщину в AMI и течет при нагрузках за 80%. Последний вменяемый астериск - Астериск 11. Но астериск 11 не собирается на последних Дебианах/Убунтах, а старые Дебианы/Убунты не ставятся на современные сервера... Я давно сказал бы астериску "давайдосвиданья", если бы не заказчик с кучей стороннего софта, ориентирующегося на астериск.
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение ded »

1) В последних Дебианах/Убунтах по прежнему есть команда
apt install asterisk

2)
AndyBack писал(а):Chan_sip в последних астерисках творит какую-то бесовщину в AMI и течет при нагрузках за 80%.
Потому что модуль chan_sip не поддерживает мультитреадность.
Но, например, в нашей компании давно сделан форк Asterisk на Debian 10, где код chan_sip радикально переписан для этой поддержки.
Считаю, что усложнение канала (pjsip состоит из 48 файлов!) не оправдано в рамках развития Астериск.
Turbid
Сообщения: 21
Зарегистрирован: 22 окт 2015, 14:59

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение Turbid »

ded писал(а):А с PJSIP как раз проблемы у такой формы.
Сказки какие-то.

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

PJSIP/<endpoint>/<SIP URI>
ded писал(а):Но, например, в нашей компании давно сделан форк Asterisk на Debian 10, где код chan_sip радикально переписан для этой поддержки.
Принято прикладывать ссылку на сорцы
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение Wapo »

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

Принято прикладывать ссылку на сорцы
Уууу - желание влезть в рай на ЧУЖИХ ПЛЕЧАХ?
При компиляции/сборки все ошибки видны - остается их поменять под а-ля новый стек/адресацию.

И соглашусь - 11 версия астера идеальна - только ее в продакшен и ставлю.
AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение AndyBack »

Уууу - желание влезть в рай на ЧУЖИХ ПЛЕЧАХ?
Ну кто-то же влез, взяв астериск, а не написав полностью свое с нуля...
И соглашусь - 11 версия астера идеальна - только ее в продакшен и ставлю.
А как вы его ставите на новые(современные) дистрибутивы? Компилировать некопилящееся с новыми либами = вносить свои баги. Делать свои форки, как тут писали - надо иметь не хилый запас времени и бюджет (помимо мозгов). Поставить на современную машину, к примеру, Дебиан 8 (где астериск 11 собирается на ура) - та еще задача... Докеры, Кубернетисы - фтопку.

У меня, видимо, стандартная проблема. Исходя из требований заказчиков, я не могу пойти на авито. Следовательно, дорога мне только за серверами типа Делл или Супермикро. А там без проблем ставится только Виндовс 11... А то, на что ставились относительно старые дистрибутивы, давно сняты с производства.
Последний раз редактировалось AndyBack 06 ноя 2022, 16:08, всего редактировалось 2 раза.
Turbid
Сообщения: 21
Зарегистрирован: 22 окт 2015, 14:59

Re: Kamailio + Asterisk PJSIP без регистрации

Сообщение Turbid »

Wapo писал(а): Уууу - желание влезть в рай на ЧУЖИХ ПЛЕЧАХ?
В рай на протухшей версии Asterisk? Увольте.
Надеюсь хоть, в соответствии с GPL, заказчику/пользователю своих инсталляций ded отдает код по первому требованию.
Wapo писал(а):И соглашусь - 11 версия астера идеальна - только ее в продакшен и ставлю.
Со всеми CVS? Как мило.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH