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

callerId (номер звонящего) в случае авторизации user/pwd

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

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

Ответить
magicprinc
Сообщения: 8
Зарегистрирован: 25 окт 2010, 17:24
Контактная информация:

callerId (номер звонящего) в случае авторизации user/pwd

Сообщение magicprinc »

Кросс-пост с asterisk-support т.к. a-s жутко тормозит...
/Пояснение: речь идет о sip, callerId = номер звонящего как его увидит получатель, звоним на PSTN поэтому интересует number часть callerId/

При авторизации по IP (sip.conf [userorpeer] host = - и звонящий к нам и при звонке от нас может подставляться произвольный callerId.

При авторизации по "user"/password в качестве caller number всегда подставляется "user" (а вот caller name свободно передается).
Т.е. fromuser = vasya забъет номер который клиент хотел подставить в качестве номера звонящего.

Вопрос:
Есть ли стандатный способ дать клиенту с динамическим IP, и как следствие авторизующемуся по user/pwd, возможность подставлять разные callerId?


Мои "наверно неправильные" идеи (если стандартного способа нет):
- попробовать настроить так, чтобы от клиента приходил register с его логином/паролем, но последующие invite шли без авторизации (опция insecure?)
- передавать номер звонящего caller number в caller name и у себя заменять num на name
- очевидный способ - завести несколько [user]s у каждого свой callerId, но хочется одно подключение
Веселый робот +7(347)293-4512 (обычный городской Уфы)
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

Re: callerId (номер звонящего) в случае авторизации user/pwd

Сообщение ded »

CallerID не зависит от логина/пароля. Если провайдер отправляет прозрачно,то поставьте хоть рэндомайзер на первом шаге

exten => _X.,1,Set(CALLERID(num)=вот сюда любой вариант генерации случайного CID)
exten => _X.,n,Dial(Technology/provider/${EXTEN})
magicprinc
Сообщения: 8
Зарегистрирован: 25 окт 2010, 17:24
Контактная информация:

Re: callerId (номер звонящего) в случае авторизации user/pwd

Сообщение magicprinc »

Возможно я что-то делаю не так, но sip debug показывает, что callerId number забивается логином/username

если
defaultuser/authusername = = 160218,
набираемый номер = 1234567890,
адрес SIP сервера куда звоним = ku.da.i.p (ex: 192.168.56.1),
адрес нашего asterisk = na.sh.i.p (ex: 10.10.1.1),
наш callerId name = 2005

то
SIP/device/number:

INVITE sip:1234567890@ku.da.i.p:5060 SIP/2.0
Via: SIP/2.0/UDP na.sh.i.p:5060;branch=z9hG4bK3b98d929;rport
From: "2005" <sip:160218@ku.da.i.p>;tag=as36f6a381
To: <sip:1234567890@ku.da.i.p:5060>
Contact: <sip:160218@na.sh.i.p>
Call-ID: 5e13863a3c49627571245a33514b2a2d@ku.da.i.p
CSeq: 102 INVITE
User-Agent: Asterisk PBX 1.6.2.13
Date: Tue, 26 Oct 2010 12:07:39 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 348
...

Как видите fromuser == 160218 забивает callerId number выставленный на телефоне.
Если оставлять там callerid number (некий левый) - то само собой не проходит авторизация, т.к.
левый_номер@ku.da.i.p не прописан на SIP сервере ku.da.i.p


Если авторизация по IP, то user может быть любым:
From: "2005" <sip:пихай_всё_что_хочешь@ku.da.i.p>;tag=as36f6a381
и если у провайдера которому звоним не режется - этот номер увидит набираемый абонент.

Аналогично если анонимусы разрешены - то звоним с любого имени домена, и оно идет по правилам глобального sip.conf context.


Lynks советует способ 2 (в name num)

Alekz предложил вариант http://www.voip-info.org/wiki/view/P-As ... -ID+header
P-Asserted-identity - общепринятое раширение SIP 2.0
Remote-party-id - чей-то вендорный (вроде) финт ушами.

Но надо тестировать кто из провайдеров/вендеров поддерживает P-Asserted-identity



Тема выстрелила тут: http://asterisk-support.ru/forum/topics/7511/
Веселый робот +7(347)293-4512 (обычный городской Уфы)
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH