July 26, 2010 – 6:24 pm | 33 Comments

ShareV9 of the popular Windows Phone system adds video support, android client and enterprise capabilities
London, 26 July 2010 – 3CX has released version 9 of its popular phone system for Windows. Version 9 is a …

Read the full story »
Releases

3CX Product Releases

VoIP How To

Technical tips to run your VoIP PBX more efficiently

VoIP Nuggets

Technical training videos about VoIP, SIP and 3CX

Events

3CX Trainings and Webinars around the world

Docs & FAQ

3CX Documentation how to and FAQ

Home » Docs & FAQ, VoIP How To

3CX Phone Provisioning – A Complete Guide

Submitted by Kevin on July 12, 2010 – 4:24 pmOne Comment

The whole point of provisioning phones is to eliminate the difficulties associated with manually configuring a large number of devices:

  • It is a tedious task
  • It can be very time consuming
  • Possibility of Human Error
  • Retaining a Standard Config Enterprise-Wide

Time, Time Zone, DST Settings

The goal here is to get all phones to display the correct Time, including the correct adjustment for Time Zone and DST.

We can configure all the phones to get the same settings by setting the necessary Custom Parameters to the correct values.

Time

A phone will first need to obtain its Time Reference – this is always in UTC format.

The industry-standard method to deploy this information is for the device (in our case a phone) to query for this using NTP (Network Time Protocol), sending the request to an NTP server. 3CX PhoneSystem comes preconfigured to point all provisioned phones to:

pool.ntp.org

…but this can obviously be customized should the need arise.

Time Zone

The next component is the Time Zone. All phone brands expect that the time zone will be provided to the phone in a string format – but unfortunately each brand requires the string values to be different, or to have a different format.

This article contains tables listing the fields necessary for each brand, and also the relative valid values for that brand.

DST Settings

For almost all time zones, summer time is adjusted to take advantage of the extra daylight due to the sun rising earlier and setting later (longer days). This adjustment is called Daylight Savings Time, or DST in short.

For each phone to display the correct time, it will need to know when DST starts and ends.

Aastra and Snom phones are the only brands which calculate DST start and end dates dynamically based on the Time Zone without the need to specify it explicitly.

The other brands will require the start and end dates to be specified. Again in this article the tables will specify for each brand which Custom Parameters need to be adjusted.

Since Daylight Savings Time starts and ends on different days each year, it will be necessary to adjust the values again after DST ends to take into account the new values for the following year.

NTP Server Customization

The default provisioning templates require all phones to query “pool.ntp.org” to obtain the reference UTC time. You can however keep all this in the LAN, by configuring your Domain Controller machine to also function as an NTP server – see this article. Once this is done, all that you need to do is change the value of the “TIME_NTP_SERVER” Custom Parameter to the IP Address or machine name of the Domain Controller.

Customizing an Already-Existing Template

3CX PhoneSystem is delivered with a number of pre-installed phone templates, configured with the settings which are confirmed working by our testing cycle.

Sometimes, however, you may want to adjust the provided template to change a particular setting which you would want all your provisioned phones to have.

For this example, we will use the template for the Cisco SPA range of phones, and we will adjust the template so that each phone will be configured to have a password protecting the phone’s web interface to avoid persons tampering with phone settings.

By default the phones will have no password set, and the 3CX-supplied templates do not change this.

To adjust this, we will need some way to edit the templates. The simplest way is to use the 3CX Management Console to achieve this.

  • Go to “Settings -> Provisioning Templates”
  • In the “Template Type” field, select “Phones”
  • In the “Template Name” field, select “Cisco SPA”.

Note: The drop-down will list several models, but in reality they all bind to the same template file – so changing one file will resolve for all the Cisco models. Towards the start of the template file, the XML tag “<models>” will list the models that are covered by the template file.

  • Click the “Edit” button
  • Search for “Admin_Passwd”

Note: The search string will be different for different features, and will also vary for the same feature from brand to brand. You will need to refer to the admin guides of the different phone brands to understand how to exploit the phone features from the provisioning file.

  • Change the relevant line according to your needs. The original line reads:
<!--<Admin_Passwd group="System/System_Configuration">12345</Admin_Passwd>-->
  • To set the phones’ password to “phonepass”, you will need to uncomment the line and adjust the password accordingly, as follows:
