Do not record CDR after call ResetCDR()

Dear all

My extension.conf have
[inbound-routing]
exten => _.,n,GotoIf($["${ir_In_Action}" == “10”]?disa-routing,${EXTEN},1)
exten => _.,n(hangup),Busy(20)
exten => _.,n,Hangup
exten => h,1,Hangup
[disa-routing]
exten => _.,1(checklogon),GotoIf($["${auth}" == “0”]?:noprompt)
exten => _.,n,Playback(vm-incorrect)
exten => _.,n(noprompt),Playback(fw-extline)
exten => _.,n,Read(ext_line,5)
exten => _.,n,Wait(1)
exten => _.,n,Playback(fw-extcode)
exten => _.,n,Read(ext_pwd,5)
exten => _.,n,Wait(1)
exten => _.,n(check),AGI(check-logon.agi,${ext_line},${ext_pwd})
exten => _.,n,GotoIf($["${auth}" == “0”]?checklogon)
exten => _.,n,AGI(get_frext.agi,${ext_line})
exten => _.,n,Set(CHANNEL(language)=${fe_Language_ID})
exten => _.,n,Playback(vm-enter-num-to-call)
exten => _.,n,Read(num_call,10)
;disa process
exten => _.,n,AGI(get_disart.agi,${fe_GrpExt_ID},${num_call})
exten => _.,n,GotoIf($["${ds_Out_Route}" == “0”]?no-routing,${num_call},1)
exten => _.,n,GotoIf($[$["${num_call:0:${ds_Prefix_Check_Len}}" != “${ds_Prefix_Check}”]]?no-routing,${num_call},1)
;check recording
exten => _.,n,GotoIf($[$["${fe_Rec_ID}" == “1”]|$["${fe_Rec_ID}" == “3”]]?:norecord)
exten => _.,n,Set(CALLFILENAME=admin-${STRFTIME(${EPOCH},%Y%m%d-%H%M%S)}-${ext_line}-${num_call})
exten => _.,n,MixMonitor(${CALLFILENAME}.WAV|b|v(0)V(0))
exten => _.,n(norecord),GotoIf($["${ds_Max_Time}" == “0”]?:limit)
exten => _.,n,ResetCDR()////NOTE////
exten => _.,n,GotoIf($["${ds_TrunkType_ID}" == “1”]?:notline)
exten => _.,n,Dial(zap/g${ds_GrpOut_ID}/${ds_Prefix_Add}${num_call:${ds_Prefix_Strip}},30)
exten => _.,n,Hangup
exten => _.,n(notline),Dial(SIP/${ds_Prefix_Add}${num_call:${ds_Prefix_Strip}}@${ds_Trunks},30)
exten => _.,n,Hangup
exten => _.,n(limit),ResetCDR()////NOTE////
exten => _.,n,GotoIf($["${ds_TrunkType_ID}" == “1”]?:notlinelim)
exten => _.,n,Dial(zap/g${ds_GrpOut_ID}/${ds_Prefix_Add}${num_call:${ds_Prefix_Strip}},30,L(${ds_Max_Time}000))
exten => _.,n,Hangup
exten => _.,n(notlinelim),Dial(SIP/${ds_Prefix_Add}${num_call:${ds_Prefix_Strip}}@${ds_Trunks},30,L(${ds_Max_Time}000))
exten => _.,n,Hangup
exten => h,1,Hangup

I call ResetCDR
exten => _.,n,ResetCDR()////NOTE////
to record cdr for new call, call success but it doesn’t record any think.
Do I miss or fail in my extension?