Polycom SoundPoint IP 501

Information and Easy Configuration Guide for the Polycom 501 IP Phone and Asterisk

There is good information on this site about setting up a Polycom phone to work with Asterisk, but it's rather spread out and unorganized, so I thought I'd take some time to get it all in one place. These instructions apply to the 501 models, but I believe they would adapt well to other Polycom models. I also don't go into pushing out configurations from XML files on a TFTP server, but it may be the way to go if you're doing more than one phone. In the instructions below, TFTP is only really used to push out the firmware updates.

About the Polycom 501

If you're reading this to see how good certain phones are with Asterisk, let me tell you that the Polycom 501 has excellent features, but is a pain to configure and very tempermental. I've used Soyo phones (they're the worst all around), ipDialog phones (they're only a little better) and Grandstream's GXP-2000. As of firmware, the Grandstreams are a decent phone, easy and quick to configure, but they have a horrible echo in the speakerphone for the remote party. A firmware fix for this was promised in October 2005, but I decided to not wait and get some Polycom 501 phones as well, as Polycom phones are legendary for being excellent speakerphones, and the 501 model was their lowest priced speakerphone model. At time of this writing, Grandstream GXP-2000's are around $105, and Polycom 501's are around $190.

The Polycom 501's do have more and easier-to-get-to functionality than the GXP-2000's, and have a more professional look and feel (and a great speakerphone), but the most notable downsides of the 501 are its awful, obtuse and slow configuration interfaces. The relevant options for Asterisk configuration are buried fairly deep on the console, and the big problem with the web interface is that it takes at least an extra minute to become available even AFTER the phone is up and running. And, of course, every time you make ANY change in ANY section of the web interface and click "Submit," it has to do a soft boot..... so you can understand how tedious this can become. It makes the XML/TFTP configuration option look pretty good, even for just a few phones.

Some other points which might be important to you are that the GXP-2000 boots up much faster than the 501 (50 seconds for the GXP-2000, three minutes for the 501) and the 501 is very sensitive to power failures during bootup. If there is a power loss during the "Updating initial configuration..." phase, the config file that is written to the local flash will become corrupt and the the phone will be locked in an eternal boot cycle. Fortunately, there seems to be an easy fix for it (see below). I experienced this problem while I was making this documentation. The GXP-2000's are much more resilient and much faster to boot.

Finally, I've also noticed that, for some strange reason, the GMT offset for your time zone will not behave properly sometimes. This is because the web configuration for the time server and GMT offset differs from what is loaded on the actual phone itself. When the web interface finally starts up 1-2 minutes after the phone is ready, it reloads that info instead.

Overall, I might recommend them over the GXP-2000's at this point for professional installations, but with some firmware updates from Grandstream, they may be more evenly matched in the future.


Configuring Asterisk

Proceeding to the configuration: these instructions were made with Asterisk 1.0.9, Polycom BootROM 2.6.2 and SIP software version 1.5.2.

For starters, might as well get the extension configured in Asterisk. As usual, three files to change: extensions.conf, sip.conf and voicemail.conf. I've seen mention elsewhere of having to put in special stuff for Polycom phones, but I've not had to do it with the firmware I'm using. These SIP extension setup instructions are pretty standard:

In extensions.conf, add a SIP extension as normal. I use the built-in Asterisk macros for mine:

[internal] ;Use your applicable context name (default, internal, etc.)
exten => 510,1,Macro(extensions,Sip/510,510)
;The above creates SIP extension 510 with the usual voicemail features

In sip.conf, I use a standard SIP phone setup:

[510] ;Extension 510
secret=polycom ;Password for the extension
context=internal ;Use the applicable context from extensions.conf
callerid=Firstname Lastname <510> ;Important to use the <extension#>
;so caller ID and voicemail shortcuts work properly

In voicemail.conf, the usual:

[internal] ;Use your applicable context name (default, internal, etc.)
510 => 1234,Firstname Lastname,email@address.com

Getting updated firmware

Next, get the latest firmware available and flash it via TFTP or FTP (FTP is strongly suggested, TFTP can be a royal pain). As you probably already know, Polycom is very protective when it comes down to getting their SIP updates and BOOTROM updates. They will only allow CERTIFIED resellers to download their updates and they're supposed to provide you with those updates.

      • SEP 2008 UPDATE *** Polycom now allow download directly without login - http://www.polycom.com/usa/en/support/voice/soundpoint_ip/soundpoint_ip301.html#download

