Showing results for 
Search instead for 
Did you mean: 

Welcome to the Cisco Small Business Community

Have a question? Click on a topic board below to get started in the community.


Cisco SPA504G Provisioning

Hi all.

I've 2 SPA504G connected to an Asterisk box (Elastix).

What i'm intresting to is the way for Provision the config information.

I read all the User Guide that i found in the web (Cisco pubblication) and many forum, but i not can understand all in a right way.

This is what i make:

- My DHCP provide IP address and TFTP address (Option 150 for Microsoft DHCP)

- The SPA504G obtain an IP address and connect to the TFTP server

- If i debug the TFTP server i can see that at the first time and/or after a Factory reset, the SPA504G search first for a file called  "SEPXXXXXXXXXXXX.cnf.xml" (where XXXXXXXXXXXX is the Mac Address of the phone) and after for a file called "XMLDefault504G.cnf.xml"

- For give a multilevel provisining, i think that is good if i create the "XMLDefault504G.cnf.xml" and in this file i put the basic information, in the Profile_Rule i indicate the second level provision file with the specific information of every phones in the net.

So ... this is my "XMLDefault504G.cnf.xml" file:

  <Provision_Enable group="Provisioning/Configuration_Profile">Yes</Provision_Enable>
  <Resync_On_Reset group="Provisioning/Configuration_Profile">Yes</Resync_On_Reset>
  <Resync_Periodic group="Provisioning/Configuration_Profile">10</Resync_Periodic>
  <Profile_Rule group="Provisioning/Configuration_Profile">tftp://$MA.xml</Profile_Rule>
  <Dial_Plan_1_ group="Ext_1/Dial_Plan">(*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)</Dial_Plan_1_>
  <Time_Format group="User/Supplementary_Services">24hr</Time_Format>
  <Date_Format group="User/Supplementary_Services">day/month</Date_Format>
  <Ringer_Volume group="User/Audio_Volume">8</Ringer_Volume>
  <Speaker_Volume group="User/Audio_Volume">10</Speaker_Volume>
  <Handset_Volume group="User/Audio_Volume">10</Handset_Volume>
  <LCD_Contrast group="User/Audio_Volume">8</LCD_Contrast>
  <Back_Light_Timer group="User/Audio_Volume">Always On</Back_Light_Timer>

- after i create a "/cisco/spaxxxxxxxxxxxx.xml" file with other config information.

Now, this is the point:

- If i attach a new SPA504G to the network, or if i make a Factory Reset of a phone, i can see (in debug TFTP) that the phone search in the server for "XMLDefault504G.cnf.xml", the file exist, but nothing appenes. The Phone boot but remain with default value (like no matter about the "XMLDefault504G.cnf.xml" file) and the phone not search for "/cisco/spaxxxxxxxxxxxx.xml" file

- If i force a RESYNK, from a web browser, give the "XMLDefault504G.cnf.xml" (Example the phone search and read the "XMLDefault504G.cnf.xml", after read the "/cisco/spaxxxxxxxxxxxx.xml" and all goes right.

Where is the difference, and why after Factory Reset the phone search for a file that exist, but not matter about it?

Spa504G Firmware is: 7.1.3a

Thank all.


Patrick Born
Cisco Employee

Hi Mauro,

Please use 7.4.4 firmware. Here are instructions on how to locate it:

Take a look at this 7-minute video where I attempt to explain the SPA5xxG IP phone boot process:

This video is also linked from the following:

     Under Tutorials at:


Take a look at the Zero-touch configuration document that I wrote for Asterisk, it's good for any call control and will help you with your project:

I've been through your post and all your questions are answered in the SPA5xxG boot process video and the Zero-touch config guides that I provided links for.

Let me know of your progress.