I was feeling under the weather this weekend and found myself confined to my bedroom and basement. With all the idle time I spent a few hours setting up Asterisk. I was looking at two goals, first examining the basic functionality that Asterisk provides and the second was testing the integration between Asterisk and a Nortel i2002 IP phone using the UNIStim (chan_unistim) protocol driver.
For anyone that isn’t familiar with Asterisk; Asterisk is the world’s leading open source PBXi, telephony engine, and telephony applications toolkit. Offering flexibility unheard of in the world of proprietary communications, Asterisk empowers developers and integrators to create advanced communication solutions…for free.
I started by building a CentOS 5.2 server within a VMware environment which was easy enough. I then downloaded the latest Asterisk release (1.6.1-rc1) and compiled the source files. Within no time I had the basic Asterisk installation up and running. I hacked away at the unistim.conf, and extensions.conf file and before long I was making test calls across my private branch exchange between two softphones (X-Lite) and two Nortel i2002 IP phones.
Asterisk is an incredibly powerful solution and can really empower SOHO and small Enterprise networks. The feature support within Asterisk is very impressive and includes voice mail and conferencing. Digium actually manufacturers a number of telephony products based on Asterisk and are very appealing to some businesses. There are also a number of growing service providers which can be used to connect Asterisk over the Internet to the PSTN network without the need for dedicated hardware. I was very impressed with the solution.
Cheers!
Mark Stevens says
Congrats on the Asterisk set-up. I did something similar here with some colleagues. CentOS & with Asterisk on top, then configured 1120 phones running SIP firmware. Fun little project. Just got the basics up and running.
Michael McNamara says
Hi Mark,
What’s really neat is that the i2002 phones were still running the UNIStim stack with firmware 0604DAD and 0604DBG (no SIP firmware available for the i2002/i2004 phones). Thanks to the efforts of Cedric Hans and others they were able to reverse engineer the UNIStim stack and provide the channel driver for using Nortel’s proprietary protocol on Asterisk.
I will comment that it took me about 30 minutes to realize that you couldn’t just pickup the handset and dial a number. You had to pickup the handset, dial the phone number and then select the softkey labeled “Call”. I spent that first 30 minutes running packet traces trying to figure out if I had a G.711/GSM codec issue or what the problem was.
Thanks again for the comment!
Gord says
The most current SIP firmware for the IP Phone 1120E/1140E can be accessed from http://www.nortel.com/support. I would be interested in anybody else’s experience using this with Asterisk.
John says
Does someone have this firmware? The link above doesn’t seam to go anywhere useful anymore
Michael McNamara says
Hi John,
Avaya acquired Nortel a while back now;
http://support.avaya.com/css/appmanager/public/support/Downloads/P0602/4.x/C2010110317412614648615
Cheers!
tim lang says
I am just installing an asterisk server into my small business, I have 8 Grandstream 2000 phones for hte initial deployment. These are configured and working fine. I am replaceing a Nortel BCM50 and I have 3 IP phones I would LOVE to get working on the system.
I am on CentOS 5.2 like you, and used hte AsteriskNOW 1.6Beta for my base intstall of everything.
Can I get a DETAILED instruction on how you got the nortels to work? Heck I would even pay you fo rhte consult to help me.. I truely like the nortel phones and it would save me about $400 if I can re-use the 3 IP phones I have.
[removed by moderator]
PS: I am not a ‘Phone Guy’ so this is all new to me, I am a MCSE/T type.
Michael McNamara says
Hi Tim,
The only real changes beyond just building and installing the software was configuring the extensions in the extensions.conf file and then provision the IP phones in the unistim.conf file. I’ll see if I can power back up that VM and copy down the files to post here.
One note, I didn’t realize for quite some time that I had to go off-hook on the i2002, then dial the number and then select the appropriate line key before the phone would actually dial. It might have been my configuration, I’m not sure but going off-hook didn’t provide dialtone until I selected a line.
Thanks for the feedback!
Michael McNamara says
I managed to dig up those two files… I’ve only included the parts that you might need to change (I didn’t include the entire file just the statements concerning the two IP phones I setup.
You’ll need to find their MAC address (on the back of the phone) and then depending on software version the phone is running you may need to tweak the rtp_method.
unistim.conf
I then added the following lines in the extensions.conf file;
It’s not to complicated after you spend some time with it.
Good Luck!
Nortel IP phones says
Hi Michael, we have a Nortel conversion from a BCM to another pbx. We have no user names or passwords for the phones and i have no idea how to get into the unistim.conf. Would you be interested in consulting on this.
Michael McNamara says
Hi “Nortel IP phones”,
You realize that the i2002/i2004 IP phones are only UNIStim capable, they don’t support SIP so you’ll need a solution that supports UNIStim and even so I would advise you to test thoroughly. It’s one thing to get it working in a lab environment, it’s a complete different thing to have it working in a production environment 24x7x365. I’d also be curious as to why you are leaving the BCM solution. The BCM is a really great solution, providing a lot of features in a very small footprint.
I’m currently too busy to take on any additional work at this time… that doesn’t mean I won’t give you advice. Why not head over to the forums and post a topic over there.
You can find information on how to access to the configuration options of the i2002/i2004 in this post.
Good Luck!
Hani Bizri says
Hi all,
I just bought POE splitter to use on the Nortel i2002 Phone conneting it to POE switch but no power comes up the unit is dead I tried another unit the same story, but when I connect the external power adapter it works fine.
I need use the POE feature without using the power adapter.
The splitter I am using model # PD-PS-401/RA-NTLR V5
Please advise.
Regards,
Hani
hbizri@msn.com
Michael McNamara says
Hi Hani,
You don’t need a PoE splitter… if you have a PoE switch you should be good to go. If you don’t have a PoE switch you’ll need a PoE injector that conforms to the 802.3af standards.
Here’s a link from Amazon of a 1 port PoE injector.
Good Luck!
Joe Sus says
Hi Michael,
There is an official company now marketing the Unistim Astersik system for use with Nortel IP and digitial M/T Norstar/BCM phones and SRG.
It’s called the UCx from http://www.emetrotel.com.
Check it out, these are all former Nortel guys with 30+ years of experience for some.
Joe
Leon says
Hi Michael,
Great blog! I was just wondering if there was any way to manually update Nortel IP phones without having a Nortel server to push them?
I have 6 i2002 phones working with my asterisk server, but they’re running fairly old firmwares. I wanted to update them to see if they’re more stable.
I often get disconnections 15 seconds into the call, or it regularly loses connection to the server and has to reconnect.
Thanks!
Michael McNamara says
Hi Leon,
Unfortunately the UNSTim (i2000 series) can only be upgraded via the proprietary UTFTP protocol. I guessing it wouldn’t be to hard to reverse engineer if someone hasn’t already done it. Only the later IP phones (1100, 1200 series) support TFTP.
I really won’t suspect the firmware/software with such a blaring problem/issue. UNIStim is very chatty and requires <1% packet loss – how’s your network?
Thanks for the comment!
Cheers!
Eric says
Hi
i2004 Transfer Crash,
I test 3 phone, A(SIP), B(SIP, C(i2004)
when A dial C, then C tranfer the call to B,
B ring, after C hangup, then asterisk Crash
My asterisk version is 1.8
Michael McNamara says
Hi Eric,
I would suggest you file a bug report with the developers of Asterisk although I’m not sure that the UNIStim channel driver is actively being supported, in which case you might need to fire up the compiler yourself. That the joy of open source software.
Good Luck!
Ganesh says
Hi Michael, I recently started to use FreePBX on our network – the Nortel Option 11C VOIP card crashed and we have over 100 Nortel I2002 voip phones. These were set up on the uniStim.conf file and are working fine. The only problem is that whenever someone transfers a call the entire system crashes. All calls are killed!!
The Phones have firmware “0604D98” – Is there any fix for this issue? or can I disable the ‘transfer’ option on the phones.
Thanks.
Michael McNamara says
Hi Ganesh,
I would suspect the release of Asterisk and not the firmware of the i2002 IP phones. Have your tried submitting a bug request to the FreePBX team? Have you tried using another Asterisk distribution such as AsteriskNow? The problem might also be related to the UNIStim channel driver. If you can find a fix you might try reaching out to the folks at E-Metrotel for some commercial help.
Good Luck!
John says
We are testing convering our entire nortell system to Asterisk (freepbx) but using our exisiting 1140e’s through the transistion. In our test enviorment we have two sip devices 100 and 101. Both can call each other fine. Devices 200, 201 and 202 are 1140s. I can call the SIP phones from them but i can’t call them from the SIP phones. I’m sure i’m missing something simple. Could you nudge me in the right direction?
log–
netsock2.c: == Using SIP RTP TOS bits 184
netsock2.c: == Using SIP RTP CoS mark 5
pbx.c: — Executing [201@from-internal:1] ResetCDR(“SIP/101-00000006”, “”) in new stack
pbx.c: — Executing [201@from-internal:2] NoCDR(“SIP/101-00000006”, “”) in new stack
pbx.c: — Executing [201@from-internal:3] Progress(“SIP/101-00000006”, “”) in new stack
pbx.c: — Executing [201@from-internal:4] Wait(“SIP/101-00000006”, “1”) in new stack
pbx.c: — Executing [201@from-internal:5] Progress(“SIP/101-00000006”, “”) in new stack
pbx.c: — Executing [201@from-internal:6] Playback(“SIP/101-00000006”, “silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer”) in new stack
file.c: — Playing ‘silence/1.ulaw’ (language ‘en’)
file.c: — Playing ‘cannot-complete-as-dialed.gsm’ (language ‘en’)
pbx.c: == Spawn extension (from-internal, 201, 6) exited non-zero on ‘SIP/101-00000006’
pbx.c: — Executing [h@from-internal:1] Hangup(“SIP/101-00000006”, “”) in new stack
pbx.c: == Spawn extension (from-internal, h, 1) exited non-zero on ‘SIP/101-00000006’
extension_custom.conf (using freebpx)–
exten => 200,1,Dial(USTM/200@test200)
exten => 201,1,Dial(USTM/201@test201)
exten => 202,1,Dial(USTM/202@test202)
unistim.conf–
[general]
port=5000
[test200]
device=001b2530085e
line =>200
[test201]
device=001b252fb5a6
callerid=”John”
maintext0=”Welcome”
line =>201
[test202]
device=001b252f9ca0
line =>202
John says
Figured it out.. changed the context=from-inside and added extension=line
Now i can’t figure out how to add voicemail boxes to these UNISTIM lines. All my SIP extensions automatically created mailboxes.
Vlad M says
Hi! Excellent Tutorial!
After I fought with a 2002 for a little while I managed to get it to properly talk to the an Elastix (Asterisk 1.8.x)
There are a couple of tutorials and some of them suggest that the 2002 will benefit from a different module (which requires re-compilation).
The out-of the box works fine – the things I noticed:
– The speaker light does not go off
– The number called is not displaying (or when dialed is not showing)
– I am not able to select the default codec (it ends up using 711u – I’d prefer 711a)
I think all these are partially due to the 2004 and above compatibility which phones are having slightly larger screens…
However if someone has an idea how to fix the above I will be greatful!
I also figured out the icons for the book marks:
; Soft keys icons 2002
;
; 31 = Tel full normal
; 32 = tel empty normal
; 33 = tel full normal ringing
; 34 = tell empty normal ringing
; 35 = Tel full off-hook (up)
; 36 = Tel empty off-hook (up)
; 37 = TEL full open/ dn
; 38 = tel empty open/ dn
; 39 = tel full open (up) ringing
; 40 = tel empty open (up) ringing
; 41 = tel full no rec
; 42 = tel empty no rec
; 43 = tel full no rec ring
; 44 = tel empty no rec ring
; 45 = rec (up) ring
; 46 = rec (donw) ring
;
; Bookmark Positions of 2002
; 4 —- 1
; 3 —- 0
References:
http://blog.dale.id.au/how-to-asterisk-1-6-2-and-nortel-2002-ip-phone-ntdu91/
http://www.voip-info.org/wiki/view/Asterisk+UNISTIM+channels