Polycom central server setup for SoundPoint IP phones

Document v1.2 - Last Edited 03/03/2008 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.  Hourly rates and support contracts are available.  For pricing information and contact details, please email 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.
 

 

1.  A word from the author

2.  Topology overview

3.  Set up DHCP server

4.  FTP configuration

5.  Polycom configuration files

6. Miscellaneous settings

    6.1 - DST update

    6.2 - Messages button configuration

7.  SIP extension setup
 


 

1.  A word from the author

 

Hey everyone,

 

I hope you enjoy this documentation.  Please feel free to email 'chris at sureteq dot com' with any comments, questions, or recommendations on how to improve this document.  I am always looking to provide VoIP enthusiasts with the best solutions available!

 

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, and plan on purchasing some Polycom phones or other 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

SureTeq, Inc.

My VoipSupply.com Link:

 


2.  Topology overview

 

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!

 

3.  Set up DHCP server

 

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.

 

4.  FTP 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.

 

6.0 - Miscellaneous settings

 

The following is a list of very common configuration file settings.

 

6.1 - DST update

 

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.

 

7.  SIP extension

 

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.