LINUX.ORG.RU

История изменений

Исправление 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.