<Admin_Passwd group="System/System_Configuration">phonepass</Admin_Passwd>
  • Click on the “OK” button at the bottom of the page, and click the “OK” button in the confirmation window to save your changes.

If you prefer to use a text editor for this task (such as Notepad++), locate the template file in:

C:\Documents and Settings\All Users\Application Data\3CX\Data\Http\templates\phones

Or

C:\ProgramData\3CX\Data\Http\Templates\phones

…in this case you will need to edit the file “cisco.ph.xml”, and simply effect the same changes as listed above. Using a “smart” text editor such as Notepad++ gives you the added benefit of “Syntax Highlighting”, making it much easier to make complex edits.

Cloning a phone template for particular needs

Sometimes it may be desirable to be able to provision some phones with one set of features, and some other phones with a different set of features. For example, we may want some of the phones to provision with the phone’s web interface password-protected, while the others to provision without a web interface password.

To achieve this we need to have 2 templates – one for one set of features, and the other with the second set of features.

This can be implemented simply by adding a second template (ideally by cloning an already-existing one), and making some adjustments to make sure that you can select the correct template from the 3CX Management Console. To clone a template file:

  • First, simply make another copy of the relevant template file inside the phone templates folder. For example, copy “cisco.ph.xml” to filename “cisco_password.ph.xml”
  • Next, edit the new file, and adjust the “<models>” XML tag contents so the phone models which will appear in the dropdown list in the provisioning screen will be recognisable. So for this example, the original file will contain:

<models>
<model>Cisco SPA</model>
<model>Cisco SPA-501G</model>
<model>Cisco SPA-502G</model>
<model>Cisco SPA-504G</model>
<model>Cisco SPA-508G</model>
<model>Cisco SPA-509G</model>
<model>Cisco SPA-525G</model>
<model>Cisco SPA-5XXG + SPA-500S</model>
</models>

… and if the second file will contain the same “<model>” tags, the phone model names will appear to be duplicated in the dropdown list in the provisioning screen. You should change them to something easily recognizable, such as:

<models>
<model>Cisco SPA (with PW)</model>
<model>Cisco SPA-501G (with PW)</model>
<model>Cisco SPA-502G (with PW)</model>
<model>Cisco SPA-504G (with PW)</model>
<model>Cisco SPA-508G (with PW)</model>
<model>Cisco SPA-509G (with PW)</model>
<model>Cisco SPA-525G (with PW)</model>
<model>Cisco SPA-5XXG + SPA-500S (with PW)</model>
</models>

Now you simply customize the chosen features (view example in previous section), and save the file when done.

Setting the Phone to Retrieve its Configuration Files

Now that the PBX has generated the configuration files for the phone to configure itself, we need to tell the phone where to find these configuration files.

There are 2 main methods we can use to achieve this, depending on the phone’s capabilities, or depending on our needs:

  • Automatic Provisioning using DHCP Option 66
  • Manual Provisioning via the phone’s Web Interface

There is a third method possible, using TFTP – which we will discuss briefly later.

Option 1 – Automatic Provisioning using DHCP Option 66

We can configure the DHCP Server on the LAN to deliver to the phone the provisioning path. A DHCP Server will allow a device to request its network settings automatically and typically will get an IP Address, a Default Gateway, and also an IP Addresses for a DNS Server. This is the recommended method.

This method will require the services of a full-featured DHCP server on the LAN, such as Microsoft’s DHCP Server included with Windows Server 2003 or Windows Server 2008. The DHCP Server included on small WAN-to-LAN devices and routers are, in most cases, insufficient for this task. Please note that if you intent to introduce a new DHCP Server on the LAN, it will be necessary to first disable any other DHCP Servers on the LAN to avoid conflicts and unpredictable behaviour.

In most cases the DHCP Server software you will need to configure for this task is Microsoft’s DHCP Server, and this example will show you how to configure it for use with SIP Phones and the 3CX PhoneSystem provisioning mechanism.

A DHCP Server is typically used to deliver some basic network parameters to devices on the LAN, including:

  • IP Address
  • Subnet Mask
  • Default Gateway
  • Domain Name

