Cisco 7960


Cisco 7960

This guide applies to the Cisco 7940, 7940G, 7941G, 7960, 7960G and 7961G. These phones are the real work horses of the IP Telephony industry. They’re sturdy, configurable and when used with Call Manager very robust. However you’re not here to learn how to use these phones with CallManager you’re hear to use reflash them to SIP, because you want to use them with Asterisk, PiaF, Trixbox, or any other SIP based PBX. This process is not that difficult but it can be frustrating without the right instructions, which is why I’m here to help.


Firstly, I’m not a big fan of these phones in a SIP atmosphere, I have one on my desk so they’re by no means terrible, but realistically Cisco’s SIP firmwares are much more limited than their SCCP firmwares. If you haven’t yet bought your phone, I’d recommend you buy one of the SPA500 line . They’re made of virtually the same parts, except designed for the Small Business and SIP customers.

Let me explain more or less what you are doing, you are taking whatever firmware is on your phone and you will be reflashing it to the latest SIP firmware. Typically these phones come from Cisco with the SCCP, often called “Skinny” protocol. This protocol only works with the proprietary Cisco CallManager platform or with special asterisk modules. Although it is very rare to ‘brick’ these phones, it is possible. It is very important that you are patient with each step as well as careful that all of your connections are solid.

Alright, to reflash this phone you’re going to need:

  1. DHCP Server
  2. TFTP Server
  3. (For the 7940/7960)
  4. cmterm-7940-7960-8.11.00-sip.cop (7940/7960) or cmterm-7941_7961-sip.8-5-2.cop (7941/7961)
  5. XMLDefault.cnf.xml configured correctly for your firmware. (Right Click Save As, or your browser might try to parse the XML) SERIOUSLY FOLLOW THOSE INSTRUCTIONS, THAT’S THE BIGGEST MISTAKE PEOPLE MAKE, MOST MODERN BROWSERS WILL PARSE XML.

If you have a Cisco Smartnet Contract already you can get the firmwares for the 7940/7960 here and for the 7941 and 7961 here. If you don’t have a Smartnet Contract I recommend you buy one from CDW. You can chance it on the internet trying to find a good Samaritan who has uploaded the firmwares for you but it’s seriously worth the 8$/year to have access to firmware updates.

Now the unusual part about reflashing the 7940 and 7960 generation of  phones is that to get them to the most recent firmware often times they will have to be flashed twice. This is because sometime around the 7.5 firmware Cisco changed what I believe was the phone’s bootloader. For this reason it is necessary to take the phones directly from SCCP to P0S3-07-5-00 then to 8-11. Technically some phones may be able to go directly to the latest version from Cisco, but because it seems like the vast majority of phones with the SCCP firmware on them require this process, I now just assume that it will need to be done to streamline the process.

I’m going to steal a few bits from my Cisco 7970G Guide you can always use whatever TFTP server and DHCP server you like as long as you have the ability to set the DHCP options manually. Here we are going to use tftpd32, it has both a tftp and dhcp server inside.

To start make a folder on the desktop, I named mine CP-7940.

If you have a 7940 or 7960 extract the contents of and cmterm-7940-7960-8.11.00-sip.cop with 7zip or WinRAR. The 7941 or 7961 will require you to extract the cmterm-7941_7961-sip.8-5-2.cop. If the archiver doesn’t automatically detect it’s extractable when you right click. Add a .gz to the end, it’ll figure it out. Then move the XMLDefault.cnf.xml that you downloaded from me into the same folder.

Now if you’re flashing a 7940 or 7960, you should have this in your directory.

  • cmterm-7940-7960-8.11.00-sip.cop
  • OS79XX.TXT
  • P003-07-5-00.bin
  • P003-07-5-00.sbn
  • P003-08-11-00.bin
  • P003-08-11-00.sbn
  • P0S3-07-5-00.bin
  • P0S3-07-5-00.loads
  • P0S3-07-5-00.sb2
  • P0S3-08-11-00.loads
  • P0S3-08-11-00.sb2
  • sip_load7.txt
  • sip_load8.txt
  • XMLDefault.cnf.xml

