Apr
02
2009




How to configure a Polycom SoundPoint IP phone for Asterisk on Fedora 10

In my opinion the best IP business phones on the market are made by Polycom. Anyone that knows anything about the VoIP Industry knows that!  High quality Polycom desk phones combined with Asterisk are a great combination of quality/price. So to that end we’re doing this lab.

Polycom employs several methods of provisioning the SIP phones.  For general configuration Sound Point IP have an excellent built web GUI,  but for multiple phones Polycom has an XML based system as well.  Every Sound Point IP can be provisioned based on MAC address.  Polycom’s provisioning method makes use of TFTP, FTP, or HTTP to deliver firmware updates and individual phone settings.

The goals of this post:

- Configure FTP server for Polycom firmware and configuration

- Configure Asterisk SIP extension

- deploy firmware and XML configuration files to Polycom SoundPoint IP 501 SIP phone

my info:
Fedora 10
kernel 2.6.27.19-170.2.35.fc10.i686
Asterisk 1.4.23-rc2

LAB: Install Polycom Provisioning for Sound Point IP phones

First we need to set up our FTP server and user account.

[root@mattcom1 ~]# yum install vsftpd

[root@mattcom1 ~]# system-config-users

system-config-users

system-config-users

Download Polycom firmware and Boot-Rom.  In my case for the IP 501.  Here is the link to the main download page – http://polycom.com/support/voice/index.html.  Unpack both packages to ‘/home/polycom/’.  Start the FTP server.

[root@mattcom1 ~]# service vsftpd start

[root@mattcom1 ~]# ls /home/polycom/
000000000000.cfg             2345-12670-001.bootrom.ld
000000000000-directory~.xml  2345-12670-001.sip.ld
0004f202734b-appFlash.log    3111-15600-001.bootrom.ld
0004f202734b-app.log         3111-15600-001.sip.ld
0004f202734b-boot.log        3111-40000-001.bootrom.ld
0004f202734b-phone.cfg       3111-40000-001.sip.ld
0004f202734b-phone.cfg~      Beach256x116.jpg
2201-06642-001.bootrom.ld    BeachEM.jpg
2201-06642-001.sip.ld        Beach.jpg
2345-11000-001.bootrom.ld    bootrom.ld
2345-11300-001.bootrom.ld    Desktop
2345-11300-010.bootrom.ld    Documents
2345-11300-010.sip.ld        Download
2345-11402-001.bootrom.ld    Jellyfish256x116.jpg
2345-11402-001.sip.ld        JellyfishEM.jpg
2345-11500-001.bootrom.ld    Jellyfish.jpg
2345-11500-010.bootrom.ld    Leaf256x116.jpg
2345-11500-020.bootrom.ld    LeafEM.jpg
2345-11500-030.bootrom.ld    Leaf.jpg
2345-11500-030.sip.ld        Mountain256x116.jpg
2345-11500-040.bootrom.ld    MountainEM.jpg
2345-11500-040.sip.ld        Mountain.jpg
2345-11600-001.bootrom.ld    Music
2345-11600-001.sip.ld        Palm256x116.jpg
2345-11605-001.bootrom.ld    PalmEM.jpg
2345-11605-001.sip.ld        Palm.jpg
2345-12200-001.bootrom.ld    phone1.cfg
2345-12200-001.sip.ld        Pictures
2345-12200-002.bootrom.ld    Public
2345-12200-002.sip.ld        ReadMe.txt
2345-12200-004.bootrom.ld    Sailboat256x116.jpg
2345-12200-004.sip.ld        SailboatEM.jpg
2345-12200-005.bootrom.ld    Sailboat.jpg
2345-12200-005.sip.ld        sip.cfg
2345-12450-001.bootrom.ld    sip.ld
2345-12450-001.sip.ld        sip.ver
2345-12500-001.bootrom.ld    SoundPointIPLocalization
2345-12500-001.sip.ld        SoundPointIPWelcome.wav
2345-12560-001.bootrom.ld    spip_ssip_3_1_1_release_sig.zip
2345-12560-001.sip.ld        spip_ssip_BootROM_4_1_2_release_sig.zip
2345-12600-001.bootrom.ld    Templates
2345-12600-001.sip.ld        Videos

We must modify two XML files.  The sip.cfg file, which contains the default Polycom options that all phones will share.  The second file(0004f2XXXXXX-phone.cfg) is named by each individual phones MAC addres.  For instance my phones MAC address is  0004f202734b-phone.cfg.

You can find each phones MAC on a label stuck to the back of the unit.  Usually the address will start with ’0004F..’.  First lets edit the sip.cfg.  We will configure the default SIP server and NTP time server in the sip.cfg first.





[root@mattcom1 polycom]# nano sip.cfg
<?xml version=”1.0″ encoding=”utf-8″ standalone=”yes”?>
<!– SIP Application Configuration File –>
<!– $RCSfile: sip.cfg,v $  $Revision: 1.417.2.26 $ –>
<sip>
<voIpProt>
<local voIpProt.local.port=”"/>
<server voIpProt.server.1.address=”192.168.1.254″ voIpProt.server.1.port=”5060″

Also, the default NTP server.  I set my gmt offset to Pacific time -8 GMT.  You can find these settings further down in sip.cfg:

<TCP_IP>
<netMon tcpIpApp.netMon.enabled=”1″ tcpIpApp.netMon.period=”30″/>
<SNTP tcpIpApp.sntp.resyncPeriod=”86400″ tcpIpApp.sntp.address=”pool.ntp.org” tcpIpApp.sntp.address.overrideDHCP=”0″ tcpIpApp.sntp.gmtOffset=”-36600″ tcpIpApp.sntp.gmtOf$
<port>
<RTP tcpIpApp.port.rtp.filterByIp=”1″ tcpIpApp.port.rtp.filterByPort=”0″ tcpIpApp.port.rtp.forceSend=”" tcpIpApp.port.rtp.mediaPortRangeStart=”"/>
</port>
<keepalive tcpIpApp.keepalive.tcp.idleTransmitInterval=”" tcpIpApp.keepalive.tcp.noResponseTrasmitInterval=”" tcpIpApp.keepalive.tcp.sip.tls.enable=”0″/>
</TCP_IP>

Now lets look at my phones XML config file, 0004f202734b-phone.cfg:

[root@mattcom1 polycom]# nano 0004f202734b-phone.cfg
<?xml version=”1.0″ standalone=”yes”?>
<PHONE_CONFIG>
<OVERRIDES
reg.1.displayName=”8888″
reg.1.label=”8888″
reg.1.address=”8888″
reg.1.auth.userId=”8888″
reg.1.auth.password=”2005″
msg.mwi.1.subscribe=”8888″
msg.mwi.1.callBackMode=”contact”
msg.mwi.1.callBack=”299″
/>
</PHONE_CONFIG>

The credentials above will be used for connecting to the Asterisk SIP server.  Any number of such config files can be created.  Options in this file override the global defaults of the sip.cfg.

So lets review to this point:

- we installed and started vsftp

- created a user account(polycom) and dowloaded the most recent Polycom firmware to the polycom user’s home directory

- we created the phones configuration file, 0004F202437b-phone.cfg

- we edited the sip.cfg with the IP address of our Asterisk server and the default NTP server & time zone

Now we have to configure a very a basic SIP user account in Asterisk.  Here is mine:

/etc/asterisk/extensions.conf

[general]

context=default
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes

[8888]
type=friend                    ; Friends place calls and receive calls
context=from-sip               ; Context for incoming calls from this user
secret=2005
host=dynamic                   ; This peer register with us
dtmfmode=rfc2833               ; Choices are inband, rfc2833, or info
username=8888
mailbox=8888

Now boot the phone.  Enter ‘setup’, the default pasword for the boot menu is ’456′.  From the setup select ‘server menu’.

Start Asterisk and login to the console, ‘asterisk -rvvvvvvvvvvvvvvvv’

[root@mattcom1 ~]# asterisk -rvvvvvvvvvvvvvvvvv
Asterisk 1.4.23-rc2, Copyright (C) 1999 – 2008 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
=========================================================================
== Parsing ‘/etc/asterisk/asterisk.conf’: Found
== Parsing ‘/etc/asterisk/extconfig.conf’: Found
Connected to Asterisk 1.4.23-rc2 currently running on mattcom1 (pid = 26710)
Verbosity is at least 19
– Remote UNIX connection
mattcom1*CLI> sip show peers
Name/username              Host            Dyn Nat ACL Port     Status
8888/8888                  192.168.1.105    D          0                  OK
1 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 1 offline]
mattcom1*CLI>

Thats it!  Sometimes it takes a while for these phones to boot, don’t be alarmed!  If you’re concerned that your SoundPoint IP phone isn’t retreiving it’s configs check out the VSFTP logs located in ‘/var/log/xferlog’.  Good luck, if you want to buy Polycom gear from a certified dealer click HERE.

If you like this article tell Google!!









Written by mattb in: Asterisk,Asterisk Post,Linux | Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

5 Comments »

  • Michael

    The configuration files (from nano) haven’t come through correctly. They show $ where the line was wrapped.

    Comment | January 23, 2011
  • mattb

    Thanks for pointing that out, I’ll fix it.

    Comment | January 28, 2011
  • BruceK

    Matt,

    We have just install the Switchvox product with two locations running over a network managed by paetec. At the host location the phones connect to the server just fine and configure easily, however the remote location we have to manually set to https and add the server ip with /pc attached. Do you know of a way for the phones to automatically see the server, etc to make it more seamless?

    Comment | August 20, 2011
  • mattb

    Hi Bruce,

    I haven’t sold a Switchvox system in a long time… They don’t compete well against the non locked down standard Asterisk product. I like FTP provisioning the best, but Digium began locking out users from the Switchvox systems(by not providing the root passwords). If you use a boot disk to recover the root password the warranty is voided. So FTP is probably not an option unless they have specifically provided it.

    The easiest way to provision a lot of phones is to use DHCP. Dynamic Host Configuration Protocol is the popular method by which computer systems(in this case IP phone) aquire a “lease” on an IP address. While you probably already know this, you may not be aware that DHCP has other special options not available in your typical home router. Option 66 is a setting that higher end DHCP servers can send to clients; it contains vaulues for URL/password. When the phones boot they see option 66 as for example, “HTTPS://phoneconfigs.mycompany.com/configs/. Saving you the trouble of entering this value for every phone. Good luck!

    -Matt

    Comment | September 30, 2011
  • [...] How to configure a Polycom SoundPoint IP phone for Asterisk on Fedora 10 [...]

    Pingback | November 3, 2011

RSS feed for comments on this post. TrackBack URL

Leave a comment