However, there are several other additional options that can be specified and delivered to devices on the LAN when these devices are starting up, and we will be using one of these additional options to deliver to the phones the location of the provisioning files.

The option we will be using is Option Number 66. Each phone vendor will require the Option 66 string to be in a particular format, and the format also changes depending whether the 3CX PhoneSystem was installed for the 3CX Built-In Web Server or for IIS. This list will help to identify the correct string for our phones, assuming that the 3CX PhoneSystem machine is running on IP Address 10.0.0.11:

3CX PhoneSystem with Built-In Web Server

Aastra – http://10.0.0.11:5481/provisioning/

Grandstream – 10.0.0.11:5481/provisioning

Polycom – http://10.0.0.11:5481/provisioning/

Snom – http://10.0.0.11:5481/provisioning/cfg{mac}

Cisco – http://10.0.0.11:5481/provisioning/$MA.xml

3CX PhoneSystem with IIS

Aastra – http://10.0.0.11/management/provisioning/

Grandstream – 10.0.0.11/management/provisioning

Polycom – http://10.0.0.11/management/provisioning/

Snom – http://10.0.0.11/management/provisioning/cfg{mac}

Cisco – http://10.0.0.11/management/provisioning/$MA.xml

If the installation uses only one phone vendor, then all you would need to do is adjust the Scope Options and add Option 66 for the entire scope.

To add Option 66 for the scope:

  • Start up the “DHCP Management Console”

  • Expand the DHCP scope which will contain the phones
  • Right-click on the “Scope Options” node
  • Select “Configure Options…”

  • In the “General” tab, scroll down the list of options and identify the option labelled “066 Boot Server Host Name”
  • Enable the “066 Boot Server Host Name” and enter the string value according to the examples discussed previously
  • Click the “OK” button

Some installations, however, will use a mix of phone vendors. Since different vendors require different formats for Option 66, in most cases you would need to create a reservation for each phone, and customize the Option 66 value for each of the phones.

With these DHCP settings in place, any phone that supports automatic provisioning (for example the Cisco SPA509G) will simply need to be factory-reset, and then connected to the LAN – and upon boot up it will retrieve all its settings automatically from the 3CX PhoneSystem machine.

Option 2 – Manually Provisioning a SIP Phone

The recommended provisioning mechanism is to use DHCP with Option 66, as it greatly simplifies the deployment.

If you do NOT want to (or cannot) use DHCP Option 66, you will need to manually tell the phone where to retrieve its configuration files.

In the case of a Grandstream GXP-2000, for example, we need to simply give it a URL path to retrieve files from, and also tell it to ignore any DHCP server’s attempts to override this setting.

Load up the phone’s web interface, go to the “Advanced Settings” tab, select the “Upgrade Via HTTP” option, and in the “Config Server Path” field, enter the provisioning path. Assuming the 3CX PhoneSystem machine has IP Address 10.0.0.11, the provisioning path for a 3CX Web Server install will be:

10.0.0.11:5481/provisioning

…while the provisioning path for an IIS install will be:

10.0.0.11:80/management/provisioning

After the next reboot, the phone will retrieve its settings from the PBX’s “provisioning” directory.

Using a TFTP Server for provisioning files

Why or when do I need TFTP?

The design of 3CX PhoneSystem allows you to create phone provisioning templates for other phone brands or models. You may encounter a brand or model which does not have the functionality to retrieve its provisioning files via HTTP, but only via TFTP.

The Polycom Spectralink 8002 wireless phone is one such device, but you may encounter others.

If you create a template file specifically for such a brand or model of phone, the provisioning mechanism will create the file as specified in the XML file in the provisioning folder. The provisioning folder is located in:

C:\Documents and Settings\All Users\Application Data\3CX\Data\Http\interface\provisioning

Or

C:\ProgramData\3CX\Data\Http\interface\provisioning

Implementing a TFTP Server

Implementing a TFTP Server is a 2 stage process:

  • Download and Install TFTP Server software on the PBX Machine. Several free options are available, including:
    • Pumpkin
    • SolarWinds
    • 3CDaemon – also includes a Syslog Server
  • Configure the TFTP Server to point to the provisioning folder as its root folder for serving files via the TFTP protocol

One Comment »