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

Проблема с одинаковым именем пира

Добавлено: 11 дек 2021, 00:03
andrew-khv
Здравствуйте.
Проблема следующая: на сервере имеем имена пиров соответствующие номерам мобильных (79998887766). Такой формат связан с системой авторизации в информационной системе компании, которая появилась задолго до Астериска и менять ее будет сложно.
Пользуемся сервисом облачной телефонии от Ростелекома. До недавнего времени на входящих из внешнего мира было достаточно логики, которую предоставляет в рамках услуги РТК. Соответственно, офисные телефоны (у которых имена стандартные, ну там 101, 102 и т.п.) наравне с сервером регались напрямую в РТК, проблем со входящими в рамках офиса не было.
Сейчас захотели CRM, связки с оповещалкой whatspp и т.п., все входящие пришлось заворачивать на asterisk. И вот тут появилась проблема со входящими с мобильных номеров, которые уже зарегистрированы в системе с качестве пиров.
Вот звонок извне (со стороны Ростелекома) с мобильного телефона +79998887766 ( 74212332211 - городской внешний номер). Одновременно на сервере есть такой SIP-пир (79998887766).

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

<--- SIP read from UDP:x.x.x.x:5060 --->
INVITE sip:74212332211@y.y.y.y:5060 SIP/2.0
Via: SIP/2.0/UDP x.x.x.x:5060;branch=z9hG4bK3mbntg202op565gksaq0.1
From: "79998887766" <sip:79998887766@999999.35.rt.ru>;tag=ziYR38bE
To: <sip:asterisk@999999.35.rt.ru>
Call-ID: 04e3-HXDMnXY3i0o4@10.243.214.134
CSeq: 1 INVITE
Contact: <sip:79998887766@x.x.x.x:5060;transport=udp>
Content-Type: application/sdp
Max-Forwards: 66
Supported: replaces
User-Agent: RTC CallManager 7.8-37
X-SID: 04e3-qzkuOuMqENkq
Content-Length: 197

v=0
o=- 045047 45047 IN IP4 x.x.x.x
s=-
c=IN IP4 x.x.x.x
t=0 0
m=audio 9778 RTP/AVP 8 18 0 97
a=rtpmap:18 G729/8000
a=rtpmap:97 telephone-event/8000
a=fmtp:97 0-15
a=sendrecv
<------------->
--- (13 headers 10 lines) ---
Sending to x.x.x.x:5060 (no NAT)
Sending to x.x.x.x:5060 (no NAT)
Using INVITE request as basis request - 04e3-HXDMnXY3i0o4@10.243.214.134
Found peer '79998887766' for '79998887766' from x.x.x.x:5060

<--- Reliably Transmitting (NAT) to x.x.x.x:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP x.x.x.x:5060;branch=z9hG4bK3mbntg202op565gksaq0.1;received=212.122.2.180;rport=5060
From: "79998887766" <sip:79998887766@999999.35.rt.ru>;tag=ziYR38bE
To: <sip:asterisk@999999.35.rt.ru>;tag=as3fd55650
Call-ID: 04e3-HXDMnXY3i0o4@10.243.214.134
CSeq: 1 INVITE
Server: Asterisk PBX 16.1.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="5fd07baf"
Content-Length: 0
В дебаге видно, что звонок отрубается уже на INVITE по unauthorized. Сервер хочет, чтобы пир зарегистрировался. Нужно как-то сменить caller id, но как это сделать, если до диалплана вызов не доходит.
Может кто-нибудь сталкивался?
Настройки пира (если будет полезно). Да, пиры в realtime из mysql:

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

MariaDB [asterisk]> select name, host, type, context, dtmfmode, nat, disallow, allow, qualify from sippeers where name = '7999888776';
+-------------+---------+--------+-------------+---------------+---------------------+----------+----------------+---------+
| name        | host    | type   | context |  dtmfmode | nat                 | disallow | allow          | qualify |
+-------------+---------+--------+---------+------------------------------+----------+---------------------+----------+----------------+---------+
| 7999888776 | dynamic | friend | mobile  | rfc2833  | force_rport,comedia | all      | alaw;ulaw;h264 | no      |
+-------------+---------+--------+---------+------------------------------+----------+---------------------+----------+----------------+---------+
Настройки транка на Ростелеком:

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

[general]
register => asterisk:yyyyyyy@999999.35.rt.ru/7421233221
[new-rt]
username=asterisk
type=friend
secret=yyyyyyy
qualify=yes
nat=no
insecure=invite
host=999999.35.rt.ru
fromuser=asterisk
fromdomain=999999.35.rt.ru
dtmfmode=rfc2833
defaultuser=asterisk
canreinvite=no
context=call-in
disallow=all
allow=alaw
allow=ulaw

