Problem with call status

i had asterisk as my softpbx in my company and i want 2 use the CDR feature with my asterisk and i do it and every thing goes ok but i noticed that if any1 make a call through zap channel and the number he dialed doesn’t asnwer asterisk set the CDR as if it was answered and count the seconds from the begining of the ringing in the other side. i do some research and i edit my Zapata.conf and i add busydetect=yes and callprogress=yes so asterisk became able 2 recognized the busy and not answered call and register it right in the CDR but my problem now is that most time when the call answer asterisk still recognized it as noanswered so is there any1 know about this problem plz help me.
sorry 4 detailed explaination but i intened 2 explain the whole situation.
thank u