Configuring Polycom SoundPoint IP Phones

Provisioning New Phones

Thanks to sipXecs's advanced configuration interface, provisioning new Polycom phones is relatively straightforward. However, you must have your network configured properly before you start

Network Configuration Requirements

In order for the phone to recognize the sipXecs server as it's boot server at startup, your DHCP server needs to provide additional necessary information to the phone as it obtains an IP address. By default the phone is configured to look for the DHCP option Boot Server Host Name to obtain the IP address of host name of the (T)FTP server that is configured to provide the phone configuration information.

  • Using a Windows DHCP server
    • In the Scope Options settings area change Option 66 to the IP or hostname of your sipXecs server
  • Using a Linux DHCP server
    • Add the following line to your DHCP server config file
      /etc/dhcpd.conf
      option tftp-server-name "your sipXecs hostname or IP address";

FTP writeback configuration

During installation of the sipXecs server both an FTP and TFTP service are automatically configured and enabled. Polycom phones by default try to contact the sipXecs FTP server and will attempt to write user preferences each time a user makes a preference change such as a ringtone or background image, or to write log files. By default sipXecs 4.2 an up is configured to allow Polycom phones to write these files via FTP. If for some reason your Polycom phones are unable to write these files then the sipXecs FTP service is not configured to allow these writebacks then user preferences will be lost every time a firmware/bootrom upgrade is performed.

To enable FTP writeback for Polycom phones, run the following commands on your sipXecs server:

setfacl -m user:PlcmSpIp:rwx /var/sipxdata/configserver/phone/profile/tftproot/
setfacl -d -m user:PlcmSpIp:rw- /var/sipxdata/configserver/phone/profile/tftproot/

There are security implications to allowing the PlcmSpIp user write access to the tftproot folder. Use with caution.

If you enable FTP writeback for Polycom phones sipXecs will not be aware of files that the Polycom phones create. If you ever remove a Polycom phone from sipXecs then you will have to manually remove the extra files the Polycom phones create. These files' names always start with the MAC address of the phone.

When to use FTP and when to use TFTP

The TFTP protocol does not traverse NAT well, so in instances wheere you have aremote users, branches or network segments that do not route over private links, vpns or bridged Ethernet segments, thos phones should be using FTP.

Since the Polycom handset is a passive FTP client, the FTP address must be reachable from that network segment and the FTP server address should be used in the phone menu instead of the TFTP option. Remember to make sure your firewall allows FTP. The default FTP settings for sipx also include PASV ports of 50000-500050 (tcp) for transfer, and port 21 for the control port, so adjust your firewall accordingly.

Polycom BootROM/Firmware

The latest supported Polycom firmware for sipXecs 4.2.x are:
3.1.3RevC.
3.2.4.

SLA will not work with 3.2.2

The latest bootrom supported by all current Polycom models is 4.3.0.

Installing BootROM/Firmware

Once you have downloaded the bootrom and firmware you will need to upload it to the sipXecs server and activate it. To upload the bootrom and firmware, follow these steps:

  • Login to sipXecs with a user that has admin privileges.
  • Navigate to Devices -> Device Files.
  • From the Add Files dropdown menu select Polycom Soundpoint:
  • In the Name field enter Polycom-SP-Firmware. In the Description field enter any description you wish:
  • Click OK. The Polycom-SP-Firmware file repository is now ready to accept files. You will notice that the file repository is Inactive:
  • Click the Polycom-SP-Firmware link. Browse for the firmware and bootrom files you just downloaded.
  • Click Apply.
  • The files will now upload. This may take a while.
  • Once completed, you will now see the files have uploaded to the server. Click Activate to enable the phones to download the bootrom and firmware:

    Phone Setup Using the sipXecs Configuration Server

Once the phone is able to find a boot server at startup, all remaining configuration is done automatically and remotely using the sipXecs configuration server and Web UI. The tasks required to complete the installation are as follows:

  1. Create at least one user and group who will be using the phone.
  2. Create a phone configuration group to speed up future provisioning.
  3. Connect phone to network and allow sipXecs auto provisioning to generate temporary ID
  4. Assign one or several users to the phone (create lines).
  5. Generate the profile for the phone and reboot the phone.

If the phone is unable to find its boot server, it displays a clearly visible error message at the beginning of the boot sequence. If this message does not come up the phone successfully communicated with its boot server.

Create User Group

To create a user group:

  • Navigate to Users -> User Groups
  • Click the Add Group link:
  • Enter a descriptive group Name and Description, then click OK
  • If you wish to modify any of the group settings (optional), click on the link of the group you just created:

Create User

To create a user:

  • Navigate to Users -> Users
  • Click the Add New User link:
  • Fill in the necessary information for the user. Note that once you start typing in an existing user group that it is listed in a yellow box just below the group text box. To select the group, simply click it.:

Create Phone Group

