Published on

Paetec to Asterisk to Nortel

Authors

My company has a Nortel PBX, with a full panel of extensions. However, we need to add more handsets. In addition, our traders have asked for 'Turrets' (more of this in a later post). The obvious route is to go VoIP - with the precondition that the Nortel PBX should be unaffected (and repluggable if things don't go according to plan).

Solution : Add an Asterisk PBX in between our telecoms provider (Paetec) and the Nortel PBX, which is currently delivered by some sort of T1. Requirements : Rhino 2 T1 card (installation in another post).

Problem #1 : No access to Nortel programming interface. Solution : Talk to Paetec, armed with the /etc/dahdi/system.conf man page (and the asset tag from the T1 where it arrives in the room : importantly, this is marked ESF/B8ZS)

Unfortunately our telephone provider (while helpful) doesn't speak 'Asterisk' - but they were prepared to acknowledge that the T1 coming in was not PRI : it carried two types of 'analog' circuit :

  • A Paetec TecPath (which, after a lot of experimentation with dahdi_tool) proves to speak 'E&M;_Wink). They described it as a "TecPath Trunk Group with Wink Dial Tone".
  • A number of Loopstart lines. They described this as "Business Lines, i.e. Terminal Lines, Incoming only, Loopstart, with Clocking from Paetec.

Interfacing Asterisk to Paetec was pretty straight-forward, using the (straight-through) cable that the Nortel was already using :

/etc/dahdi/system.conf
span=1,1,0,esf,b8zs
span=2,0,0,esf,b8zs,yellow
#span=2,0,0,esf,b8zs`

# Loopback testing :
#clear=1-24
#clear=25-48

## Connection to Paetec

# Works for all other numbers (group)
e&m;=1-14

# Works for 212-xxx-yyyy incoming group
fxsls=15-24

## Connection to Nortel

# Simulation of all other numbers (group - included CallingID)
e&m;=25-38

# Simulation of 212-xxx-yyyy incoming (outgoing) group
fxols=39-48

Interfacing Asterisk to the Nortel was more tricky, since it seems to require a T1 Crossover (not a 568A/568B patch panel crossover). Somehow, I guess, Paetec must detect what the recipient requires, since a straight cable (but not a patch panel crossover) worked to Asterisk... Very strange (I didn't test the T1 crossover between Paetec and Asterisk).

For Asterisk :

/etc/asterisk/chan_dahdi.conf
rxgain=0.0
txgain=0.0
busydetect=yes

usecallerid=yes
hidecallerid=no
usecallingpres=yes

context=from-paetec-tecpath

group=1
immediate=no
signalling=em_w
channel=>1-14

context=from-paetec-main

group=2
immediate=no
signalling=fxs_ls
channel=>15-24

context=from-nortel-tecpath

group=3
signalling=em_w
channel=>25-38

context=from-nortel-main

group=4
signalling=fxo_ls
channel=>39-48

FYI, the E&M; signalling seems to be able to provide the last 4 digits of the number called in to, whereas the Loopstart doesn't. This explains why my test dial plan from Paetec looks like this :

/etc/asterisk/extensions.conf
[from-paetec-tecpath]

exten => _X.,1,Verbose("NEW CALL FROM:[${CALLERID(number)}] FOR:[${EXTEN}]")
exten => _X.,n,Dial(SIP/2101,60,r)
exten => _X.,n,Hangup

[from-paetec-main]
exten => s,1,Verbose("Business Line Group CALL FROM:[${CALLERID(number)}] FOR:[${EXTEN}]")
exten => s,n,Dial(SIP/2101,60,r)
exten => s,n,Hangup

where in the Business Line Group, no CALLERID or EXTEN information is available.

Now, on to cross-linking everything...