Tech Tip: Converting a Cisco IP Phone from SCCP (Skinny) to SIP Firmware

April 3, 2009 by Garrett Smith

Cisco IP Phones are amongst the most popular desktop IP phones out there. By default, Cisco ship their phones from the factory pre-loaded with their proprietary SCCP protocol firmware (also commonly referred to as “skinny”).

If you are running Asterisk, Trixbox, Switchvox or any other standards-based SIP platform or hosted service, you’ll need to migrate your Cisco phone(s) from their native SCCP (skinny) load to SIP in order to use them. While this is not a particularly difficult procedure, it can be frustrating for those who have never attempted the process.

For the purposes of this exercise, we’re using a Cisco CP-7960G. The process may be slightly different depending upon the specific model of Cisco IP phone you are working with.

Cisco 7940/7960 IP phones can support either the Skinny Call Control Protocol (SCCP), Session Initiation Protocol (SIP), or the Media Gateway Control Protocol (MGCP), but not more than one simultaneously. This is possible because they load different firmware versions on bootup. This functionality is transparent to the end user, and you enable it through changes to the basic text−based configuration files that the phones download from a Trivial File Transfer Protocol (TFTP) server.

First, a few prerequisites:

A – You’ll need a CCO login for in order to obtain the latest SIP firmware. The easiest way to obtain a CCO login is to purchase a Smartnet maintenance contract for your Cisco IP phone from an authorized Cisco reseller. Once you have a registered Smartnet, you can obtain CCO login credentials and access the firmware downloads section of Cisco’s website. Expect to pay $8-$15 for a Smartnet contract.

B – You should have a comfort level with basic networking concepts and TFTP setup/administration.

Follow these steps to enable SIP functionality:

Step #1
Download these files from Cisco SIP IP Phone 7940/7960 Software ( registered customers only) and place them in the root directory of your TFTP server (tftpboot on a UNIX machine):

  • P0S30100.bin This is the SIP image. You’ll want to download the file in binary format, to ensure that it is not corrupted. Note: There are many different variations of this file, depending on the version of software that you are loading.These are some examples:
    • SIP Release 2.3 or earlier: P0S3xxyy.bin The xx variable is the version number, and yy is the sub−version number.
    • SIP Release 3.0 and later: P0S3−xx−y−zz.bin The xx variable is the major version number, y is the minor version number, and zz is the sub−version number.
    • SIP Release 5.0 and later: After this version has been installed, you will not be able to revert back to versions earlier than 5.0. You may still change from SCCP images to SIP images, but they both must be version 5.0 or later. For more information on this, refer to Release Notes for Cisco SIP IP Phone 7940/7960 Release 5.0.
    • This table describes the meanings of the first 4 characters in the binary files names.

Note: To verify which image the phone is using, choose Settings > Status > Firmware Versions. Different phone models use different processors. This fourth digit can help determine the model of phone for which the file is used.

  • OS79XX.TXT—This file tells the Cisco 7940/7960 which binary to download from the TFTP server. This file is case sensitive and must only contain the name of the file that you want to load, without the .bin extension. For example, if you attempt to load the SIP version 2.3 software, it must contain only the line P0S30203. If you try to load versions 3.0 and later, the file name must be in the format P0S3-xx-y-zz. For example, if you attempt to load the SIP version 7.1 software, OS79XX.TXT must contain the line P0S3-07-1-00. The binary referenced here must also be present in the TFTP root directory. Without this file, the phone does not know which file it needs to retrieve, in order to replace its existing software.
  • SIPDefaultGeneric.cnf—This file is an example of a default configuration file. This file contains configuration information relevant to all phones.
  • SIPConfigGeneric.cnf—This file is similar to the previous one, except that it contains information relevant to a specific phone instead of to all phones.
  • RINGLIST.DAT—Lists audio files that are the custom ring type options for the phones. The audio files listed in the RINGLIST.DAT file must also be in the root directory of the TFTP server.
  • ringer1.pcm—This file is a sample ring tone that is used by the Cisco 7940/7960.
  • OS79XX.TXT—This file always contains the universal application loader image.
  • P003………bin—Nonsecure universal application loader for upgrades from images earlier than 5.x.
  • P003………sbn—Secure universal application loader for upgrades from images 5.x or later.
  • P0a3………loads—File that contains the universal application loader and application image, where a represents the protocol of the application image LOADS file: 0 for SCCP, and S for SIP.
  • P0a3………sb2—Application firmware image, where a represents the application firmware image: 0 for SCCP, and S for SIP.

