CDR contains an originating cause code and a destination cause code.
If you go to this cisco page, it's the documentation for CDR and CMR:
http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/cdr_defs/5_x/cdr5_1_3.html
Look for the section "Call Termination Cause Codes"
The orig and dest cause code for a successful call are 16 (Normal call clearing for the person who hung up first), and zero (No error, for the person who hung up second)
There are other codes like 17, user busy if you get a busy signal.
There is a mix of reasons. Some of them are errors, some of them are not really errors.
In the calculations for ehv, we have the following in queries:
AND ((CDR.OrigCauseValue <> 16 AND CDR.OrigCauseValue <> 0) OR (CDR.DestCauseValue <> 16 AND CDR.DestCauseValue <> 0))