Mike's PBX Cookbook

D-Channel Monitoring

LD 96 is used to test and maintain D-channel links.

D-Channel message monitoring is used to analyze the Layer 3 protocol messages travelling between the near and far-end D-channels. This is very useful for checking incoming/outgoing digit patterns, or investigating why a call is failing. See also: Cause Codes (ISDN).

Notes:

Use the following commands in LD 96:

CommandDescription
STAT DCH xDisplay status of DCH channel x. Without x, all channels are displayed.
STAT MON xDisplay the incoming/outgoing monitoring status of one or all D-channels.
ENL MSGI xEnable monitoring of incoming messages (on DCH channel x)
ENL MSGO xEnable monitoring of outgoing messages (on DCH channel x)
DIS MSGI xDisable monitoring of incoming messages (on DCH channel x)
DIS MSGO xDisable monitoring of outgoing messages (on DCH channel x)

There are three levels of message decoding, 0-2. Usually we want level zero, which is the easiest to read. Level 1 outputs raw data, and Level 2 is in HEX. To change the output message level, use:

SET MSGI x MON (0)-2
SET MSGO x MON (0)-2

Once enabled, messages can be sent to the TTY, a log file, or both. Use the LD 96 command stat mon to determine which channels have monitoring enabled, and where the output will be sent:

.stat mon
TRACE OUTPUT
   DCH LOG : OFF
   DCH TTY : ON
ACTIVE TRACES
DCH 200 : MSGI - ENBL  MSGO - ENBL
DCH 211 : MSGI - DSBL  MSGO - DSBL  (UIPE)
DCH 212 : MSGI - DSBL  MSGO - DSBL  (UIPE)

The trace output will be sent to the TTY. If set to OFF, enable it with enl mon tty
To send the output to a log file: enl mon log, or both log file and TTY: enl mon all.
The log file is located at: /u/trace/dch.log and can be downloaded from the Call Server by FTP.

Refer to Cause Codes (ISDN) (Avaya/Nortel) and/or ISDN (PRI) Cause Codes (Standard Q.931) for Cause Code definitions.
The most commonly seen call clearing cause codes are 16 (normal disconnect or cleardown) and 17 (user busy).

Determine the D channel number:

Use STAT in LD 60 to indentify the PRI circuit, the CH31 position shows the associated D channel number.

.stat

PRI2 LOOP 12 - ENBL
REF CLK: ENBL
TRACKING
SERVICE RESTORE: YES
ALARM STATUS: ACCEPTABLE
CH 01 - IDLE DID   VOD  *           CH 02 - IDLE DID   VOD  *
CH 03 - IDLE DID   VOD  *           CH 04 - IDLE DID   VOD  *
CH 05 - IDLE DID   VOD  *           CH 06 - IDLE DID   VOD  *
CH 07 - IDLE DID   VOD  *           CH 08 - IDLE DID   VOD  *
CH 09 - IDLE DID   VOD  *           CH 10 - IDLE DID   VOD  *
CH 11 - IDLE DID   VOD  *           CH 12 - IDLE DID   VOD  *
CH 13 - IDLE DID   VOD  *           CH 14 - IDLE DID   VOD  *
CH 15 - IDLE DID   VOD  *           CH 16 - IDLE DID   VOD  *
CH 17 - IDLE DID   VOD  *           CH 18 - IDLE DID   VOD  *
CH 19 - IDLE DID   VOD  *           CH 20 - IDLE DID   VOD  *
CH 21 - IDLE DID   VOD  *           CH 22 - IDLE DID   VOD  *
CH 23 - IDLE DID   VOD  *           CH 24 - IDLE DID   VOD  *
CH 25 - IDLE DID   VOD  *           CH 26 - IDLE DID   VOD  *
CH 27 - IDLE DID   VOD  *           CH 28 - IDLE DID   VOD  *
CH 29 - IDLE DID   VOD  *           CH 30 - IDLE DID   VOD  *
CH 31 - DCH 6  ⇐ D channel number for this PRI
.

In this case, its DCH 6, so we will enable messages on DCH 6.

Message monitor:

To enable incoming and outgoing message monitoring for a PRI's D channel:

>ld 96
DCH000
.enl msgi 6     ⇐ enable display of incoming messages for the PRI D channel number
.enl msgo 6     ⇐ enable display of outgoing messages for the PRI D channel number

As monitoring D channel messages can produce a lot of TTY output, we can filter the output to show (up to 3) specific message types:
ENL MSGI x MSG <msg1> <msg2> <msg3> - For example: enl msgi 6 msg cona will show only 'connect acknowledge' messages.

Refer to the table below for message type definitions (if not specified, default is ALL).

Be sure to disable monitoring when you're finished.

.dis msgi 6     ⇐ disable display of incoming messages for the PRI D channel number
.dis msgo 6     ⇐ disable display of outgoing messages for the PRI D channel number

Example D channel message output:

The unique call reference number (REF) denotes the same call for its duration.

>ld 96
DCH000
.enl msgi 6
.enl msgo 6
.
DCH 6 UIPE_IMSG CC_INFO_IND   REF 0000002A CH 6 30 TOD  11:37:50

