Я кидаю разработчику событие вызова:
exten => s,1,System(/etc/asterisk/invoke.sh dial ${CALLERID(num)} 202 ${SIPCALLID})
И событие взятие трубки:
same => n,Dial(SIP/202,15,M(/etc/asterisk/invoke.sh pickup ${CALLERID(num)} 202 ${SIPCALLID})
А как поймать событие перевода вызова? То есть к челу приходит звонок, он берет трубку, затем набирает на телефоне R -> XXX (перевод вызова на другй экстэншн). И вот этот самый перевод мне надо отослать разработчику в реальном времени. Я посмотрел параметры Dial'а - там не нашел ничего, что могло бы мне помочь.
Кстати, после перевода звонка, астериск всё еще думает, что первый экстэншн занят. Как разорвать соединение первого экстэншна?
для сип есть понятие transfer context. можно его выставить в какойто другой и там ловить.
а в общем случае - никак, только через ami event снаружи или через CEL тоже снаружи.
Задан: 2018-01-09 09:47:53 +0400
Просмотрен: 354 раз
Обновлен: Jan 09 '18
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
кстати, елси первый екстеншен реально занят, возможно у вас не перевод а конференция средствами телефона. смотрите core show channels
meral ( 2018-01-09 10:55:30 +0400 )редактировать