How to build a T1/PRI from scratch on Avaya Communication Manager

This is almost an oxymoron. PRI interfaces are so common on PBXs that you’d think we would all be familiar with the process of building them. However, since these interfaces don’t change very often, sometimes we will go several years between PRI configuration. Here’s a quick reference for setting up a PRI. This one will use AT&T’s IPFlex BVoIP service, but most PRIs are configured the same way nowadays.

Here are the steps we will perform:

  1. Determine the physical location for the PRI (i.e. what port network or gateway and what slot?).
  2. Determine the trunk group number you will use and the TAC (trunk access code). Often, these will correspond with a site or media gateway. Just do a ‘list trunk’ and you’ll probably see a pattern where the trunk group number should fit and the TAC is almost always based upon the trunk group number.
  3. Find out the line coding and framing for the T1. Almost all T1s are now ‘b8zs’ and ‘esf’. Your carrier can confirm this, but I’ve never seen a voice PRI installed after the mid-1990s anything else.
  4. Find out the service protocol to use. This one is tricky and depends upon the emulation of the carrier’s switch. In fact, their planning docs will often ask you which one you want. And half the time it’s wrong anyway. If the D-channel doesn’t come up, this is usually the problem. It’s either ‘a’ for AT&T custom or ‘b’ for NI-2. It looks like this is used in three different places. The DS1 form, the signaling group form, and the trunk group form all have signaling protocol fields! However, the signaling and trunk group fields are different. When the carrier asks you “are you AT&T or NI2?”, they mean the ds1 itself. I have added some notes at the bottom of this post regarding the service protocols.

First, make sure you have a PRI slot available. I just pushed a PRI card into slot 5 of my G450 gateway (media gateway 10 in my case) so it looks like this:

list configuration media-gateway 10                                    Page   1

                              SYSTEM CONFIGURATION

Board                                                     Assigned Ports
Number   Board Type              Code     Vintage    u=unassigned t=tti p=psa

010V1    ICC MM                   S8300D  HW06 FW001
010V2    ANA MM                   MM716AP HW06 FW098 01 02 03 04 05 p  p  p
                                                     p  p  p  p  p  p  p  p
                                                     p  p  p  p  p  p  p  p
010V4    DS1 MM                   MM710BP HW11 FW052 01 02 03 04 05 06 07 08
                                                     09 10 11 12 13 14 15 16
                                                     17 18 19 20 21 22 23 24
                                                     u  u  u  u  u  u  u  u
010V5    DS1 MM                   MM710BP HW11 FW049 u  u  u  u  u  u  u  u
                                                     u  u  u  u  u  u  u  u
                                                     u  u  u  u  u  u  u  u
                                                     u  u  u  u  u  u  u  u

                press CANCEL to quit --  press NEXT PAGE to continue
ESC-x=Cancel Esc-e=Submit Esc-p=Prev Pg Esc-n=Next Pg Esc-h=Help Esc-r=Refresh

Slot 5 is nice and clean with 24 unassigned ports. First we need to create the DS1, which is really creating the D-channel on port 24. I type

add ds1 010v524

and the DS1 form comes up. It’s only two pages. Fortunately, I have a couple working DS1s from AT&T already so I’ll refer to those. By the time I’m done, my DS1 looks like this:

display ds1 010v524                                             Page   1 of   2
                                DS1 CIRCUIT PACK

            Location: 010V5                           Name: Atlanta BVoIP
            Bit Rate: 1.544                    Line Coding: b8zs
   Line Compensation: 1                       Framing Mode: esf
      Signaling Mode: isdn-pri
             Connect: network
   TN-C7 Long Timers? n                   Country Protocol: 1
Interworking Message: PROGress            Protocol Version: b
Interface Companding: mulaw                            CRC? n
           Idle Code: 11111111
                              DCP/Analog Bearer Capability: 3.1kHz

                                           T303 Timer(sec): 4

      Slip Detection? n                 Near-end CSU Type: integrated

   Echo Cancellation? n          Block Progress Indicator? n

display ds1 010v524                                             Page   2 of   2
                              DS1 CIRCUIT PACK


                     Network Management Protocol: tabs
 Send ANSI-T1.403 One-Second Performance Reports? n
                             Far-end CSU Address: b

                                    Transmit LBO: 0db
                                    Receive ALBO: 26db
                                    Upon DTE LOS: loopback

                  Supply CPE Loopback Jack Power? n

