Userfield problem when channel status is not 'ANSWER'

Why I lose userfield value when channel status is FAILED, NOANSWER and BUSY

I set [color=red]userfield=1[/color] in cdr_mysql.conf.

I have modify extensions.conf file to be

[code][macro-hangupcall]
;exten => s,1,ResetCDR(w) ;Original
;exten => s,n,NoCDR() ; Original

exten => s,1,Set(CDR(userfield)=${varCustomField})
exten => s,n,ResetCDR(w)
exten => s,n,NoCDR()
[/code]

It work fine, I have no problem if the channel is call complete.
But if the channel is not ‘ANSWERED’ status. I will have problem because userfiled have not records to database

Anyone can suggest me? any ideas?

Thank you!