Polycom Voice Products Download List

For you Linux newbies, an easy way to download the files directly into your tftp root folder is the utility WGET. The command line syntax is:

root> wget http://www.freedomphones.net/polycom/files/file.zip

Then unzip them with the unzip utility, the command line syntax is:

root> unzip file.zip

Set up TFTP server

Please note! The following information isn't really the "optimal" way of setting these phones up. Please see: http://www.voip-info.org/wiki/view/Asterisk%40Home+Handbook+Wiki+Chapter+7 and read the Polycom phones section. It REALLY goes in depth concerning all the files you're dealing with and also how to provision. Instead of setting these phones up by hand they should ALL be setup via files on the the FTP server. At the end of the day, an administrator really shouldn't even have to even touch the phone other than setting up the FTP server, login and password.

AsteriskTutorials.com Bulk Provisioning Polycom Phones tutorial

Set up and start up your TFTP server and make sure the files from the BootROM and the SIP archives are unZIPped and in the root TFTP directory. By default, the root TFTP directory is tftpboot, but this may be different on your machine if someone has changed it. (By the way, I tried leaving out some of the XML config files, and Weird Things Happened(tm). I think the default files need to be there originally for proper functionality, even if they're not customized.)

Config network parameters for firmware update

All the prelim work is done now, so assemble and power up your PolyCom 501, and be ready to hit buttons as soon as you apply power. When it powers on, it will give you a menu for a few seconds. Press the middle SETUP soft button to interrupt the boot. It will prompt you for a password. The default is 456. Enter that and hit OK.

In most cases, you will leave the DHCP Client field Enabled and just let it grab an IP off the wire. Otherwise, change it to Disabled and put in the IP/subnet mask/DNS/domain name/gateway info manually. Use the arrow keys, Sel and Del buttons to make edits. Also note that when changing fields, there's a soft button for selecting between entry modes with the number pad: numbers, upper case, or lower case (the a->1A button). When entering IP addresses, use the numerical mode (naturally) and use the asterisk (*) key for decimals.

While you're at this menu level, you can optionally configure SNTP here or via DHCP (/etc/dhcpd.conf file). To configure it statically in the phone, enter an SNTP (time server) address so it can sync up its clock/calendar, and put in the correct GMT offset for your time zone (numerical...for instance, Alaska Time is -9). I use for my SNTP server.

Next, select the "Server Menu: ... " option with the arrow keys and press Sel to enter the submenu. For server type, pick TrivialFTP and enter the IP address of your TFTP server in the field below.

Exit out of the submenu, then hit Exit again. Select "Save & Reboot" and it will do just that. When it reboots (multiple times), you can either let the timeout expire or press the START softkey to boot immediately. Make sure your TFTP server is running, and you should see it pulling down the updates. First it will update the BootROM (and write a log file to the TFTP server), and then it will update the SIP software after it's done "formatting the file system." The process will take a few minutes and a couple reboots and leaves several log files; just leave the TFTP server running until the phone completely boots up to the date/time display. I also noticed some apparent error messages on my little TFTP server Windows program...they're safe to ignore.

Configuring on the phone itself

At this point, I recommend you go in through the interface on the phone itself to configure as much as you can. Why? Because as I mentioned earlier, the web interface takes forever to become active after a reboot, and it has to reboot a LOT if you do all this on the web. Fortunately, most of the settings can be done on the phone itself...in fact, only tweaks for setting up the Message Waiting Indicator (MWI) light functionality and registering the Asterisk server under the individual lines need be done on the web interface.

Press the Menu button, then go to "3. Settings..." and then "2. Advanced...". Enter in the admin password of 456 again. Choose "Admin Settings..." and then "Reset to Default" and "Reset Local Config." IF YOU DO NOT DO THIS, SOME OF THE SETTINGS YOU MAKE BELOW WILL NOT BE SAVED. You need to overwrite the data that was in the XML configuration files on the TFTP server. (By the way, you can use the Format File System option under this menu to completely wipe everything away, including all ROM files and most settings, and start over from scratch.)

After rebooting, go back to Menu/Settings/Advanded and put in the following important settings:

1. Admin Settings
1. Network Configuration
This is the same as you edited during boot, for reference.
2. SIP Configuration
Server Address
This should be the IP address or DNS name of your Asterisk server.
Server Port
This should be 5060. Why it's not there by default, only PolyCom knows...

01/16/06 HEADS UP! - I believe this is wrong. By using this option, you are forcing the phone to communicate with the server address using ONLY this port. For example, in Asterisk@Home, I can see in the "Asterisk Info" page that my phone stayed STUCK on port 5060 under "SIP REGISTRY" and that's just bad news because UDP Port 5060 is for SIP communication. 5060 is only used for setting up and taking down calls. It should NOT stay STUCK on 5060. For example, my xten softphone clients that I have connected to the server show the port that the server and the client have negotiated to communicate over (example: 52443, 12131, 17229, 57835, etc) but the Polycom with 5060 configured in that Port Field SITS at 5060.

According to the admin manual, the setting we are working with is voIpProt.server.x.port (where the x is the server number. with the 501 you can have 3 different servers if you want)

If voIpProt.server.x.transport is set to TCPpreferred or UDPonly then use 5060 and don’t advertise the port number in signalling.
If voIpProt.server.x.address is an IP address, there is no DNS lookup and 5060 is used for the port but it is not advertised in signaling.
If port is 1 to 65535: This value is used and it is advertised in signaling.

Since it is advertised in signaling, thats why the A@H server kept it to 5060 under "SIP REGISTRY".

This should be set to "No." This is so that you can individually register
lines with the Asterisk server under the Line1/2/3 configs on the web
interface (see below).

03/13/06 HEADS UP! - I don't think this is correct either. According to the manual, this setting (voIpProt.server.x.register where x is the server number. This is the setting that corresponds with your configuration files on the ftp server) is "If set to 0, calls can be routed to an outbound proxy without registration" (please note, 0 = no and 1 = yes) (and I don't know what this setting really does). When I used this setting and rebooted my phone, I actually lost all the extension registrations to my asterisk server. In my opinion, you should leave this alone.

