Астериск через раз пишет параметры в базу, как это исправить?
Есть IVR с несколькими номерами, на каждом номере сидит по несколько человек, что бы сводить отчетность, в базу был выведен параметр Dialpernumber, который показывает кто взял трубку, какой внутренний номер, но этот параметр срабатывает через раз, из 10 звонков в базу попадает 50х50, либо есть внутренний номер, либо NULL. Как это исправить, куда копать?
Секция с оценкой звонка и записью внутреннего номера.
[rating]
exten => _X,1,Noop(RATING press 1 - 5)
same => n,SET(OP=-2)
same => n,NOOP(r9-1 ${CUT(DIALEDPEERNUMBER,/,1)})
same => n,SET(CDR(DIALEDPEERNUMBER)=${CUT(DIALEDPEERNUMBER,/,1)})
same => n,NOOP(CDR - ${CDR(start)} - ${CDR(calldate)})
same => n,Read(OP,rating&beep,1)
same => n,Hangup()
exten => h,1,ExecIF($["${OP}"=""]?SET(CDR(rating)=-1):SET(CDR(rating)=${OP}))
Не правильно делаете. Пытаетесь поймать по h. А он срабатывает не всегда
Надо в параметрах Dail указать вызов макроса или sub и там сохранить параметры
а после окончания разговора обработать их
Для поиска в гугле:
Set(CHANNEL(hangup_handler_push)=sub-macro-Бабосики,s,1)
и Dial ключ U