The P003-* files are SCCP files, but they are used by the SIP. SIP firmwares are typically labeled P0S3-*. You want to make sure the P0S3*.loads file is referenced in your XMLDefault, but the P003 files still need to be available.

or for the 7941/7961

  • apps41.8-5-2TH1-9.sbn
  • cnu41.8-5-2TH1-9.sbn
  • cvm41sip.8-5-2TH1-9.sbn
  • dsp41.8-5-2TH1-9.sbn
  • jar41sip.8-5-2TH1-9.sbn
  • load115.txt
  • load30018.txt
  • load308.txt
  • load309.txt
  • SIP41.8-5-2S.loads
  • term41.default.loads
  • term61.default.loads

Now we have to modify our XMLDefault.cnf.xml file to reflect our intent to reflash the phone. Either download my starter file from above or add these line to your XMLDefault.cnf.xml. Here I’ve included the settings for both the 7940 as well as 7960 generation of phones.

<loadInformation8 model="CP-7940">P003-08-8-00</loadInformation8>

<loadInformation115 model="CP-7941">SIP41.8-5-2S</loadInformation115>

<loadInformation309 model="Cisco 7941G-GE">SIP41.8-5-2S</loadInformation309>

<loadInformation7 model="CP-7960">P003-08-8-00</loadInformation7>

<loadInformation30018 model="CP-7961">SIP41.8-5-2S</loadInformation30018>

<loadInformation308 model="Cisco 7961G-GE">SIP41.8-5-2S</loadInformation308>


If you need any other phones check out my post on XMLDefault.cnf.xml loadInformation tags.

Next let’s configure TFTPd32

Firstly, determine how you are going to connect your 7940/60 to your DHCP/TFTP server. You’re going to need to make sure that there is no other routers on the network that could send competing DHCP broadcasts. I recommend one of two scenarios.

  • Connecting the Phone and Computer directly with a Crossover cable.
  • Connecting the Phone and Computer together on a network switch with no other devices. Notice I say SWITCH not a ROUTER. You could use a router if you configured it properly, but that’s another story.

The switch option works better because it prevents the computer’s LAN interface from going up and down depending on if the phone is plugged in or not.

Next you are going to need to get a copy of tftpd32:

Now that you have tftpd32 open and running, we need to configure it:

Open up the settings box

Enable DHCP Server, TFTP Server, and Log Viewer, all others can be unchecked.

Make sure that you have set the directory into the same directory as your Cisco Firmware Files.

Make sure you have the correct configuration files in the directory including a XMLDefault.cnf.xml that at least partially resembles this one: (right click save as)

Set TFTP Security to STANDARD, in the image it says None. It should not be set to none it should be set to STANDARD.

Make certain that the bind address is set to the correct interface.

TFTPD32 Configuration

When done go to the DHCP tab

Make sure a DHCP and DNS server are set. Under additional options set “69” and make the IP the same as your TFTP server. Do not use these IP settings, they just server as a rough guide. The IP Pool starting address being out of the subnet is not intentional. Also under additional options the 19 was cut off by the size of the box. If you have problems with option 150, try option 66.

TFTPD32 DHCP Settings for Cisco 7970G

Check for any settings that I may have missed and double check that everything is correct.

Now it’s time to boot up the phone. If the phone is already on, a quick way to reboot it is by holding down the * key, the six key, and the settings key simultaneously. As the phone boots up watch the logs. With any luck it should boot up, and try to pull the SEPMAC.cnf then give up and move on to XMLDefault.cnf.xml. When it sees that file it should start downloading the firmware files and reboot. If after rebooting you see the phone look for a SIPMAC.cnf file then SIPDefault.cnf, your phone is successfully reflashed.

The 7941/7961 seems to reboot twice grabbing different files each time.

If the phone isn’t reflashing, double check your TFTP settings and make sure the phone is detecting your TFTP server. You may have to go into Network Settings and enable alternate TFTP server. Typically you can do this by moving to the option then pressing **# **to unlock it or going to setting then option 9. The default password is “cisco”. Then go to Network Configuration (Option 3) Then enable “Alternate TFTP Server” (Option 32) then type in the TFTP server address. The most common problem though is an error in the XMLDefault.cnf.xml file. I find myself having to do this very often on many networks.

Once you see the Sip logo in the upper right corner you are now safely flashed to 7.5. You’ll need to perform this process one more time to bring the phone up to the latest firmware. At the time of this writing that was 8.11. Open up your XMLDefault.cnf.xml file and replace the previous lines with

<loadInformation8 model=”IP Phone 7940″>P0S3-08-11-00</loadInformation8>

<loadInformation7 model=”IP Phone 7960″> P0S3-08-11-00</loadInformation7>

Reboot the phone again and it should update to the latest firmware.

This will get the phone reflashed, from here on you’ll need a configuration file to register the phone to a PBX. We have one already made for the Cisco 7941  / 7961 over here.

11 Response Comments

  • Paul Rausch  2 May 2013 at 00:39

    I’m actively trying to move our comments from the old site to this one, we had a lot of good information in the 64 comments. Feel free to ask questions or post problems regarding this guide, as it has not been updated in a while.

  • OneRepairForce  25 May 2013 at 15:17

    Cisco 7961 SIP

    This is information is out dated but I have found information that can save you lots of time and make this phone work behind nat or not. Below is information that you need to understand.

    First of all Cisco is very bad at documenting the template functions for this sip protocal because they want you to pay for call manager and licenses that cost a lot of money.

    To start out with upgrade to the latest firmware that will be 9-3-1SR2-1S, this is available on cisco website for free just register for free account and download. I can not provide this and if you search the internet you will find places to download it. Once you have it use tftp server to get it on the phone, you can set the tftp manually by unlocking the settings **# will unlock them and you can enter it in once flashed proceed to the template.

    One thing to understand NAT sounds complicated but really it is not, most home and small business routers address do not modify packets for forwarded ports so you can be behind double or trip NAT it doesnt matter as long as you have your ports forwarded correctly. The template below allows you to specify what port the phone will listen on this can be the default 5060 or anything you want. This is called the signalling port if you have multiple phones you can set it to be different for each phone because you will need to forward this individual port to the phone from the router. The protocal used will be UDP, TCP can be used but not all versions of asterisk support it. Setup your port forward and select your port. Second set of ports that need to be forwared are you media ports these are the ports audi is actually sent on, if you dont forward these you will hear one way audio below in the template i choose them to be 16384 – 16394 you dont need a lot of ports and i change this from the default 16384 to 32325 because i dont want to forward 16,000 ports to one device. I set it to only forward 10 ports this way if you have multiple phones you can easliy use the other ports. Most basic routers that are not SIP aware wont forward these automatically so you have to define it manually.

    Asterisk setup, I am using version 1.8 I will provide the configuration for the extension as well as this is a two part process part 1 is setting up the phone part 2 asterisk and of coarse the small part to forward the port on the router. Below you will see the sample extension config, you only need to worry about the listed items other items can be set up to your choosing.

    dtmfmode: Inband
    canreinvite: No
    host: Dynamic
    type: Friend
    nat: No (RFC3581)
    port: (This is your Signalling port Same port you forwarded in router and set in your template)
    qualify: NO (Cisco doesnt like to qualify over NAT not sure why)
    transport: All UDP – Primary (Depending on Asterisk Version you man you many not have this option, don’t worry its UDP by default)
    disallow: All
    allow: Ulaw (This is your codec of choice can be whatever you want)

    To review a couple of items your setting host as dynamic so the phone hs to register, nat is set to no which automatically defaults to RFC3581 which will allow asterisk to respond back on the signalling port instead of symetic nat port. What this means is these cisco phones send their traffic from a very high port like 49,915 with nat set to any other option even setting it to never will make asterisk behave in symetic mode which will have it send replys back on the original port it received traffic from. This would be port 49,915 unfortunatley our friends at cisco made it that this phone can only receivce signalling traffic on the signalling port and no other. So in any other mode besides NO (RFC3581) the packets go to the phone and are dropped. Setting this to NO (RFC3581) forces asterisk to reply back only to the signalling port which in this example is 5060.

    Phone Template,


    Central Standard/Daylight Time

    (NTP Server IP)

    (Asterisk IP)

    (Signalling Port Usually 5060)

    (Outside external IP or dns name)


    (Phone Lable)
    (Media Port Start Usually 16384)
    (Media Port End 16394)

    (Signal Port)
    (Auth Name)

    (Signalling Port)


    Lets review the template there is only a couple of key factors signalling port this is usually 5060 but can be whatever you want as long as your router and asterisk config match. Keep it uniform and you will not have any problems. Nat enabled true, this tells the phone to send the external ip in all outgoing communication instead of its private IP this is very important if not set to true phone will send its private ip and asterisk will try to reply back to private ip with no luck. Nat address this can be your external ip or dns. If you set this to your external ip, if that changes you will need to update and reload the template. Because most people have a dynamic external ip a service like dyn dns or similar will allow you to have your exteranl ip updated automatically and set the dns name into the template. Next thing to mentcion is under line proxy we set USECALLMANAGER and transportLayerProtocol is set to 2 this is cisco secret way to tell the phone to communicate over UDP protocal. If you dont set this excatly like that the phone will try to use TCP first and on some asterisk versions that can not receive the signalling information on TCP this will mean the phone wont work. There are more configs you can put into the tempalte but this is the minimum to make it work with SIP you can research those on your own.

    I hope this has helped someone use these old phones again, even though they have been out for quite some time they are still good work horses. Shame on Cisco for making it so complicated and not publishing tempalte definitions and config information.

  • Trainee in Trouble  3 July 2013 at 07:06

    The XML file is not working

    • Tiago  1 December 2014 at 09:18

      Any luck with the XML file?

  • Patti  9 July 2013 at 13:32

    CISCO No longer supports the CP-7960 phone so you CANNOT purchase a Smartnet Contract for it to get the firmware update. The CP-7960G however, can have the Smartnet Contract purchased until Oct 18, 2014 and will not be supported at all after July 22, 2015. THAT SAID: what are my options if I have the CP-7960 ?????

  • Maury Markowitz  10 July 2013 at 14:02

    Some questions:

    1) do I need a combined DHCP/TFTP? I have a DHCP server on my gateway box, and I’d like to run TFTP on my PC. Is there any reason I can’t do that?

    2) do I have to upgrade all the way to 8.x? Is there any reason I couldn’t stop at 7.5.x?

    3) in the section where you describe edits to the XML file, are those versions correct? Shouldn’t they be referring to “P003-08-11-00” instead of “P003-08-8-00”?

    • Maury Markowitz  2 August 2013 at 12:44

      So I played around, and…

      1) I ran TFTP on my MacAir, works fine (of course)
      2) I stopped at 7.5.x and it works fine
      3) does not apply if you stop at 7.5.x

  • Mohammad Hassan  17 October 2013 at 03:42

    Hi Paul, I have Cisco 7960 Phones. Their SCCP firmware version is 3.8.5. I like to convert them to SIP. I downloaded both 3.7.5 & 3.8.5 & 3.8.12. My tftp server is reviving file request. I changed the XMLdefault.cmf file & OS79XX with all these Sip version in load information part, had SIPMac address file changed, had SipDefault file. Still I have no luck what I am missing. Could you please help.

  • Paul B  17 June 2014 at 01:49

    Recently, I’d programmed (4) ip7960 version P00308000900 and want to convert to sip phones and had everything ready when I accidentally disconnected the Tftpd32do to an auto update.. I restarted it only to find that all the settings I’d had were gone. I’m new at this so I need help getting the Tftpd32 settings. Now the log viewer doesn’t even recognize the the . Can anyone help?

  • James  11 September 2014 at 07:28

    how can i get this 8$ mebership

  • Massimo Ferrario  30 September 2014 at 04:31

    PS: I was able to have the new SIP firmware uploaded by the phone using this XMLDefault.cnf.xml file:



Leave A Comment

Please enter your name. Please enter an valid email address. Please enter a message.