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

EDRAM and Announcements

January 21st-January 23rd, 2024

After putting a new connector on a cable to carry DS-30s between ENET and the lowest ISM shelf in the MCAM, I installed my EDRAM card into slot 6. The EDRAM is an interesting case of a peripheral on a card, where a single card interfaces directly with a DS-30 on its own, using the shelf it is installed within for power only and mechanical packaging only.

Documentation related to the EDRAM includes the DRAM and EDRAM Guide, the EDRAM Peripheral Module Software Release Document Voice Files, and the EDRAM Peripheral Module Software Release Document.

Slot 6 puts it on the second DS-30 for that ISM shelf, but apparently DS-30 port 1 on one of my 3xDS-512 and 16xDS-30 ENET paddleboards somehow cannot carry a message link. As such, I wired the first DS-30 for the shelf (used for the shelf itself) to port 0, and the second, third, and fourth DS-30s to ports 2 though 4 on the ENET paddleboard.

The EDRAM is classed as a type of trunk module, defined in TMINV.

           TMNM FRTYPE FRNO SHPOS FLOOR ROW FRPOS       LKDATA  EQPEC
    LOAD  EXECS                               SCTMLOC
---------------------------------------------------------------------
       DTM    0   MCAM    0    19     1   A     4   0 10  2  0 1X80BA
ED16AA07  MTMEX        SINGLE_CARD        MTM    0  6

With the PM defined, we can start by bringing the link into service in 'MAPCI;MTC;NET;SHELF 0;CARD 10' followed by 'BSY x LINK 2' and 'RTS x LINK 2' for each ENET plane. Then in 'MAPCI;MTC;PM;POST DTM 0' followed by 'BSY', 'LOADPM', and 'RTS'.

Now that we've validated our PM configuration, we will need to 'BSY' the EDRAM back out to do the next round of data fill.

First, our EDRAM card needs a CLLI:

            CLLI ADNUM TRKGRSIZ                         ADMININF
----------------------------------------------------------------
          EDRAM0   102       33                           EDRAM

The NT1X80BA 17 minute EDRAM uses 1 control and 32 announcement slots, which I believe correspond to the 33 members of the trunk group. Those are defined in the DRAMS table:

DRAMCARD TMTYPE TMNO TMCKT  CARDCODE
                                                                    CARDINFO
----------------------------------------------------------------------------
    0  0    DTM    0     0    1X80BA
                                                         CTLR         EDRAM0

    0  1    DTM    0     0    1X80BA
PROM (0) (1) $

    0  3    DTM    0     0    1X80BA
RAM (2) $

    0  4    DTM    0     0    1X80BA
RAM (3) $

    0  5    DTM    0     0    1X80BA
RAM (4) $

    0  6    DTM    0     0    1X80BA
RAM (5) $

    0  7    DTM    0     0    1X80BA
RAM (6) $

    0  8    DTM    0     0    1X80BA
RAM (7) $

    0  9    DTM    0     0    1X80BA
RAM (8) $

    0 10    DTM    0     0    1X80BA
RAM (9) $

    0 11    DTM    0     0    1X80BA
RAM (10) $

    0 12    DTM    0     0    1X80BA
RAM (11) $

    0 13    DTM    0     0    1X80BA
RAM (12) $

    0 14    DTM    0     0    1X80BA
RAM (13) $
 
    0 15    DTM    0     0    1X80BA
RAM (14) $
 
    0 16    DTM    0     0    1X80BA
RAM (15) $
 
    0 17    DTM    0     0    1X80BA
RAM (16) $
 
    0 18    DTM    0     0    1X80BA
RAM (17) $
 
    0 19    DTM    0     0    1X80BA
RAM (18) $
 
    0 20    DTM    0     0    1X80BA
RAM (19) $
 
    0 21    DTM    0     0    1X80BA
RAM (20) $
 
    0 22    DTM    0     0    1X80BA
RAM (21) $
 
    0 23    DTM    0     0    1X80BA
RAM (22) $
 
    0 24    DTM    0     0    1X80BA
RAM (23) $
 
    0 25    DTM    0     0    1X80BA
RAM (24) $
 
    0 26    DTM    0     0    1X80BA
RAM (25) $
 
    0 27    DTM    0     0    1X80BA
RAM (26) $
 
    0 28    DTM    0     0    1X80BA
RAM (27) $
 
    0 29    DTM    0     0    1X80BA
RAM (28) $
 
    0 30    DTM    0     0    1X80BA
RAM (29) $
 
    0 31    DTM    0     0    1X80BA
RAM (30) $
 
    0 32    DTM    0     0    1X80BA
RAM (31) $

I defined the first two virtual slots as PROM as this is the correct type to load stock announcement files. The rest of the card was set as RAM for custom announcements. This can always be changed later if needed, though it may require taking the card out of service to do so.

We can set the announcement sets to be loaded in EDRAMINV:

         EDRAMNM                 TUPINFO
----------------------------------------
       DTM  0  1            ANN  ESTD0AA

ESTD0AA is actually the Canadian English set, which is what the university was using (although not very much of it). For American English, you would use the ASTD0AA set (and I might switch that at some point).

Anyway, announcement set files also get added to PMLOADS so the switch knows where to find them:

                        LOADNAME
                         ACTFILE            ACTVOL
                         BKPFILE            BKPVOL    UPDACT
------------------------------------------------------------
                         ESTD0AA
                         ESTD0AA          F02LPMLD
                         ESTD0AA          F17LPMLD         N

Now we can work on putting the EDRAM into service. In 'MAPCI;MTC;PM;POST DTM 0' we can 'BSY', 'LOADPM', and finally 'RTS'. Note that the LOADPM may take a while as the announcement set is a couple hundred KB and the transfer rate is pretty abysmal.

We can start setting up the announcement phrases next. The manuals say you should use the 'ASSIGN' command inside DRAMREC to do this. The results go into DRAMPHRS.

DRAM         PHRSNAME PHRASENO BLOCK LENGTH RECORDED
----------------------------------------------------
   0             ENG1       48     0      1       N
   0             ENG2       49     0      1       N
   0             ENG3       50     0      1       N
   0             ENG4       51     0      1       N
   0             ENG5       52     0      1       N
   0             ENG6       53     0      1       N
   0             ENG7       54     0      1       N
   0             ENG8       55     0      1       N
   0             ENG9       56     0      1       N
   0             ENG0       47     0      1       N
   0          SILENCE        0     0      1       N
   0          TEST760        1     0      1       N
   0             SIT1        8     0      1       N
   0             SIT2        9     0      1       N
   0             SIT3       10     0      1       N
   0             SIT4       11     0      1       N
   0             SIT5       12     0      1       N
   0             SIT6       13     0      1       N
   0             SIT7       14     0      1       N
   0             SIT8       15     0      1       N
   0             SIT9       16     0      1       N
   0            SIT10       17     0      1       N
   0            SIT11       18     0      1       N
   0            SIT12       19     0      1       N
   0            SIT13       20     0      1       N
   0            SIT14       21     0      1       N
   0            SIT15       22     0      1       N
   0            SIT16       23     0      1       N
   0            SIT17       24     0      1       N
   0            SIT18       25     0      1       N
   0            SIT19       26     0      1       N
   0            SIT20       27     0      1       N
   0            SIT21       28     0      1       N
   0            SIT22       29     0      1       N
   0            SIT23       30     0      1       N
   0            SIT24       31     0      1       N
   0            SIT25       32     0      1       N
   0            SIT26       33     0      1       N
   0            SIT27       34     0      1       N
   0            SIT28       35     0      1       N
   0            SIT29       36     0      1       N
   0            SIT30       37     0      1       N
   0            SIT31       38     0      1       N
   0            SIT32       39     0      1       N
   0              NCA       40     0      9       N
   0              ROA       41     0      9       N
   0              VCA       42     0     12       N
   0              ROH       43     0     13       N
   0              VDN       44     0      6       N
   0              MCA       45     0     11       N
   0              MCL       46     0     10       N
   0           PROMPT       2      0      1       N

Before we can define any announcements, we'll have to assign CLLIs for them. As a demonstration, we'll define some announcements that just play everything in the ESTD0AA set.

            CLLI ADNUM TRKGRSIZ                         ADMININF
----------------------------------------------------------------
         ALLANNS   106        1                ALL_ANNOUNCEMENTS
        ALLANNS2   107        1              ALL_ANNOUNCEMENTS_2
        ALLANNS3   108        1               ALL_ANNOUCEMENTS_3
        ALLANNS4   109        1              ALL_ANNOUNCEMENTS_4

Then we can define the announcements in ANNS:

            CLLI   ANNARCH TRAFSNO   CYTIME MAXCYC                      DATA
----------------------------------------------------------------------------
         ALLANNS     NETWK       0        0      1     STND N   255
        ALLANNS2     NETWK       0        0      1     STND N   255
        ALLANNS3     NETWK       0        0      1     STND N   255
        ALLANNS4     NETWK       0        0      1     STND N   255

We set up four announcements since there is a maximum number of phrases for each announcement, and I want more than that maximum.

Next, we need to assign EDRAM channels to the announcement groups we created by creating announcement members in ANNMEMS.

            ANNMEM    HDWTYPE             CARD
                                                                     MEMINFO
----------------------------------------------------------------------------
       ALLANNS   0       DRAM              DRA
                                                    ( 0        DTM    0  1)$
 
      ALLANNS2   0       DRAM              DRA
                                                    ( 0        DTM    0  2)$
 
      ALLANNS3   0       DRAM              DRA
                                                    ( 0        DTM    0  3)$
 
      ALLANNS4   0       DRAM              DRA
                                                    ( 0        DTM    0  4)$

Finally, each announcement member track gets a phrase list assigned in ANNPHLST.

          ANNPHKEY
                                                                     PHSLIST
----------------------------------------------------------------------------
       ALLANNS   0
(SILENCE) (TEST760) (PROMPT) (SIT1) (SIT2) (SIT3) (SIT4) (SIT5) (SIT6)
(SIT7) (SIT8) (SIT9) (SIT10) (SIT11) (SIT12) (SILENCE) $
 
      ALLANNS2   0
(SILENCE) (SIT13) (SIT14) (SIT15) (SIT16) (SIT17) (SIT18) (SIT19) (SIT20)
(SIT21) (SIT22) (SIT23) (SIT24) (SIT25) (SIT26) (SILENCE) $
 
      ALLANNS3   0
(SILENCE) (SIT27) (SIT28) (SIT29) (SIT30) (SIT31) (SIT32) (NCA) (ROA) (VCA)
(ROH) (VDN) (MCA) (MCL) (ENG0) (SILENCE) $
 
      ALLANNS4   0
(SILENCE) (ENG1) (ENG2) (ENG3) (ENG4) (ENG5) (ENG6) (ENG7) (ENG8) (ENG9)
(SILENCE) $

With the announcement members created, they all need to be put in service. This is done in 'MAPCI;TRKS;TTP;POST G clli' where CLLI is the name of the announcement. Then, using 'BSY ALL' and 'RTS ALL' all member can be moved from INB to BSY to in service.

We can use a routelist to string all of our announcements together:

 RTE                                                                 RTELIST
                                                                     OPTIONS
----------------------------------------------------------------------------
   5 (S D ALLANNS) (S D ALLANNS2) (S D ALLANNS3) (S D ALLANNS4) (TRMT DISC)
     $
                                                                           $

We end with the 'DISC' treatment because otherwise the call ends with GNCT treatment when the end of the routelist is hit.

We can point a DN at our route list. In SERVORD, we use the NEWDN command to make a RTE type DN, and then point to OFRT 5. The result is as follows in DNROUTE:

AREACODE OFCCODE    STNCODE                                         DNRESULT
----------------------------------------------------------------------------
     222     563       1003                                  T     OFRT    5

Since we have the announcements working, it would be nice to set up some treatments using them too. We'll set up the VACT and BLDN treatments. We'll have to create new CLLIs, annoucement groups, announcement members, and annoucement phrase lists. We'll have to move the new announcements into service too, of course.

CLLI:

            CLLI ADNUM TRKGRSIZ                         ADMININF
----------------------------------------------------------------
            VACT   110        1         VACANT_CODE_ANNOUNCEMENT
            BLDN   111        1           VACANT_DN_ANNOUNCEMENT

ANNS:

            CLLI   ANNARCH TRAFSNO   CYTIME MAXCYC                      DATA
----------------------------------------------------------------------------
            VACT     NETWK       0        0      1     STND N   255
            BLDN     NETWK       0        0      1     STND N   255

ANNMEMS:

            ANNMEM    HDWTYPE             CARD
                                                                     MEMINFO
----------------------------------------------------------------------------
          VACT   0       DRAM              DRA
                                                    ( 0        DTM    0  5)$
 
          BLDN   0       DRAM              DRA
                                                    ( 0        DTM    0  6)$

ANNPHLST:

          ANNPHKEY
                                                                     PHSLIST
----------------------------------------------------------------------------
          VACT   0
                   (         SILENCE) (             VCA) (         SILENCE)$
 
          BLDN   0
                   (         SILENCE) (             VDN) (         SILENCE)$

OFFTREAT TMTCNTL.TREAT:

TREATMT LOG           FSTRTE
----------------------------
   VACT   N S           VACT
   BLDN   N S           BLDN

OFRT:

 RTE                                                                 RTELIST
                                                                     OPTIONS
----------------------------------------------------------------------------
   6 (S D VACT) (S D LKOUT) $
                                                                           $
 
   7 (S D BLDN) (S D LKOUT) $
                                                                           $

LNT TMTCNTL.TREAT:

TREATMT LOG           FSTRTE
----------------------------
   VACT   N  T     OFRT    6
   BLDN   N  T     OFRT    7

That sets up the VACT and BLDN treatments for LNT and OFFTREAT.

If we want our announcements to play over ISDN trunks instead of sending cause codes, we need to use a special option applied to the PRI in LTDATA.

         LTDKEY
                                                                     LTDRSLT
----------------------------------------------------------------------------
 PRI    1  SERV
SERV Y N SCREENED ALWAYS $

The only problem there is that announcements go off-hook, and we don't want our treatments to go off-hook on a trunk since that can affect billing (it's possible there's an option somewhere which affects this that I am not aware of). Maybe it's OK since it comes with a cause code too, I think, but in any case we can override the answer supervision using some special fake CLLI codes:

 RTE                                                                 RTELIST
                                                                     OPTIONS
----------------------------------------------------------------------------
   8 (S D ONHKSUP) (S D VACT) $
                                                                           $
 
   9 (S D ONHKSUP) (S D BLDN) $
                                                                           $

Then we just reference these new route lists in TMTCNTL.TREAT. I put them in the TITRKGRP TREAT subtable to be more specific to the ISDN trunk than just OFFTREAT.

TREATMT LOG           FSTRTE
----------------------------
   VACT   N  T     OFRT    8
   BLDN   N  T     OFRT    9

If we want to assign a specific DN to a treatment, we can do so for certain treatments using SERVORD when we delete a line. However, that selection is limited. We can make arbitrary treatment definitions if we edit DNROUTE directly and use the 'D' selector.

AREACODE OFCCODE    STNCODE                                         DNRESULT
----------------------------------------------------------------------------
     222     563       1004                                           D VACT

In searching through the HDDs, I noticed an old university announcement backup. Unfortunately, I think most of the university announcements were not saved anywhere, so I just have the one file, and it only seems to contain one announcement. Nonetheless, I set up the announcement and created a DN to route it.

The file:

File information for volume F02LPMLD:
{NOTE:  1 BLOCK = 512 BYTES }
--------------------------------------------------------------------------------
FILE NAME                        O R I O O V FILE   MAX    NUM OF    FILE   LAST
                                 R E T P L L CODE   REC   RECORDS    SIZE MODIFY
                                 G C O E D D        LEN        IN      IN   DATE
                                     C N                     FILE  BLOCKS
--------------------------------------------------------------------------------
DTM_BK3                          O V            0   255      3808    2304 160425

I made a copy called UNIVANN to ensure I didn't accidentally do anything to the original. We'll assign it to virtual card 3 of the EDRAM in EDRAMINV:

         EDRAMNM                 TUPINFO
----------------------------------------
       DTM  0  3            ANN  UNIVANN

We can list it in PMLOADS too:

                        LOADNAME
                         ACTFILE            ACTVOL
                         BKPFILE            BKPVOL    UPDACT
------------------------------------------------------------
                         UNIVANN
                         UNIVANN          F02LPMLD
                         UNIVANN          F17LPMLD         N

We'll of course need to busy and reload the EDRAM for some of these changes.

I used the DRAMREC 'RECORD' command with a 'FORCE' parameter to assign the announcement phrase number once I found it. That added it to DRAMPHRS. From there, I set up a CLLI, announcement in ANNS, announcement member in ANNMEMS, a phrase list an ANNPHLST, put the announcement group into service, made a routelist, and then pointed 563-1005 at it.

The EDRAM has some additional functionality to let it take the place of milliwatt test tone and receiver off hook tone generators, but I had some trouble with this the first time around and will cover that in a later post instead.


Part of the Shadytel Web Ring: previous | next | random
This page was last modified 2025-01-01 20:44:37.475337498 -0600