Now we create the signaling group, which is the communication layer on the D-channel. Signaling groups can be shared (rarely), so these are split up. They’re very simple. The form is 5 pages long, but page 1 is all that matters:

display signaling-group 110                                     Page   1 of   5
                                SIGNALING GROUP

 Group Number: 110            Group Type: isdn-pri
                    Associated Signaling? y          Max number of NCA TSC: 0
                       Primary D-Channel: 010V524     Max number of CA TSC: 0
                                                   Trunk Group for NCA TSC:
       Trunk Group for Channel Selection:         X-Mobility/Wireless Type: NONE
      TSC Supplementary Service Protocol: a

There is a chicken-and-egg problem here. The signaling group wants to know what trunk group to use, but we haven’t built the trunk group yet. We will need to modify this after we create the trunk group.

Now create the trunk group. After the first page, almost everything is fine with default values. The only fields I end up changing are “send name”, “send number”, and “show ANSWERED BY” on page 3. I typically submit the form before assigning channels on page 5 to make sure the form submits.

display trunk-group 110                                         Page   1 of  21
                                TRUNK GROUP

Group Number: 110                  Group Type: isdn          CDR Reports: y
  Group Name: Atlanta BVoIP               COR: 1        TN: 1        TAC: 8900
   Direction: two-way        Outgoing Display? n         Carrier Medium: PRI/BRI
 Dial Access? n              Busy Threshold: 255  Night Service:
Queue Length: 0
Service Type: public-ntwrk          Auth Code? n            TestCall ITC: rest
                         Far End Test Line No:
TestCall BCC: 4

display trunk-group 110                                         Page   2 of  21
      Group Type: isdn

         Codeset to Send Display: 6     Codeset to Send National IEs: 6
        Max Message Size to Send: 260   Charge Advice: none
  Supplementary Service Protocol: a     Digit Handling (in/out): enbloc/enbloc

            Trunk Hunt: cyclical
                                                   Digital Loss Group: 13
Incoming Calling Number - Delete:     Insert:                 Format:
              Bit Rate: 1200         Synchronization: async    Duplex: full
 Disconnect Supervision - In? y  Out? n
 Answer Supervision Timeout: 0
          Administer Timers? n        CONNECT Reliable When Call Leaves ISDN? n
             XOIP Treatment: auto    Delay Call Setup When Accessed Via IGAR? n

display trunk-group 110                                         Page   3 of  21
          ACA Assignment? n            Measured: none      Wideband Support? n
                                                          Maintenance Tests? y
                               Data Restriction? n     NCA-TSC Trunk Member:
                                      Send Name: y      Send Calling Number: y
            Used for DCS? n                            Send EMU Visitor CPN? n
   Suppress # Outpulsing? n    Format: natl-pub
 Outgoing Channel ID Encoding: preferred     UUI IE Treatment: service-provider

                                                 Replace Restricted Numbers? n
                                                Replace Unavailable Numbers? n
                                                      Send Connected Number: n
                                                  Hold/Unhold Notifications? n
             Send UUI IE? y     Modify Tandem Calling Number: no
               Send UCID? n
 Send Codeset 6/7 LAI IE? y                         Ds1 Echo Cancellation? n

    Apply Local Ringback? n               US NI Delayed Calling Name Update? n
 Show ANSWERED BY on Display? n      Invoke ID for USNI Calling Name: variable
                             Network (Japan) Needs Connect Before Disconnect? n

We still have two things to do – we need to set the trunk group for channel selection in the signaling group, and we need to assign the channels. Before I forget, change the signaling group to tell it what trunk group it will control:

change signaling-group 110                                      Page   1 of   5
                                SIGNALING GROUP

 Group Number: 110            Group Type: isdn-pri
                    Associated Signaling? y          Max number of NCA TSC: 0
                       Primary D-Channel: 010V524     Max number of CA TSC: 0
                                                   Trunk Group for NCA TSC:
       Trunk Group for Channel Selection: 110     X-Mobility/Wireless Type: NONE
      TSC Supplementary Service Protocol: a

Now, for the last step, let’s assign channels! Change the trunk group and set these on page 5 and 6. Note how we assign the signaling group along with the channel. When I get the circuit ID from AT&T, I will put it in the “Name” column along with the DIDs that were provided on this circuit.

change trunk-group 110                                          Page   5 of  21
                                 TRUNK GROUP
                                      Administered Members (min/max):   1/23
GROUP MEMBER ASSIGNMENTS                  Total Administered Members:  23

       Port    Code Sfx Name        Night           Sig Grp
  1: 010V501  MM710  B                                110
  2: 010V502  MM710  B                                110
  3: 010V503  MM710  B                                110
  4: 010V504  MM710  B                                110
  5: 010V505  MM710  B                                110
  6: 010V506  MM710  B                                110
  7: 010V507  MM710  B                                110
  8: 010V508  MM710  B                                110
  9: 010V509  MM710  B                                110
 10: 010V510  MM710  B                                110
 11: 010V511  MM710  B                                110
 12: 010V512  MM710  B                                110
 13: 010V513  MM710  B                                110
 14: 010V514  MM710  B                                110
 15: 010V515  MM710  B                                110

change trunk-group 110                                          Page   6 of  21
                                 TRUNK GROUP
                                      Administered Members (min/max):   1/23
GROUP MEMBER ASSIGNMENTS                  Total Administered Members:  23

       Port    Code Sfx Name        Night           Sig Grp
 16: 010V516  MM710  B                                110
 17: 010V517  MM710  B                                110
 18: 010V518  MM710  B                                110
 19: 010V519  MM710  B                                110
 20: 010V520  MM710  B                                110
 21: 010V521  MM710  B                                110
 22: 010V522  MM710  B                                110
 23: 010V523  MM710  B                                110

And now it’s a matter of troubleshooting. I plugged in my PRI into the BVoIP router and the first thing is to make sure the D-channel came up. Do this by statusing the signaling group:

status signaling-group 110
                         STATUS SIGNALING GROUP

        Group ID: 110                             Active NCA-TSC Count: 0
      Group Type: isdn-pri                         Active CA-TSC Count: 0
  Signaling Type: facility associated signaling
     Group State: in-service

                           Primary D-Channel

            Port: 010V524        Level 3 State: in-service

                          Secondary D-Channel

            Port:                Level 3 State: no-link

The “Level 3 State” is the state of the D-Channel. If you’re on the phone with your carrier and they ask about the D-Channel, you can give them that status.

Next, status the trunk group itself:

status trunk 110

                             TRUNK GROUP STATUS

Member   Port     Service State      Mtce Connected Ports

0110/001 010V501  in-service/idle    no
0110/002 010V502  in-service/idle    no
0110/003 010V503  in-service/idle    no
0110/004 010V504  in-service/idle    no
0110/005 010V505  in-service/idle    no
0110/006 010V506  in-service/idle    no
0110/007 010V507  in-service/idle    no
0110/008 010V508  in-service/idle    no
0110/009 010V509  in-service/idle    no
0110/010 010V510  in-service/idle    no
0110/011 010V511  in-service/idle    no
0110/012 010V512  in-service/idle    no

This gives you the channel state within the trunk group. These channels will only come up in-service/idle if the D-channel is good. If you have any problems, you can try to “bounce” the D-channel by perform a busyout then release on the port of the D-channel with “busy port 010v524” in my case:

busyout port 010v524

                             COMMAND RESULTS

  Port      Maintenance Name  Alt. Name          Result           Error Code

  010V524   ISDN-PLK                             PASS

release port 010v524

                             COMMAND RESULTS

  Port      Maintenance Name  Alt. Name          Result           Error Code

  010V524   ISDN-PLK                             PASS

And if the D-channel still won’t come up, that’s when you tweak the service protocol values between ‘a’ and ‘b’.

When you’re on the phone with your carrier trying to turn up service, the ability to bounce the D-Channel, monitor the D and B channel status, and change from AT&T custom to NI-2 is typically enough to get the carrier to work with you and get this working. On rare occasions you may need to tweak the line coding (b8zf/esf) but this has only happened to me once.

As for service protocols, a good friend of mine provided a nice summary from his notes. Remember these apply to the DS1! (i.e. “change ds1 010v524”), not the sig or trunk group forms.

Protocol “a” – AT&T Custom

  • For the layer 3 messaging or 4ESS/5ESS messaging type (Maintenance Protocol Discriminator 03) (TR41449/TR41459)
  • Normally used by Long Distance Companies
  • 4ESS is strictly AT&T Custom for FAS/NFAS
  • DMS 100/250 is AT&T Custom for FAS/NFAS (software load BCS.36 or later)
  • DSC DEX600E is AT&T Custom for FAS/NFAS (used BY MCI and Frontier as central offices)

Protocol “b” – National ISDN 2

  • Bellcore protocol (5ESS LEC messaging for NFAS and DCBU applications, the only way the 5ESS can be set up for NFAS and DCBU) (Maintenance Protocol Discriminator 43) (TR1268)
  • Normally used by LECs
  • DMS 100 will do NI-2 FAS/NFAS (started in the BCS.37 load of software)
  • Starting with the 5E9.0 software load in the 5ESS
  • Normal protocol for connection to Siemen’s EWSD
  • Normal protocol for connection to GTE GTD5

Thanks as always for your time and attention. If you’re interested, I can include a post on routing incoming calls from this trunk group, routing calls out this trunk group, and setting the caller-id for calls over this trunk group. Please let me know your own experiences with setting up and using PRI and IP trunks.

9 thoughts on “How to build a T1/PRI from scratch on Avaya Communication Manager

  1. Sue

    Roger; thank you so much for posing this. Your very informative articles always save me a lot of troubleshooting. I am interested in you posting:
    Routing incoming calls from this trunk group, routing calls out this trunk group, and setting the caller-id for calls over this trunk group

    Thank you

    1. roger Post author

      Thank you for the kind words and encouragement Sue! I have completed a flowchart of how CM routes outbound calls – it was more complicated than I thought. I will post it in the next couple days.

    2. roger Post author

      Sounds like the signaling group and the trunk members are not on the same board. Please “display sig x” and make sure the Primary D-Channel (page 1) is on the same board that you’re trying to add to the trunk group. Is it just one PRI with the D-Channel on port 24? Or an E1? Or (gulp) NFAS?

  2. Marcia

    Hi Roger,
    This is a great article. I’m following this right now!
    I can seem to add ports to the trunk group. When adding the Sig Grp, it says This trunk board does not belong to this Signaling Group. The Signaling Group does have the trunk number assigned.
    Thoughts? Thank you!

  3. Vadym

    Hi Roger,

    I’m trying to marry our Definity and Digium G100 T1 gateway.
    I tried to follow your DS1 settings as well as mirroring one of working PRI interfaces on our G450 but for some reason I cannot make it work!
    Sig LED on G450 stays dark regardless any settings I chose on G100. But if I connect the loopback to either G450 or G100 Sig lights on immediately. Moreover, if I replug the cable from provider’s working PRI into G100 it detects the carier as well.

    So looks like I am missing something very low level here.

    Do you know what should I be looking at?

    1. Vadym

      Damn, ethernet crossover cable isn’t the same as T1 crossover cable! Solved the issue by crimping the connector as per T1 diagram.

      1. roger Post author

        Thanks Vadym – that’s a good point and not one that I would have diagnosed right away. How frustrating that you can plug loopbacks in both ends and they come up, but any cable you plug between won’t come up. T1 crossover is the answer. Personally, I hate making T1 cables. It reminds me of wiring up a boat trailer. And I have bad mojo with boat trailers for some reason.

        Thank you from me, and all future readers.

  4. Janelle

    So I have a gateway that is being switched from a T1 robbed-bit to a PRI. Can I just change the settings on the card and signaling group? Or is it going to be more in depth than that? Want to use the same trunk grouls, route patterns, etc. Just changing to a PRI. This is all new to me, never had to change one over before.

    1. roger Post author

      Yes, it should be that simple. But you can also build a new signaling group for PRI, and then assign it to the trunk group members starting on page 5, see if it works, and assign it back if not. But of course with screen shots of the original signaling group, you could just change it all you want and always revert if necessary.

      You might consider upgrading the firmware on your DS1 card. But PRIs haven’t changed in decades so it’s probably not necessary.

      Good luck! Let us know how it goes!


Leave a Reply

Your email address will not be published. Required fields are marked *