Using Nortel i2000 Phones
You want to use one of the widely-deployed Nortel i2002, i2004 hardphones or the i2050 softphone, but these phones do not use SIP and therefore Asterisk does not support them.
Download and install chan_unistim, configure it, and start talking!
These Nortel phones are good quality business-grade telephone sets and are widely deployed. Because of this they are quite affordable on eBay and from VOIP sites, and will get more affordable as time goes by. But, they don't speak SIP, instead using Nortel's proprietary and undocumented "UNISTIM" (Unified Networks IP Stimulus) protocol. Nortel's SIP solution is to provide a SIP gateway for their NortelBCM system, but this is an expensive, proprietary, closed-source solution that doesn't provide a lot of comfort or satisfaction to Asterisk users. Aside: if they don't speak SIP, how can Nortel call them "standards based"? Answer: they use TCP, UDP, IP, DHCP and even RTP, so they are based on those standards. Just not SIP. Note: the newer i2007 does apparently speak some form of SIP so it is not covered here.
And because Nortel doesn't really want people using these phones without using one of Nortel's proprietary PBXes, they have refused to document the "UNISTIM" protocol. To solve this problem, Cedric Hans figured out large parts of the protocol and wrote an Asterisk "channel" module, chan_unistim, that speaks a growing subset of UNISTIM and fits into a standard Asterisk environment. Presto - instant phone re-use! Well, almost.
At this point chan_unistim does not support every imaginable feature, but does provide a reasonable working feature set, including Call Transfer, Three-way calling, Call Forwarding, Message Waiting Indication (MWI), Music On Hold (MOH), Distinctive Ring Indicator, Call History, CallerID, Redial, Dynamic SoftKeys, and the SendText() application.
One caveat to keep in mind is that these phones' firmware was designed for use on an inside network. They do not deal at all well with NAT. However, for a standard setup they are fairly easy to provision without a lot of manual work on each phone, so they are good for large deployments. If you want a phone that you can take with you, plug it into any hotel or client site network and start talking, save yourself a lot of grief and use a SIP phone that supports STUN discovery. If you have a large deployment and need to have a few phones outside your NATted network, consider using a Virtual Private Network (VPN) which makes the inside addresses routeable by the server, or Peering two Asterisk servers using IAX, since IAX does a better job of crossing NAT boundaries (note that you'll have to have the inside Asterisk server "register" with the outside one; that recipe is currently couched in terms of two "outside" servers.
One good thing about these phones is that they do not have a web-based configuration interface, so you will never see somebody reconfiguring your phone from a remote corner of the world (unless they can break security your Asterisk server machine, but these phones have one fewer risk). You have to provision them "centrally" from your Asterisk server.
For reasons described earlier (reference?), for releases prior to 1.4.2, you often have to download and compile the chan_unistim code, install and configure the channel module. First check to see if there is a compiled module for your system; Search your update mechanism, search the web for chan_unistim.rpm or .deb; BSD users look in your ports/packages mechanism. If all that fails, download and build it yourself, as follows:
- Go to the chan_unistim download page and get the correct version (you generally want the latest available version of the channel that is ready for the version of Asterisk you are running);
- Extract the archive with the "tar" command, e.g., tar xvjf chan_unistim-1.0.x.y.tar.bz2 (where x and y are version numbers that will change over time). If your system's tar doesn't understand -y, try -z, or, use bzip2 -d followed by tar to get the same result. This will extract the source files into a subdirectory.
- cd chan_unistim-1.0.x.y
- read the README file to see what changes may be needed for your system
- type make to build the module
- type make install to install the module where Asterisk can find it.
- type make config to copy the sample configuration file into Asterisk's configuration directory
- edit the file unistim.conf in the Asterisk configuration directory as discussed below.
- restart your Asterisk server.
- Connect and configure one or more phones as shown below.
The sample configuration file is extensively commented and you can probably figure out what you need to do by inspecting it. One thing to note is that while the UNISTIM "contact" port (defaults to 5000) is set in the "general" section, the RTSP port is set for each phone. You might think that setting a different RTSP would allow you to have more than one of these phones behind a NAT box, but it doesn't work because the "contact" port replies all go to the first phone that boots up. Don't blame the unistim channel software - as mentioned, this phone was not designed for NAT use.
Now you have to think about setting up DHCP. You have a choice of "full DHCP", "partial DHCP", or not using DHCP at all. In full DHCP, you configure your DHCP server to send an extra option string telling the phone where to find the Asterisk server, what port to use, and so on. This is what you want for most "normal" setups as it minimizes the amount of futzing at each phone, which makes you look better if the customer is watching you install Asterisk. In "partial DHCP" the phone uses DHCP to get its own address, but you configure the phone with a specific IP address and port to contact Asterisk on. This is more useful for demo phones where you may not have full control of the DHCP server, as well as roaming setups should you be so foolish as to use one of these phones for this purpose.
The details depend on the version of ISC DHCP you are using, newer versions need the following two lines:
- option nortel_ipt code 128 = string;
- option nortel_ipt "Nortel-i2004-A,iii.iii.iii.iii:ppppp,a,r;iii.iii.iii.iii:ppppp,a,r.";
while older versions (e.g., that on OpenBSD 4.0) uses just this one line:
- option option-128 "Nortel-i2004-A,iii.iii.iii.iii:pppp,a,r.";
option option-128 "Nortel-i2004-A,188.8.131.52:5000,1,10.";
Pay close attention to the chunky broth of punctuation soup in these lines.
Once you're got your DHCP set up (or decided not to use it), you can move on to set up one or more phones...