Cisco CDR Call Termination Cause Codes Explained

Diagram illustrating the breakdown and analysis of Cisco CDR call termination cause codes for voice troubleshooting.
Visualizing the common Q.850 cause codes and their role in Cisco call termination analysis.

When a call ends in Cisco Unified Communications Manager (CUCM), the system records why the call terminated. These Call Detail Records (CDRs) provide the essential DNA of every voice interaction through numeric cause codes.

This page serves as a technical reference for interpreting Cisco CDR termination codes—specifically origCause, destCause, and OnBehalfOf fields—to help engineers diagnose dropped calls, network congestion, and signaling failures.


What Is a Cisco CDR Cause Code?

A cause code is a numeric value that describes the signaling reason a call ended. Cisco CUCM derives these values from Q.850 / ISDN cause codes, which are also used in SIP and H.323 signaling. Cause codes appear in CDRs as integers and must be translated to understand whether a call ended normally, failed due to network conditions, or was rejected by a device.


origCause vs destCause

Cisco records termination reasons from both sides of the call leg. A single call is often split into two "legs"—the originating side and the terminating side.

  • origCause_value: The reason the call cleared on the originating (caller) side.
  • destCause_value: The reason the call cleared on the destination (callee) side.

Note: The party that initiates the disconnect typically dictates the code recorded. If a caller hangs up normally, the origCause_value is usually 16. Differences between these two values often indicate mid-call failures, media issues, or asymmetric signaling.


Cisco & Q.850 Cause Code Reference Table

Cisco utilizes the ITU-T Q.850 standard for cause codes. These integers must be translated to understand whether a call failed due to network conditions, user behavior, or device rejection.

Code Definition Troubleshooting Context / Likely Culprit
1 Unallocated Number Dial plan error or misdial. Check Route Patterns.
16 Normal Call Clearing Standard disconnect. One party hung up normally.
17 User Busy Destination rejected the call (Busy state/No Call Waiting).
18 No User Responding Device alerted/rang but reached a timeout.
21 Call Rejected User hit "Decline" or DND (Do Not Disturb) blocked the call.
34 No Circuit/Channel Available Critical: SIP trunk capacity or network congestion.
38 Network Out of Order Major infrastructure or signaling failure.
41 Temporary Failure Transient issue; retrying usually succeeds.
47 Resources Unavailable Lack of Transcoders, MTPs, or Conference Bridges.
Pro Tip: Cisco uses proprietary codes for specific features. For example, 393216 often indicates call splits during transfers.

Interpreting Call Failures Using Cause Codes

Cause codes should never be interpreted in isolation. Engineers must correlate them with call timing and routing fields.

  • Cause 16 + duration > 0 → normal completed call

  • Cause 16 + duration = 0 → abandoned or unanswered call

  • Cause 34 or 41 → network or capacity-related issue

Comparing origCause and destCause helps determine whether the failure occurred before, during, or after call setup.


Determining Who Triggered the Event?

While cause codes explain why a call ended, the OnBehalfOf fields explain what entity triggered the termination.

  • Code 1 (Station): A user physically ended the call on their device.

  • Code 2 (Trunk/Gateway): The PSTN or SIP Provider terminated the connection.

  • Code 4 (Voicemail): Terminated by Unity Connection (e.g., after leaving a message).

  • Code 12 (Call Manager): Indicates a system action like a transfer, park, or resume.


Cause Codes in Multi-Leg Calls

Multi-Leg Calls (Transfers & Forwarding)

In transfers, hunt groups, and forwarded calls, CUCM generates multiple call legs. Each leg has its own cause codes.

This means:

  • One leg may end with cause 16 (normal clearing)

  • Another leg may end with a failure code

To understand the full call outcome, engineers must correlate records using globalCallID_callId.

Cause Codes in Hunt Groups and Queues

Hunt groups generate multiple CDR rows as CUCM attempts delivery to different members. Cause codes explain why each attempt failed or succeeded.

Common patterns include:

  • Cause 17: Busy or rejected by a specific hunt member.

  • Timeouts: Leading to the next member in the sequence.

  • Cause 16: Recorded once a member finally answers and eventually disconnects.



Limitations and Automation

Cause codes describe signaling outcomes, not user intent. They do not capture media quality (use CMRs for that) or explain why a user chose to disconnect.

Manually interpreting thousands of records is prone to error. Metropolis Corp's Expo XT UC Analytics Software automates this process, normalizing raw CDR data into plain English and providing dashboards for call completion rates and failure reasons.


Related Technical References