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 for DID calls.

Notes:

Use the following commands in LD 96:

STAT DCH x - Display status of DCH channel x. If a number is not entered, the status of all channels is displayed.
STAT MON x - Display the incoming and outgoing monitoring status of one or all D-channels.
ENL MSGI x - Enable monitoring of incoming messages (on DCH channel x)
ENL MSGO x - Enable monitoring of outgoing messages (on DCH channel x)
DIS MSGI x - Disable monitoring of incoming messages (on DCH channel x)
DIS MSGO x - Disable 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 ISDN (PRI) Cause Codes for Call Clearing Cause codes. The most commonly seen cause codes are 16 (normal disconnect or cleardown) and 17 (busy).

Determine the D channel number:

Use STAT in LD 60 to indentify the PRI circuit, the CH31 position (or CH24 if T1) 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
.

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 D channel:

>ld 96
DCH000
.enl msgi 6     <- D channel number associated with the PRI
.enl msgo 6

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> Refer to the table below for message type definitions (if not specified, default is ALL).

For example:

.enl msgi 6 msg cona     <- Show only 'connect ack' messages

Be sure to disable monitoring when you're finished.

.dis msgi 6
.dis msgo 6

Example D channel message output:

Key:
  • DCH X - D channel number
  • IMSG - Incoming message
  • OMSG - Outging message
  • REF - unique call reference number
  • CH - channel/timeslot designation
  • TOD - Time Of Day stamp
  • >ld 96
    DCH000
    .enl msgi 6
    .enl msgo 6
    .
    DCH 6 UIPE_IMSG CC_INFO_IND   REF 0000002A CH 6 30 TOD  11:37:40
    
    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 (eg: MSDL, etc) must download a configuration specific localised UIPE via the PSDL (force download with FDL) after a DCH is built or changed.

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

    Home » Meridian » Maint » Msgi