Phone Groups help to streamline provisioning of phones so that all provisioning information is not required to be input every time a phone is configured.
To create a phone group:

  • Navigate to Devices -> Phone Groups
  • Click Add Group:
  • In the Name field enter something descriptive such as All-Polycoms. In the Description field enter anything you like:
  • Click OK
  • Click on the name of the group you just created:
  • You will now see a list of all supported phone models. For the sake of brevity the entire list will not be shown.
  • Select the Polycom phone model you wish to create a configuration for from the supported phone models list. For this example we will select Polycom SoundPoint IP 650/670. You will now see the configuration settings page for this phone:

Polycom Phone Group Configuration Settings

Since most of the default Polycom settings in sipXecs are sufficient in most cases, it is not necessary to review every single configuration parameter. There are a few settings that may need to be changed to accommodate various installations.

These are only recommendations. You may set any of these values to whatever you need.

  • DTMF
    • chassis.masking: If checked, DTMF tones will be substituted with a non-DTMF pacifier tone when dialing in hands-free mode. This prevents DTMF digits being broadcast to other surrounding telephony log.device.s or being inadvertently transmitted in-band due to local acoustic echo.
  • Sound Effects -> Advanced Settings
    • Message Waiting
      • Type: Chord. This setting will audibly remind users they have a voice message waiting.
    • Ring and answer
      • Ringer: Highest Trill. This is the ringer notification used when receiving an intercom call. Changing this ringtone allows users to be able to distinguish regular calls from intercom calls.
  • SNTP
    • address: IP.OF.NTP.SERVER. If you have an internal NTP server it is recommended to use it instead of an external NTP server. If the phone cannot contact an NTP server the time display will flash on the phone.
    • gmtOffset: Change this setting to whatever your GMT offset is (in seconds).
    • Enable DST: If your timezone uses Daylight Savings Time, enable this setting.
    • daylightSavings.xxxxxxx: Settings specific to your Daylight Savings Time zone, such as what month, day, etc. that DST starts and ends.
  • Call Handling
    • Do Not Disturb: Enables "Do Not Disturb" button on phones
    • transfer.blindPreferred: For Soundpoint IP 32x/33x series phones, set blind transfer as preferred transfer method.
    • Single key press conference: If checked, the conference will be setup after pressing the Conference soft key or Conference key the first time. Also, all sound effects (dial tone,DTMF tone while dialing and ringing back) are heard by all existing participants in the conference.
  • Hold Reminder
    • enabled: Reminds users that they have a call on hold.
  • Presence
    • pres.idleSoftKeys: unchecked. Since the "buddies" feature of Polycom phones isn't implemented in sipXecs these keys are not needed.
  • Features
    • enhanced-feature-keys: checked. Enabling this settings will allow for advanced key programming for the phones. More information can be found here.

Dial Plan Configuration

One of the more daunting aspects of configuring Polycom phones is creating a dial plan that will accommodate all of the numbers that you anticipate your users will dial. Section 2.1.5 of RFC 3435 explains how to develop a standard digit map for your dialplan.

Don't forget to set a Time out value for your digit map in the phone group configuration. A good value to try is 2

The default digit map that sipXecs suggests is:

[2-9]11|0T|100|101|011xxx.T|9011xxx.T|1[2-9]xxxxxxxxx|91[2-9]xxxxxxxxx|9[2-9]xxxxxx|*xx|[8]xxx|[2-7]xx

Which is interpreted as follows:

  • [2-9]11: local services dialing rule; 211,311,411,511,611,711,811 and 911 are dialed immediately.
  • 0T: Local operator rule: After dialing "0" the phone waits T seconds and then completes the call automatically.
  • 100: Auto-attendant default extension.
  • 101: Voicemail default extension.
  • 011xxx.T: International rule without prefix.
  • 9011xxx.T: International rule with prefix.
  • 1[2-9]xxxxxxxxx: Long Distance rule without prefix, dialed immediately.
  • 91[2-9]xxxxxxxxx: Long Distance rule with prefix, dialed immediately.
  • 9[2-9]xxxxxx: Local call with prefix, dialed immediately.
  • *xx: 2 digit star codes
  • [8]xxx: 3 digit extension prefixed with an 8 (routes calls directly to voicemail of extension xxx).
  • [2-7]xx 3 digit extension beginning with either 2, 3, 4, 5, 6, or 7, dialed immediately.

Some suggested digit map entries to accommodate other sipXecs services:

  • *4[2-7]xx: Retrieve call from park (if park slot is three digit extension).
  • *xx[2-7]xx: Enables immediate dial for services like intercom and directed call pickup.

If you need to set up your digit map to handle 4 digit dialing simply modify the [8]xxx entry to [8]xxxx and the [2-7]xx entry to [2-7]xxx. Essentially you are only adding one x on the end of the entry.

Connect phone to network and allow sipXecs auto provisioning to generate temporary ID

To add a phone:

  • Plug the device into your sipXecs network
  • Wait for phone to download firmware and bootrom. This process is outlined in First Time Phone Boot Process
  • Once the phone has completed booting, sipXecs will assign a temporary ID to the phones. This is a 3 character alphanumeric ID that will be something like F78.
  • Remember this ID as you will need it to fully provision the phone

Add Line(s) To Phone

Now that you have auto-provisioned a phone you need to add at least one line so the phone can register to the sipXecs server.

  • Browse to Devices -> Phones and then select unassigned in the Filter By... drop down list
  • Click the serial number of the phone that was just auto-provisioned. The Description column contains the temporary ID for easy searching. Note that there is no line currently assigned to the phone:
  • Click the Lines link on the left side of the page.
  • Click the Add Line link:
  • In the User field type the User ID of the user you created earlier then click Search.
  • Select the user by checking the box next to the User ID, then click Select:
  • Click OK.

Send Profiles To Phone

The phone is now configured but since profiles have not been sent to the phone, the configuration files have not been generated. Sending profiles to the phone involves:

  • Checking the box next to the phone serial number
  • Clicking the Send Profiles button:
  • Confirming no automatic restart of phone
  • Click OK

You should now be ready to plug your phone into the network and begin the provisioning process

First Time Phone Boot Process

The following are images of the first time boot process for a Polycom IP 550

1. Phone is plugged in:

4. Format file system for BootROM

7. Saving New Firmware

10. Running new firmware:

2. Phone is waiting for DHCP:

5. Reboot then network init:

8. Checking new firmware:

11. Configuration processing:

3. New BootROM found, updating:

6. Downloading new firmware:

9. Loading new firmware:

12. All done!:

Polycom SoundPointIP Configuration File Notes

Introduction

The following is a collection of notes on a number of Polycom SoundPointIP Configuration File attributes.

sip - tcpIpApp.sntp.daylightSavings

The parameters that control Daylight Savings Time (DST). (These settings are also found in the Web GUI under General -> Time, but we recommend that you avoid making any changes using the Web GUI.)
Attribute Interpretation
enable 1 (default): Enable DST using these rules.
0: Disable DST.
start/stop time The 24 hour clock time of day to start/stop DST. The defaults is 2 (2am.)
start/stop month The month of the year to start/stop DST, according to the following mapping (which is off-by-one from Java):
1 - January
2 - February
... ...
12 - December
The start default is 3 (March), and the stop default is 11 (November).
fixedDayEnable 0 (default): Start and stop DST based on the day of the week. e.g. The 1st, 2nd, 3rd, 4th, or last Sunday of November.
1: Start and stop DST on a fixed day of the month. e.g. October 26th.
When 'fixedDayEnable' is 0...
start/stop dayOfWeek The day of the week to start/stop DST, according to Abrahamic mapping (which is the same as Java):
1 - Sunday
2 - Monday
... ...
7 - Saturday
The default is 1 (Sunday.)
start/stop dayOfWeek.lastInMonth 0 (default): Start/stop DST on the nth occurrence of the 'dayOfWeek' in the month, where n is specified by 'start/stop date'.
1: Start/stop DST on the last occurrence of 'dayOfWeek' in the month, and ignore 'date'.
start/stop date The nth occurrence of the 'dayOfWeek' in the month start/stop DST, according to the following mapping:
1 - 1st occurrence
8 - 2nd occurrence
15 - 3rd occurrence
22 - 4th occurrence
Both defaults are 8 (2nd occurrence ), e.g. The 2nd Sunday. This attribute is ignored if 'dayOfWeek.lastInMonth' is 1.
When 'fixedDayEnable' is 1...
start/stop date The fixed day of the month to start/stop DST. e.g. October 26th.
start/stop dayOfWeek not applicable
start/stop dayOfWeek.lastInMonth not applicable

The default values in Polycom's default sip.cfg specify DST to be:

  • observed (enable=1)
  • starting on the second (start.date=8, fixedDayEnable=0, start.dayOfWeek.lastInMonth=0)
  • Sunday (start.dayOfWeek=1)
  • in March (start.month=3)
  • and stopping on the first (stop.date=1, fixedDayEnable=0, stop.dayOfWeek.lastInMonth=0)
  • Sunday (stop.dayOfWeek=1)
  • in November (start.month=11).

device.dns.serverAddress and device.dns.altSrvAddress

Like all "device" parameters, these have complimentary device.xxx.yyy.set settings. A value of "1" means to use the corresponding setting, a value of "0" means to ignore it.

The parameters themselves (when not ignored) are written to the "DNS Server" and "DNS Alt. Server" settings found under the phone's Network Configuration menu.

These settings are not used when DHCP on the phone is enabled. i.e. The values returned from the DHCP server take precedence.

When DHCP is disabled, then the phone will use these settings.

When the Polycom reboots if first initializes its network connection, and then downloads its configuration files. If the phone is not using DHCP and finds that the device.dns.___ settings result in changes, then the phone will reboot again in order to put the changes into effect.

The phone will reboot again if the loaded configuration file contains modified settings.

device.net.cdpEnabled and device.net.vlanId

Like all "device" parameters, these have complimentary device.xxx.yyy.set settings. A value of "1" means to use the corresponding setting, a value of "0" means to ignore it.

The parameters themselves (when not ignored) are written to "CDP Compatibility" and "VLAN ID" settings in the "Ethernet Menu" found under the phone's Network Configuration menu.

TBD: Does the Polycom reboot again if the loaded configuration file contains modified settings?

TBD: If "CDP Compatibility" is enabled and a VLAN ID value is determined, presumably it overrides the "VLAN ID" setting?