Line1: ...
This sub-menu is one of three, with Line2 and Line3 allowing you to add up
to three different extensions to the phone. There are three soft buttons
along the left of the display which show these lines. For the purposes
of this config (and what most people will do anyway), you'll have all
three of these lines show up as the same extension, so people can receive
and make multiple calls simultaneously.

Display Name
A mostly useless feature; does not override caller ID.
Just put the person's name there.
This is the extension number in Asterisk. To continue the example,
we'll set this as 510 to match our Asterisk config.
Auth User ID
Put the extension number in here again.
Auth Password
This is where you put the "password=" or "secret=" value from your
sip.conf file. In our example, this was "polycom".
Num Line Keys
Here is where you tell the phone how many soft buttons to assign
this line. As mentioned above, we'll put 3 here so that we have
three instances of the line.

03/13/06 HEADS UP! - This part needs a little better explaining. Num Line Key on the phone corresponds with reg.x.lineKeys in SIP.CFG. The manual states:
The number of line keys on the phone to be associated with registration ‘x’.

max = the number of line keys on thephone.
max = 1 on SoundStation® IP 4000,
max = 2 on IP 300 and 301,
max = 3 on IP 500 and 501,
max = 6 on IP 600,
max = 24 on IP 601 (without any Expansion Modules attached, only 6 line keys are available)

So please understand. By registering 1 extension under Line1, you can show all 3 buttons on the 501 as that same extension by using Num Line Key. BUT BEWARE, there is a catch! You can make 3 simultaneous calls from the polycom with no problem. If you have 1 or 2 calls going out and someone calls INTO the phone, they will go straight to voicemail!!! No matter what combination of settings, I cannot solve this problem of "call appearances" on asterisk. The only way to have all 3 lines work correctly is to assign 3 MISC extensions to the 3 Polycom lines, and use a Asterisk RING GROUP and the ring group number will be your extension. If you do this, you'll have to slap the Ring Group extension into "Label" or the Polycom will show the 3 lines as the 3 different extensions. What a pain.

12-10-12 UPDATE: With all 3 line buttons configured to the same extension, all that was needed to allow calls to come in while in a current phone call on the other line buttons was to enable Call Waiting via *70 which is disabled by default in Elastix (Asterisk).

Once you've put this information in and Exit back out, it will prompt you to "Save Config"...do so. Exit back out to the Advanced menu and choose to restart the phone...if you were slow, the phone will probably reboot on its own after all those changes anyway.

So now...you wait. Grab some coffee, surf a site. It'll be at least a few minutes before you can get in on the web interface.

