Включить dtmf дебаг, позвнить, понажимать и посмотреть в консоль, видны ли нажатия клавиш.
virus_net ( 2014-07-24 08:06:54 +0400 )редактироватьЗдравствуйте. Столкнулся со следующей проблемой. В FreePBX 2.11.0.38 настроент транк, создано правило для входящих звонков и в этом правиле указан IVR. В IVR'e указано, куда отправлять по таймауту, куда по ошибке набора, куда по определенным номерам. Direct Dial включен. НО донабор не работает ни по внутренним номерам сотрудников, ни по номерам, которые я сам указывал в IVR. Всего у меня 2 транка и 1 IVR. Подскажите пожалуйста, в чем может быть причина? Ниже копирую лог последнего входящего звонка.
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [мой-DID@from-trunk-sip-UGMK-SIP1:1] Set("SIP/UGMK-SIP1-00000070", "GROUP()=OUT_3") in new stack
-- Executing [мой-DID@from-trunk-sip-UGMK-SIP1:2] Goto("SIP/UGMK-SIP1-00000070", "from-trunk,мой-DID,1") in new stack
-- Goto (from-trunk,мой-DID,1)
-- Executing [мой-DID@from-trunk:1] Set("SIP/UGMK-SIP1-00000070", "__FROM_DID=мой-DID") in new stack
-- Executing [мой-DID@from-trunk:2] Set("SIP/UGMK-SIP1-00000070", "CHANNEL(language)=ru") in new stack
-- Executing [мой-DID@from-trunk:3] Gosub("SIP/UGMK-SIP1-00000070", "sub-record-cancel,s,1()") in new stack
-- Executing [s@sub-record-cancel:1] Set("SIP/UGMK-SIP1-00000070", "__REC_POLICY_MODE=") in new stack
-- Executing [s@sub-record-cancel:2] ExecIf("SIP/UGMK-SIP1-00000070", "1?Return()") in new stack
-- Executing [мой-DID@from-trunk:4] Set("SIP/UGMK-SIP1-00000070", "__REC_POLICY_MODE=never") in new stack
-- Executing [мой-DID@from-trunk:5] Gosub("SIP/UGMK-SIP1-00000070", "app-blacklist-check,s,1()") in new stack
-- Executing [s@app-blacklist-check:1] GotoIf("SIP/UGMK-SIP1-00000070", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Set("SIP/UGMK-SIP1-00000070", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check:3] Return("SIP/UGMK-SIP1-00000070", "") in new stack
-- Executing [мой-DID@from-trunk:6] Set("SIP/UGMK-SIP1-00000070", "CDR(did)=мой-DID") in new stack
-- Executing [мой-DID@from-trunk:7] ExecIf("SIP/UGMK-SIP1-00000070", "0 ?Set(CALLERID(name)=anonymous)") in new stack
-- Executing [мой-DID@from-trunk:8] Set("SIP/UGMK-SIP1-00000070", "CHANNEL(musicclass)=default") in new stack
-- Executing [мой-DID@from-trunk:9] Set("SIP/UGMK-SIP1-00000070", "__MOHCLASS=default") in new stack
-- Executing [мой-DID@from-trunk:10] Set("SIP/UGMK-SIP1-00000070", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [мой-DID@from-trunk:11] Set("SIP/UGMK-SIP1-00000070", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [мой-DID@from-trunk:12] Goto("SIP/UGMK-SIP1-00000070", "ivr-2,s,1") in new stack
-- Goto (ivr-2,s,1)
-- Executing [s@ivr-2:1] Set("SIP/UGMK-SIP1-00000070", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-2:2] Set("SIP/UGMK-SIP1-00000070", "_IVR_CONTEXT_ivr-2=") in new stack
-- Executing [s@ivr-2:3] Set("SIP/UGMK-SIP1-00000070", "_IVR_CONTEXT=ivr-2") in new stack
-- Executing [s@ivr-2:4] Set("SIP/UGMK-SIP1-00000070", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-2:5] GotoIf("SIP/UGMK-SIP1-00000070", "0?skip") in new stack
-- Executing [s@ivr-2:6] Answer("SIP/UGMK-SIP1-00000070", "") in new stack
-- Executing [s@ivr-2:7] Wait("SIP/UGMK-SIP1-00000070", "1") in new stack
-- Executing [s@ivr-2:8] Set("SIP/UGMK-SIP1-00000070", "IVR_MSG=custom/privetstvie") in new stack
-- Executing [s@ivr-2:9] Set("SIP/UGMK-SIP1-00000070", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-2:10] ExecIf("SIP/UGMK-SIP1-00000070", "1?Background(custom/privetstvie)") in new stack
-- <SIP/UGMK-SIP1-00000070> Playing 'custom/privetstvie.slin' (language 'ru')
-- Executing [s@ivr-2:11] WaitExten("SIP/UGMK-SIP1-00000070", "4,") in new stack
-- Timeout on SIP/UGMK-SIP1-00000070, going to 't'
-- Executing [t@ivr-2:1] GotoIf("SIP/UGMK-SIP1-00000070", "1?from-did-direct,1615,1:,return,1") in new stack
-- Goto (from-did-direct,1615,1)
-- Executing [1615@from-did-direct:1] Set("SIP/UGMK-SIP1-00000070", "__RINGTIMER=15") in new stack
-- Executing [1615@from-did-direct:2] Macro("SIP/UGMK-SIP1-00000070", "exten-vm,novm,1615,0,0,0") in new stack
-- Executing [s@macro-exten-vm:1] Macro("SIP/UGMK-SIP1-00000070", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/UGMK-SIP1-00000070", "TOUCH_MONITOR=1406016453.164") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/UGMK-SIP1-00000070", "AMPUSER=anonymous") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/UGMK-SIP1-00000070", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/UGMK-SIP1-00000070", "1?Set(REALCALLERIDNUM=anonymous)") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/UGMK-SIP1-00000070", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/UGMK-SIP1-00000070", "0?limit") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/UGMK-SIP1-00000070", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/UGMK-SIP1-00000070", "1?report") in new stack
-- Goto (macro-user-callerid,s,16)
-- Executing [s@macro-user-callerid:16] GotoIf("SIP/UGMK-SIP1-00000070", "0?continue") in new stack
-- Executing [s@macro-user-callerid:17] Set("SIP/UGMK-SIP1-00000070", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:18] GotoIf("SIP/UGMK-SIP1-00000070", "1?continue") in new stack
-- Goto (macro-user-callerid,s,29)
-- Executing [s@macro-user-callerid:29] Set("SIP/UGMK-SIP1-00000070", "CALLERID(number)=anonymous") in new stack
-- Executing [s@macro-user-callerid:30] Set("SIP/UGMK-SIP1-00000070", "CALLERID(name)=Anonymous") in new stack
-- Executing [s@macro-user-callerid:31] Set("SIP/UGMK-SIP1-00000070", "CDR(cnum)=anonymous") in new stack
-- Executing [s@macro-user-callerid:32] Set("SIP/UGMK-SIP1-00000070", "CDR(cnam)=Anonymous") in new stack
-- Executing [s@macro-user-callerid:33] Set("SIP/UGMK-SIP1-00000070", "CHANNEL(language)=ru") in new stack
-- Executing [s@macro-exten-vm:2] Set("SIP/UGMK-SIP1-00000070", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("SIP/UGMK-SIP1-00000070", "__EXTTOCALL=1615") in new stack
-- Executing [s@macro-exten-vm:4] Set("SIP/UGMK-SIP1-00000070", "__PICKUPMARK=1615") in new stack
-- Executing [s@macro-exten-vm:5] Set("SIP/UGMK-SIP1-00000070", "RT=") in new stack
-- Executing [s@macro-exten-vm:6] ExecIf("SIP/UGMK-SIP1-00000070", "0?Macro(vm,novm,DIRECTDIAL,)") in new stack
-- Executing [s@macro-exten-vm:7] ExecIf("SIP/UGMK-SIP1-00000070", "0?MacroExit()") in new stack
-- Executing [s@macro-exten-vm:8] Gosub("SIP/UGMK-SIP1-00000070", "sub-record-check,s,1(exten,1615,)") in new stack
-- Executing [s@sub-record-check:1] Set("SIP/UGMK-SIP1-00000070", "REC_POLICY_MODE_SAVE=never") in new stack
-- Executing [s@sub-record-check:2] GotoIf("SIP/UGMK-SIP1-00000070", "1?check") in new stack
-- Goto (sub-record-check,s,7)
-- Executing [s@sub-record-check:7] Set("SIP/UGMK-SIP1-00000070", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:8] GotoIf("SIP/UGMK-SIP1-00000070", "1?next") in new stack
-- Goto (sub-record-check,s,11)
-- Executing [s@sub-record-check:11] ExecIf("SIP/UGMK-SIP1-00000070", "0?Return()") in new stack
-- Executing [s@sub-record-check:12] ExecIf("SIP/UGMK-SIP1-00000070", "0?Set(__REC_POLICY_MODE=)") in new stack
-- Executing [s@sub-record-check:13] GotoIf("SIP/UGMK-SIP1-00000070", "0?exten,1") in new stack
-- Executing [s@sub-record-check:14] Set("SIP/UGMK-SIP1-00000070", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:15] Set("SIP/UGMK-SIP1-00000070", "NOW=1406016470") in new stack
-- Executing [s@sub-record-check:16] Set("SIP/UGMK-SIP1-00000070", "__DAY=22") in new stack
-- Executing [s@sub-record-check:17] Set("SIP/UGMK-SIP1-00000070", "__MONTH=07") in new stack
-- Executing [s@sub-record-check:18] Set("SIP/UGMK-SIP1-00000070", "__YEAR=2014") in new stack
-- Executing [s@sub-record-check:19] Set("SIP/UGMK-SIP1-00000070", "__TIMESTR=20140722-120750") in new stack
-- Executing [s@sub-record-check:20] Set("SIP/UGMK-SIP1-00000070", "__FROMEXTEN=anonymous") in new stack
-- Executing [s@sub-record-check:21] Set("SIP/UGMK-SIP1-00000070", "__CALLFILENAME=exten-1615-anonymous-20140722-120750-1406016453.164") in new stack
-- Executing [s@sub-record-check:22] Goto("SIP/UGMK-SIP1-00000070", "exten,1") in new stack
-- Goto (sub-record-check,exten,1)
-- Executing [exten@sub-record-check:1] GotoIf("SIP/UGMK-SIP1-00000070", "1?callee") in new stack
-- Goto (sub-record-check,exten,8)
-- Executing [exten@sub-record-check:8] GosubIf("SIP/UGMK-SIP1-00000070", "0?record,1(exten,1615,anonymous)") in new stack
-- Executing [exten@sub-record-check:9] Return("SIP/UGMK-SIP1-00000070", "") in new stack
-- Executing [s@macro-exten-vm:9] GotoIf("SIP/UGMK-SIP1-00000070", "1?macrodial") in new stack
-- Goto (macro-exten-vm,s,15)
-- Executing [s@macro-exten-vm:15] GosubIf("SIP/UGMK-SIP1-00000070", "0?clrheader,1()") in new stack
-- Executing [s@macro-exten-vm:16] Macro("SIP/UGMK-SIP1-00000070", "dial-one,,trwW,1615") in new stack
-- Executing [s@macro-dial-one:1] Set("SIP/UGMK-SIP1-00000070", "DEXTEN=1615") in new stack
-- Executing [s@macro-dial-one:2] Set("SIP/UGMK-SIP1-00000070", "DIALSTATUS_CW=") in new stack
-- Executing [s@macro-dial-one:3] GosubIf("SIP/UGMK-SIP1-00000070", "0?screen,1()") in new stack
-- Executing [s@macro-dial-one:4] GosubIf("SIP/UGMK-SIP1-00000070", "0?cf,1()") in new stack
-- Executing [s@macro-dial-one:5] GotoIf("SIP/UGMK-SIP1-00000070", "1?skip1") in new stack
-- Goto (macro-dial-one,s,8)
-- Executing [s@macro-dial-one:8] GotoIf("SIP/UGMK-SIP1-00000070", "0?nodial") in new stack
-- Executing [s@macro-dial-one:9] GotoIf("SIP/UGMK-SIP1-00000070", "0?continue") in new stack
-- Executing [s@macro-dial-one:10] Set("SIP/UGMK-SIP1-00000070", "EXTHASCW=ENABLED") in new stack
-- Executing [s@macro-dial-one:11] GotoIf("SIP/UGMK-SIP1-00000070", "0?next1:cwinusebusy") in new stack
-- Goto (macro-dial-one,s,23)
-- Executing [s@macro-dial-one:23] GotoIf("SIP/UGMK-SIP1-00000070", "1?next3:continue") in new stack
-- Goto (macro-dial-one,s,24)
-- Executing [s@macro-dial-one:24] ExecIf("SIP/UGMK-SIP1-00000070", "0?Set(DIALSTATUS_CW=BUSY)") in new stack
-- Executing [s@macro-dial-one:25] GotoIf("SIP/UGMK-SIP1-00000070", "0?nodial") in new stack
-- Executing [s@macro-dial-one:26] GosubIf("SIP/UGMK-SIP1-00000070", "1?dstring,1():dlocal,1()") in new stack
-- Executing [dstring@macro-dial-one:1] Set("SIP/UGMK-SIP1-00000070", "DSTRING=") in new stack
-- Executing [dstring@macro-dial-one:2] Set("SIP/UGMK-SIP1-00000070", "DEVICES=1615") in new stack
-- Executing [dstring@macro-dial-one:3] ExecIf("SIP/UGMK-SIP1-00000070", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:4] ExecIf("SIP/UGMK-SIP1-00000070", "0?Set(DEVICES=615)") in new stack
-- Executing [dstring@macro-dial-one:5] Set("SIP/UGMK-SIP1-00000070", "LOOPCNT=1") in new stack
-- Executing [dstring@macro-dial-one:6] Set("SIP/UGMK-SIP1-00000070", "ITER=1") in new stack
-- Executing [dstring@macro-dial-one:7] Set("SIP/UGMK-SIP1-00000070", "THISDIAL=SIP/1615") in new stack
-- Executing [dstring@macro-dial-one:8] GosubIf("SIP/UGMK-SIP1-00000070", "1?zap2dahdi,1()") in new stack
-- Executing [zap2dahdi@macro-dial-one:1] ExecIf("SIP/UGMK-SIP1-00000070", "0?Return()") in new stack
-- Executing [zap2dahdi@macro-dial-one:2] Set("SIP/UGMK-SIP1-00000070", "NEWDIAL=") in new stack
-- Executing [zap2dahdi@macro-dial-one:3] Set("SIP/UGMK-SIP1-00000070", "LOOPCNT2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:4] Set("SIP/UGMK-SIP1-00000070", "ITER2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:5] Set("SIP/UGMK-SIP1-00000070", "THISPART2=SIP/1615") in new stack
-- Executing [zap2dahdi@macro-dial-one:6] ExecIf("SIP/UGMK-SIP1-00000070", "0?Set(THISPART2=DAHDI/1615)") in new stack
-- Executing [zap2dahdi@macro-dial-one:7] Set("SIP/UGMK-SIP1-00000070", "NEWDIAL=SIP/1615&") in new stack
-- Executing [zap2dahdi@macro-dial-one:8] Set("SIP/UGMK-SIP1-00000070", "ITER2=2") in new stack
-- Executing [zap2dahdi@macro-dial-one:9] GotoIf("SIP/UGMK-SIP1-00000070", "0?begin2") in new stack
-- Executing [zap2dahdi@macro-dial-one:10] Set("SIP/UGMK-SIP1-00000070", "THISDIAL=SIP/1615") in new stack
-- Executing [zap2dahdi@macro-dial-one:11] Return("SIP/UGMK-SIP1-00000070", "") in new stack
-- Executing [dstring@macro-dial-one:9] Set("SIP/UGMK-SIP1-00000070", "DSTRING=SIP/1615&") in new stack
-- Executing [dstring@macro-dial-one:10] Set("SIP/UGMK-SIP1-00000070", "ITER=2") in new stack
-- Executing [dstring@macro-dial-one:11] GotoIf("SIP/UGMK-SIP1-00000070", "0?begin") in new stack
-- Executing [dstring@macro-dial-one:12] Set("SIP/UGMK-SIP1-00000070", "DSTRING=SIP/1615") in new stack
-- Executing [dstring@macro-dial-one:13] Return("SIP/UGMK-SIP1-00000070", "") in new stack
-- Executing [s@macro-dial-one:27] GotoIf("SIP/UGMK-SIP1-00000070", "0?nodial") in new stack
-- Executing [s@macro-dial-one:28] GotoIf("SIP/UGMK-SIP1-00000070", "0?skiptrace") in new stack
-- Executing [s@macro-dial-one:29] GosubIf("SIP/UGMK-SIP1-00000070", "0?ctset,1():ctclear,1()") in new stack
-- Executing [ctclear@macro-dial-one:1] NoOp("SIP/UGMK-SIP1-00000070", "Deleting: CALLTRACE/1615 ") in new stack
-- Executing [ctclear@macro-dial-one:2] Return("SIP/UGMK-SIP1-00000070", "") in new stack
-- Executing [s@macro-dial-one:30] Set("SIP/UGMK-SIP1-00000070", "D_OPTIONS=trwW") in new stack
-- Executing [s@macro-dial-one:31] ExecIf("SIP/UGMK-SIP1-00000070", "0?SIPAddHeader(Alert-Info: )") in new stack
-- Executing [s@macro-dial-one:32] ExecIf("SIP/UGMK-SIP1-00000070", "0?SIPAddHeader()") in new stack
-- Executing [s@macro-dial-one:33] ExecIf("SIP/UGMK-SIP1-00000070", "1?Set(CHANNEL(musicclass)=default)") in new stack
-- Executing [s@macro-dial-one:34] GosubIf("SIP/UGMK-SIP1-00000070", "0?qwait,1()") in new stack
-- Executing [s@macro-dial-one:35] Set("SIP/UGMK-SIP1-00000070", "__CWIGNORE=") in new stack
-- Executing [s@macro-dial-one:36] Set("SIP/UGMK-SIP1-00000070", "__KEEPCID=TRUE") in new stack
-- Executing [s@macro-dial-one:37] GotoIf("SIP/UGMK-SIP1-00000070", "0?usegoto,1") in new stack
-- Executing [s@macro-dial-one:38] GotoIf("SIP/UGMK-SIP1-00000070", "1?godial") in new stack
-- Goto (macro-dial-one,s,42)
-- Executing [s@macro-dial-one:42] Dial("SIP/UGMK-SIP1-00000070", "SIP/1615,,trwW") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called SIP/1615
-- SIP/1615-00000071 is ringing
== Spawn extension (macro-dial-one, s, 42) exited non-zero on 'SIP/UGMK-SIP1-00000070' in macro 'dial-one'
== Spawn extension (macro-exten-vm, s, 16) exited non-zero on 'SIP/UGMK-SIP1-00000070' in macro 'exten-vm'
== Spawn extension (from-did-direct, 1615, 2) exited non-zero on 'SIP/UGMK-SIP1-00000070'
-- Executing [h@from-did-direct:1] Macro("SIP/UGMK-SIP1-00000070", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/UGMK-SIP1-00000070", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/UGMK-SIP1-00000070", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/UGMK-SIP1-00000070", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/UGMK-SIP1-00000070' in macro 'hangupcall'
== Spawn extension (from-did-direct, h, 1) exited non-zero on 'SIP/UGMK-SIP1-00000070'
Вам надо узнать у провайдера в каком формате приходит DTMF и настроить соответвенно транк. Ну или просто все варианты проверить.
Включить dtmf дебаг, позвнить, понажимать и посмотреть в консоль, видны ли нажатия клавиш.
virus_net ( 2014-07-24 08:06:54 +0400 )редактироватьЗадан: 2014-07-22 12:37:40 +0400
Просмотрен: 2,579 раз
Обновлен: Jul 22 '14
Правильное включение добавочных номеров в IVR FreePBX не понятно
Настройка "оставайтесь на линии" в IVR [закрыт]
Проблемы с исходящим звонком elastix
Sender address rejected: not owned by user...
в cdr не сохраняется имя файла записи разговора
FreePBX FOP панель не работает
Настройка маршрутизации звонков
FreePBX - PRI - Outbound - все линии заняты
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Спасибо meral. Действительно dtmf inboand нужен был, а стоял другой. исправил и все заработало. Сейчас проблему уже в том, что не знаю как сделать донабор прямо во время воспроизведения звукового файла, не дожидаясь его окончания. Ну да это уже другой вопрос. Спасибо за помощь.
Norbertino ( 2014-07-24 10:42:49 +0400 )редактировать