Думаю что можно, не могу сказать точно какое событие генерится при этом, но можно подключится к AMI и посмотреть, какие будут "собыния" при нажатии в ivr.
_________________
http://www.myipats.ru
Added after 3 minutes:
т.е. не регистрируется события нажатия кнопки. Agi использовать не вариант, потому что используется MyPbx U100, все конфиги там затираются и agi не поддерживается, приходится реализовывать средствами AMI
чтобы принимать от клиента DTMF нужно со стороны астериска запустить приложение.
Read или WaitExten или что-то типа этого.
Вот через интерфейс приложения и взаимодействуйте.
Просто так ничего само по себе никуда не читается и ничего не исполняется.
Хотите знать что ввёл ну так явно ввод пишите куда надо или отправляте в manager как пользовательское событие
same => n(read),Read(DIGITS,select01.msg,1,n,1,7)
same => n,System(echo "'${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}': call from '${CDR(src)}' to '${CDR(dst)}' - '${DIGITS}' entered" >> ${GLOBAL(LOGDIR)}/NUM.log)
_________________
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI
Вот поэтому я и не люблю все эти "готовые решения"... Чих влево, чих вправо и приходится городить костыли...
Не знаю, какая версия * доступна на MyPBX U100, но вот вам ссылки на события AMI для 11 и 13 версии:
https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+AMI+Events
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+AMI+Events
Лучше, конечно, подключиться и посмотреть что там бегает в AMI при нажатии цифры.
Вообще, если эта шайтан-машина позволит сделать виртуальный exten со своим кастомным контекстом, то можете это использовать в настройках IVR и повесить этот exten на событие нажатия кнопки. Но беглый взгляд на мануал не обнадеживает
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
| Цитата: |
| Подскажите пожалуйста как с помощью ami можно получить номер, который звонящий абонент выбрал в avr? Спасибо |
| Код: |
| Здесь как пример, прилетаем на добавочный номер 11 - вводим циферки и слушаем что ввели ;exten => 11,1,Answer exten => 11,1,Set(CHANNEL(language)=ru) ; Читает вводимые цифры 12 знаков и сохраняет в переменной WHAT_NUMBER, три раза повторяет, с паузой пять сек exten => 11,n,Read(WHAT_NUMBER,/var/lib/asterisk/agents/введите_номер,12,,3,5) ; Затем диктует и повторяет в цикле три раза введенные цифры. exten => 11,n,Set(COUNT=1) exten => 11,n,While($[ ${COUNT} < 3 ]) exten => 11,n,SayAlpha(${WHAT_NUMBER}) exten => 11,n,Set(COUNT=$[${COUNT} + 1]) exten => 11,n,EndWhile() |
Далее, как вариант например, проверяем если ли введенное значение в БД
| Код: |
| exten => 11,n,GotoIf($["${WHAT_NUMBER}" = ""]?nonumber:nextc) ; Меняем введенную 8-ку юзером, на положенное +7 для БД exten => 11,n(nextc),SET(IN_DBAGENT=+7${WHAT_NUMBER:1}) ; Делаем запрос к БД, на наличие введенного номера в таблице blagents exten => 11,n,MYSQL(Connect connid localhost root taxer asterisk) exten => 11,n,MYSQL(Query resultid ${connid} SELECT agents FROM tblagents WHERE agents ='${IN_DBAGENT}') exten => 11,n,MYSQL(FETCH fetchid ${resultid} NUMBER_REGAGENT) ; Очищаем результат, он нам больше не нужен exten => 11,n,MYSQL(Clear ${resultid}) ; Если номер есть, на удаление, если нет - на регистрацию exten => 11,n,NoOP(NumberReg - ${NUMBER_REGAGENT}) exten => 11,n,MYSQL(Disconnect ${connid}) exten => 11,n,GotoIf($["${NUMBER_REGAGENT}" = ""]?nodbagent:yesdbagentdel) ... exten => 11,n(nonumber),Hangup |
Вот здесь - готовые мои решения в extensions.conf, можете надергать себе контекстов или из контекстов. Там все хорошо закоментированно...
http://forum.cxem.net/index.php?s=038b25 ... try2248309