
Polycom central server setup for SoundPoint IP phones
Document v1.2 - Last Edited 02/06/2009 by Chris Sherwood of SureTeq, Inc.
Polycom phones are very good quality mid-level price point endpoints that are fairly easy to configure. I highly recommend Polycom phones for most VoIP applications. This document details the process of setting up a Polycom central server for configuring Polycom SoundPoint versions IP301, IP430, IP501, and IP601. Note that this may also work for other phone versions, but since I have not personally tested them, I am leaving them out of this document.
This document was created based on a Trixbox v2.0 implementation of Asterisk v1.2.14. It should also work on other distributions and Asterisk versions without too much tweaking.
SureTeq is now an FtOCC authorized Trixbox support vendor. We can provide remote support and troubleshooting, or we can design, implement and support your company's complete VoIP PBX solution.
Let SureTeq provide you with FtOCC certified trixbox Pro and/or trixbox CE hourly support! Hourly rates and support contracts are available. For pricing information and contact details, please click here or contact us!
-
SureTeq now has a blog/RSS feed! Subscribe to our blog for tips, tricks,
news, and general information about all things Asterisk/Trixbox.
Click here for the SureTeq blog!
Not your version? Click here
to see the index of all SureTeq documentation! - Previous versions and
other product documentation.
5. Polycom configuration files
6.2 - Messages button configuration
Hey everyone,
Giving credit where credit is due, the foundation of this document was based upon the information in voip-info.org's Asterisk@Home handbook chapter 7.2.2.
If you have found this document useful, or have realized the hours upon hours of learning curve this document has saved you, please feel free to donate using the PayPal button below...donations are always appreciated!
OR...if you have enjoyed this document and plan on purchasing some VoIP equipment, I would greatly appreciate if you use the banner link for Voipsupply.com below. I have purchased equipment from Voipsupply.com many times, and I have always found their pricing to be great and their shipping fast, so I definitely recommend them. By using the link below, you won't be raising YOUR purchase price at all...you would simply be donating a small percentage of your purchase to me, and I would definitely appreciate it!
Thanks,
-Chris Sherwood
My Voipsupply.com banner link:
Ok, so just how does this central server thing work? Take a look at the topology overview, and you should have a good idea how all of the pieces fit together.