Final configuration via web interface

Once you can pull it up, go to the Lines option at the top. Enter in "Polycom" for the username and "456" for the password. Username IS case sensitive. Select Line 1. Under Server 1, put your Asterisk server for the Address, 5060 for the Port. Register to 1. Line Seize Time Out to 30. Scroll down a bit to the bottom of the Line 1 config, under Message Center. Set Callback Mode to "Contact" in the dropdown. Set the Callback Contact number to the number you have configured for voice mail.

Hit Submit...and wait another few minutes. Don't worry, you only have to go in there one more time. When it reboots, you should see that the little phone icons are completely filled in black, indicating a successful registration. (You may have noticed that before you got on the web interface, the phone icons were hollow, indicating that you could call out but you were not properly registered to receive calls.)

At this point, you're all set EXCEPT that the MWI light will not come on, and the Messages button will not automatically dial voicemail for you. To fix this, pull the web interface up again and go to the General option. At the top, under User Preferences, click "One Touch Voice Mail" and "Bypass Instant Message" so that they're enabled. Once again, the behemoth reboots, but now you're all set.

Also, remember to keep in mind my earlier comment about the GMT offset — sometimes there are settings on the web interface which override what you've set on the phone itself, so check all the settings on the web before you ship it out to a user. Great phones, aren't they, folks? :)

One final thing to modify or delete is the digitmap. The digitmap allows the phone to intelligently detect numbers dialed (and presumably save the user from hitting send after a specified number of seconds). The digitmap is available on the web interface under SIP and Local Settings. The default is:


However, simply deleting this field will not hinder phone operations; the phone will simply not detect any numbers intelligently.

How to fix corrupt .cfg file after interrupted boot

If you interrupt the boot process by yanking power during startup (I had done this voluntarily once because I missed the chance to hit the config at first power), it may apparently corrupt some of the internal configuration files. However, instead of wiping everything and restarting from scratch, all I had to do was make the TFTP server available to the phone again with the default config info from the BootROM/SIP .ZIP files. It booted just fine with all the configuration info intact.

How to use Provisioning (Central Boot Server) to Deploy your Polycom 501's

The above instructions are nice, however, you need to remember if you edit the Polycom on the Polycom itself or its HTTP interface, those settings will over-ride any settings that you input into your main sip.cfg file. Matter of fact, all those individual settings will be put into a MACADDRESS-phone.cfg file with the following:


If you followed the above instructions and hand configuring these phones, you've just made a bunch of important settings specific to the phone you've configured. There are some settings that should be GLOBAL and in a SIP.CFG file and not in the MACADDRESS-phone.cfg file.

Even in a small deployment you want to use the provisioning capability of this phone. You'd be crazy not to. Yes it's a bit complicated, but that why I'm posting this information here. Trust me, you will thank me.

Polycom 501's and NATS. Welcome to hell

Polycoms are just not made with NATS in mind. Yeah sure, they have a couple of settings you can try but simply put, they suck on a NAT. These phone were made to exist on the same network at the PBX. In that case, they work great. The second you have to go over a NAT, whamo. Welcome to hell. These phones are IP phones. No matter where in the world I plug these guys in, they should work. Period. With 98% of businesses and 100% of homes with cable/dsl routers using NAT, you'd think Polycom would of tried harder. Unfortunately, that is not the case. I've already put in a request (01/19/06) at polycom's web site asking for

  • Optional STUN setting
  • IAX2 support (for asterisk servers. IAX is VERY NAT friendly)
  • NAT heartbeat option - To keep the NAT hole open, XTEN Softphone uses a tiny little 10 second NAT keep alive. WORKS GREAT!

Don't hold your breath for the IAX2 support. I figure we'll be seeing the STUN setting coming soon but I have no idea about the NAT heartbeat option.

NOTE: While STUN and IAX2 and NAT heartbeat are all good (unavailable) options, I found that my phones operated flawlessly by simply setting the registration timeout down to just 30 seconds. This will not create an undue burden on your Asterisk server and keep the NAT ports hopping!

It's near the top of the phone1.cfg file, but I renamed this file and have a unique file for each phone extension:


Where to Buy

to eliminate MWI chirp

in SIP.CFG set MESSAGE_WAITING sound values to "silent"
Created by: Matt_Matulaitis, Last modification: Thu 13 of Mar, 2014 (22:13 UTC) by jhops
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+