Using the recommended Firmware version is one of the keys for successful interoperability with 3CX PhoneSystem. From time to time, 3CX will release updates to the configuration guides that often include additional functionality that takes advantage of more recent phone Firmware versions.
Note: This document refers to 3CX PhoneSystem V9 SP3 or Earlier. For later versions of 3CX PhoneSystem, please refer to: http://www.3cx.com/blog/ip-phone-configuration/upgrading-firmware-cisco/
This document will demonstrate how to upgrade a Cisco SPA-508G phone from Firmware Version 7.4.4 to Firmware Version 7.4.6 (for example)
Requisites and Notes
- You must perform this operation using the “Windows Management Console” to avoid Browser Caching issues (with the browser version of the 3CX Management Console) when adjusting the template files.
- The procedure CANNOT be used if you have a mixed deployment containing Cisco SPA-525G phones, since the firmware image files for this model is different.
The Firmware Upgrade Mechanisms Available
There are effectively 3 different mechanisms available to upgrade Cisco SPA-50xG phones:
- Per-phone upgrade using a Windows-Based Firmware Upgrade utility packaged inside the Firmware file which you will need to download from the Cisco website.
- Automated Firmware Upgrade via TFTP
- Automated Firmware Upgrade via HTTP
This document will discuss how to perform an automated Firmware Upgrade via HTTP, which will take advantage of the Web Server configuration already implemented for 3CX PhoneSystem.
1. Obtain the Firmware File
- To do this you will need to navigate the Cisco Website until you reach the page where you can download firmware images for the “Cisco Small Business Pro SPA 500 Series IP Phones” range (link valid at time of writing).
- Next, you need to select and click on the correct model (in this case the Cisco SPA-508G), following the relevant links until you download the firmware file – in this case the filename should be “spa50x-30x-7-4-6.zip“.
2. Deploying the Firmware Image to the Provisioning Folder
- Extract the downloaded firmware ZIP file into a folder.
- Identify the file named “spa50x-30x-7-4-6.bin“. This BIN file contains the actual firmware image for the new firmware version. Copy this file into the provisioning folder:
For Windows XP / Server 2003:
C:\Documents and Settings\All Users\Application Data\3CX\Data\Http\Interface\provisioning
For Windows 7 / Server 2008:
3. Configuring the Phones to Perform an Automatic Upgrade
The 3CX Provisioning Templates do have built into them any parameters for automated Firmware Upgrades. The quickest, most efficient method to achieve the scope is to adjust the template file to add this functionality.
- In the 3CX Management Console, go to “Settings” > “Provisioning Templates“
- In the “Template Type” field, select “Phones“
- In the “Template Name” field, select “Cisco SPA-508G“, and click the “Edit” button
- Locate the section inside the template called “Provisioning Settings – Stage 2“
- At the bottom of the section (just before the “Remote Reboot Settings” section), add the following lines:
- Click on the “OK” button at the bottom of the page to save the new version of the template file.
4. Reprovision the Phones
At this stage it is necessary to force the 3CX Management Console to re-create the provisioning files for all the phones for which you would like to apply the new settings.
- In the 3CX Management Console, go to “Phones“
- Click to select the phone you would like to reprovision (you can select multiple phones using CTRL+click)
- Click the “Reprovision Phones” button in the toolbar
- Click the “Reboot” button in the toolbar to force the phone to reboot. This will cause the phone to retrieve its new configuration settings, complete with the new instructions to upgrade its firmware.
5. Upgrading Further
Once you have this mechanism in place, upgrading to a more recent firmware version will simply involve copying the newer firmware BIN file to the provisioning folder, and adjusting the filename in the “Upgrade_Rule” line in the newly added lines in the provisioning template file.