Nortel 2002 phones

I’ve been given a few Nortel 2002 phones and I’d like to connect them to my FreePBX system. I realise that they use UNISTIM protocol but I read that there is built-in support in Asterisk. From my research, there should be a unistim.conf file in /etc/asterisk but there isn’t. If I create one, will it be recognised? It appears that there should also be a chan_unistim folder somewhere but I can’t find it.

I hope that someone can tell me how to make these things work.


I had it working in an past release of PBX in a Flash. the UNISTIM protocol came installed, But it wasn’t great performer. The phones “work”, but they had some interoperability issues when you tried to do anything really beyond make/receive a phone call. I’m not sure if the UNISTIM will work in the newer releases of asterisk at all.

But, if you find a release with UNISTIM, you can create an extension in FreePBX, then create a UNISTIM.conf file in /etc/asterisk and put your extension values into it


port=5000                ; UDP port
[8860]                                        ; extension of the device for reference
line => 8860                            ;the actual extension of the device
device=00148BF43A20            ; mac address of the phone (look on the back should be there)
maintext0="Asterisk"                ; default = "Welcome", 24 characters max. Shows on the LCD
callerid="First Last" <5558860>; ;CLID that asterisk will pass
context=from-internal    ; context, default="default"
mailbox=8860         ; Specify the mailbox number. Used by Message Waiting Indication
linelabel="8860"     ; Softkey label for the next line=&gt; entry, 9 char max.
rtp_port=10000       ; RTP port used by the phone, default = 10000. RTCP = rtp_port+1
rtp_method=3         ; If you don't have sound, you can try 1, 2 or 3, default = 0
status_method=0    ; If you don't see status text, try 1, default = 0
extension=line        ; Add an extension into the dialplan. Only valid in context specified previously.        
; none=don't add (default), ask=prompt user, line=use the line number

dateformat=1          ; 0 = month/day, 1 (default) = day/month
timeformat=1          ; 0 = 0:00am ; 1 (default) = 0h00, 2 = 0:00
contrast=5               ; define the contrast of the LCD. From 0 to 15. Default = 8
country=us              ; country (ccTLD) for dial tone frequency. See README, default = us


Plug the phone in, when you see NORTEL text on the screen, slide your fingers along the bottom row of buttons under the LCD from left to right pushing each one.

EAP Enable? [0-N, 1-Y]: 0
DHCP? [0-N, 1-Y]: 1
Cached IP? [0-N, 1-Y]: 1
DHCP:0-Full,1-Partial: 1
S1 IP: (Asterisk’s Server IP Address) S1 PORT: 5000
S2 IP: (Asterisk’s Server IP Address)
S2 PORT: 5000
Cfg XAS? [0-No, 1-Yes]: 0
VOICE VLAN?[0-N, 1-Y]: 0
PC PORT?[0-OFF,1-ON]: 1
DATA VLAN? [0-N, 1-Y]: 0
PCUntagAll?0-No,1-Yes: 0
SPEED0-10Mb,1-100Mb: 1
GARP Ignore?[0-N, 1-Y]: 1

That should register your phone.

If you created the file and restarted Asterisk but it’s not responding, post the output of
module show like unistim
(typed at the Asterisk command prompt)

Thank you very much to both of you. It works! There are a few things to iron out with the unistim.conf file to make it work the way I would like but the basic functionality is there. I was delayed a little because I forgot to restart Asterisk after making changes. Also, I couldn’t make Config Edit work in the FreePBX GUI - it said that the file was not writable. I used the nano editor from the command line.

Thanks again!


There are a couple of things that don’t work:

  1. If I call another extension the CLI is wrong - it is received either as blank or the IP address of the FreePBX system, depending on the device called. I put the CLI in the unistim.conf file as well as in the FreePBX settings for the extension.
  2. I added it to my ring group but it doesn’t ring when a call comes in to the group.
    Any thoughts or shall I just live with it?


This is as is. You are talking about a protocol that was deprecated almost 20 years ago. While chan_unistim wasn’t in the current list of slated removals from Asterisk in v19, I doubt it will survive the next round of removals.

There is just no real support for Unistim in FreePBX.

