Страница 1 из 2
Номер звонящего пропал
Добавлено: 20 июл 2018, 11:28
vgo
Есть установленный и настроенный несколько лет назад Астериск 11.17.1
Подключен к одному и тому же SIP провайдеру (Зебра, если что)...
Получал от него входящие звонки, обрабатывал.. Все работает, в т.ч. определяются номера, откуда пришел звонок.
Вчера не определился исходящий номер для двух звонков. При этом провайдер утверждает, но номер есть в его логах (один и тот же) и, стало быть, был передан нам.
В логе (Master) Астериска номер для этих двух звонков не определен.
Номер, в самом деле, странноватый: 338704.... (11 цифр)
При этом "нормальные" звонки, десятки их, проходят нормально, и номер звонящего в логи заносится.
Вопрос: Есть ли в Астериске кто-то такой умный, что решает, какие номера правильные, а какие - нет, и убирает сомнительные, после чего звонок проходит как анонимный.
Прошу прощения, Астериском и телефонией вообще я занимался давно, во владении терминологией не уверен. Поэтому самостоятельное изучение конфигов по незнакомому предмету - это для меня целая история.
PS. Анализ логов показывает, что анонимные звонки мы имеем раз в несколько месяцев, то есть, редко. Но когда имеем - они могут быть как одиночные, так и сериями. Так, 30-го января было 3 таких звонка. Видимо, не определяются какие-то конкретные номера, и ладно бы, не всем же определяться... но в логах у провайдера вчерашний номер есть, а у меня - нет, вот что странно.
PPS. Я не исключаю варианта, что провайдер все-таки не передал нам этот номер. Мне хочется быть уверенным, что не я его теряю.
Re: Номер звонящего пропал
Добавлено: 20 июл 2018, 13:49
awsswa
смотрите историю пока не поздно и логи остались
ну или нанимайте того кто будет смотреть историю
варианты, что то произошло, сделайте что бы это не повторялось все идут через раздел бизнес
Re: Номер звонящего пропал
Добавлено: 20 июл 2018, 20:28
ded
CLI> sip set debug ip IP_ADDRESS_PROVIDER
и смотрите /var/log/asterisk/full
когда приплывёт анонимный. Думаю, что в соответствии с RFC вам на этих звонках просто передают Caller ID name = "Anonymous" , а номер там действительно присутствует. Это и вызывает непонимание.
Re: Номер звонящего пропал
Добавлено: 24 июл 2018, 11:36
vgo
Спасибо.
Диагностику включу, но, учитывая, что это происходит раз в несколько месяцев, ждать повторения долго.
Пока у меня этого лога нет.
Но в том логе, который есть, у меня записано
"","","12ххххххх","incoming","anonymous","SIP/zebra-00000036","OOH323/OlyPBX-36","Dial","OOH323/OlyPBX/605","2018-07-19 17:13:39","2018-07-19 17:13:55","2018-07-19 17:21:16",457,441,"ANSWERED","DOCUMENTATION","1532009619.90",""
anonymous присутствует, номер, который должен был быть во второй позиции, отсутствует.
Так что если кого и сбило, то самого астериска.
Это возможно?
Re: Номер звонящего пропал
Добавлено: 24 июл 2018, 15:05
ded
Пересылайте этот кусок лога провайдеру (Зебра, если что)... и качайте права.
Астериск тут не при чём.
Re: Номер звонящего пропал
Добавлено: 24 июл 2018, 19:57
vgo
Спасибо. С этой диагностикой точно не прокачаю. Теперь уже буду ждать следующего раза, когда будет диагностика более полная.
Re: Номер звонящего пропал
Добавлено: 26 июл 2018, 15:21
vgo
Ага, сработало. Имею неопределившийся звонок и вот такой лог:
[Jul 26 14:13:41] VERBOSE[13900] chan_sip.c:
<--- SIP read from UDP:213.145.43.128:5061 --->
INVITE sip:123xxxxxxxxxxxx:5060 SIP/2.0
Via: SIP/2.0/UDP 213.145.43.128:5061...
From: "anonymous" <sip:213.145.43.128:5061;user=phone>;tag=....
To: <sip:...
Call-ID: f40d8bb090...
CSeq: 1 INVITE
Contact: "anonymous" <sip:213.145.43.128:5061;user=phone>
Content-Type: application/sdp
Allow: ACK, BYE, CANCEL, INFO, INVITE, OPTIONS, REFER, REGISTER, UPDATE
Max-Forwards: 70
User-Agent: MERA MVTS3G v.4.4.0-20
Cisco-Guid: 4092975452-...
Remote-Party-ID: <sip:903xxxxx@213.145.43.128:5061;user=phone>;party=calling;privacy=full;screen=yes
Content-Length: 404
...
Где видим, что в полях From и Contact, где обычно указан номер звонящего, стоит anonymous
В то же время в Remote-Party-ID, похоже, номер звонящего присутствует.
В логе Master:
"","","123xxxxxx","incoming","anonymous","SIP/zebra-00000020","OOH323/OlyPBX-29","Dial","OOH323/OlyPBX/601","2018-07-26 14:13:41","2018-07-26 14:13:56","2018-07-26 14:15:04",83,68,"ANSWERED","DOCUMENTATION","1532603621.61",""
С провайдером я на эту тему связался, но хочу узнать и про Астериск.
Вопросы:
1. Могу ли я как-то извлечь для себя (передать в скрипт) значение поля Remote-Party-ID? Конечно, не из full лога. Или, скажем, могу ли я получить значение этого и других параметров SIP вызова, не изменяя поведения Asterisk.
2. Правильно ли, что Астериск не использует это значение?
3. Можно ли настроить Астериск так, чтобы это значение использовалось, в частности, для формирования лога Master? Точнее, про параметр trustrpid я прочитал, так что вопрос скорее звучит так: правильно ли его разрешать? Не потеряю ли я больше, чем получу? Ведь не все формируют rpid.
4. Можно ли настроить Астериск так, чтобы он использовал RPID только в случае anonymous в поле From? Или чтобы использовал RPID, а при его отсутствии - From?
Re: Номер звонящего пропал
Добавлено: 26 июл 2018, 15:56
vgo
Вопрос номер 1 снят. Разобрался.
Вопросы 2-4 остаются.
Re: Номер звонящего пропал
Добавлено: 26 июл 2018, 16:48
ded
2. Правильно
3. Можно
4. Можно
Буквально две -три строчки в приёмном контексте от провайдера, c помощью функции SIP Header анализируем поле FROM (anonymous в поле From?), и если там = anonymous, то с помощью той же функции переписываем значение номера телефона в переменную CALLERID(num)/ "lfrbq ltfyjybvbpfnjh
https://www.voip-info.org/asterisk-func-sipheader/
Re: Номер звонящего пропал
Добавлено: 26 июл 2018, 17:15
vgo
2. Спасибо
3. Я прочитал в инете, что RPID - заголовок нестандартный и не рекомендованный к использованию. Если это правда и все еще актуально, то может статься, что во многих случаях его не будет. Тот же Астериск его по умолчанию не формирует. Тогда просто указание trustrpid=yes не приведет ли к тому, что будет гораздо больше не определенных номеров? Какая тенденция в отношении RPID - оно отмирает или становится стандартным?
4. Спасибо. Про SIP_HEADER я нашел и уже использую... воткнуть в extension.conf команды для подмены не сообразил (( Но значение RPID содержит гораздо больше, чем только номер. Мне надо вырезать номер и пихать в CALLERID(num)? А нельзя куда-то поместить всю строчку из RPID, чтобы Asterisk сам ее разобрал?
Я сделал подмену в bash скрипте, оно там работает, но это решение не очень мне нравится.