Reference:ISDN Cause Codes

From innovaphone wiki
Jump to navigation Jump to search
There are also other versions of this article available: Reference (this version) | Howto

This document lists the ISDN cause codes defined by Euro-ISDN.

  • traces,
  • as well as in syslogs and
  • call detail records

Note that cause codes are coded differently in traces and syslogs.

How to decode cause codes from traces

Within traces, you will find sequences similar to this:

0:0432:491:0 - TEI0.0 -> Q931.0 : LL_RECV_RESULT
     data(13),FALC
     08 02 80 02  45 08 02 82  81 1e 02 82  88            ....E........

if you have ticked the “trace” checkmark in the “interface configuration”.

Additionally, you will see something like

0:0432:491:3 - R_CALL.7 -> RELAY.0 : SIG_DISC
     CAU = 82 81

if you have ticked the “trace” checkmark in the “protocol configuration”.

In the example, the cause code thus is 82 81.

The first byte (82) gives the Coding-standard and location. It is made up of: bit 8, 7, 6 and 5 usually 1000. Bit 4, 3, 2, 1 gives the location (that is, the entity generating the cause code). If bit 8 to 5 are unequal to 1000, the cause code is non-standard. The location is usually 0010, so that the second byte is usually 0x82 (10000010).

The second byte (81) contains the cause code within the lower 7 bit (1). So you need to clear the MSB to look up the cause code in the table below, using the “Cause (hex)” column. You may also look it up directly using the “Cause, bit 8 set to 1 (hex)” column.

There may be extraneous bytes giving further diagnostic information but these are rarely used and not described here thus.

In the example case, the cause code thus is 0x1, which says “Unallocated number” according to the table below.

How to decode cause codes from a CDR

CDRs show causes quite similar to the format described for traces, except that the size of the cause code information element is given and that the individual bytes are separated by underscores: cause=02_82_81.

How to decode cause codes from a syslog

In a syslog, you will find cause codes for convenience already extracted from the respective information element and coded in decimal:

19700101-000325 CALL 0 B:Disc 32:ckl->00000009 GW1:21->PRI1:0000009: Cause: 1

You can look up the cause code directly in the table below using the “Cause (decimal)” column.

What if you don’t find the code

The IPxxx only rarely generates cause codes on its own. In normal operation, cause codes are received from the network and blindly output in traces, syslogs and cdr’s. Therefore, you might eventually see cause codes not listed in the table below. Consult the documentation of the cause code generating device to determine their meaning.

Cause Codes

This document lists the ISDN cause codes defined by Euro-ISDN.

  • traces,
  • as well as in syslogs and
  • call detail records

Note that cause codes are coded differently in traces and syslogs.

How to decode cause codes from traces

Within traces, you will find sequences similar to this:

0:0432:491:0 - TEI0.0 -> Q931.0 : LL_RECV_RESULT
     data(13),FALC
     08 02 80 02  45 08 02 82  81 1e 02 82  88            ....E........

if you have ticked the “trace” checkmark in the “interface configuration”.

Additionally, you will see something like

0:0432:491:3 - R_CALL.7 -> RELAY.0 : SIG_DISC
     CAU = 82 81

if you have ticked the “trace” checkmark in the “protocol configuration”.

In the example, the cause code thus is 82 81.

The first byte (82) gives the Coding-standard and location. It is made up of: bit 8, 7, 6 and 5 usually 1000. Bit 4, 3, 2, 1 gives the location (that is, the entity generating the cause code). If bit 8 to 5 are unequal to 1000, the cause code is non-standard. The location is usually 0010, so that the second byte is usually 0x82 (10000010).

The second byte (81) contains the cause code within the lower 7 bit (1). So you need to clear the MSB to look up the cause code in the table below, using the “Cause (hex)” column. You may also look it up directly using the “Cause, bit 8 set to 1 (hex)” column.

There may be extraneous bytes giving further diagnostic information but these are rarely used and not described here thus.

In the example case, the cause code thus is 0x1, which says “Unallocated number” according to the table below.

How to decode cause codes from a CDR

CDRs show causes quite similar to the format described for traces, except that the size of the cause code information element is given and that the individual bytes are separated by underscores: cause=02_82_81.

How to decode cause codes from a syslog

In a syslog, you will find cause codes for convenience already extracted from the respective information element and coded in decimal:

19700101-000325 CALL 0 B:Disc 32:ckl->00000009 GW1:21->PRI1:0000009: Cause: 1

You can look up the cause code directly in the table below using the “Cause (decimal)” column.

What if you don’t find the code

The IPxxx only rarely generates cause codes on its own. In normal operation, cause codes are received from the network and blindly output in traces, syslogs and cdr’s. Therefore, you might eventually see cause codes not listed in the table below. Consult the documentation of the cause code generating device to determine their meaning.

Cause Codes

Template loop detected: Reference:ISDN Errorcodes