Исправление Aborigen1020, (текущая версия) :
Короче, победил.
exten => 99999999999,n,Queue(testqueue,ct,,,20,,queueanswer,s,1)
[macro-queueanswer]
exten => s,1,Set(__START_DIALOG=${EPOCH})
same => n,Set(CHANNEL(hangup_handler_push)=math_dial,s,1) ; Если ответили в очереди, то конец диалога обрабатывается hangup_handler с переходом в math_dial
;
[math_dial]
exten => s,1,Set(TOTAL_TIME=$[${EPOCH}-${START_DIALOG}])
same => n,Set(CDR(some_columns)=$[${TOTAL_TIME}])
same => n,Set(CHANNEL(hangup_handler_wipe)=)
same => n,Return
same => n,Hangup()
Теперь могу смотреть в CDR, сколько был диалог с момента ответа оператором и до конца диалога (с любой из сторон делает завершение звонка). Ну и конечно Playback()
играет, и с помощью ResetCDR(w)
в CDR не учитывается время Playback.
Спасибо, paganmind
Исходная версия Aborigen1020, :
Короче, победил.
exten => 99999999999,n,Queue(testqueue,ct,,,20,,queueanswer,s,1)
[macro-queueanswer]
exten => s,1,Set(__START_DIALOG=${EPOCH})
same => n,Set(CHANNEL(hangup_handler_push)=math_dial,s,1) ; Если ответили в очереди, то конец диалога обрабатывается hangup_handler с переходом в math_dial
;
[math_dial]
exten => s,1,Set(TOTAL_TIME=$[${EPOCH}-${START_DIALOG}])
same => n,Set(CDR(some_columns)=$[${TOTAL_TIME}])
same => n,Set(CHANNEL(hangup_handler_wipe)=)
same => n,Return
same => n,Hangup()
Теперь могу смотреть в CDR, сколько был диалог с момента ответа оператором и до конца диалога (с любой из сторон делает завершение звонка). Ну и конечно Playback()
играет, и с помощью ResetCDR(w)
в CDR не учитывается время Playback.