callback с mysql
Добавлено: 27 дек 2015, 01:39
Приветствую всех присутствующих!! Ребята, помогите разобраться плиз...хочу установить callback с такой конфигурацией:
При входящем звонке система определяет мой номер тел. и если он имеется в списке (базе Msql)- перебрасывает в голосовое меню ivr-pass в котором будет предложено набрать PIN-код и получить доступ к следующему контексту. Это все работает (без callback). А вот callback никак не могу настроить, то-есть не попадаю в контекст ivr-callback. Звонок поступает в asterisk и тут же предлагает ввести PIN-код вместо того что бы запустить скрипт callback.agi в /user/share/asterisk/agi-bin/callback.agi
В чем тут может быть проблемa кто нибудь подскажет ?
делаю как написано тут https://xakep.ru/2011/02/24/54781/
Mysql база выглядит так:
Скрипт для callback находится в /user/share/asterisk/agi-bin/callback.agi
extensions.conf
CLI>
При входящем звонке система определяет мой номер тел. и если он имеется в списке (базе Msql)- перебрасывает в голосовое меню ivr-pass в котором будет предложено набрать PIN-код и получить доступ к следующему контексту. Это все работает (без callback). А вот callback никак не могу настроить, то-есть не попадаю в контекст ivr-callback. Звонок поступает в asterisk и тут же предлагает ввести PIN-код вместо того что бы запустить скрипт callback.agi в /user/share/asterisk/agi-bin/callback.agi
В чем тут может быть проблемa кто нибудь подскажет ?
делаю как написано тут https://xakep.ru/2011/02/24/54781/
Mysql база выглядит так:
Код: Выделить всё
USE asterisk;
CREATE TABLE `callback` (
`phone` varchar(80) NOT NULL default '',
`pin` int(11) NOT NULL default '4321',
`callback` int(11) NOT NULL default '0',
`user` varchar(255) NOT NULL default ''
);
INSERT INTO callback(phone, pin, user) values('06XXXXXXXX', '3212', 'Vitas');
Код: Выделить всё
#!/bin/bash
echo Channel: Dongle/dongle0/$1 > /var/tmp/$2.call
echo MaxRetries: 2 >> /var/tmp/$2.call
echo RetryTime: 3 >> /var/tmp/$2.call
echo WaitTime: 20 >> /var/tmp/$2.call
echo Context: ivr-pass >> /var/tmp/$2.call
echo Extension: s >> /var/tmp/$2.call
echo Priority: 2 >> /var/tmp/$2.call
echo Archive: Yes >> /var/tmp/$2.call
chown asterisk:asterisk /var/tmp/$2.call
chmod 777 /var/tmp/$2.call
mv /var/tmp/$2.call /var/spool/asterisk/outgoing
Код: Выделить всё
[fromgorod]
exten => s,1,NoOp(zvonyat s nomera ${CALLERID(all)})
exten => s,n,NoOp(${STRFTIME(${EPOCH},,%d.%m.%Y-%H:%M:%S)})
exten => s,n,MYSQL(Connect connid localhost asterisk passwordMsql asterisk)
exten => s,n,MYSQL(Query resultid ${connid} select pin, callback from callback where phone=${CALLERID(number)})
exten => s,n,MYSQL(Fetch fetchid ${resultid} pin callback)
exten => s,n,NoOp(pin -> ${pin} callback# -> ${callback})
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,GoToIf($["${pin}" != ""]?ivr-pass,s,1)
exten => s,n,Answer() ;otvechaem
[ivr-pass]
exten => s,1,GoToIf($["${callback}" != "0"]?ivr-callback,s,1)
exten => s,n,Background(/var/lib/asterisk/sounds/ru/dir-welcome) ;
exten => s,n,WaitExten(10)
exten => _XXXX,1,GoToIf($["${EXTEN}" = "${pin}"]?ivr,s,1)
exten => _XXXX,n,Hangup
exten => t,1,Hangup
exten => i,1,Hangup
[ivr-callback]
exten => s,1,AGI(/usr/share/asterisk/agi-bin/callback.agi,${callback},${UNIQUEID})
exten => s,n,hangup
[ivr]
exten => s,1,Set(inum=0)
exten => s,n,Set(tnum=0)
exten => s,n,Background(/var/lib/asterisk/sounds/ru/dir-welcome)
exten => s,n,WaitExten(10)
exten => 1,1,GoTo(ivr-out,s,1)
exten => 2,1,GoTo(ivr-ch-pin,s,1)
exten => i,1,Playback(pbx-invalid)
exten => i,n,Set(inum=$[${inum} + 1])
exten => i,n,GotoIf($["${inum}" < "3"]?s,1)
exten => i,n,Hangup()
exten => t,1,Set(tnum=$[${tnum} + 1])
exten => t,n,GotoIf($["${tnum}" < "3"]?s,1)
exten => t,n,Hangup()
[ivr-out]
exten => s,1,Set(inum=0)
exten => s,n,Set(tnum=0)
exten => s,n,Background(beep)
exten => s,n,WaitExten(10)
exten => _0[1-6]XXXXXXXX,1,Dial(Dongle/dongle0/${EXTEN})
exten => _0[1-6]XXXXXXXX,n,Hangup
;exten => 8[2-8]XXXXXXXXX,1,Dial(SIP/blabla3/${EXTEN}
;exten => 8[2-8]XXXXXXXXX ,n,Hangup
exten => i,1,Playback(pbx-invalid)
exten => i,n,Set(inum=$[${inum} + 1])
exten => i,n,GotoIf($["${inum}" < "3"]?s,1)
exten => i,n,Hangup()
exten => t,1,Set(tnum=$[${tnum} + 1])
exten => t,n,GotoIf($["${tnum}" < "3"]?s,1)
exten => t,n,Hangup()
Код: Выделить всё
== Using SIP RTP CoS mark 5
-- Executing [s@fromgorod:1] NoOp("SIP/call-inband-outband-00000002", " "06XXXXXXXX" <06XXXXXXXX>") in new stack
-- Executing [s@fromgorod:2] NoOp("SIP/call-inband-outband-00000002", "26.12.2015-19:24:07") in new stack
-- Executing [s@fromgorod:3] MYSQL("SIP/call-inband-outband-00000002", "Connect connid localhost asterisk passwordMysql asterisk") in new stack
-- Executing [s@fromgorod:4] MYSQL("SIP/call-inband-outband-00000002", "Query resultid 1 select pin, callback from callback where phone=06XXXXXXXX") in new stack
-- Executing [s@fromgorod:5] MYSQL("SIP/call-inband-outband-00000002", "Fetch fetchid 2 pin callback") in new stack
-- Executing [s@fromgorod:6] NoOp("SIP/call-inband-outband-00000002", "pin -> 3212 callback# -> 0") in new stack
-- Executing [s@fromgorod:7] MYSQL("SIP/call-inband-outband-00000002", "Clear 2") in new stack
-- Executing [s@fromgorod:8] MYSQL("SIP/call-inband-outband-00000002", "Disconnect 1") in new stack
-- Executing [s@fromgorod:9] GotoIf("SIP/call-inband-outband-00000002", "1?ivr-pass,s,1") in new stack
-- Goto (ivr-pass,s,1)
-- Executing [s@ivr-pass:1] GotoIf("SIP/call-inband-outband-00000002", "0?ivr-callback,s,1") in new stack
-- Executing [s@ivr-pass:2] BackGround("SIP/call-inband-outband-00000002", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
-- <SIP/call-inband-outband-00000002> Playing '/var/lib/asterisk/sounds/ru/dir-welcome.alaw' (language 'en')
-- Executing [s@ivr-pass:3] WaitExten("SIP/call-inband-outband-00000002", "10") in new stack
== CDR updated on SIP/call-inband-outband-00000002
-- Executing [3212@ivr-pass:1] GotoIf("SIP/call-inband-outband-00000002", "1?ivr,s,1") in new stack
-- Goto (ivr,s,1)
-- Executing [s@ivr:1] Set("SIP/call-inband-outband-00000002", "inum=0") in new stack
-- Executing [s@ivr:2] Set("SIP/call-inband-outband-00000002", "tnum=0") in new stack
-- Executing [s@ivr:3] BackGround("SIP/call-inband-outband-00000002", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
-- <SIP/call-inband-outband-00000002> Playing '/var/lib/asterisk/sounds/ru/dir-welcome.alaw' (language 'en')
-- Executing [s@ivr:4] WaitExten("SIP/call-inband-outband-00000002", "10") in new stack
== CDR updated on SIP/call-inband-outband-00000002
-- Executing [1@ivr:1] Goto("SIP/call-inband-outband-00000002", "ivr-out,s,1") in new stack
-- Goto (ivr-out,s,1)
-- Executing [s@ivr-out:1] Set("SIP/call-inband-outband-00000002", "inum=0") in new stack
-- Executing [s@ivr-out:2] Set("SIP/call-inband-outband-00000002", "tnum=0") in new stack
-- Executing [s@ivr-out:3] BackGround("SIP/call-inband-outband-00000002", "beep") in new stack
-- <SIP/call-inband-outband-00000002> Playing 'beep.gsm' (language 'en')
-- Executing [s@ivr-out:4] WaitExten("SIP/call-inband-outband-00000002", "10") in new stack
== Spawn extension (ivr-out, s, 4) exited non-zero on 'SIP/call-inband-outband-00000002'