1 Like

those 2002’s were a pita on an actual Nortel. They were, at best, a nod to Unistim functionality on asterisk.

Thanks again. I will keep tinkering. The failure to ring in a ring group is strange.


Not really. You sure the ringgroup sees this as Unistim?

I’m not quite sure what you mean. I added the extension in the FreePBX GUI as a custom type. Should I have edited a conf file somewhere? The ring group is just a list of extensions as far as I can tell.


Right, so a Custom type has the tech of CUSTOM which means the Dial string for it is CUSTOM/100 (if exten is 100). That doesn’t really dial anywhere. Did you update the dial string with the proper tech prefix?

Why don’t you show call from the ring group so we can see what is actually happening.

I hadn’t changed the dial string but I have now changed it to USTM/104 - is that correct? It didn’t seem to make any difference. Here’s the details of a call to the ring group coming in from an analogue line. I have blanked out the number of my mobile which made the call:

Time Event Type UniqueID LinkedID Cid num Extension Context Channel Name
2021-04-22 09:06:54 CHAN_START 1619078814.52 1619078814.52 s from-analog DAHDI/2-1
2021-04-22 09:06:59 CHAN_START 1619078819.53 1619078814.52 103 s from-internal PJSIP/103-0000001d
2021-04-22 09:06:59 CHAN_START 1619078819.54 1619078814.52 761 s from-internal PJSIP/761-0000001e
2021-04-22 09:07:13 HANGUP 1619078819.53 1619078814.52 103 199 from-internal PJSIP/103-0000001d
2021-04-22 09:07:13 CHAN_END 1619078819.53 1619078814.52 103 199 from-internal PJSIP/103-0000001d
2021-04-22 09:07:13 HANGUP 1619078819.54 1619078814.52 761 199 from-internal PJSIP/761-0000001e
2021-04-22 09:07:13 CHAN_END 1619078819.54 1619078814.52 761 199 from-internal PJSIP/761-0000001e
2021-04-22 09:07:13 HANGUP 1619078814.52 1619078814.52 07899xxxxxx h ext-group DAHDI/2-1
2021-04-22 09:07:13 CHAN_END 1619078814.52 1619078814.52 07899xxxxxx h ext-group DAHDI/2-1
2021-04-22 09:07:13 LINKEDID_END 1619078814.52 1619078814.52 07899xxxxxx h ext-group DAHDI/2-1

I hope that is readable.


Sorry - I should have said that the ring group is extension 199 and the members are extensions 103, 761 and 104 (the Unistim phone).


This isn’t what I wanted. Go into the system cli and do asterisk -rvvvvvvvvv make the test call then copy and paste that to a pastebin and show us that.

I did that but the resulting file was 40 kbytes and too large for the forum. I took a look at the log produced on the GUI and saw these lines which may be a clue:

[2021-04-22 13:43:18] NOTICE[21485][C-00000020] chan_unistim.c: Device ‘104’ has no @ (at) sign!
[2021-04-22 13:43:18] NOTICE[21485][C-00000020] chan_unistim.c: No available lines on: 104
[2021-04-22 13:43:18] WARNING[21485][C-00000020] app_dial.c: Unable to create channel of type ‘USTM’ (cause 34 - Circuit/channel congestion)

Thanks in advance.

Probably because UNISTIM requires a format of [email protected] so if the device is named 104 then your dial string needs to be USTM/[email protected]

Edit: For the record, I didn’t know that format was required until I read that above link 5 minutes ago.

For custom extensions you need to add # at the end of the ring group member’s extension number, as though it were an external number.

It is calling on it fine. The dial string was wrong.

My mistake; I must have been thinking of something different. Sorry to add confusion.

I added 104 to the end of the dial string and it now rings with the rest of the ring group! Thank you very much for that, Tom. I had read the page you mentioned but when I got the error about the @ sign, I concluded that the dial string should be USTM/[email protected] - I thought that was the required context.

Now I only have one problem left (I think!). That is that the extension number of the Unistim phone does not come up when I call another extension - the other phone’s display shows either blank or the IP address of the FreePBX server, depending on the type of phone. Any ideas?