Back to news

*-Users: UNISTIM channel driver available

Author: Matt Riddell
Daily Asterisk News
Ask Question

Andres has posted details of a release from Cedric Hans of a UNISTIM channel driver for Asterisk:


Cedric Hans has released an UNISTIM channel driver for asterisk (stable).
You can download it at :

Copy of README :
This is a channel driver for Unistim protocol. You can use at least Nortel i2004 phones with it.
Only few features are supported : Send/Receive CallerID, Redial, SoftKeys, SendText(), Music On Hold, Message Waiting Indication (MWI).

Install :

  • This version works on asterisk stable (tested with 1.0.5 and 1.0.6)
  • tar xvjf chan_unistim-0.9.2.tar.bz2 && cd chan_unistim-0.9.2
  • make && make install && make config (should work with a default install of asterisk)
  • edit /etc/asterisk/unistim.conf
  • start asterisk
How to configure i2004 phones :
  • Power on the phone
  • Wait for message "Nortel Networks"
  • Press quickly the four buttons just below the LCD screen, from left to right
  • If you see "Locating server", power off and try again
  • DHCP : 0
  • SET IP : a free ip of your network
  • NETMSK / DEF GW : netmask and default gateway
  • S1 IP : ip of the asterisk server
  • S1 PORT : 5000
  • S1 ACTION : 1
  • S1 RETRY COUNT : 10
  • S2 : same as S1
Issues :
  • As always, NAT can be tricky. If a phone is behind a NAT, you should port forward UDP 5000 (or change [general] port= in unistim.conf) and UDP 10000 (or change [yourphone] rtp_port=)
  • Only one phone per public IP (multiple phones behind the same NAT don't work). Setup a VPN if you want to do that.
  • If asterisk is behind a NAT, you must set [general] bindaddr= with your public IP. If you don't do that or the bindaddr is invalid (or no longer valid, eg dynamic IP), phones should be able to display messages but will be unable to send/receive RTP packets (no sound)
  • Don't forget : this work is based entirely on a reverse engineering, so you may encounter compatibility issues. At this time, I know three ways to establish a RTP session. You can modify [yourphone] rtp_method= with 0, 1 or 2. 0 is the default method, should work. 1 can be used on new firmware (black i2004) and 2 on old violet i2004.
  • If you have difficulties, try unistim debug and set verbose 3 on the asterisk CLI. For extra debug, uncomment #define DUMP_PACKET 1 and recompile chan_unistim.
  • bridging. Beware, it's a dangerous feature with the picky RTP stack of i2004 phones. RTP peer must send packets with a precise timing (every 20ms, 160 bytes payload for G711).
  • three way calling / multiple lines / transfer
  • call history
  • better codec negociation : if you enable g723/g729, although it works with asterisk in pass-thru, it's not great.
  • reload config


Related posts

Back to top

Ready to supercharge your business?

Dialer pricing from only $300 per month!