Определить с какого номера был переадресация звонка

Для начинающих.
Всем начинающим - сюда.

Модераторы: Admins, Модераторы

Ответить
sergvic
Сообщения: 32
Зарегистрирован: 14 янв 2010, 15:50

Определить с какого номера был переадресация звонка

Сообщение sergvic » 05 июн 2018, 12:39

Добрый день.
У меня в extensions стоит проверка по callerid кому можно звонить в город на моб и межгород.
Но когда на телефоне ставится переадресация звонка то callerid прилетает того кто звонил на этот телефон н-р моб или городской номер.
В итоге я не могу проверить разрешения. Как мне получить данные с какого номера был перевод звонка

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

[2018-06-04 13:23:53] VERBOSE[13129] app_dial.c:     -- Now forwarding SIP/Q0004079-0001275c to 'Local/9910066666@new_bd_context' (thanks to SIP/4409-0001276a)
[2018-06-04 13:23:53] NOTICE[13129] app_dial.c: Not accepting call completion offers from call-forward recipient Local/9910066666@new_bd_context-0000287a;1
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:1] Set("Local/9910066666@new_bd_context-0000287a;2", "num=9533550044") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:2] GotoIf("Local/9910066666@new_bd_context-0000287a;2", "0?nofmc") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:3] NoOp("Local/9910066666@new_bd_context-0000287a;2", "***** check fmc  *********") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:4] Set("Local/9910066666@new_bd_context-0000287a;2", "fmc=0") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:5] GotoIf("Local/9910066666@new_bd_context-0000287a;2", "1?nofmc") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Goto (new_bd_context,9910066666,8)
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:8] NoOp("Local/9910066666@new_bd_context-0000287a;2", "***** 9533550044  *********") in new stack
[2018-06-04 13:23:53] WARNING[15367] chan_sip.c: This function can only be used on SIP channels.
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:9] Set("Local/9910066666@new_bd_context-0000287a;2", "contact=") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:10] NoOp("Local/9910066666@new_bd_context-0000287a;2", "***** contact   *********") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:11] NoOp("Local/9910066666@new_bd_context-0000287a;2", "***** channel Local/9910066666@new_bd_context-0000287a;2  *********") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:12] NoOp("Local/9910066666@new_bd_context-0000287a;2", "***** callerid 9533550044  *********") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:13] NoOp("Local/9910066666@new_bd_context-0000287a;2", "***** sipcallid   *********") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:14] NoOp("Local/9910066666@new_bd_context-0000287a;2", "***** sipuseragent   *********") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:15] Set("Local/9910066666@new_bd_context-0000287a;2", "allow=") in new stack
[2018-06-04 13:23:53] WARNING[15367] ast_expr2.fl: ast_yyerror():  syntax error: syntax error, unexpected '=', expecting $end; Input:
  = 1
  ^
[2018-06-04 13:23:53] WARNING[15367] ast_expr2.fl: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/AST/Channel+Variables
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:16] GotoIf("Local/9910066666@new_bd_context-0000287a;2", "?dial") in new stack
[2018-06-04 13:23:53] VERBOSE[15367] pbx.c:     -- Executing [9910066666@new_bd_context:17] Hangup("Local/9910066666@new_bd_context-0000287a;2", "") in new stack
В 15 строке ошибка из-за того что я лезу в базу и ищу местный номер телефона (callerid) а так как callerid у меня сотовый то в базе его нету.
Вот тут

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

Now forwarding SIP/Q0004079-0001275c to 'Local/9910066666@new_bd_context' (thanks to SIP/4409-0001276a)
видно что перевод был с 4409, но как мне получить этот номер ?

awsswa
Сообщения: 1721
Зарегистрирован: 28 апр 2012, 10:19
Откуда: Russia, Пермь

Re: Определить с какого номера был переадресация звонка

Сообщение awsswa » 06 июн 2018, 06:28

еще одну проверку на номера на которые можно переводить (список сотовых)
платный суппорт по мере возможностей

xelas
admin
Сообщения: 1138
Зарегистрирован: 05 мар 2007, 11:21

Re: Определить с какого номера был переадресация звонка

Сообщение xelas » 06 июн 2018, 06:45

Обычно, если на телефоне включена переадресация, то будет заполнено поле Diversion sip-заголовков. В нем должен быть оригинальный номер(номер, на котором включена переадресация).

virus_net
Сообщения: 438
Зарегистрирован: 05 окт 2014, 06:10
Откуда: Москва
Контактная информация:

Re: Определить с какого номера был переадресация звонка

Сообщение virus_net » 07 июн 2018, 05:08

1. Такую переадресацию нужно запрещать как класс, т.к. ломают телефон, выставляют переаресацию в новую гвинею и вперед загонять вас в долги.
Переадресация должна выполняться средствами станции, а никак не телефона.
Сколько раз я сталкивался с подобными обращениями.. уже не счесть.

2. При создании пира (в sip.conf) есть возможность присвоить пиру переменную, которая будет всегда выставляться при вызовах с этого пира. Выставьте переменную и проверяйте ее значение.
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)
- whois сервис: whois.bitname.ru или whois.bitname.bit
- dns сервис: dns1.bitname.ru dns2.bitname.ru
- статистика по доменам
ENUMER - звони бесплатно и напрямую.

Ответить