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

отслеживание перехвата

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

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

userkarl
Сообщения: 41
Зарегистрирован: 07 июл 2016, 20:31

отслеживание перехвата

Сообщение userkarl »

Добрый день.

Подскажите, пожалуйста есть ли переменная, в которой содержится номер телефона, который звонил и был перехвачен?
На телефоне он отображается, но ни как не могу его получить, что-бы сообщить перехватившему информацию по данному номеру.


И второй вопрос - как перехватывать звонок, если разговор уже идет и приходит второй звонок. Как этот второй перехватить?
Через **num не получается, видимо он пытается перехватить первый звонок.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: отслеживание перехвата

Сообщение Wapo »

Для начала DumpChan вам в помощь, где все переменные увидите.
А насчет перехвата посмотрите: https://wapo-spb.livejournal.com/7753.html
Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: отслеживание перехвата

Сообщение Zavr2008 »

функция CONNECTEDLINE в помощь.
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
userkarl
Сообщения: 41
Зарегистрирован: 07 июл 2016, 20:31

Re: отслеживание перехвата

Сообщение userkarl »

Спасибо за советы.
Но видимо я не правильно выразился - как узнать данные до того, как вызвано pickup()?
Не могу ни как сообразить. Ведь до команды перехвата не известно ни чего о перехватываемом звонке.
Хочется послать команду до начала перехваченного разговора.

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

        _**X. => {

                NoOp(From=${PJSIP_HEADER(read,From)});
                NoOp(TEST=${CONNECTEDLINE(all)});
                NoOp(exten=${EXTEN});
                NoOp(callerid=${CALLERID(num)});
                NoOp(channel=${CHANNEL});
                DumpChan(1);
                Pickup(${EXTEN:2});
                HangUp();
        };
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: отслеживание перехвата

Сообщение ded »

extensions_custom.conf

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

[from-internal-custom]
exten => _**X.,1,NoOp(From=${PJSIP_HEADER(read,From)})  ; а это зачем?
same => n,NoOp(TEST=${CONNECTEDLINE(all)}) 
same => n,NoOp(exten=${EXTEN}) 
same => n,NoOp(callerid=${CALLERID(num)}) 
same => n,NoOp(channel=${CHANNEL}) 
same => n,DumpChan(1)
same => n,Pickup(${EXTEN:2}@ext-local)
Оформление туманных идей в код диал-плана. Дорого. (с)
userkarl
Сообщения: 41
Зарегистрирован: 07 июл 2016, 20:31

Re: отслеживание перехвата

Сообщение userkarl »

Это просто в CLI следил за разными переменными.

Думал донес что хочется получить. Видимо не понятно, попытаюсь по другому:

Есть команда Pickup(${EXTEN:2});
До ее выполнения надо получить номер звонящего, который мы перехватываем.

Объяснение ситуации:

В соседнем кабинете звонит телефон, у меня мигает BLF, я нажимаю и вижу на телефоне номер и имя того, кто звонил в соседний кабинет.
Но не всегда имя помещается на экране. А хотелось бы сказать "Здравствуйте Иван Иванович..."
Да и неизвестный номер надо бы проверить по спам базам.

По этому вопрос как получить этот номер?
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: отслеживание перехвата

Сообщение ded »

userkarl писал(а):В соседнем кабинете звонит телефон, у меня мигает BLF, я нажимаю и вижу на телефоне номер и имя того, кто звонил в соседний кабинет.
Но не всегда имя помещается на экране.
Купить телефон с бОльшим экраном.
userkarl писал(а):Да и неизвестный номер надо бы проверить по спам базам.
Модуль CIDlookup в сценарий inbound routes.
userkarl писал(а):По этому вопрос как получить этот номер?
same => n,NoOp(callerid is ${CALLERID(all)})
userkarl
Сообщения: 41
Зарегистрирован: 07 июл 2016, 20:31

Re: отслеживание перехвата

Сообщение userkarl »

ded писал(а):same => n,NoOp(callerid is ${CALLERID(all)})
А вы в курсе, что в контексте перехвата ${CALLERID(all)} равен внутреннему номеру на который звонят, а не тому, который звонит.
По сути перехватывающий совершает исходящий звонок на номер перехватываемого, но вместо DIAL идет PICKUP.
И т.к. это разные каналы, то переменные между ними не передаются. Можно записать в глобальную, но тогда вопрос -
если будет два звонка одновременно, то в переменной будет данные от последнего звонка, а перехват какого из них произойдет?
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: отслеживание перехвата

Сообщение ded »

Готов воспроизвести диал-план, указанный выше, в таком виде -

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

[from-internal-custom]
exten => _**X.,1,NoOp(Connected line is ${CONNECTEDLINE(all)})
same => n,NoOp(exten is ${EXTEN:2})
same => n,NoOp(callerid is ${CALLERID(all)})
same => n,NoOp(channel is ${CHANNEL}) 
И позвоню с номера 721 на 731. Согласно вашему утверждению
userkarl писал(а):в контексте перехвата ${CALLERID(all)} равен внутреннему номеру на который звонят, а не тому, который звонит.
callerid is будет равен 731, а не 721, так?
userkarl
Сообщения: 41
Зарегистрирован: 07 июл 2016, 20:31

Re: отслеживание перехвата

Сообщение userkarl »

ded писал(а):Готов воспроизвести диал-план, указанный выше, в таком виде -

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

[from-internal-custom]
exten => _**X.,1,NoOp(Connected line is ${CONNECTEDLINE(all)})
same => n,NoOp(exten is ${EXTEN:2})
same => n,NoOp(callerid is ${CALLERID(all)})
same => n,NoOp(channel is ${CHANNEL}) 
И позвоню с номера 721 на 731. Согласно вашему утверждению
userkarl писал(а):в контексте перехвата ${CALLERID(all)} равен внутреннему номеру на который звонят, а не тому, который звонит.
callerid is будет равен 731, а не 721, так?
Звонок идет с номера, например, +79998887766 на 731. На телефоне с номером 721 набираю **731 и происходит Pickup(${EXTEN:2});
Хочу видеть в карточке или в мессенджере(это уже сам сделаю как надо) номер - +79998887766. Т.е. мне надо в команду SHELL передать
именно +79998887766.
Типа такого:

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

    _**. => {
            Set (num="+79998887766"); // Вот здесь надо подставить нужный номер.
            Set(result=${SHELL(script.bash ${num} )});
            Pickup(${EXTEN:2});
            HangUp();
     };
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH