This was performed after the notes in 'config-clear-procedure'. The first and most obvious thing to get working is the ability to set up a simple POTS line. That sounds like an easy task, but remember, we removed almost all the hardware necessary to do that back in the config clearing. We don't even have ENET. Aside from that, there's a lot of other translations necessary to even set up a LINEATTR, which is of course required for assigning lines also. We're going to go about this very mechanically. We'll go into SERVORD and try to set up a 1FR, for now. We'll worry about IBN and RES later (and any other LCCs). Entering SERVORD, we use the 'NEW' command. We give it the default 'NOW' for the SONUMBER, and next we're asked for a DN. We're already unable to proceed here, as we have no DNs assigned to our switch. DNs which are assigned to our switch are set up in TOFCNAME. In order to make entries into TOFCNAME, you also need an SNPA/STS configured. An STS/SNPA is configured in SNPANAME and HNPACONT, but since we aren't completely starting from scratch, we already have one. When I was removing the SNPANAME entry, the DMS told me I better put on in there to replace it or an empty table could cause issues. My SNPA is set as '222' which isn't a real area code in NANP, and we've been using to denote the Shadytel Coordinated DialPlan, or SCDP. (it's probably worth mentioning here I haven't exactly figured out the difference between an SNPA and an STS yet, but it seems these are two dependent concepts in some manner.) In TOFCNAME, a new tuple is added referring to my SCDP prefix (222-563) with no special options. AREACODE OFCCODE OPTIONS ----------------------------------------------------------------------- 222 563 $ Back in SERVORD, creating a NEW line, we get a bit farther now that we're able to select a DN. Interestingly, we don't immediately hit a snag on the LCC (1FR), but I know that'll give us trouble later when we try to submit it. The next field to stop us is LEN_OR_LTID. Of course, we have no LENs because we don't have any line cards, which go in line drawers, which go in LCMs, which attach to an LTC, which attach to ENET or another BEARNET. So, you see, we've got some dependencies to walk. We start by adding our ENET back in ENINV. Note that for this part, I still have the interface cards for the ENET defined and configured in the message switch, so I won't need to do any of that. Those are cards 6 and 8, in my case. Adding the tuple in ENET, we of course start with shelf 0 (the only shelves I have in my case). My ENET is a single cabinet configuration, up to 64k (if I got rid of the LIS shelf which makes it an MCNI) thus it is a PRI64K class. Since my ENC was converted to an MCNI, I'll use that for the frame type. The MCNI is an NTYA05AA. My shelves are labeled NT9X0818 (despite some discrepancy with the old table contents). The message switch card is 6 (physical slot 12), link 0, port 0, and card 8 (physical slot 14), link 0, port 0. The load name on my switch is ENC22BN. ENKEY ENCLASS FRTYPE FRNO FRPEC SHPEC MSCARD0 MSLINK0 MSPORT0 FLOOR0 ROW0 FRPOS0 SHELF0 LOAD0 MSCARD1 MSLINK1 MSPORT1 FLOOR1 ROW1 FRPOS1 SHELF1 LOAD1 --------------------------------------------------------------------------- 0 PRI64K MCNI 0 NTYA05AA NT9X0818 6 0 0 1 A 2 39 ENC22BN 8 0 0 1 A 2 13 ENC22BN Notice how ENCDINV fills some data automatically when the ENET is created. All of the common pack fill is created, but not any crosspoint cards which will have to be added later. At this point, I turned on ENET plane 0, shelf 0. The newly-created ENET needed to be brought from offline to mbsy using the 'bsy' command in mapci;mtc;net;system. Then the software needed to be loaded with the 'loaden' command, and lastly returned to service with the 'rts' command. It's not clear if it's strictly necessary in a switch with only one bearer network, but we'll fill in BEARNETS at this point. Modeling after the original tuples in the switch, we end up with the following: NETIDX BNETNAME DISPLAY FABRIC OPTIONS ------------------------------------------------------ NET 0 TDM_ENET ENET ENET $ Now we'll add in out crosspoint cards and their interfaces in ENCDINV. For my switch, I can't fathom a reason I'd ever need more than one crosspoint card, which supports 2048 channels. One card can be equipped with a paddleboard for 3xDS-512 and 16xDS30 (there are other options, this is just the useful one to me for my switch). However, an additional crosspoint card is also needed (the one that occupies slot 9) for the interface to the message switches. Technically this isn't a supported configuration though, as there's a minimum crosspoint buildout of 4 cards due to the arrangement of busses and termination in the ENET planes. While these cards must be provisioned, I have not yet tested if they need to be physically present and powered for operation. The correct fill order for cards is discussed in the section for ENCDINV in the data schema reference manuals. In ENCDINV, we add a tuple for card 9 in shelf 0 of plane 0. The card type is a crosspoint. The card type in my switch was an NT9X35CA, issue 15. This card is for the message switch interface, so it gets no paddleboard (NIL_PB/NIL_PEC). You'll notice that an identical entry for plane 1 is created at the same time. The second card will be the first that bears any actual interfaces. There's a sequence to adding cards, so slot 10 is next. This is also an NT9X35CA issue 15 crosspoint card on my switch. Since it's the best fit for my switch, I'll be using a DS_30_DS_512_INTERFACE, a NT9X45BA which happens to be issue 04. The 3rd and 4th cards go much the same way in slots 31 and 32, and I configured them without paddleboards since I don't see myself needing the interfaces for anything. ENCDKEY CPTYPE CPPEC CPDCD PBTYPE PBPEC PBDCD ------------------------------------------------------------------------ 0 0 9 CROSSPOINT NT9X35CA 15 NIL_PB NIL_PEC 0 0 0 10 CROSSPOINT NT9X35CA 15 DS_30_DS_512_INTERFACE NT9X45BA 4 0 0 31 CROSSPOINT NT9X35CA 15 NIL_PB NIL_PEC 0 0 0 32 CROSSPOINT NT9X35CA 15 NIL_PB NIL_PEC 0 At this point, we can physically add those cards to the shelf and see if we can bring them up in the MAP. For that, we go into mapci;mtc;net;shelf x;card y, then bsy the cards followed by returning them to service. The next step will be to provision some form of LTC (LGC, LTC, etc. set up to serve LCMs). That is accomplished in table LTCINV. That also requires some planning on the hardware end. For the sake of least-power-consumption, my plan was to build the most capable LTC that I could from the parts I had, to avoid running multiple. To do this, I combined the contents of a DTCI and an LGC, using mostly the cards from the DTCI. cards I had for use in the LTC I built: NT2X70AE - +-5/12V PWR CONVERTER 50A - 25 - LGC NT2X70AF - +-5/12V PWR CONVERTER 50A - 25 - DTCI * NT6X40FA - DS512 XPM INTERFACE CP - 22 - DTCI/LGC * NT6X40GA - DS512 LINK PADDLEBOARD - 22R - DTCI/LGC * NT6X41AA - SPEECH BUS FORMATTER CP - 21 - DTCI/LGC * NT6X42AA - CHANNEL SUPERVISION MGS CP - 20 - DTCI/LGC * NT6X44AA - TIME SWITCH CP - 14 - LGC * NT6X48AA - DS30A LCM INTERFACE CP - 6-7 - LGC * NT6X50AB - DS-1 E.F.F. CARD CP - 1-5 - DTCI * NT6X69AC - MSG PROTOCOL & TONE GEN CP - 18 - LGC NT6X69AD - MSG PROTOCOL & TONE CCT CP - 18 - DTCI * NT6X78AB - CLASS MODEM RESOURCE CP - 13 - LGC * NT6X92BB - DOMESTIC UNIV TONE REC CP - 15 - LGC NT6X92BC - DOMESTIC UNIV TONE REC CP - 15 - DTCI * NTAX78AA - TIME SWITCH - 14 - DTCI NTBX01BA - ENHANCED ISDN SIG. CP - 16 - DTCI * NTMX77AA - PROCESSOR PCP - 12 - LGC NTSX05AA - 64 MEG PROCESSOR CP - 12 - DTCI * Using the marked cards, I should be able to build a pretty good LTC that does: lines via -DS30A interfacing to LCMs via NT6X48 -tone generation via NT6X69 (e.g. dialtone, progress tones) -caller ID, other CLASS services (ADSI) via NT6X78 -tone reception e.g. DTMF via NT6X92 DS1/PRA trunks via -DS1 interfacing to network via NT6X50 -tone generation via NT6X69 -tone reception e.g. DTMF, MF via NT6X92 -ISDN D-channel signaling via NTBX01 common XPM functions via -power via NT2X70 -DS512 interface via NT6X40 -speech bus serialization/deserialization via NT6X41 -channel supervision message reception and generation via NT6X42 -messaging protocol (CM messaging) via NT6X69 -timeslot switching via NT6X44AA (NTAX78AA not supported on LTC, only NTAX78BA) -processing functions via NTSX05 There are a number of fields in the LTCINV tuples that describe the hardware present in the LTC as well other run-time parameters that set the capabilities. Following the data schema manual closely, I ended up with the following: 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)$ (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 Note that on ENET, the DS-30s are numbered 0 to 15, and the DS-512s are 16 to 18. Thus, in my example, link 16 is the first DS-512 (then each DS-30 within the DS-512 needs to be accounted for). Notes on EXECTAB can be found in the peripheral software release document. Also refer there for the load names. Once the LTC is created, the ENET link needs to be BSYed and then RTSed in mapci;mtc;net;shelf u;card v using the 'bsy x link y' and 'rts x link y' commands where 'u' is the ENET shelf, 'v' is the ENET card, 'x' is the ENET plane, and 'y' is the link number. Following that, the LTC needs to be BSYed, LoadPMed, and then RTSed in mapci;mtc;pm;post LTC 0 by using the 'bsy PM' command followed by the 'loadpm' command and finally the 'rts' command. Note that a loadpm operation can take the better part of an hour, depending on the CPU card and the size of the software load. (on an SX05 loading QLI22AO, it took about 45 minutes). When we created the LTC, an entry was also automatically created in LTCPSINV. However, we need to edit that entry to match the way we intend to use the LTC. Each P-side link needs to be defined whether it is to be used for DS30A (for connecting an LCM, for example) or a T1 or PRA. The link numbers for the DS30As and the DS1 interfaces can be referenced in the DMS-100 family quick reference guide (TAM-1001-018) and also in the DMS-100 wiring installation method (IM 03-9059). Note that the DMS will force you to allocated the first two LCM links, which support message links, on different NT6X48 slots for redundancy. LTCNAME PSLNKTAB ---------------------------------------------------------------------------- LTC 0 N (0 NILTYPE ) (1 NILTYPE ) (2 NILTYPE ) (3 NILTYPE ) (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 ) $ With the P-side links configured, we can now add an LCM in LCMINV. LCMNM FRTYPE SHPOS FLOOR ROW FRPOS EQPEC LOAD CSPMNO BICTST ADNUM MEMSIZE LCMTYPE ---------------------------------------------------------------------------- HOST 00 1 LCE 38 1 B 2 6X04AA XLCM18AW LTC 0 N 2 256K 256K LCM Y C HLCM (17) (19)$ Then we can bsy, loadpm, and rts in mapci;mtc;pm;post lcm 0 1. Thankfully, loading an LCM doesn't take nearly as long as an LTC. We then need to add a line drawer to the LCM in LCMDRINV. Creating the LCM automatically creates the tuple in LCMDRINV, so we just need to change it. LCMNM DRWRTAB ---------------------------------------------------------------------------- HOST 00 1 (0 NT6X54AA NT6X05AA ) (1 NILDRWR ) (2 NILDRWR ) (3 NILDRWR ) (4 NILDRWR ) (5 NILDRWR ) (6 NILDRWR ) (7 NILDRWR ) (8 NILDRWR ) (9 NILDRWR ) $ You may need to bsy and rts the new linedrawer in mapci;mtc;pm;post lcm 0 1 using the bsy drwr x and rts drwr x commands. Then we can finally provision some line cards in LNINV. Note that you must provision an NT6X17 in position 0 of the 0th LSG of an LCM. This card is reserved for some special test purposes that I can't find a lot of detail on, and can't be assigned for actual service. For that reason, I provisioned three right off the bat so that I can use the second two to provision lines. LEN CARDCODE PADGRP STATUS GND BNV MNO CARDINFO ----------------------------------------------------------------------- HOST 00 1 00 00 6X17AC STDLN HASU N NL N NIL HOST 00 1 00 01 6X17AC STDLN HASU N NL N NIL HOST 00 1 00 02 6X17AC STDLN HASU N NL N NIL Back in servord, we try a new line again. Trying a 1FR again, DN 5631000, LEN 0 1 0 1, option 'dgt' to support DTMF. This time we get an error message about not finding a line attribute index, and that's because we don't have any matching ones defined in LINEATTR. We're going to have to walk some dependencies here again. We need to create a new tuple in XLAPLAN. We're going to stay as basic as possible, no screening, and no pretranslator. You would almost never actually use an XLAPLAN like this, it has some issues I'll note later. The end result, though, is that translations will be used directly out of HNPACONT. XLAPIDX SCRNCL HSTS PRTNM ZEROMPOS RESINF OPTIONS ADMININF ------------------------------------------------------------------- 222_POTS_0 NSCR 222 NPRT NONE N $ 1FR_POTS We'll also need a RATEAREA. The most straightforward one is to just ignore the existence of rates for now, AKA no local calling area, and no LATA, and no message rate anything. RTAIDX LCANAME MRSA LATANM ADMININF ---------------------------------------------------------------------- NLCA_NILLA_0 NLCA NIL NILLATA $ Finally, we can start a LINEATTR. I point to the XLAPLAN and the RATEAREA that was defined, and make a new 1FR class. Some of the other fields are for things like international translations that don't apply on a north american switch, and various options we don't need. LNATTIDX LCC CHGCLSS COST LTG TRAFSNO SFC MDI IXNAME DGCLNAME FANIDIGS DFLTXLP DFLTRA OPTIONS ---------------------------------------------------------------------------- 0 1FR NONE NT 0 0 NILSFC 0 NIL NIL 00 222_POT S_0 NLCA_N ILLA_0 $ Then we create two lines in SERVORD, 563-1000 and 563-1001, on HOST 00 1 00 01 and HOST 00 1 00 02, 1FR, option dgt. If you have trouble getting dialtone, you might have to return the line cards to service in mapci;mtc;ltp;post d x where x is the DN (I think servord does this automatically, if the LCM and line drawer are already up and running). At this point, you should have dialtone available on both lines that were provisioned, but anything you dial will ultimately fail because we haven't set up any routing. Worse yet, you won't even get reorder, you'll just be reset back to dialtone because we don't even have treatments set up (we'll get to that later). Having a look with a traver reveals the routing issues: > traver l 5631000 5631001 t TABLE LINEATTR 0 1FR NONE NT 0 0 NILSFC 0 NIL NIL 00 222_POTS_0 NLCA_NILLA_0 $ LCABILL OFF - BILLING DONE ON BASIS OF CALLTYPE TABLE XLAPLAN 222_POTS_0 NSCR 222 NPRT NONE N $ 1FR_POTS TABLE RATEAREA NLCA_NILLA_0 NLCA NIL NILLATA $ TABLE DNATTRS TUPLE NOT FOUND TABLE DNGRPS TUPLE NOT FOUND TABLE LENFEAT TUPLE NOT FOUND TABLE OFCVAR AIN_OFFICE_TRIGGRP NIL AIN Orig Attempt TDP: no subscribed trigger. TABLE HNPACONT 222 Y 99 10 ( 0) ( 0) ( 0) ( 0) 0 $ . SUBTABLE HNPACODE . KEY NOT FOUND . REAL VALUE IS: VCT VACT N There's more, but it's just about failing to find treatments. We'll deal with that next. Since it's routing through HNPACONT and into HNPACODE, we should add a tuple there to match the numbers in our office. In subtable HNPACODE for the 222 entry in HNPACONT, I created the following to route local DNs for my switch: FROMDIGS TODIGS CDRRTMT ------------------------------------------ 563 563 DN 222 563 Finally, we should be able to route calls from one telephone set to the other, but there is one quirk. Because we're not using a pretranslator, the switch doesn't really bother trying to figure out when you're done dialing digits except for the normal interdigit timeout (or 10 digits). Again, this is something we'll deal with later. Coming back to treatments, we see the following in that failed traver from before as well: TABLE TMTCNTL SUB OFFTREAT NOT DATAFILLED REORDER ALSO NOT DATAFILLED TMTCNTL is automatically filled with a few basic treatment sets, with OFFTREAT functioning as the default set. The data schema manuals detail this, but the basic sequence is for the switch to search for the treatment first in the specific treatment set to that thing, followed by searching for the treatment in OFFTREAT, followed by searching for RODR (reorder) in OFFTREAT, before finally returning to an idle condition if everything else fails. That's what's occuring on our couple of lines that are provisioned, if we dial something invalid right now. We've got some dependencies to walk, again, and some additional points to consider based on what was previously datafilled for the switch. Firstly, reorder is based on a 120IPM LO tone. We don't even have the CLLI defined for it, so we'll start there: CLLI ADNUM TRKGRSIZ ADMININF ---------------------------------------------------------------- T120 84 10 FASTBUSY Once the CLLI is defined, we can define the tone in TONES: CLLI TRAFSNO SEGTIME OFFTIME TONEPATT TONETYP OFFTONE MAXDURN MAXCONN FNTONID TONESGRP ---------------------------------------------------------- T120 0 25 25 101010 LO SILENT_TONE 30 255 TONE_NULL N And finally, for the moment, we can add it directly in TMTCNTL.TREAT in OFFTREAT. TREATMT LOG FSTRTE ---------------------------- RODR N S T120 Now if we dial something invalid, our lines give us reorder. However, for treatments specific to lines, we can get a bit fancier and do a LKOUT after a single duration of the T120 tone (LKOUT, IDLE, and ROH should not be used in OFFTREAT or trunk treatments). For this, we'll have to define a route in OFRT. RTE RTELIST OPTIONS ---------------------------------------------------------------------------- 1 (S D T120) (S D LKOUT) $ $ Then in TMTCNTL, in the TREAT subtable for LNT: TREATMT LOG FSTRTE ---------------------------- RODR N T OFRT 1 However, it's worth noting we won't hit this if we dial a valid number that is otherwise nonexistent, in that case we would hit the VACT or BLDN treatment (depending how far we get in translations). Another notable one is that busy tone isn't defined, so instead you'll get reorder for that too. Back in CLLI, we add T60: CLLI ADNUM TRKGRSIZ ADMININF ---------------------------------------------------------------- T60 85 10 SLOWBUSY then in TONES: CLLI TRAFSNO SEGTIME OFFTIME TONEPATT TONETYP OFFTONE MAXDURN MAXCONN FNTONID TONESGRP ---------------------------------------------------------- T60 0 50 50 101010 LO SILENT_TONE 30 255 TONE_NULL N And then in the OFFTREAT TREAT subtable: TREATMT LOG FSTRTE ---------------------------- BUSY N S T60 Then we can create a route for LNT TREAT again: RTE RTELIST OPTIONS ---------------------------------------------------------------------------- 2 (S D T60) (S D LKOUT) $ $ And lastly, point to it from LNT TREAT: TREATMT LOG FSTRTE ---------------------------- BUSY N T OFRT 2 Obviously there's a lot more treatments, but unless you've got more specific announcements or handling for them, reorder/T120 is about as good a default as you can have (with the obvious exception of BUSY). Now we've got some routing improvements to make. As noted, dumping straight into HNPACONT has some issues, so lets back out and implement a pretranslator. That's done in stdprtct: EXTPRTNM STDPRT AMAPRT ------------------------ POTS ( 0) ( 0) And then we need to build subtable STDPRT out with some very crude NANP basics. We're going to basically block anything other than 1+10d dialing, since that's what they use in the LATA I'm in. FROMDIGS TODIGS PRETRTE ------------------------------------------------------- 0 11 D VACT 12 1910 N DD 1 NA 1911 1911 D VACT 1912 199 N DD 1 NA 2 910 N NP 0 NA 911 911 D VACT 912 99 N NP 0 NA Basically blocking anything that doesn't look like a 1+ or NPA/NXX number. Operator assisted is vacant, CAC is vacant, and 911 is blocked because... I don't want to deal with that. Then we need to add an FNPACONT table to take over the routing for our fake '222' area code. NPA MAXRTE ROUTES FNPACODE FNPASTS RTEREF RTEMAP --------------------------------------------------------------------- 222 10 - ( 0) ( 0) ( 0) ( 0) FNPACODE works a bit differently, so we need to add a RTEREF: RTE RTELIST ---------------------------------------------------------------------------- 563 ( DN 222 563 4)$ Since we don't have any trunking yet, it'll just be the '563' prefix in FNPACODE that points to our DNs. FROMDIGS TODIGS RTEREF CAMAAUTH ------------------------------- 563 563 563 Y HNPACONT may need to be reconfigured for more ambiguous codes: STS SNPA NORTREFS NOAMBIGC RTEREF HNPACODE ATTRIB RTEMAP OPTIONS ---------------------------------------------------------------------------- 222 Y 99 20 ( 0) ( 1) ( 0) ( 0) $ Then HNPACODE is filled in a little differently from before: FROMDIGS TODIGS CDRRTMT ------------------------------------------ 20 210 AMBI OPF VCT VACT VCT VACT 212 221 AMBI OPF VCT VACT VCT VACT 222 222 AMBI OPF VCT VACT FNPA 0 223 410 AMBI OPF VCT VACT VCT VACT 412 510 AMBI OPF VCT VACT VCT VACT 512 610 AMBI OPF VCT VACT VCT VACT 612 710 AMBI OPF VCT VACT VCT VACT 712 810 AMBI OPF VCT VACT VCT VACT 812 910 AMBI OPF VCT VACT VCT VACT 912 987 AMBI OPF VCT VACT VCT VACT 989 99 AMBI OPF VCT VACT VCT VACT Basically, because we don't have trunking yet, all of the NPAs are directed to VACT, except 222 which filters into FNPACONT for 1+10d dialing. Now we just need to add the pretranslator to our XLAPLAN: XLAPIDX SCRNCL HSTS PRTNM ZEROMPOS RESINF OPTIONS ADMININF ------------------------------------------------------------------- 222_POTS_0 NSCR 222 POTS NONE N $ 1FR_POTS Next up, trunking. We'll be starting with defining a PRI, but as you might guess, this is a big drawn out process involve a ton of different tables, crosslinking of data, etc. We'll be following along with 298-7002-001 (DMS SuperNode System Primary Rate Interface (PRI) Translations (the student guide for Nortel course 7002). The first place to have a look at is the CARRMTC table, which contains information about DS1 trunk profiles, essentially. Having a look through, there's one entry that we didn't remove from the University of Alabama that looks about right for a modern PRI on our LTC: 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 It's set up for a mu law DS1 on a 6X50AB using ESF framing and B8ZS line code. The training material suggests this may be one of the default entries for this table (or modified from it). This entry matches our needs and hardware, so we'll use it. The other fields have to do with out-of-service and maintenance error limits for trunks that are having issues. Then we've got a few changes to make in LTCINV. When we initially configured it, we were just worried about supporting POTS, so we didn't set it up for DS1 trunks. We'll change our entry to include the PRAB TRMTYPE using the DTCEX EXEC. Those go as an additional entry to the EXECTAB field. The resulting new tuple is the following: 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 The next changes we'll have to make are in LTCPSINV. This is where the T1 cards themselves get assigned. I've added an NT6X50AB to slot 5 of unit 0 of my LTC. This corresponds to ports 0 and 1. Thus, ports 0 and 1 will be changed to DS1PRA type (for PRI), reference ESFB8ZS from CARRMTC, interface identifier of 0 for both, line equalization set to NIL, and echo canceller tail set to '$'. The line equalization and tail only apply to cards with integrated echo canceller (6X50EC, I think). For 6X50AB and AA, the line equalization is set by dip switches. I also set up ports 2 and 3, which would be slot 5 of unit 1. I'm going to see what happens if I don't install the card. I need these additional ports equipped because SYNCLK enforces some redundancy rules for clocking and I needed another card in the other unit. The results follow: 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 interface identifier gets used in larger trunk groups, I believe, and may need to be set correctly if you're setting up a PRI group that comprised more than a single DS1. Next, we'll have to define our trunk in the CLLI table. We'll need to pick a CLLI, and administrative number, set our trunk group size, and optionally set some administrative information. The CLLI is a free-form entry, but should ideally be composed so as to clearly identify the trunk. The administrative number must be a value above 50, because 1 through 50 are reserved for pseudo-CLLIs used by internal parts of the switch. Aside from that, a number of fixed CLLIs exist that are likely already assigned various places, so you'll have to work around them. In my case, the result is this: CLLI ADNUM TRKGRSIZ ADMININF ---------------------------------------------------------------- LBRDILLG01T0 100 24 PRI_TO_CISCO I didn't touch PADDATA (or maybe I couldn't delete it) when I cleared tables, so I won't need to set that again. Suffice it to say that PADDATA contains loss plan information for calls between various trunk and line types. The defaults that come with the switch are probably pretty sane. The trunk group itself finally gets defined in TRKGRP. The trunk group must use a CLLI already defined previously for the GRPKEY. For a PRI, the GRPTYP will be PRA. Since I don't care about traffic separation, I'll use TRAFSNO of 0. The PADGRP for a PRA should be PRAC (unless you have something else in mind). That is defined in PADDATA as previously mentioned. NCCLS has something to do with OM pegs when GNCT occurs. A sane default seems to be NCRT. We'll choose ASEQ (ascending sequence) for SELSEQ (channel selection sequence). We don't require a specific billing DN at this time, so we enter N. For the initial LTID entry, $ is used and this will be assigned later when we make an entry in LTMAP. We won't use any additional options to be specified on this trunk, so we enter $ for OPTION. The result is the following: GRPKEY GRPINFO ---------------------------------------------------------------------------- LBRDILLG01T0 PRA 0 PRAC NCRT ASEQ N $ $ We have to define some ISDN parameters in ISDNPARM. To be honest, I don't fully understand this yet, but it has to do with mapping or blocking information elements as part of different message types in the ISDN signalling. For now, I'm leveraging the old values from the UofAl translations, which were pretty uniform: 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)$ There are some additional parameters that can be set in TRKRCSEL, but it's not clear what they are or do, and apparently if you don't define them, some sane defaults are used, so I'll leave them unset. With those ISDN parameters taken care of, we can define the trunk subgroups in TRKSGRP. We add an entry for out CLLI (LBRDILLG01T0). Only subgroup 0 is valid for ISDN trunks. For ISDN, the cardcode is DS1SIG, SGRPVAR is ISDN. PSPDSEIZ is the timeout for partial dial seizure (reception of first digit). PARTDIAL is the same but for any digit after the first. VERSION is the ISDN protocol version. CRLENGTH determines the number of bytes to use for the call reference value. BCHNEG determines whether B channels can be negotiated (during setup, I assume?). BCHGLARE determines whether the switch will STAND or YIELD in the event of B-channel glare. IFCLASS determines whether the switch is the network or user side of the connection. CONFIG should be set to PT_PT for normal point to point trunks. LOCATION determines the location to be used for creating cause codes. SAT should be set based on whether satellite switching is used in the trunk. ECSTAT is set to UNEQ for no echo canceller. TRKGRDTH sets the lockout timeout. L1FLAGS set to Y is normal for most vendors and has to do with Q.921 flags. We can choose the ISDNPARM entry with PARMNAME. Our D-channel is in LTC 0, span 0, channel 24. It is 64k and uses normal polarity HDLC. We don't have a backup D channel, so we enter $. We don't have any options, so we enter $. 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 $ $ Now we can define the trunk members in TRKMEM. We do this for each of the B channels. We use our previously defined CLLI, create an entry for each B-channel with EXTRKNM starting from 0, trunk subgroup is 0, and specify the channels on our LTC 0, span 0, channel 1 through 23. 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 Next we declare a logical terminal group for the PRI in LTGRP. It's not clear if we have to do this or if we can use the default ISDN LTGRP. GROUP GROUPNO OPTIONS -------------------------- PRI 16 $ PRIPROF controls protocol variants. We create an entry for NI2, and lean on the UofAl translations a bit for the OPTIONS. PROFNAME VARINFO SWITCH ---------------------------------------------------------------------------- PROFPRI NIPRI NI2V1 (UNTONNPI)$ Now we define the logical terminal in LTDEF. We add a logical terminal to our LTGRP PRI. The only supported LTAP for PRIs is B for circuit switching. PRA indicated the PRA type, 23 B channels, NIPRI ISDN variant and the NI2V1 issue. We use the PROFPRI profile, and the NOPMD option is default (we entered $ and didn't specify additional options). LTKEY LTAP CLASSREF ---------------------------------------------------------------------------- PRI 1 B PRA 23 NIPRI NI2V1 PROFPRI (NOPMD ) $ Next we add an LTMAP to point our PRI 1 LTDEF at our CLLI. PRI requires an option of TEI 0. LTKEY MAPPING OPTION ---------------------------------------------------------------- PRI 1 CLLI LBRDILLG01T0 ( TEI 0)$ When the entry is created in LTMAP, the DMS also updates table TRKGRP with the LTID: GRPKEY GRPINFO ---------------------------------------------------------------------------- LBRDILLG01T0 PRA 0 PRAC NCRT ASEQ N (PRI 1) $ $ We also need to consider clocking for the switch. In my case, as wrong as it sounds, I'll have the DMS synchronize to my Cisco 3845. This is because the 3845 is always on in my setup, so it is the best device to use as a clock master at the moment. It doesn't have to be, but the way it's all set up currently, it just makes the most sense. Clock settings are set in SYNCLK. Since my switch is currently set to free run after I cleared the tables previously, I won't have to switch to free run before changing the clock synchronization settings. Since the tuple in SYNCLK always exists, we'll have to change it rather than add one. We'll be a stratum 3 clock, clocked off of our trunk in our LTC (LTC 0 circuit 0). Apparently the datafill manual advises that for LTCs (and a number of other XPMs) the circuit number choices are 0 and 8, but it seems like any circuit can be specified. LK0_REG determines which register on a 2-link DS1 card gets used (relevant for XPM DS1 interfaces). Possible choices are 0 or 1, but it's not clear which one applies to what circuits. The DMS will make sure you use the right one, so there's a bit of trial and error here. The DMS also really wants you to define a secondary timing link, and it enforces some rules. I think it wants the links used for timing to be in different shelves. CLKKEY CLKDATA OFFCDATA ----------------------------------------------------- 0 STRAT3 SLAVE LTC 0 0 0 LTC 0 2 1 Now that we've got everything configured as far as the trunk goes, we'll need to put the trunk into service. When we created the trunk initially, it went into the INB or INstallation Busy state. We must manually put the trunk in service using mapci;mtc;trks;ttp;post g lbrdillg01t0;bsy all followed by rts all. We need to do similar with the D-channel in mapci;mtc;trks;pradch;post gd lbrdillg01t0;bsy all followed by rts all. And finally, we need to do the DS1 carrier itself in mapci;mtc;trks;carrier;post ltc 0 0;bsy all; followed by rts all. [insert thing about checking and switching the clocking over to train on the link here] At this point, hopefully we've got everything configured for the PRI to come up. We don't yet have any outgoing or incoming routing set. We'll start with outgoing. First is to set up a route. I'll add my first route in OFRT. I picked a free route reference number and added an ISA type route to the route list. ISA is Integrated Services Access. There may be other types of routes that would work, but this will do for now. I did not enable off-hook queueing, call-back queueing, or expensive route warning tones. I pointed the route selector at the CLLI I defined for the trunk and set the number type to public. I disabled operator access, did not use a transit network selector, did not require calling number identification, and chose no digit manipulation. I ended the route list and did not use any additional options for the route. RTE RTELIST OPTIONS ---------------------------------------------------------------------------- 3 ( ISA N N N LBRDILLG01T0 N PUB NONE N N 0)$ $ With the route created, we need to set up the translations to send some traffic out using it. Back in FNPACONT, we enter the RTEREF subtable for the 222 (SCDP) FNPA. Here, we add a RTEREF to point to our OFRT route list. We use the T selector for Table, and point to OFRT 3. Then we end our route list. Note that we could have implemented the ISA selector here directly, if we wanted to. RTE RTELIST ---------------------------------------------------------------------------- 1 ( T OFRT 3)$ Then we back out and enter the FNPACODE subtable for the 222 FNPA. For now, we'll add a couple ranges around our existing 563 code to encompass all possible SCDP (noting that we're covering a couple reserved codes like N11 etc.). FROMDIGS TODIGS RTEREF CAMAAUTH ------------------------------- 200 562 1 Y 563 563 563 Y 564 999 1 Y [add text for ltcalls] LTID XLARTSEL OPTIONS ---------------------------------------------------------------------------- PRI 1 PUB XLALEC 0 222_POTS_0 NLCA_NILLA_0 $ We can also set routes to support hunting to multiple trunks: RTE RTELIST OPTIONS ---------------------------------------------------------------------------- 4 (ISA N N N HYMRVAX002T0 N PUB NONE N N 0) (T OFRT 3) $ $ We can also route DNs that are assigned to the switch. This can be done in DNROUTE, but SERVORD is a better choice here. Using the NEWDN command, we can assign a block of DNs to a route: SO: >newdn SONUMBER: NOW 24 1 13 PM > SNPA: >222 BLOCK_OF_DNS: >yes FROM_DN: >5632000 TO_DN: >999 VDNTYPE: >rte ROUTE: >ofrt 3 OPTION: >$ COMMAND AS ENTERED: NEWDN NOW 24 1 13 PM 222 YES 5632000 999 RTE OFRT 3 $ ENTER Y TO CONFIRM,N TO REJECT OR E TO EDIT >y > While there's more trunking and routing to potentially build out, the general idea from here is the same. From here, there's a few things we can do to attempt to improve the usability of the switch. For one, the LTC takes a very long time to load (nearly and hour), but it can support a device called a Peripheral Remote Loader (PRL) memory that allows faster reloading of the software for the processor. The NTSX05 processor uses PCMCIA flash cards for the PRL. I'm going to see if I can use a 64MB CF card in a PCMCIA adapter to accomplish this. We first need to go back into LTCINV and change the tuple to add 'PRL' to our two NTSX05AA processor entries. PROCPEC will be changed to 'SX05AA PRL $ SX05AA PRL $' 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 (PRL) $ SX05AA (PRL) $ 0 SXFWAL01 $ 6X40FA N After making the change, the unit must be busied and then returned to service for the changes to take effect. If you have the PM actually running duplex, you can do as the DMS advises and perform this action to one side of the PM at a time: WARNING: Static data needs to be updated for: LTC 0 BSY the INACTive unit, RTS and SWACT the peripheral. Since I am not running both processors, I will have to take my LTC out of service, insert the NTSX06 flash card, and then return to service. At this point, you can check if the card is recognized properly with 'QueryPM config' on the MAPCI screen for the LTC. Since I don't have an actual NTSX06 flash card, my cards were not recognized and I couldn't continue. In theory, the next step is to use the XPMSTOR command to load the software onto the unit in question (choosing between active/inactive). From there, you should probably test whether it successfully loads from the PRL card. You can do that with loadpm. No telling if it'll do that during boot/system recovery on it's own, or if you need to tell it manually. If I decide to overpay for an NTSX06BA, I guess I'll find out. Another nice feature will be to enable IP access so that we don't need to use the serial ports to access the switch. I have had some trouble with IOMs intermittently taking a long time to initialize from a cold start, I'm hopeful that the ethernet interfaces in the XA-core initialize more consistently. From what I can find, the table CMIPADDR is used for the interfaces that are part of the XA-core. The first steps are to define the links: KEY DATA ---------------------------------------------------------------------------- ETHRLNK 0 ETHR 5 REAR NONE (172 23 5 3) 8 (172 23 5 4) 8 (172 23 5 1) 0 ETHRLNK 1 ETHR 14 REAR NONE (172 23 5 5) 8 (172 23 5 6) 8 (172 23 5 1) 0 My packs are HIOPs, so the packlet field gets 'NONE'. All IPs need to be in the same subnet. Also, it seems like the DMS got subnet masks backwards: 8 seems to correspond to /24 Next is to fill the active IPs for the XA-Core: KEY DATA ---------------------------------------------------------------------------- CMHOST 0 HOST (172 23 5 7) 8 0 CMHOST 1 HOST (172 23 5 8) 8 0 Again, these IPs must be in the same subnet as the others. Lastly, if you need to reach the XA-core from other subnets (or if the XA-core needs to reach IPs in other subnets) a gateway needs to be added: KEY DATA ---------------------------------------------------------------------------- GATEWAY 0 GW (172 23 5 1) 0 At this point, you should be able to ping all of the IPs of the XA-core, assuming your links all came up OK. Unfortunately, that's about all I can convince the DMS to do. I'm not sure if telnet or any other TCP protocols are supposed to be supported, but I don't seem to be able to do anything with any of the assigned IPs beyond pings. I also tried stuff in IPNETWRK and IPHOST: KEYREF CMIPADDR SUBNET OPTION PARMAREA ---------------------------------------------------------------------------- 0 130 160 128 151 8 $ (DFLT_INTERFACE Y) (DFLT_GTWY_IPADDR 130 160 128 1) (SCRNFLAG N) $ 15 172 23 5 7 8 $ ( IRM_INTERFACE )$ INDEX NODENAME NODEINFO --------------------------------------------------------------------- 0 CM 0 64 16 16 Next steps to see what's going on is to maybe put a packet sniffer on the ethernet segment and see what's coming out of the DMS. Obviously I can ping the IPs and get replies, but not much else. It would be useful to see 1) if any traffic is coming out of the DMS without even doing anything (maybe ARP looking for some IPs or something) 2) try the FTP client on the DMS and see if I see the connection attempt, and how it looks. With that out of the way, next we'll set up an EDRAM. Useful documentation includes 297-1001-527, 297-8991-597, and -598. I've placed my EDRAM (NT1X80BA) into the slot 6 of the ISM shelf at position 19 (which I deem to be MTM 0) in my MCAM. Since the DS-30 cabling in the MCAM is pre-wired, this connects it to DS-30 1 (rather than 0). The DS-30 cabling is run to ports 0 and 2-4 on card 10 of ENET shelf 0. Port 1 cannot support message links, I guess, so it has to be skipped for PMs with only a single DS-30 link. The EDRAM card is it's own PM, but it's classed such that it is configured 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 That takes care of defining the PM, so we should be able to bring the link up and see if the EDRAM card will load. We can start in mapci;mtc;net;shelf 0;card 10. Here, we can see that the new link is in the offline state. We can first put it in the manual busy state with the 'bsy x link y' command where x is the ENET plane number and y is the link number. We can then follow that with 'rts x link y' where x and y are the same as before. With the link returned to service, we can start on the PM with mapci;mtc;pm;post dtm 0. Similar story here as other PMs: MBSY with 'BSY', then load software with 'LOADPM', lastly return to service with 'RTS'. Note that since we haven't defined any announcment files anywhere, it'll warn you about that. No big deal, we'll get to that later. I figure it's good to make sure our DS-30 is working right before we get there. To make substantial changes to the EDRAM, we'll have to busy it back out, so do that with the 'bsy' command. Bursty Our EDRAM card will require a CLLI: CLLI ADNUM TRKGRSIZ ADMININF ---------------------------------------------------------------- EDRAM0 102 33 EDRAM Next, we need to enter the DRAMS table and define our EDRAM: DRAMCARD TMTYPE TMNO TMCKT CARDCODE CARDINFO ---------------------------------------------------------------------------- 0 0 DTM 0 0 1X80BA CTLR EDRAM0 0 1 DTM 0 0 1X80BA PROM (0) $ 0 2 DTM 0 0 1X80BA PROM (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) $ We define the first two slots as PROM to load stock announcement files into, and the rest of the card as RAM for custom announcements. We can always change this later, thought it may mean busying the card. Next, we'll define some standard announcement sets to load in EDRAMINV: EDRAMNM TUPINFO ---------------------------------------- DTM 0 1 ANN ESTD0AA DTM 0 2 ANN ESTD0AA ESTD0AA is actually canadian english, so it's worth noting that it should probably be ASTD0AB (american english) for my region. However, I'm too lazy to see if that file exists on my switch (turns out it does), so we'll stick with the canadian set. We'll have to add this to PMLOADS, so the switch knows where to find it: LOADNAME ACTFILE ACTVOL BKPFILE BKPVOL UPDACT ------------------------------------------------------------ ESTD0AA ESTD0AA F02LPMLD ESTD0AA F17LPMLD N To load the announcement set, we need to use mapci;mtc;pm;post dtm x where x is the number of your EDRAM DTM. From here, we can first busy with 'bsy', then load the announcement sets with 'loadpm ann', followed by returning to service with 'rts'. We will also need to assign the phrases in DRAMPHRS. Supposedly we're Not Supposed To Do That and use the ASSIGN command within DRAMREC instead. In any case, here's our end result: 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 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 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 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)$ 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) $ mapci;mtc;trks;ttp;post g allanns;bsy all;rts all;post g allanns2;bsy all;rts all;post g allanns3;bsy all;rts all;post g allanns4;bsy all;rts all We can point a route list at our announcement set to string them 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 all-circuits-busy as the cause code. We can point a number at our route list in SERVORD with the NEWDN command, point to RTE table, and then to our route in OFRT. This results in a new DNROUTE being created: AREACODE OFCCODE STNCODE DNRESULT ---------------------------------------------------------------------------- 222 563 1003 T OFRT 5 It would be nice, at this point, to set up some announcements for VACT and BLDN treatments as well. First we'll need to set up the announcements for them: CLLI ADNUM TRKGRSIZ ADMININF ---------------------------------------------------------------- VACT 110 1 VACANT_CODE_ANNOUNCEMENT BLDN 111 1 VACANT_DN_ANNOUNCEMENT CLLI ANNARCH TRAFSNO CYTIME MAXCYC DATA ---------------------------------------------------------------------------- VACT NETWK 0 0 1 STND N 255 BLDN NETWK 0 0 1 STND N 255 ANNMEM HDWTYPE CARD MEMINFO ---------------------------------------------------------------------------- VACT 0 DRAM DRA ( 0 DTM 0 5)$ BLDN 0 DRAM DRA ( 0 DTM 0 6)$ ANNPHKEY PHSLIST ---------------------------------------------------------------------------- VACT 0 ( SILENCE) ( VCA) ( SILENCE)$ BLDN 0 ( SILENCE) ( VDN) ( SILENCE)$ mapci;mtc;trks;ttp;post g vact;bsy all;rts all;post g bldn;bsy all;rts all;quit all Then we can set it up in TMTCNTL. Remember that we have OFFTREAT for the default office treatments, and then we have LNT for lines. OFFTREAT is as follows: TREATMT LOG FSTRTE ---------------------------- VACT N S VACT BLDN N S BLDN Meanwhile, for LNT, we can get a bit fancier, first setting up a couple OFRTs: RTE RTELIST OPTIONS ---------------------------------------------------------------------------- 6 (S D VACT) (S D LKOUT) $ $ 7 (S D BLDN) (S D LKOUT) $ $ Then in the TREAT subtable of TMTCNTL LNT: TREATMT LOG FSTRTE ---------------------------- VACT N T OFRT 6 BLDN N T OFRT 7 Then we want our beautiful announcements to play out over trunks as well, so we need to add an option to the logical terminals in LTDATA: LTDKEY LTDRSLT ---------------------------------------------------------------------------- PRI 1 SERV SERV Y N SCREENED ALWAYS $ The 'AUDTRMT' option is set to 'Y' here to enable sending audible treatments to the trunk in the event of certain treatments. Now we've got just one more thing to take care of: announcements supervise by default, but we can't have that over a trunk! The solution is a fake trunk CLLI that allows us to override supervision. So in OFRT: RTE RTELIST OPTIONS ---------------------------------------------------------------------------- 8 (S D ONHKSUP) (S D VACT) $ $ 9 (S D ONHKSUP) (S D BLDN) $ $ Then in the TREAT subtable of TITRKGRP (which corresponds to our ISDN trunk from earlier) in TMTCNTL: TREATMT LOG FSTRTE ---------------------------- VACT N T OFRT 8 BLDN N T OFRT 9 If we want to assign a number to an arbitrary treatment, we could potentially do so when deleting a line or DN in SERVORD, but this is restricted to treatments that actually make sense, like BLDN (and others). VACT is not normally used for DNs though, so if we want that, we have to assign it manually in DNROUTE with 'D', the treatment selector: AREACODE OFCCODE STNCODE DNRESULT ---------------------------------------------------------------------------- 222 563 1004 D VACT Let's see if we can load any old University of Alabama announcements. Starting up DISKUT and listing my PMLD volume shows a likely candidate for an announcement backup 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 The naming suggests this went on card 3. I decided to make a copy of this file called UNIVANN to be sure I didn't do anything bad to the original. We need to specify this file to be loaded into the card on the EDRAM in table EDRAMINV. It's worth noting that the university didn't have any files specified in here, so there's a good chance the full set of their announcements is simply gone. EDRAMNM TUPINFO ---------------------------------------- DTM 0 3 ANN UNIVANN You may have to bsy the DTM peripheral before you add the entry here. We can also define this one in PMLOADS so that we don't have to jump through hoops to get the DMS to find them on it's own: LOADNAME ACTFILE ACTVOL BKPFILE BKPVOL UPDACT ------------------------------------------------------------ UNIVANN UNIVANN F02LPMLD UNIVANN F17LPMLD N Before we return the EDRAM to service, we need to cause the file to load into it. We can be specific and load just the new file for card 3: 'mapci;mtc;pm;post dtm 0;loadpm ann 3'. Then we can RTS. Since these announcements are custom, and haven't been defined previously, we will need to use a command in DRAMREC to get them listed. That will be the 'record' command with the extra 'force' parameter. Essentially fill out the record command as you normally would, without connecting a trunk to the EDRAM for recording, and then also use the force parameter. DRAMREC will fill DRAMPHRS with the parameters you gave it without actually recording anything. In the event you make any custom recordings, you really should set up files to store them in. The DMS will not automatically save the recordings, but you can manually trigger it with the upload command in the mapci page for the EDRAM. TODO: DISC treatment for LNT is going to GNCT, need to figure out the right way to set that up. LKOUT is better, but doesn't do battery drop. Above, we also used the 'DISC' treatment. This treatment will cause a trunk call to end with normal call clearing conditions, useful to prevent an ACB cause code after a routelist for an announcement played over a trunk ends. While no extra setup seems to be necessary for this treatment over ISDN trunks, we'll need to set it up for lines. Since the purpose is to emulate normal call disconnection, all we really need to add in the TREAT subtable for LNT in TMTCNTL is the following: TREATMT LOG FSTRTE ---------------------------- DISC N S LKOUT This will just cause the line to go into lockout after disconnection. Note that this will inhibit battery drop when the DISC treatment is used, but it's better than the alternative (goes to reorder forever because the DISC treatment doesn't exist, so routes to GNCT). The EDRAM can also generate a few different tones. For this, you'll need the mwttone file. In table DRAMS, we need to configure a PROM type card to hold the tones, since the tones file is not custom. Note that in order to make changes in the DRAMS table, the EDRAM 'card' (subunit, really) will have to be placed in the INB state. You can do this by posting the EDRAM itself (remember we defined CLLI EDRAM0 for it?) in the TTP MAPCI level, navigating to the card number to be modified, and then bsy inb. Once you have made the change, bsy mb and rts. DRAMCARD TMTYPE TMNO TMCKT CARDCODE CARDINFO ---------------------------------------------------------------------------- 0 4 DTM 0 0 1X80BA PROM (3) $ Again, you may need to add the MWTTONE file to PMLOADS: LOADNAME ACTFILE ACTVOL BKPFILE BKPVOL UPDACT ------------------------------------------------------------ MWTTONE MWTTONE F02LPMLD MWTTONE F17LPMLD N Then we tell the system to load the EDRAM with this file in EDRAMINV: EDRAMNM TUPINFO ---------------------------------------- DTM 0 4 ANN MWTTONE The DTM will have to be busied and then returned to service to add this tuple. We will also have to reload at least that card with loadpm ann 4. [TO BE CONTINUED] I'll get back to this, but last time I tried to load my copy of MWTTONE, I caused something to get angry (other than myself) and the switch stopped recognizing the EDRAM card. After a day and a reboot it was working again, but I wasn't sure whether loading MWTTONE caused an issue or not, so I'm moving on for now and will come back to this section later. Next, we'll add some conference circuit cards. First, we'll need an MTM. I'll be using the ISM that my EDRAM is installed in. We'll add the MTM in TMINV: TMNM FRTYPE FRNO SHPOS FLOOR ROW FRPOS LKDATA EQPEC LOAD EXECS SCTMLOC --------------------------------------------------------------------- MTM 0 MCAM 0 19 1 A 4 0 10 0 0 FX42AA MTMKA02 MTMEX SHELF We will need to return to service the link that the MTM is on in mapci;mtc;net;shelf x;card y where x is the shelf number and y is the card number. We bsy y link z where x is the plane number, and y is the link number. Then we rts x link y, where x and y are again the plane and link numbers. Next, we move to the PM with pm;post mtm x where x is the MTM number. We can bsy the PM first with 'bsy', then load with 'loadpm', and finally return to service with 'rts'. Now we're ready to provision some conference circuits. First, lets have a look in the CLLI table: CLLI ADNUM TRKGRSIZ ADMININF ---------------------------------------------------------------- CF3P 52 170 3_PORT_CONFERENCE_CIRCUIT CF6P 53 200 6_PORT_CONFERENCE_CIRCUIT These are the two CLLIs that conference circuits go into. These should already exist on your switch, and I don't believe they can be removed once they've been created. If they don't exist, consult the data schema manuals to see about adding them. The main thing to note here is that the TRKGRSIZ is defined high enough to accomodate the highest EXTRKNM entries (noting that each conference circuit takes up an additional 2 or 5 EXTRKNMs past the first one that is specified in the tables that follow). I have NT3X67 cards, which can be provisioned as either 2 3-port conference circuits, or one 6-port conference circuit (but not both at the same time). Provisioning is done in CONF3PR and CONF6PR. I'll start with CONF3PR: CNFCKTNO GRPCLLI EXTRKNM TMTYPE TMNO TMCKTNO CARDCODE PADGRP --------------------------------------------------------------------------- 0 CF3P 0 MTM 0 24 3X67AA CONF 1 CF3P 10 MTM 0 25 3X67AA CONF The external trunk member numbers must be unique, and the data schema manual suggests making them multiples of 10. The TMCKTNO can be referenced from the DMS-100 quick reference guide based on whether the card is installed in an MTM shelf or an ISM shelf. It is also important to note that the conference circuit cards use 6 ports and must be provisioned in a slot that allows for the next 6 circuits to be dedicated to the card. A PADGRP must be selected for the conference circuits, CONF should be the default PADGRP. Lastly, 3X67AAs need the circuit numbers that correspond to their 0th and 1st ports allocated separately as one corresponds to the first 3 port conference and the other corresponds to the second 3 port conference. In the case of 1X31AA cards, it will instead be the 0th and 3rd ports. With the cards provisioned, we can post the trunk group with mapci;mtc;trks;ttp;post g cf3p. The conference trunks will be in the INB state. From here, we can 'bsy all' and then 'rts all' to put our conference circuits into service. We are OK to do it this way because we're starting from no circuits, but if we were adding circuits and already had some configured, we would want to explicitely bsy just the newly added circuits. We could do this when we post our circuits, using the syntax 'post g cf3p 10 to 19' to select only the members of our 2nd 3-port circuit, for example (noting that normally you would probably want to grab increments of a card, which would be '0 to 19' for example). We should now be able to provision and use 3 way calling on some of our telephones, if all went well. We can add that option in servord to an existing line with the 'ado' command. Next up, we'll provision a 6 port conference circuit. To ensure the cards are not too close together, I've spaced the next card at least 3 slots away from the other (that is, a gap of 2 slots) in slot 11. Slot 11 corresponds to circuits 18 and 19 (and the conf circuit card will occupy the next 4 as well). 6 port conferences are provisioned in CONF6PR: CNFCKTNO EXTRKNM TMTYPE TMNO TMCKTNO CARDCODE PADGRP ----------------------------------------------------------------- 0 0 MTM 0 18 3X67AA CONF The datafill here is pretty similar to CONF3PR, but since each card only corresponds to one 6 port conference circuit, we only need one entry per card. Additionally, we don't need to specify the CLLI explicitely, the system will assume CF6P. Again, we'll need to return this new conference circuit to service: mapci;mtc;trks;ttp;post g cf6p 0 to 9, then 'bsy all' followed by 'rts all'. Note again, that if you are adding conference circuits to an existing pool, you should be careful to select only the appropriate circuits or else you might take something out of service that shouldn't be when you execute the 'bsy' command. In order to actually make use of our 6 port conference circuit, I will set up an MMCONF. However, you need to first set up a customer group as this is an MDC feature. Customer groups are added in CUSTENG: CUSTNAME ADNUM NONCOS NOIBNTMT CONSOLES DOMAIN GROUPID OPTIONS ---------------------------------------------------------------------------- SHADYTEL 1 10 0 N PUBLIC 0 $ Note that customer groups without attendant consoles are internally assigned customer group numbers starting at 256, and this means that customer groups without consoles will need OFCENG parameter to be CUSTOMER_GROUP_IBNGRP_OM_COUNT to be at least 288 (must be higher than 256, and must be a multiple of 32). To change that parameter, you will have to first use the 'rwok on' command to allow writes to restricted data (followed by 'rwok off' to disallow writes again). We also need to put some minimums in CUSTHEAD. CUSTNAME CUSTXLA DGCOLNM IDIGCOL OPTIONS ---------------------------------------------------------------------------- SHADYTEL PRAXLA NDGT NIL ( VACTRMT 0) ( EXTNCOS 0) ( SUPERCNF )$ The VACTRMT, EXTNCOS options are by default, and the SUPERCNF option lets my MMCONFs span to a higher capacity than otherwise allowed. I reused the PRAXLA translator so I can avoid actually setting one up for now. We have almost nothing defined in terms of this customer group at this point, but even just this should be enough for an MMCONF. Most of the other parameters have to do with dialplans and class of service restrictions, features, etc. MMCONF doesn't need any of the stuff that has to do with outbound calling, but we will need a bit of configuration for inbound that we'll get to after the conference itself. MMCONFs are added in table MMCONF: TABLE: MMCONF >lis TOP LKEY SNPA NNX DEFGDIGS LSCOMB DID DIDORIG ACALLOW SIZE CONFTYPE OPTIONS ------------------------------------------------------------------------ SHADYTEL 0 222 563 1006 0 Y Y N 6 STD $ This MMCONF is the STD type with the DN that is listed. We allow calls from outside the customer group to not only participate in (DID), but even start the conference (DIDORIG). Since we've only defined one 6 port conference circuit, I stayed with a maximum size of 6 for now. The LSCOMB parameter of the MMCONF refers to table LSCFLAGS. Each entry in LSCFLAGS allows us to allow only calls with the correct LSC set. For now, we'll set one entry up to allow everything. If you don't have this set properly, the calls will be screened and the MMCONF will give BUSY as treatment (which is odd, as I personally feel that's more of a RODR type of condition than BUSY). KEY LSCFLAGL ---------------------------------------------------------------------------- 0 (B0) (B1) (B2) (B3) (B4) (B5) (B6) (B7) (B8) (B9) (B10) (B11) (B12) (B13) (B14) (B15) (B16) (B17) (B18) (B19) (B20) (B21) (B22) (B23) (B24) (B25) (B26) (B27) (B28) (B29) (B30) (B31) $ At this point, our MMCONF can be used. With a customer group created, we can finish setting up the group to support telephone sets as well. Since sets in customer groups use customer translators, we'll have to set one up and assign it for the group. Translators are first created in XLANAME: XLANAME DEFAULT MAXDIG ---------------------------------------------------------------------------- STXLA $ 9 We create the translator STXLA for ShadyTel Translator, use no default selector, and our maximum digit is 9 (other options have to do with using the ABCD digits as part of the dialplan). We'll have to add our new translator to the customer group as well in CUSTHEAD: CUSTNAME CUSTXLA DGCOLNM IDIGCOL OPTIONS ---------------------------------------------------------------------------- SHADYTEL STXLA NDGT NIL ( VACTRMT 0) ( EXTNCOS 0) ( SUPERCNF )$ And then we'll need to define our translator in IBNXLA: KEY RESULT ---------------------------------------------------------------------------- STXLA 10 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 11 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 120 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 121 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1220 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1221 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1222 NET N N 0 N POTS N Y DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1223 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1224 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1225 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1226 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1227 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1228 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 1229 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 123 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 124 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 125 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 126 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 127 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 128 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 129 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 13 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 14 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 15 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 16 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 17 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 18 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ STXLA 19 NET N N 0 N POTS N N DOD N 0 222_POTS_0 NLCA_NILLA_0 NONE $ [need to work on this more] We'll also need to define at least one NCOS. I'll be defining two since there is also a default NCOS that gets specified for originators external to the customer group. NCOS 0 will be used for the default unprivileged calls while NCOS 1 will be the standard for in-group originators. CUSTGRP NCOS NCOSNAME LSC TRAFSNO OPTIONS ---------------------------------------------------------------------------- SHADYTEL 0 NCOS0 1 0 $ At this point, we can create a line with the IBN line class in SERVORD. Because I have limited pair count from the DMS to the house, I'll have to move one of my 1FRs and create the IBN on the now-unused pair. For reference, you can move LENs with the 'CLN' command (change-LEN). We can restrict MMCONF to disallow callers from outside the customer group from starting the conference (DIDORIG) or joining at all (DID). This means that lines outside the customer group and trunk calls that enter through means other than the IBN translations for the customer group will be considered to be outside the group and disallowed access as configured. LKEY SNPA NNX DEFGDIGS LSCOMB DID DIDORIG ACALLOW SIZE CONFTYPE OPTIONS ------------------------------------------------------------------------ SHADYTEL 1 222 563 1008 0 N N N 30 STD $ Trunk calls can also be directed into the customer group by having them use the IBN translations. We can either do this globally for all calls on a given trunk, or we can split them up based on some different means. In any case, this is controlled back in the LTCALLS table. Normally the DMS supports use of the Network Specific Facility message in conjunction with the ISDN Number Plan Indicator (NPI) to specify different call types to be routed differently. My Cisco ISR does not support NSF IE, but we can take advantage of the private NPI. I will route private type calls through the IBN translations, and this will make those calls treated as in-group calls. On the cisco end, I will make sure that calls which should classify as in-group calls get the private NPI, and calls which do not get a public NPI (like 'ISDN' or 'public'). In any case, the tuple for private routing is added in LTCALLS: LTID XLARTSEL OPTIONS ---------------------------------------------------------------------------- PRI 1 PVT XLAIBN 0 222_POTS_0 NLCA_NILLA_0 SHADYTEL 0 0 $ Note that the XLAIBN option for XLARTE specifies both a line class code to enter the national translations as well as a customer group for private translations. As best as I can tell, it is possible, with NSF, to designate a call as private in the NSF but use a public NPI, and that can cause the normal national translations to be used (but that won't apply here, because I will not be using NSF). It's also worth noting that the supported NSF and NPI combinations vary by ISDN signaling types. For this to work, I had to switch from NI-2 to the SL1PROFL which uses the NTNAPRI variant, which I believe is sort of a DMS-100 specific ISDN variant (which may predate NI-2). For future reference: 2024/01/19 14:27:55 <@joe_z> for my future reference: the left-most AC circuit has a 7.7A draw and 875W 2024/01/20 15:05:47 * joe_z notes for his future reference, 864W on the middle outlet 2024/01/21 16:44:36 <@joe_z> OK, for my future reference again, turning on the DMS now 2024/01/21 16:49:53 <@joe_z> and the rightmost outlet is doing 888W, 8.21A 2024/01/22 17:47:09 <@joe_z> for my future ref, 906W/7.65A on the leftmost outlet in the garage 2024/01/23 17:02 <@joe_z> for my ref. the center outlet is drawing 875W, 7.70A 2024/01/23 17:02 <@joe_z> may have to update that later if I get the 1X67s moved over into the ISM shelf 19:01 <@joe_z> rightmost outlet drawing 888W and 7.77A 08:44 < joe_z> 922W and 7.89A on the leftmost outlet |