The advantage of this setup is that, once a phone has been initially configured, you only need to make changes to the config files and then reboot the phone for it to get its new settings. When you are dealing with 10 or more phones in an organization, this becomes a huge time saver. So let's get started!
On your Asterisk server (or other Linux DHCP server), edit the dhcpd.conf file located in the /etc directory with:
nano –w /etc/dhcpd.conf
Here is the dhcpd.conf file (my notes are in red)
# At the beginning of the file, outside any subnet definition, define the option code for # the boot server:
option boot-server code 66 = string; # this tells DHCP to set option 66 as a string variable (which will be defined later)
ddns-update-style ad-hoc; # the DHCP service wouldn’t start without this option
# define the subnet (customize this for your network)
subnet 192.168.200.0 netmask 255.255.255.0 {
# default gateway
option routers 192.168.200.254;
option subnet-mask 255.255.255.0;
option domain-name "asterisk.local";
option domain-name-servers 4.2.2.2; # AT&T’s public DNS server - you should use your own DNS server(s) here
option time-offset -28800; # Pacific Standard Time, -28000 PST, 3600/hr
option ntp-servers clock.redhat.com; # NTP server
# if you want dhcp to issue IP's to other computers in your network (separate from the phones)
range dynamic-bootp 192.168.200.100 192.168.200.199;
default-lease-time 21600;
max-lease-time 43200;
#Polycom phones configuration starts here
group {
# Boot server, including protocol (FTP) and username/password
# My FTP server (Asterisk box) is 192.168.200.16 – modify for your FTP server (FTP configuration below)
option boot-server "ftp://polycom:12345@192.168.200.16";
# Now, list the phones by network address, to give them
# defined IP per phone. Note that phones listed here is
# what makes them part of the group that gets the above
# configuration
host x150 { # host name is optional, but makes for easy reference
hardware ethernet 00:04:f2:12:05:7d; # MAC address of phone
fixed-address 192.168.200.118; # IP you want assigned to the phone
}
# Repeat the lines above starting with host for as many phones as you would like to
# have configured.
} # end of Polycom group
} # end of subnet block
Ok, now to ensure that the DHCP server is started and that it starts automatically when we boot the computer:
service dhcpd restart
chkconfig –levels dhcpd on
*** NOTE: If you want different SIP firmware, or different configurations for different sets of phones, you simply add another group { } in the DHCP configuration, but give it a different FTP username and password.
*** NOTE 2: To view DHCP status live (for troubleshooting purposes), do the following:
tail -f /var/log/messages
You should see a lot of DHCPREQUEST's and DHCPACK's etc. in the messages log as your phones boot. CTRL+C to exit viewing the log.
That’s it for DHCP configuration.
To set up FTP on the Asterisk box, first we need to create a specific user for the polycom phones. Note that in the DHCP configuration, I used polycom/12345 as the username and password…you will want to adjust this for whatever username and password you would like to use.
In the Linux CLI, do the following:
useradd polycom
passwd polycom (enter the password twice)
Now, we want to lock down the polycom user so that it can’t log into the system, and can only be used to access the FTP site:
nano /etc/passwd
Scroll to the end of the file and change:
polycom:x:502:502::/home/polycom:/bin/bash
to
polycom:x:502:502::/home/polycom:/sbin/nologin
Now we need to edit the FTP configuration file:
nano /etc/vsftpd/vsftpd.conf
Find the line that says chroot_list_enable. Uncomment it and change it to YES so that it looks like:
chroot_list_enable=YES
At the bottom of the file, you will also want to have the following two lines:
userlist_enable=YES
userlist_deny=NO
This sets the FTP server so that only users in the userlist_file will be allowed to log in via FTP.
Now create /etc/vsftpd.chroot_list and /etc/vsftpd.user_list and add a single word ‘polycom.’ (Or whatever username you created above).
touch /etc/vsftpd.chroot_list
touch /etc/vsftpd.user_list
echo polycom > /etc/vsftpd.chroot_list
echo polycom > /etc/vsftpd.user_list
Make vsftpd start automatically with Linux:
chkconfig –levels 345 vsftpd on
Restart vsftpd with the new configuration:
service vsftpd restart
*** NOTE 2: To view DHCP status live (for troubleshooting purposes), do the following:
tail -f /var/log/xferlog
You should see files going to and from your phone via the FTP server. CTRL+C to exit viewing the log.
5. Polycom configuration files
Remove write permission for the polycom user in its home directory (also its FTP root directory):
cd /home/polycom
chmod u-w .
Create the directories for files uploaded from the Polycom phones in /home/polycom:
mkdir contacts
mkdir log
mkdir overrides
Give the polycom user permissions to the folders we just created:
chown polycom: log
chown polycom: contacts
chown polycom: overrides
Download the SIP files from Polycom:
Go to http://www.polycom.com/resource_center/1,,pw-492,00.html and download the file ‘SoundPoint IP / SoundStation IP SIP Software 1.6.7’ in the ‘Publically available’ section.
Put the downloaded file into /home/polycom and unzip it.
*** NOTE: Why am I using SIP firmware version 1.6.7 instead of the latest version (2.0 something)? Because there have been found to be bugs (RFC compliance issues) in the newer versions of the SIP software.
Now we need to create a configuration file for your Polycom phone. In the /home/polycom directory, copy the 000000000000.cfg file to a new file named after your Polycom phone’s MAC address. (You can find the MAC address by choosing Menu à Status à Network à Ethernet on the Polycom phone, or by looking at the sticker on the back). So in my case, I would do:
cp 000000000000.cfg 0004f212057d.cfg
*** NOTE: The filename needs to be all lowercase.
Now, 'nano -w' your new config file so that it looks like this:
<?xml version="1.0" standalone="yes"?>
<!-- $Revision: 1.14 $ $Date: 2005/07/27 18:43:30 $ -->
<APPLICATION APP_FILE_PATH="sip.ld" CONFIG_FILES="x150.cfg, server.cfg, phone1.cfg, sip.cfg" MISC_FILES="" LOG_FILE_DIRECTORY="" OVERRIDES_DIRECTORY="" CONTACTS_DIRECTORY=""/>
*** NOTE: The ‘<APPLICATION’ line is all one line…to edit with wordwrap off, use 'nano –w filename'.
This file is now telling the phone to look for the config files in the following order: x150.cfg (to be created next), server.cfg, phone1.cfg, sip.cfg. The phone1.cfg and sip.cfg contain defaults…the config files are processed in order, so to override any of the default settings in phone1.cfg or sip.cfg, you need to put them into the x150.cfg or server.cfg file. To edit global default settings, edit the phone1.cfg and sip.cfg files.
Now create the main custom config file for your extension.
touch x150.cfg
Name the file appropriately for the extension you are creating.
My x150.cfg file looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Per-phone configuration in this file -->
<reginfo>
<reg
reg.1.displayName="My Name"
reg.1.address="150"
reg.1.label="150"
reg.1.auth.userId="150"
reg.1.auth.password="12345"
reg.1.lineKeys="2"
/>
</reginfo>
This is telling the phone that it will be SIP extension 150 (previously set up in Asterisk/Trixbox) and it will use SIP secret ‘12345.’ Any other extension-specific default settings you would like to override should go into this file. The 'lineKeys' setting tells the phone how many virtual line appearances of the extension to use...for the IP430's, set it to 2. For IP601's, you would want to set it to 6.
Now, create the server.cfg file. This file is used for default server settings for the phones.
touch server.cfg
My server.cfg file looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Our local phone system common configuration in this file -->
<localcfg>
<server voIpProt.server.1.address="192.168.200.16"/>
<SIP>
<outboundProxy voIpProt.SIP.outboundProxy.address="192.168.200.16"/>
</SIP>
<voice>
<volume voice.volume.persist.handset="1"
voice.volume.persist.headset="1"/>
</voice>
<TCP_IP>
<SNTP tcpIpApp.sntp.daylightSavings.enable="1"/>
</TCP_IP>
<localcfg>
This file is telling the phone that the Asterisk server is located at 192.168.200.16 and to use daylight savings time.
The following is a list of very common configuration file settings.
Effective March 11th, 2007, there are new DST rules for much of North America and Canada. Here is how to update your Polycom central server to use these new settings permanently.
Go to your FTP home directory (/home/polycom) and 'nano -w sip.cfg'.
Find the daylight savings time settings (to search in nano, do CTRL+W, type in what you want to find such as 'daylight' and press ENTER). They should be in the <TCP_IP> section and should look like this:
tcpIpApp.sntp.daylightSavings.enable="1"
tcpIpApp.sntp.daylightSavings.fixedDayEnable="0"
tcpIpApp.sntp.daylightSavings.start.month="4"
tcpIpApp.sntp.daylightSavings.start.date="1"
tcpIpApp.sntp.daylightSavings.start.time="2"
tcpIpApp.sntp.daylightSavings.start.dayOfWeek="1"
tcpIpApp.sntp.daylightSavings.start.dayOfWeek.lastInMonth="0"
tcpIpApp.sntp.daylightSavings.stop.month="10"
tcpIpApp.sntp.daylightSavings.stop.date="1"
tcpIpApp.sntp.daylightSavings.stop.time="2"
tcpIpApp.sntp.daylightSavings.stop.dayOfWeek="1"
tcpIpApp.sntp.daylightSavings.stop.dayOfWeek.lastInMonth="1"
These may appear on a single line...if so, just ensure there is a space between each setting.
Change these settings to this (changes are in red):
tcpIpApp.sntp.daylightSavings.enable="1"
tcpIpApp.sntp.daylightSavings.fixedDayEnable="0"
tcpIpApp.sntp.daylightSavings.start.month="3"
tcpIpApp.sntp.daylightSavings.start.date="8"
tcpIpApp.sntp.daylightSavings.start.time="2"
tcpIpApp.sntp.daylightSavings.start.dayOfWeek="1"
tcpIpApp.sntp.daylightSavings.start.dayOfWeek.lastInMonth="0"
tcpIpApp.sntp.daylightSavings.stop.month="11"
tcpIpApp.sntp.daylightSavings.stop.date="1"
tcpIpApp.sntp.daylightSavings.stop.time="2"
tcpIpApp.sntp.daylightSavings.stop.dayOfWeek="1"
tcpIpApp.sntp.daylightSavings.stop.dayOfWeek.lastInMonth="0"
CTRL+X to exit, and answer 'Y' when asked to save. Reboot your phones and they will have the new setting.
6.2 - Messages button configuration
Another common update to the default config files is telling the 'Messages' button what to do. In order to work with Trixbox, this needs to be changed.
Go to your FTP home directory (/home/polycom) and 'nano -w phone1.cfg'.
Find the '<msg' section and change the following variables:
msg.bypassInstantMessage="1"
msg.mwi.1.callBackMode="contact"
msg.mwi.1.callBack="*97"
CTRL+X to exit, and answer 'Y' when asked to save. Reboot your phones, and they will have the new setting.
If you haven’t already, you should now create an Asterisk or Trixbox SIP extension 150 with secret 12345. For detailed Trixbox extension setups, please see my Trixbox Setup Guide at http://www.sureteq.com/asterisk.
You should now be able to reboot your phone. It will get the latest SIP software and the custom configuration you have created.
A note from the author:
Hey everyone!
If you have found this document useful, or have realized the hours upon hours of learning curve this document has saved you, please feel free to donate using the PayPal button below...donations are always appreciated!
OR...if you have enjoyed this document and plan on purchasing some VoIP equipment, I would greatly appreciate if you use the banner link for Voipsupply.com below. I have purchased equipment from Voipsupply.com many times, and I have always found their pricing to be great and their shipping fast, so I definitely recommend them. By using the link below, you won't be raising YOUR purchase price at all...you would simply be donating a small percentage of your purchase to me, and I would definitely appreciate it!
Thanks,
-Chris Sherwood
My Voipsupply.com banner link: