Feb
14
2010




How to setup automatic Polycom provisioning for the Asterisk 2.0 GUI

Recently we covered the installation of Asterisk 1.6 + Asterisk GUI 2.0.  In this article we will talk about the details necessary to enable Polycom provisioning from the ‘Users’ tab of the Asterisk 2.0 GUI.  By default auto-provisioning will not work out of the box.  You would think when the GUI is installed that it would be setup as well, considering that you have the option to enter a MAC address in the user extension creation process.

Nor are their docs related to configuring this in the source packages(that I could find).  Online forums and tutorials were of no help either.  There are many post online claiming that you need to set up DHCP, ‘option 66’ for Polycom provisioning to work.  This is true of TFTP provisioning from AA50 appliance, but not from the Asterisk 2.0 GUI that relies solely on HTTP.  At least as far as I can tell.

I think Digium is being vague on purpose about this because they do not want to undermine their Asterisk Appliance product.  While I understand this line of thinking, it’s not consistent with the Open Source business models that have succeeded.

Open Source depends on reaching vast amounts of people due to the low cost.  When my customers have to choose between a Avaya system(running Linux) that cost $45,000 /w phones or a Asterisk system w/ Polycom phones for $19,000; it makes the lesser known Asterisk product attractive.  Over time the base builds up and Digium collects on hardware and support fee’s.

So from my perspective, any Asterisk installation helps Digium’s bottom line eventually.  Even if Digium doesn’t see money from every Asterisk user, simply the presence of those users makes Asterisk a more credible product.  Bringing more and more Enterprise and Government contracts to everyone, thus more money and investment into Digium.

Alright my tirade is over, back to business!  This post assumes you have installed a recent version of Linux, Asterisk 1.6 and the Asterisk 2.0 GUI installed.  If you do not, read my post:How to setup the Asterisk 2.0 GUI with Asterisk 1.6.

The Goals of this Post:

-configure phoneprov for Asterisk 2.0 GUI


Asterisk 1.6 installation automatically creates Polycom template files in the, ‘/var/lib/asterisk/phoneprov/ folder.  These template files feed Asterisk variables as directed in the, ‘/etc/asterisk/phoneprove.conf’ file.

The first step, is to add an entry to the ‘/etc/asterisk/http.conf’.  This instruct’s asterisk to make ‘/var/lib/asterisk/phoneprov’ available to the built-in Web Server at, ‘http://127.0.0.1:8088/phoneprov’.  This is the address we will program our Polycom phones to use when attepting to pull their XML configuration files.

/etc/asterisk/http.conf

[general]
enabled=yes
bindaddr=0.0.0.0
enablestatic=yes



[post_mappings]
;
; In this example, if the prefix option is set to “asterisk”, then using the
; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/.
;
uploads = /var/lib/asterisk/uploads/
phoneprov = /var/lib/asterisk/phoneprov/

Lets check to make sure that the http server is up and well.  Notice ‘/phoneprov’ directory is available.

*CLI> http show status
HTTP Server Status:
Prefix:
Server Enabled and Bound to 0.0.0.0:8088



Enabled URI’s:
/httpstatus => Asterisk HTTP General Status
/phoneprov/… => Asterisk HTTP Phone Provisioning Tool
/manager => HTML Manager Event Interface
/rawman => Raw HTTP Manager Event Interface
/static/… => Asterisk HTTP Static Delivery
/mxml => XML Manager Event Interface



Enabled Redirects:
None.
*CLI>

Edit the ‘/etc/asterisk/modules.conf’ file to ensure that the res_phoneprov module is being loaded by asterisk.  Add ‘load => res_phoneprov.so’.

/etc/astersik/modules.conf

[modules]
autoload=yes
preload => func_strings.so
noload => pbx_gtkconsole.so
load => res_musiconhold.so
;
; Load one of: chan_oss, alsa, or console (portaudio).
; By default, load chan_oss only (automatically).
;
noload => chan_alsa.so
;noload => chan_oss.so
;noload => chan_console.so
load => res_phoneprov.so

We must now create the directory where our Polycom firmware will reside. This directory must be named, ‘configs’ and must reside in the ‘/var/lib/asterisk/phoneprov’. If you want to change this you must edit the options in, ‘/etc/asterisk/phoneprov.conf’ file.

[root@localhost gui]# cd /var/lib/asterisk/phoneprov/
[root@localhost phoneprov]# ls
000000000000.cfg  000000000000-directory.xml  000000000000-phone.cfg  polycom.xml
[root@localhost phoneprov]# mkdir configs
[root@localhost phoneprov]# ls
000000000000.cfg  000000000000-directory.xml  000000000000-phone.cfg  configs  polycom.xml
[root@localhost phoneprov]#

Download Polycom firmware for your specific model to the newly created ‘configs directory’.  The Polycom SoundPoint IP phone download page can be found here: http://www.polycom.com/support/voice/index.html.  In my case I was using an IP 330 model.

[root@localhost phoneprov]# cd configs
[root@localhost configs]# wget http://downloads.polycom.com/voice/voip/sp_ss_sip/spip_ssip_vvx_3_2_2_release_sig_combined.zip ./
–2010-02-13 19:25:23–  http://downloads.polycom.com/voice/voip/sp_ss_sip/spip_ssip_vvx_3_2_2_release_sig_combined.zip
Resolving downloads.polycom.com… 140.242.64.23
Connecting to downloads.polycom.com|140.242.64.23|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 67547410 (64M) [application/zip]
Saving to: spip_ssip_vvx_3_2_2_release_sig_combined.zip'



100%[=========================================================================================>] 67,547,410  1.19M/s   in 53s



2010-02-13 19:26:17 (1.21 MB/s) -
spip_ssip_vvx_3_2_2_release_sig_combined.zip’ saved [67547410/67547410]



–2010-02-13 19:26:17–  http://./
Resolving …. failed: Name or service not known.
wget: unable to resolve host address `.’
FINISHED –2010-02-13 19:26:17–
Downloaded: 1 files, 64M in 53s (1.21 MB/s)
[root@localhost configs]#
[root@localhost configs]# unzip spip_ssip_vvx_3_2_2_release_sig_combined.zip
[root@localhost configs]# ls
000000000000.cfg             Jellyfish.jpg        Palm256x116.jpg      Sailboat.jpg
000000000000-directory~.xml  Leaf256x116.jpg      PalmEM.jpg           sip.cfg
Beach256x116.jpg             LeafEM.jpg           Palm.jpg             sip.ld
BeachEM.jpg                  Leaf.jpg             phone1.cfg           sip.ver
Beach.jpg                    Mountain256x116.jpg  ReadMe.txt           SoundPointIPLocalization
Jellyfish256x116.jpg         MountainEM.jpg       Sailboat256x116.jpg  SoundPointIPWelcome.wav
JellyfishEM.jpg              Mountain.jpg         SailboatEM.jpg       spip_ssip_vvx_3_2_2_release_sig_combined.zip
[root@localhost configs]#

Now that we have our Asterisk configuration and firmware we are ready to add a user entry through the Asterisk GUI 2.0.  Login with your admin/password(the one added to manager.conf).  Click on the ‘Users’ tab.  Add a SIP user like below.  Change options for your needs, notice I have the MAC Address of my Polycom phone in the ‘MAC’ field.  Remember to use lower case letters, you can find the MAC/Serial No. on the back of most Polycom Soundpoint IP SIP phones.

Remember to configure your phone for HTTP provisioning.  At boot, enter the setup menu with the default ‘456’ password.  Navigate to the ‘Server Menu’ section.  Select HTTP as ‘Server Type’.  For server type in the Asterisk server address with ‘:8088/phoneprov’ appended.  So for example, ‘192.168.1.25:8088/phoneprov’.

One thing to note, the server string can very from GUI to Asterisk appliance.  This tutorial is for Asterisk 2.0 GUI.  If you are having difficulty with the AA50 Asterisk appliance try entering the entire URL into the ‘ServerAddr’ section.  For example, ‘HTTP//192.168.1.26/phoneprov.  Also notice that the default port for the Asterisk appliance is port 80.  The standard HTTP port.

If you followed my instrunctions you should now have a registered phone!  Enjoy and please feel free to post questions.

If you like this article tell Google!!









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

8 Comments »

  • moa

    I see that you have two line keys setup here, both with the same extension. Is there any way to get each linekey to be a different extension? I have the correct configuration in my users.conf, but res_phoneprov isn’t setting them up correctly. It seems to be ignoring the second line.

    I know this post is old but hopefully someone out there can shed some light on my issue. I’ve been googling for days now.

    Comment | November 5, 2010
  • mattb

    Moa,

    Thanks for reading, I updated my Polycom firmware and it only shows one line appearence now. Try this first, then add the second line. Should work, let me know if it doesn’t.

    -Matt

    Comment | November 8, 2010
  • Hi Matt,
    Good posting. I have small question , do this configuration will update the file 000000000000-directory.xml in phoneprov directory so that every phones will get the PBX’s global directory on the first boot.

    Comment | January 16, 2011
  • mattb

    Shyju,

    Thank you for reading, and very good question. One thing I have never been able to do with Asterisk 2.0 GUI is file uploads to directories on the built-in asterisk http server. Because the default provisioning method is http, the directory will not be updated. I’m not sure if this intentional on Digiums part, a configuration issue, or a bug. Sorry, but you will have to create a static 000000000000-directory.xml. Good Luck my friend!

    Comment | January 17, 2011
  • Hello Matt,

    I believe I was able to configure everything correctly according to your article but I’m getting a “cannot find the boot server” during start up. I know that the http://[my asterisk server]:8088/phoneprov works and I’ve use the username=admin and password is the secret in /etc/asterisk/manager.conf.

    What do you think could be causing this?

    Cedric

    Comment | March 26, 2011
  • mattb

    Hi Cedric,

    Thank you for reading savelono.com. Based on what you told me I don’t have enough information to troubleshoot this problem. When a Polycom phone cannot “contact boot server” this can mean anything.

    For instance a firewall and some configurations of SELinux could give you that error. Phoneprov support must be compiled and enabled in modules.conf. Your Polycom phone must be set to ‘http’ provisioning in the ‘server menu’ options. Also any networking problem…

    Keep trying!!! The trouble with Asterisk is the multitude of software and hardware components you work with. If you succeed, the savings over a traditional PBX is off the charts! Good Luck, check the stuff I mentioned and post the results, I’m positive we can get you going!

    Comment | March 26, 2011
  • andrey

    Already been able to do this on grandstream or Khomp phones?

    Comment | July 19, 2017
  • mattb

    No this is really old software too. I haven’t used Asterisk 1.6 in years! The GUI put out by Digium doesn’t work, or at least I don’t have the JS skills to fix it!

    Comment | July 22, 2017

RSS feed for comments on this post. TrackBack URL

Leave a comment