Firmware Upgrade on a Cisco SPA-50x SIP Phone

Using the recommended Firmware version is one of the keys for successful interoperability with 3CX PhoneSystem. This document will demonstrate how to upgrade a Cisco SPA-508G phone Firmware.

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.
    • Next, you need to select and click on the correct model (in this case the Cisco SPA-504G), following the relevant links until you download the firmware file – in this example, the filename should be ““

  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-8a.bin“. This BIN file contains the actual firmware image for the new firmware version. Copy this file into the provisioning folder, rename it to spa504g.bin.

  3. Configuring the Phones to Perform an Automatic Upgrade
    The 3CX Provisioning Templates have built into them parameters for automated Firmware Upgrades. The quickest, the most efficient method to achieve this, 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” (or your custom template)
    • Locate the section inside the template called “Provisioning Settings – Stage 2″
    • At the bottom of this section (just before the “Remote Reboot Settings” section), add the following lines:
      <Upgrade_Enable group=”Provisioning/Firmware_Upgrade”>Yes</Upgrade_Enable>
      <Upgrade_Error_Retry_Delay group=”Provisioning/Firmware_Upgrade”>86400
      </Upgrade_Error_Retry_Delay> <Upgrade_Rule group=”Provisioning/Firmware_Upgrade”>
    • 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.