Asterisk manager interface

Разработка и отладка Asterisk и его приложений.

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

Ответить
kadet635
Сообщения: 3
Зарегистрирован: 08 ноя 2015, 18:27

Asterisk manager interface

Сообщение kadet635 » 29 ноя 2015, 14:43

Здравствуйте. Подскажите пожалуйста как с помощью ami можно получить номер, который звонящий абонент выбрал в avr? Спасибо

gik
Сообщения: 49
Зарегистрирован: 09 июн 2010, 09:24
Контактная информация:

Сообщение gik » 29 ноя 2015, 19:32

Возможно вы имели в виду ivr?
Думаю что можно, не могу сказать точно какое событие генерится при этом, но можно подключится к AMI и посмотреть, какие будут "собыния" при нажатии в ivr.

kadet635
Сообщения: 3
Зарегистрирован: 08 ноя 2015, 18:27

Сообщение kadet635 » 29 ноя 2015, 20:50

Нет. Входящий звонок поступает на ivr. Если Звонящий выбирает кнопку 2, то вызов идет на 115, если 1, то на 101, если на кнопку 1, то ami должен проверить наличие номера в базе и адресовать его менеджеру клиента. Не получается отловить момент когда звонящий выбирает кнопку 1. Никакого события не регистрируется.

Added after 3 minutes:

т.е. не регистрируется события нажатия кнопки. Agi использовать не вариант, потому что используется MyPbx U100, все конфиги там затираются и agi не поддерживается, приходится реализовывать средствами AMI

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 02 дек 2015, 22:47

какую то чушь пишите.
чтобы принимать от клиента 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

StuxForce
Сообщения: 2
Зарегистрирован: 03 дек 2015, 13:54

Сообщение StuxForce » 03 дек 2015, 14:32

[url=http://asteriskforum.ru/viewtopic.php?p=81992#81992][img]http://asteriskforum.ru/images/quotebackarrow.gif[/img][/url] kadet635 @ Вс Ноя 29, 2015 22:50 писал(а): т.е. не регистрируется события нажатия кнопки. Agi использовать не вариант, потому что используется MyPbx U100, все конфиги там затираются и agi не поддерживается, приходится реализовывать средствами AMI
Вот поэтому я и не люблю все эти "готовые решения"... Чих влево, чих вправо и приходится городить костыли...
Не знаю, какая версия * доступна на MyPBX U100, но вот вам ссылки на события AMI для 11 и 13 версии:
https://wiki.asterisk.org/wiki/display/ ... AMI+Events
https://wiki.asterisk.org/wiki/display/ ... AMI+Events
Лучше, конечно, подключиться и посмотреть что там бегает в AMI при нажатии цифры.

Вообще, если эта шайтан-машина позволит сделать виртуальный exten со своим кастомным контекстом, то можете это использовать в настройках IVR и повесить этот exten на событие нажатия кнопки. Но беглый взгляд на мануал не обнадеживает :( http://www.storevoip.ru/assets/files/vo ... ide_en.pdf

Аватара пользователя
Wapo
Сообщения: 1383
Зарегистрирован: 08 май 2009, 09:47
Откуда: СПб.
Контактная информация:

Сообщение Wapo » 03 дек 2015, 15:42

Давно пора смотреть и в custom и в создание/генерацию UserEvent
P4 3.0 + 1Gb CentOS 5.8 Aster 11.25.1
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.

sipov
Сообщения: 27
Зарегистрирован: 17 окт 2015, 21:45
Контактная информация:

Re: Asterisk manager interface

Сообщение sipov » 29 дек 2015, 20:57

Подскажите пожалуйста как с помощью 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&#40;$&#91; $&#123;COUNT&#125; < 3 &#93;&#41;
exten => 11,n,SayAlpha&#40;$&#123;WHAT_NUMBER&#125;&#41;
exten => 11,n,Set&#40;COUNT=$&#91;$&#123;COUNT&#125; + 1&#93;&#41;
exten => 11,n,EndWhile&#40;&#41;
Далее, как вариант например, проверяем если ли введенное значение в БД

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

	
exten => 11,n,GotoIf&#40;$&#91;"$&#123;WHAT_NUMBER&#125;" = ""&#93;?nonumber&#58;nextc&#41;
; Меняем введенную 8-ку юзером, на положенное +7 для БД
exten => 11,n&#40;nextc&#41;,SET&#40;IN_DBAGENT=+7$&#123;WHAT_NUMBER&#58;1&#125;&#41;
; Делаем запрос к БД, на наличие введенного номера в таблице blagents 
exten => 11,n,MYSQL&#40;Connect connid localhost root taxer asterisk&#41;
exten => 11,n,MYSQL&#40;Query resultid $&#123;connid&#125; SELECT agents FROM tblagents WHERE agents ='$&#123;IN_DBAGENT&#125;'&#41;
exten => 11,n,MYSQL&#40;FETCH fetchid $&#123;resultid&#125; NUMBER_REGAGENT&#41;
; Очищаем результат, он нам больше не нужен 
exten => 11,n,MYSQL&#40;Clear $&#123;resultid&#125;&#41;
; Если номер есть, на удаление, если нет - на регистрацию
exten => 11,n,NoOP&#40;NumberReg - $&#123;NUMBER_REGAGENT&#125;&#41;
exten => 11,n,MYSQL&#40;Disconnect $&#123;connid&#125;&#41;
exten => 11,n,GotoIf&#40;$&#91;"$&#123;NUMBER_REGAGENT&#125;" = ""&#93;?nodbagent&#58;yesdbagentdel&#41;
...
exten => 11,n&#40;nonumber&#41;,Hangup
Вот здесь - готовые мои решения в extensions.conf, можете надергать себе контекстов или из контекстов. Там все хорошо закоментированно...
http://forum.cxem.net/index.php?s=038b2 ... try2248309

Ответить