Добрый день, коллеги.
Есть FreePBX + Asterisk 11.15.0.
# amportal a ma list | grep framework
framework 12.0.29 Enabled
# cat /etc/schmooze/pbx-version
6.12.65-23
Попытался наладить систему оценки удовольствия клиентов, чтобы после окончания звонка нажатием клавиши оставлять отзыв.
Делал по статье: http://habrahabr.ru/post/147122/ и, в целом, все работает, за одним печальным исключением - если хотя бы один телефон в очереди не зарегался в системе, то переходит сразу в контекст "opinion-ivr". То есть, я звоню, выбираю нужный вариант в IVR и вместо ожидания в очереди сразу попадаю в оценку. Известно, какие меня там ждут оценки! :)
Что где было прописано:
queues_post_custom.conf
member=Local/11@opinion-ivr/n,0,11,hint:11@ext-local
member=Local/12@opinion-ivr/n,0,12,hint:12@ext-local
member=Local/13@opinion-ivr/n,0,13,hint:13@ext-local
member=Local/14@opinion-ivr/n,0,14,hint:14@ext-local
member=Local/15@opinion-ivr/n,0,15,hint:15@ext-local
extensions_custom.conf
[opinion-ivr]
exten => _X.,1,NoOp(Statrt IVR)
exten => _X.,n,DIAL(SIP/${EXTEN},,trg) ;
exten => _X.,n,GotoIf($[${DIALSTATUS}=BUSY]?ZANAT,1) ;
exten => _X.,n,Goto(opinion,${EXTEN},1)
[opinion]
exten => _X.,1,Answer
exten => _X.,n,Wait(1)
exten => _X.,n(skip),Set(IVR_MSG=en/beep)
exten => _X.,n(start),Set(TIMEOUT(digit)=1)
exten => _X.,n,Background(custom/provide_feedback,m) ; otsenite_rabotu_operatora
exten => _X.,n,WaitExten(5,)
exten => 1,1,MYSQL(Connect connid localhost freepbxuser ************* asteriskcdrdb)
exten => 1,n,MYSQL(Query resultid ${connid} INSERT INTO opinion (id,date,callerid,idasternumber,exten,queues,opinion) VALUES(NULL,"${STRFTIME(${EPOCH},,%Y-%m-%d-%H:%M:%S)}","${CALLERID(NUM)}","${UNIQUEID}","${DIALEDPEERNUMBER}","${NODEST}","1"))
exten => 1,n,MYSQL(Disconnect ${connid})
exten => 1,n,Playback(custom/thanks,skip) ; Thanks
exten => 2,1,MYSQL(Connect connid localhost freepbxuser ************* asteriskcdrdb)
exten => 2,n,MYSQL(Query resultid ${connid} INSERT INTO opinion (id,date,callerid,idasternumber,exten,queues,opinion) VALUES(NULL,"${STRFTIME(${EPOCH},,%Y-%m-%d-%H:%M:%S)}","${CALLERID(NUM)}","${UNIQUEID}","${DIALEDPEERNUMBER}","${NODEST}","2"))
exten => 2,n,MYSQL(Disconnect ${connid})
exten => 2,n,Playback(custom/thanks,skip) ; Thanks
exten => t,1,Playback(custom/thanks,skip) ; Thanks
exten => e,1,Playback(custom/thanks,skip) ; Thanks
Я немного не монстр в астере, может быть кто-то уже столкнулся и решил подобную штуку?
Я бы конечно отрывал руки тем кто пишет на хабре досконально не понимая что пишет. Ошибок в статье много, вот что мешает вам:
В queues.conf:
member=Local/299@opinion-ivr/n,,,SIP/299
member=Local/999@opinion-ivr/n,,,SIP/999
Нужно мемберам добавить указание интерфейсов куда пойдет вызов, чтобы он шел только тогда когда астериск видит что телефон реально доступен для вызова. Ну и можно в контекст opinion-ivr добавить проверку переменной DIALSTATUS.
Задан: Jan 14 '15
Просмотрен: 205 раз
Обновлен: Jan 16
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
вам надо показывать настройки очереди
awsswa (Jan 14 '15)editЕсли вас не затруднит - можно на пальцах? Как лучше всего раскрыть настройки очереди, чтобы вам понятно было?
sscoodd (Jan 14 '15)edit