DCH 6 UIPE_IMSG CC_FAC_IND  REF 0000002A CH 6 30 TOD  11:37:50

DCH 6 UIPE_OMSG CC_SETUP_REQ  REF 0000002B CH 6 28 TOD  11:37:58
PROGRESS: ORIGINATING END IS NOT ISDN
CALLING #:3699 NUM PLAN: E164
CALLED  #:06975353888 NUM PLAN: E164

DCH 6 UIPE_IMSG CC_PROCEED_IND  REF 0000002B CH 6 28 TOD  11:37:58

DCH 6 UIPE_IMSG CC_ALERT_IND  REF 0000002B CH 6 28 TOD  11:38:00
PROGRESS: INBAND INFO OR PATTERN IS AVAIL

DCH 6 UIPE_OMSG CC_DISC_REQ   REF 0000002B CH 6 28 TOD  11:38:02
CAUSE: #16 - NORMAL CALL CLEARING

DCH 6 UIPE_IMSG CC_RELEASE_IND  REF 0000002B CH 6 28 TOD  11:38:02

DCH 6 UIPE_OMSG CC_RELEASE_RESP   REF 0000002B CH 6 28 TOD  11:38:02

DCH 6 UIPE_IMSG CC_INFO_IND   REF 00000028 CH 6 29 TOD  11:38:08

DCH 6 UIPE_IMSG CC_FAC_IND  REF 00000028 CH 6 29 TOD  11:38:08

DCH 6 UIPE_IMSG CC_INFO_IND   REF 0000002A CH 6 30 TOD  11:38:10

DCH 6 UIPE_IMSG CC_FAC_IND  REF 0000002A CH 6 30 TOD  11:38:10

DCH 6 UIPE_OMSG CC_DISC_REQ   REF 0000002A CH 6 30 TOD  11:38:26
CAUSE: #16 - NORMAL CALL CLEARING

DCH 6 UIPE_IMSG CC_RELEASE_IND  REF 0000002A CH 6 30 TOD  11:38:26

DCH 6 UIPE_OMSG CC_RELEASE_RESP   REF 0000002A CH 6 30 TOD  11:38:26

DCH 6 UIPE_IMSG CC_DISC_IND   REF 00000028 CH 6 29 TOD  11:38:54
CAUSE: #16 - NORMAL CALL CLEARING
PROGRESS: INBAND INFO OR PATTERN IS AVAIL

.dis msgi 6
.dis msgo 6

About the messages:

Q.931 messages control or report the status of ISDN connections. For example:

Nortel/Avaya use a proprietary 'Universal ISDN Protocol Engine' (UIPE) which supports worldwide ISDN variants. D channel hardware (MSDL, etc) must download a configuration specific localised UIPE via the PSDL (force download: FDL) after a DCH is built or changed.

UIPE (Universal ISDN Protocol Engine) messages, and Q.931 equivalents:

Q.931 MessageUIPE Outgoing MessageUIPE Incoming Message
ALERTINGCC_ALERT_REQUESTCC_ALERT_INDICATION
CALL PROCEEDINGCC_PROCEEDING_REQUESTCC_PROCEEDING_INDICATION
PROGRESSCC_PROGRESS_REQUESTCC_PROGRESS_INDICATION
SETUPCC_SETUP_REQUESTCC_SETUP_INDICATION
CONNECT ACKCC_SETUP_RESPONSECC_SETUP_CONFIRMATION
DISCONNECTCC_DISCONNECT_REQUESTCC_DISCONNECT_INDICATION
FACILITYCC_FAC_REQUESTCC_FAC_INDICATION
FACILITYCC_FAC_REG_NULL_CRFCC_FAC_IND_NULL_CRF
FACILITY REJECTCC_FACREJ_REQ_NULL_CRFCC_FACREJ_IND_NULL_CRF
NOTIFYCC_NOTIFY_REQUESTCC_NOTIFY_INDICATION
RELEASECC_REJECT_REQUESTCC_REJECT_INDICATION
RELEASECC_RELEASE_REQUESTCC_RELEASE_INDICATION
RELEASE COMPLETECC_RELEASE_RESPONSECC_RELEASE_CONFIRMATION
RESTARTCC_RESTART_REQUESTCC_RESTART_INDICATION
RESTART ACKCC_RESTART_RESPONSECC_RESTART_CONFIRMATION
SERVICESERVICE MESSAGESSERVICE MESSAGES
SERVICESERVICE RESPONSESERVICE RESPONSE
SETUP ACKCC_MORE_INFO_REQUESTCC_MORE_INFO_INDICATION
STATUSCC_STATUS_REQUESTCC_STATUS_INDICATION
STATUS ENQUIRYCC_STATUS_ENQ_REQUESTCC_STATUS_ENQ_INDICATION
INFORMATIONCC_INFORMATION_REQUESTCC_INFORMATION_INDICATION

Hex To ASCII Converter:

This converter can be useful for deciphering certain messages. Copy/paste, and convert.

Hex:
Ascii: