Home | Telephony | Computers | CRTs | About | Contact | Files Section | Links | Change Log | RSS
Nortel | Lucent | Cisco ISRs | General
Documentation | DMS-100/SL-100/CS-2000/CS-2100 | Meridian 1
Story | EDRAM | Blog | Files | Wanted

SL-100 Web Log

Configuring ISDN Trunking

January 7th-January 9th, 2024

With a minimal set of translations out of the way, I figured it was about time to get some trunking set up on the SL-100. My plan was to set up an ISDN PRI between the SL-100 and a Cisco ISR which would function as a tandem switch to connect between C*NET via asterisk, SCDP, and the PSTN.

I had a paper manual which I have scanned since then, DMS SuperNode System Primary Rate Interface (PRI) Translation, which I referred to.

I also had to spend some time wrapping some T1 cables down to the back of the LTC for the T1s I intended to use. I had that completed by the night of the 7th and started on the PRI trunking datafill on the night of the 8th.

As far as trunks go, ISDN is particularly complex involving over 10 different tables not counting the routing itself. Luckily, I had 298-7002-001 to follow which walked me through the basics of the datafill.

The first table to deal with is CARRMTC. There's a leftover entry from the university that looks like what I'll need:

CSPMTYPE          TMPLTNM RTSML RTSOL                                   ATTR
----------------------------------------------------------------------------
     LTC          ESFB8ZS   255   255 DS1 NT6X50AB MU_LAW ESF B8ZS BPV NILDL
                                      N 250 1000 50 50 50 1000 3 6 864 100
                                      17 511 4 255

This is pretty close to the default entry for B8ZS and ESF, and it meets our needs, so we'll use it.

When we initially configured our LTC, we were just concerned with POTS and we didn't configure it to support DS1 trunks. We'll fix that by adding the correct EXECTAB entry for ISDN PRI.

       LTCNAME
          ADNUM  FRTYPE FRNO SHPOS  FLOOR  ROW FRPOS  EQPEC     LOAD
                                                                     EXECTAB
                                                                    CSLNKTAB
                                                                     OPTCARD
     TONESET                                                         PROCPEC
                                                 EXTLINKS
                               E2LOAD
                                                                     OPTATTR
    PEC6X40                                       EXTINFO
----------------------------------------------------------------------------
       LTC   0
              1    LTEI    0    18      1    B     3 6X02NA  QLI22AO
                              (         POTS POTSEX) (         PRAB  DTCEX)$
 (0 10 16 0) (0 10 16 1) (0 10 16 2) (0 10 16 3) (0 10 16 4) (0 10 16 5)
 (0 10 16 6) (0 10 16 7) (0 10 16 8) (0 10 16 9) (0 10 16 10) (0 10 16 11)
 (0 10 16 12) (0 10 16 13) (0 10 16 14) (0 10 16 15) $
           (UTR15 ) (MSG6X69 ) (CMR13 CMRU23A) (ISP 16) $
     NORTHAA     SX05AA $ SX05AA $
                                                        0
                             SXFWAL01
                                                                           $
     6X40FA                                            N

Changes to EXECTAB likely require, at the minimum, static data to be reloaded into the LTC.

We also need to assign a DS1 card within the LTC, which is done in LTCPSINV:

       LTCNAME
                                                                    PSLNKTAB
----------------------------------------------------------------------------
       LTC   0
          N (0 DS1PRA ESFB8ZS N 0 NIL $)
          (1 DS1PRA ESFB8ZS N 0 NIL $) (2 DS1PRA ESFB8ZS N 0 NIL $)
          (3 DS1PRA ESFB8ZS N 0 NIL $) (4 NILTYPE ) (5 NILTYPE )
          (6 NILTYPE ) (7 NILTYPE ) (8 NILTYPE ) (9 NILTYPE ) (10 NILTYPE )
          (11 NILTYPE ) (12 NILTYPE ) (13 NILTYPE ) (14 NILTYPE )
          (15 NILTYPE ) (16 NILTYPE ) (17 DS30A ) (18 NILTYPE )
          (19 DS30A ) $

The syntax for one of the PSLNKTAB entries is as follows:

I set up 4 cards because each card is two DS1s, and also when I get to setting up clocking, the DMS will require that my primary and secondary clock sources be on different shelves, so I need one card provisioned (whether it's installed or not) in each shelf of my LTC.

We'll define the CLLI for our trunk group now. We've done this before for some tones back when we set up some treatments, so I'll just show the end result:

            CLLI ADNUM TRKGRSIZ                         ADMININF
----------------------------------------------------------------
    LBRDILLG01T0   100       24                     PRI_TO_CISCO

The only new thing to note is the TRKGRSIZ actually matters here. This will be a PRI using the full T1, so it is 24 channels. Possibly the D channel isn't counted, and this could have been 23 instead.

The actual trunk group itself is then defined in TRKGRP.

        GRPKEY
                                                                     GRPINFO
----------------------------------------------------------------------------
  LBRDILLG01T0
             PRA 0 PRAC NCRT ASEQ N $ $

While I'm using trunk group type PRA here, it's worth noting that there are other trunk group types which can be used for ISDN PRI. PRA is a fairly simple trunk group type, but in certain circumstances one of the more complicated ones may be applicable. At the very least, IBNT2 (two way IBN trunks) support ISDN using the LTID option to contain the LTID information.

If you remember back to configuring the first lines, PADGRP refers to PADDATA which controls the loss plan between difference line and trunk PADGRPs. I left this filled in with the defaults from the switch, which should be sane. PRAC is a good group for PRA trunks.

We will need an ISDNPARM to use with our trunk group. The ISDNPARM controls blocking of IEs as well as interactions with ISUP, it seems. There may be a DEFAULT entry (apparently not listed in the table) but I am not sure and I copied one of the old values from the university:

    NAME MSGTYPE MSGDIR    DFLTACT                                   PARMACT
----------------------------------------------------------------------------
    PRI1   SETUP   BOTH        MAP (DIE MAP) (SH5 BLK) (SH6 BLK) (SH7 BLK)
                                   (UNK BLK) (CGS ATP) (CDS ATP) (LLC ATP)
                                   (HLC ATP) $
 
    PRI1  NOTIFY   BOTH        MAP                      (DIE MAP) (UNK BLK)$
    PRI1   ALERT   BOTH        MAP                                (UNK BLK)$

TRKRCSEL is used to determine which ISDN IEs are used for routing characteristic selection. Individual IE types can be enable or disabled for determining the ISDN routing characteristics. The default behavior, if a TRKRCSEL is not defined (and defaults are used) is to use bearer capability and nothing else for routing characteristics.

This default behavior is fine by me, so I'm going to skip TRKRCSEL.

With those taken care of, we're ready to set up the trunk subgroup in TRKSUBGRP.

         SGRPKEY  CARDCODE
SGRPVAR
                                                                     SGRPVAR
----------------------------------------------------------------------------
  LBRDILLG01T0 0    DS1SIG
   ISDN 10 12    87Q931 2 N YIELD    USER     PT_PT    USER N        UNEQ 
 75 Y    PRI1          LTC   0  0 24 64K    HDLC
                                    $
                                                           $

With the trunk subgroup created, we can create the trunk members.

          CLLI        EXTRKNM SGRP                   MEMVAR
-----------------------------------------------------------
  LBRDILLG01T0              0    0            LTC   0  0  1
  LBRDILLG01T0              1    0            LTC   0  0  2
  LBRDILLG01T0              2    0            LTC   0  0  3
  LBRDILLG01T0              3    0            LTC   0  0  4
  LBRDILLG01T0              4    0            LTC   0  0  5
  LBRDILLG01T0              5    0            LTC   0  0  6
  LBRDILLG01T0              6    0            LTC   0  0  7
  LBRDILLG01T0              7    0            LTC   0  0  8
  LBRDILLG01T0              8    0            LTC   0  0  9
  LBRDILLG01T0              9    0            LTC   0  0 10
  LBRDILLG01T0             10    0            LTC   0  0 11
  LBRDILLG01T0             11    0            LTC   0  0 12
  LBRDILLG01T0             12    0            LTC   0  0 13
  LBRDILLG01T0             13    0            LTC   0  0 14
  LBRDILLG01T0             14    0            LTC   0  0 15
  LBRDILLG01T0             15    0            LTC   0  0 16
  LBRDILLG01T0             16    0            LTC   0  0 17
  LBRDILLG01T0             17    0            LTC   0  0 18
  LBRDILLG01T0             18    0            LTC   0  0 19
  LBRDILLG01T0             19    0            LTC   0  0 20
  LBRDILLG01T0             20    0            LTC   0  0 21
  LBRDILLG01T0             21    0            LTC   0  0 22
  LBRDILLG01T0             22    0            LTC   0  0 23

Here, we simply define the 23 B-channels of our DS1 associated with the trunk.

Next, we declare a logical terminal group in LTGRP. There is a default LTGRP, 'ISDN', but it's not clear if we can just use that one.

   GROUP GROUPNO   OPTIONS
--------------------------
     PRI      16         $

PRIPROF defines profiles for ISDN protocol variants:

PROFNAME       VARINFO
                                                                      SWITCH
----------------------------------------------------------------------------
 PROFPRI   NIPRI NI2V1
                                                                 (UNTONNPI)$

Now we can define the logical terminal in LTDEF:

    LTKEY LTAP
                                                                    CLASSREF
----------------------------------------------------------------------------
 PRI    1    B
PRA 23 NIPRI NI2V1 PROFPRI (NOPMD ) $

The last bit of data entry we need for our ISDN PRI trunk is in LTMAP to assign the LTID to our trunk group.

    LTKEY               MAPPING                           OPTION
----------------------------------------------------------------
 PRI    1   CLLI   LBRDILLG01T0                    (    TEI  0)$

With the new entry in LTMAP, we can see that the DMS automatically updated the TRKGRP table as well:

        GRPKEY
                                                                     GRPINFO
----------------------------------------------------------------------------
  LBRDILLG01T0
             PRA 0 PRAC NCRT ASEQ N (PRI 1) $ $

Another point we need to consider is clocking. Since the DMS isn't always on, I'm going to have it recover clock from the carrier for synchronization. Clocking synchronization is controlled through SYNCLK.

CLKKEY                                     CLKDATA
                                             OFFCDATA
-----------------------------------------------------
     0                                     STRAT3 
  SLAVE           LTC   0  0 0           LTC   0  2 1

The format of the data in SYNCLK varies depending on how your office is clocked. In this example, I have set the clock as statum 3 slaved off of carrier trunks. Each trunk is specified by the peripheral identity, the circuit in that peripheral, and (for LTCs) the register on a two-link that gets used.

The DMS software requires you to set a secondary timing link and imposes some apparent requirements, presumably for redundancy reasons. At the very least, it seems to require that the carrier links be located in different shelves.

The DMS gets a bit picky here about the values it will accept, the only thing I can say is to use trial and error as the data schema manual doesn't seem to offer much help on the exact requirements.

With all of the datafill finally complete, now we need to put the trunk into service using MAPCI. When it is initially created, the trunk will be in the installation busy state (INB) and we will need to manually busy (BSY) and return to service (RTS) many individual parts like the trunk members, the D-channel, and the carrier. These are all separate elements because they get handled in different parts of MAPCI and aren't inherently associated to each other with any strict mapping.

Starting with the trunk, you can post it in MAPCI with 'MAPCI;MTC;TRKS;TTP;POST G LBRDILLG01T0'. You can move the trunks to manual busy with 'BSY ALL' and then put in service with 'RTS ALL'.

For the D-channel, similarly: 'MAPCI;MTC;TRKS;PRADCH;POST GD LBRDILLG01T0' followed by 'BSY ALL' and 'RTS ALL'.

And lastly for the T1 carrier itself: 'MAPCI;MTC;TRKS;CARRIER;POST LTC 0 0' followed by 'BSY ALL' and then 'RTS ALL'.

Since the clocking is set to track our new carrier, we may need to go ensure the clocking switches over to slave from the carrier in the message switch clock area of MAPCI. Unfortunately I didn't take specific notes on this.

The next step would be routing, but I'll leave that for the next post.


Part of the Shadytel Web Ring: previous | next | random
This page was last modified 2024-12-31 17:22:15.263967356 -0600