Re: Проблема с одинаковым именем пира

Добавлено: 11 дек 2021, 14:46
dimondack
Что то кодека 711 не видать в дебаге

Re: Проблема с одинаковым именем пира

Добавлено: 11 дек 2021, 21:06
ded
andrew-khv писал(а):И вот тут появилась проблема со входящими с мобильных номеров, которые уже зарегистрированы в системе с качестве пиров.
В которой системе? У вас их две - виртуальная АТС РТК и Астериск
andrew-khv писал(а):Одновременно на сервере есть такой SIP-пир (79998887766).
А зачем он там? Может просто удалить его?
andrew-khv писал(а): звонок отрубается уже на INVITE по unauthorized. Сервер хочет, чтобы пир зарегистрировался.
Сервер не хочет, чтобы пир зарегистрировался. Сервер хочет чтобы пир аутентифицировался при этом звонке. SIP INVITE и SIP REGISTER - это разные диалоги, не зависят один от другого. То есть SIP INVITE должен прибегать с аутентификацией через дайджест, о чём и сообщает Астериск -
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="5fd07baf"

Посмотрите внимательно любой другой валидный инвайт. Диалог начинается точно так же, после первого инвайта поступает ответ SIP/2.0 401 Unauthorized с дайджестом, и второй инвайт от пира (с секретом) уже обрабатывается.

Примите решение что использовать вам приоритетнее: старая схема, при которой моб. устройства и офисные 101, 102, 103 регистрируются на виртуальной АТС РТК, или новая, при которой все эти устройства регистрируются на Астериске.
Во втором случае виртуальная АТС РТК будет работать транзитно, как обычный SIP провайдер, передавая все входящие из мира на Астериск, и назад, все исходящие из Астериска прозрачно в мир.

Re: Проблема с одинаковым именем пира

Добавлено: 12 дек 2021, 07:33
andrew-khv
dimondack писал(а):Что то кодека 711 не видать в дебаге
Ну его просто нет :-)

Re: Проблема с одинаковым именем пира

Добавлено: 12 дек 2021, 08:49
andrew-khv
ded писал(а):В которой системе? У вас их две - виртуальная АТС РТК и Астериск
Клиентская CRM, клиентское мобильное приложение, клиентский личный кабинет на сайте. Менять систему авторизации - это последний из вариантов, которые рассматриваются.
ded писал(а):А зачем он там? Может просто удалить его?
К сожалению, нельзя - позвонит недовольный клиент, у которого перестанут работать звонки в мобильном приложении.
ded писал(а):Сервер не хочет, чтобы пир зарегистрировался. Сервер хочет чтобы пир аутентифицировался при этом звонке. SIP INVITE и SIP REGISTER - это разные диалоги, не зависят один от другого. То есть SIP INVITE должен прибегать с аутентификацией через дайджест, о чём и сообщает Астериск -
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="5fd07baf"
Посмотрите внимательно любой другой валидный инвайт. Диалог начинается точно так же, после первого инвайта поступает ответ SIP/2.0 401 Unauthorized с дайджестом, и второй инвайт от пира (с секретом) уже обрабатывается.
Нет, в настройках транка указано - "insecure=invite". Если пира нет, входящий проходит без проблем, аутентификация ивайта в этом случае не нужна.
ded писал(а): Примите решение что использовать вам приоритетнее: старая схема, при которой моб. устройства и офисные 101, 102, 103 регистрируются на виртуальной АТС РТК, или новая, при которой все эти устройства регистрируются на Астериске.
Во втором случае виртуальная АТС РТК будет работать транзитно, как обычный SIP провайдер, передавая все входящие из мира на Астериск, и назад, все исходящие из Астериска прозрачно в мир.
Приоритетной является схема с единым сервером на Астериске, который может реализовать весь требуемый функционал. Нужно техническое решение для преодоления проблемы с дублированием имени пира, как я описал выше. Сейчас пытаемся договориться с РТК, но может у кого-нибудь есть идеи и можно это проще решить?

Re: Проблема с одинаковым именем пира

Добавлено: 13 дек 2021, 10:56
Zavr2008
Транзитная система просится, например на Kamailio. Через нее в ростелик и вылезайте.
на сервере имеем имена пиров соответствующие номерам мобильных (79998887766). Такой формат связан с системой авторизации в информационной системе компании
А вот это уже костобрющие, его нужно править в самолепных пельменях для связи с Великой Информационной Системой.