Step #2
With a text editor (vi or Notepad), rename the file SIPDefaultGeneric.cnf to SIPDefault.cnf (used for global parameters on all phones).

Step #3
With a text editor, rename the file SIPConfigGeneric.cnf to SIPmac_address.cnf, for each phone (for example, SIP002094D245CB.cnf). The MAC address must be specified in capital letters and the extension (.cnf) must be in lower case. The MAC address of the phone can be found on the sticker that is located on the bottom of the phone, or it can be found through the phone LCD screen (choose Settings > Network Configuration > MAC Address). Note: Allow read and write file permissions on the TFTP server for those files.

Step #4
Unplug the power cord or Ethernet cord (if inline power is used) in order to reset the phones. Ensure that the phones can find the TFTP server. Manually configure the phone’s IP address, gateway address, and TFTP server address; or configure the phone network settings from the Dynamic Host Configuration Protocol (DHCP) server. It is recommended that you not use the TFTP server on the Cisco CallManager, if you have one in your current system.

Step #5
Manually Configure the Phone Network Settings

Complete these steps in order to manually configure the phone network settings:

  • Press the **# buttons in order to unlock the phone. (This step either locks or unlocks the options, based on the current state.)
  • Press Settings.
  • Press the down arrow in order to select Network Configuration and press the Select softkey. There is an unlocked padlock icon in the upper-right portion of your LCD.
  • Use the toggle button and the arrow keys in order to modify any parameters. When you enter IP addresses, the * key is used for decimal points.
  • Press the Save softkey in order to save your changes.

Step #6 (Optional)
You can also configure the phone network settings from the Dynamic Host Configuration Protocol (DHCP) server. For SIP phones, make sure that the DHCP server uses Option 66 for the TFTP server. These DHCP options are usually configured from the DHCP server:

  • IP Address (DHCP Option 50)
  • Subnet Mask (DHCP Option 1)
  • Default IP Gateway (DHCP Option 3)
  • DNS Server Address (DHCP Option 6)
  • TFTP Server (DHCP Option 66)
  • Domain Name (DHCP Option 15). Note: Cisco CallManager uses Option 150 for the TFTP server, while SIP phones expect Option 66 for the TFTP server.


  • Amazing resource. Thanks for posting this!

  • Dale

    Do the files on STEP 1 have to be placed on a UNIX server, or can it be installed on a standard Windows computer?

  • Jan_Hendrik


    You can use any TFTP server to do firmware downloads, Windows or Unix based


  • nadim


    it is a good topic but from where can i download these files. i have a cco login but i cant find the following file. so, please if you have a step by step on converting sccp to sip on cisco ip phone 7911, send it to me.

    thank you

  • It’s really a good idea to own cisco products but of course you’ve got to have a reliable Cisco maintenance contract for security purposes.

  • Salim

    I am trying to change the firmware of my 7960 from sccp to sip. I have got a cisco 1760 router which I use as CME4.0 which I use as tftp server as well. This is all for doing some self study for Voice CCNA.

    Strange thing I have noticed is that I don’t have SEP-MyPhonesMac.cnf.xml file. But the phone seems to ask for it during registration and strangely enough finds one. On my CME router flash: I don’t see a file with that name. Is it possible for the CME to build that file on the fly and serve it to the phone? I can’t find any documentation either on the web or Cisco books I have to say this is happening. I am more than certain that phone requests and gets this file by capturing packets using VSPAN/wireshark on my 3550 switch which is connecting 3500XL(inline power) where the phone is connected and 1760 CME router.

    I would really appreciate if you can comment on this and let me know what is going on.

    Many thanks

  • Salim,

    CME will generate config files “on the fly”, same way as normal CallManager does. You may change this behavior and generate configs “to be stored in the flash”, but then if you do any change, you have to run a command to update these files from the config.

    Mike / CCVP, CCSP, CCDP, CCNP, CIE Voice (written), etc.

  • Rob Collins

    Do you have scripts of the XML and CNF files needed in order to upgrade. I have the Cisco files but have had no success in getting them to load by themselves.


  • somrak

    Do you have any guide for 6921 model??

  • Robert

    Good stuff!

  • So don’t depend on my recommendation for something authorized!

  • obbo

    Hi All,

    I want change 7975 IP phone from SCCP to SIP. Who have idea ?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Featured Posts

  • Popular Posts

  • Read Our Feed

  • Latest

  • VoIP Post Categories

  • Archives