CDR IVR and Queues
Добавлено: 15 июн 2020, 11:06
Приветствую всех присутствующих!, не могу сообразить правильную обработку CDR.
Суть диалплана:
Есть входящий звонок, потом переходит на IVR Menu, затем в очередь при выборе кнопки.
При создании отчета не видно, сколько абонент находился в IVR, а потом сколько времени ждал в очереди, ибо пишется одна запись CDR.
Как разделить правильно CDR, что бы понимать где время абонента в IVR и Queues
Мой dialplan:
exten => 0487059091,1,NoOp(Incoming from /${CALLERID(all)}/ to ${EXTEN} From ${SIP_HEADER(From)})
same => n,MSet(__nomerA=${CALLERID(num)},CALLERID(name)=${CALLERID(num)}-uid${uid},__RECDIR=${CLIENT1},__DIRECT=1,__uid=${UNIQUEID})
same => n,MSet(REC=${uid}_${nomerA}_${EXTEN})
same => n,Set(Data=${STRFTIME(,Europe/Kiev,%d%m%y)})
same => n,MSet(nomerB=${CALLERID(num)})
same => n,MSet(nomerin=${EXTEN})
same => n,Goto(IVR-MENU2,IVR,1)
same => n,Hangup()
[IVR-MENU2]
exten => IVR,1,Background(ooe-sound/ooe-ivr/hello-ooe&ooe-sound/ooe-ivr/info_0)
exten => IVR,2,Background(ooe-sound/ooe-ivr/menu-all)
exten => IVR,3,WaitExten(10)
exten => 1,1,Goto(ivr-n-1,s,1)
exten => 2,1,Goto(ivr-n-2,s,1)
exten => 3,1,Goto(ivr-n-3,s,1)
exten => 4,1,Goto(ivr-n-4,s,1)
exten => 9,1,MSet(QUEUE_PRIO=0)
same => n,Set(CALLERID(all)="${UNIQUEID}|${QUEUE_PRIO}|${nomerin}|${CHANNEL}" <${CALLERID(num)}>)
same => n,Goto(OPERATOR1,operator,1)
exten => i,1,Playback(ooe-sound/ooe-ivr/error_n)
same => n,Goto(IVR-MENU,IVR,2)
exten => t,1,Playback(ooe-sound/ooe-ivr/goodbay)
[OPERATOR1]
exten => operator,1,Playback(ooe-sound/ooe-ivr/info_records)
same => n,MixMonitor(${CLIENT1}${Data}/${REC}.wav)
same => n,GotoIf($[$["${nomerB}" = "0507007000"]]?yes:no)
same => n(yes),Noop(eto zvonit Admin)
same => n,Answer
same => n,Queue(test)
same => n,Hangup()
same => n(no),Noop(eto zvonit all)
same => n,Answer
same => n(back),Queue(managers)
same => n,Hangup
Суть диалплана:
Есть входящий звонок, потом переходит на IVR Menu, затем в очередь при выборе кнопки.
При создании отчета не видно, сколько абонент находился в IVR, а потом сколько времени ждал в очереди, ибо пишется одна запись CDR.
Как разделить правильно CDR, что бы понимать где время абонента в IVR и Queues
Мой dialplan:
exten => 0487059091,1,NoOp(Incoming from /${CALLERID(all)}/ to ${EXTEN} From ${SIP_HEADER(From)})
same => n,MSet(__nomerA=${CALLERID(num)},CALLERID(name)=${CALLERID(num)}-uid${uid},__RECDIR=${CLIENT1},__DIRECT=1,__uid=${UNIQUEID})
same => n,MSet(REC=${uid}_${nomerA}_${EXTEN})
same => n,Set(Data=${STRFTIME(,Europe/Kiev,%d%m%y)})
same => n,MSet(nomerB=${CALLERID(num)})
same => n,MSet(nomerin=${EXTEN})
same => n,Goto(IVR-MENU2,IVR,1)
same => n,Hangup()
[IVR-MENU2]
exten => IVR,1,Background(ooe-sound/ooe-ivr/hello-ooe&ooe-sound/ooe-ivr/info_0)
exten => IVR,2,Background(ooe-sound/ooe-ivr/menu-all)
exten => IVR,3,WaitExten(10)
exten => 1,1,Goto(ivr-n-1,s,1)
exten => 2,1,Goto(ivr-n-2,s,1)
exten => 3,1,Goto(ivr-n-3,s,1)
exten => 4,1,Goto(ivr-n-4,s,1)
exten => 9,1,MSet(QUEUE_PRIO=0)
same => n,Set(CALLERID(all)="${UNIQUEID}|${QUEUE_PRIO}|${nomerin}|${CHANNEL}" <${CALLERID(num)}>)
same => n,Goto(OPERATOR1,operator,1)
exten => i,1,Playback(ooe-sound/ooe-ivr/error_n)
same => n,Goto(IVR-MENU,IVR,2)
exten => t,1,Playback(ooe-sound/ooe-ivr/goodbay)
[OPERATOR1]
exten => operator,1,Playback(ooe-sound/ooe-ivr/info_records)
same => n,MixMonitor(${CLIENT1}${Data}/${REC}.wav)
same => n,GotoIf($[$["${nomerB}" = "0507007000"]]?yes:no)
same => n(yes),Noop(eto zvonit Admin)
same => n,Answer
same => n,Queue(test)
same => n,Hangup()
same => n(no),Noop(eto zvonit all)
same => n,Answer
same => n(back),Queue(managers)
same => n,Hangup