How to load SIP or SCCP on a Cisco 7940 7960 7941 7961 Ip Phone or fix a protocol application invalid message

145 Comments
Posted by Blog Master on February 16, 2011 at 1:26 am

Getting Cisco phones working with asterisk may seem like a daunting procedure; getting SIP firmware installed on the phone, loading up the the firmware files in the tftp server, fearing that you will somehow brick the phone by an incomplete firmware upload…But I am here to reassure you that once you understand how Cisco phones update themselves, the fear and trepidation will subside.

Cisco 79xx IP Phone

In fact, Cisco phones are simple. They just need a tftp server to update its firmware and it doesnt even have to be located on the asterisk/phone system itself. 7940/60 Cisco phones update in two stages. The bootloader, then the application. Once the bootloader is upgraded, all passwords and networking information on the phone will be wiped out. But what is essential in upgrading these phones is a DHCP server with option 150 enabled – an option to auto-provision the tftp server ip address when the DHCP server hands out the regular ip address to the phone.
Without an auto-provisioned tftp server address, the phone will only complete half the upgrade and come up with an error message of “protocol application invalid.” This just means that the phone could not complete the second half of the upgrade and needs the tftp ip address to be specified. Only problem is since there is no application running, there is no place to specify the address! Thank goodness for DHCP option 150 which does this for us when the phone grabs an IP address after loading the bootloader.

Below are instructions to upgrade/convert any Cisco 7940, 7941, 7960, 7961, 7970, 7971, 7942, 7962, 7945, 7965 IP phone to any firmware you want from the Cisco web site (SIP/SCCP), and to recover any cisco phone which may have screwed up somehow while upgrading firmware (like if you get the protocol application invalid message).

Step 1: Download Cisco phone firmware
Cisco may require you to have a smartnet contract before you download the firmware, but if you do not have one, there are firmware files available on the internet. Ive provided two sources below.

a. Goto http://www.cisco.com/ and create a login if you do not already have one. Download the firmware for the specific phone you are using. (if cisco doesnt allow you to download the firmware, check here: ftp://ftp.itl.ua/pub/cisco/ip-7900ser/ or http://radiotwenterand.nl/~graver/cisco/SIP-7960/ for phone firmware).

b. Download the .zip file and extract it to a directory. If you are downloading an older version of the SIP/SCCP firmware and it only comes in a .cop file extension. Just rename the extension to .tar.gz and extract it to a directory using winzip or winrar.

Extracted files in a folder

You will have several files in this directory. If you just have one, you must remember to extract all the files.

Step 2: Download and configure the DHCP/TFTP server
We are going to use a windows based machine and load tftp/dhcp software on it which will make our windows machine a server for our phones.

a. Go here to download the tftp/dhcp server – http://tftpd32.jounin.net/
Download and install version 3.23 (<–YOU MUST DOWNLOAD AND INSTALL THIS VERSION. I have had many people complaining about their phones not obtaining a correct ip address and also the files not being sent correctly. Every one of these problems was due to using the incorrect version and/or having their firewall on).

b. You will also have to configure your windows machine to use ip address of 192.168.1.1 and subnet mask of 255.255.255.0.
Youll configure this tftp server to host the upgrade files via tftp server (theres an option to configure the working directory in the program to use for the stored firmware files on the windows machine – this must be set correctly!).

c. Under DHCP server within the tftp32 program, enter the following and click SAVE:

-IP pool starting address as 192.168.1.2
-Size of pool as 250 (if doing multiple phones, this just makes sure your phones are able to receive an ip address)
-Default router as 192.168.1.1
-Mask as 255.255.255.0
-Additional option, enter 150 in the first box, then 0x0101A8C0  in the second box (this number is 192.168.1.1  in Hexadecimal).

TFTP example

3. Putting it all together

a. Now, there are a few things to consider when upgrading 7940/7960 cisco phones (these steps below dont apply to the 79×1/79×2/79×5 java based phones, if you have one of these, just do steps d. and e.). But the rule of thumb, is that if you have SCCP on your phone youll need to use a XMLDefault.cnf.xml file to specify the firmware load information tag by which the phone can know what load it should install. For the rest of this guide I will just assume you want to convert SCCP to SIP.

b. The easiest way to get SIP on your phone is to install a universal application bootloader. Ive found that SCCP version 8.0.9 (P00308000900) has the most compatible loader which easily allows swapping between current SIP and SCCP loads without a hitch. So the best thing to do is to upgrade your SCCP phone with a newer SCCP load before switching over to SIP. If you have a very old version of SCCP, you will find that you cannot immediately upgrade to this version. If that is the case, just load version 3 (P00303010102), then load to version 5 (P00305000500), then jump to version 8.0.9 (P00308000900). To do this you have to download those firmware versions and just extract them all into one directory.

c. Now download and place this file into your firmware directory. XMLDefault.cnf.xml (right click on link…’save target as’ – this file contains the text below)

<Default>
<callManagerGroup>
<members>
<member priority=”0″>
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<mgcpPorts>
<listen>2427</listen>
<keepAlive>2428</keepAlive>
</mgcpPorts>
</ports>
<processNodeName></processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation>SCCP40.8-3-1S</loadInformation>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<servicesURL></servicesURL>
</Default>

After you have downloaded the file, edit the loadInformation tag within the XMLDefault.cnf.xml file with the firmware you want to install on your phone. Do not add the file name extension, just the name of the file (ig. <loadInformation>P00308000500</loadInformation>). Save and proceed to the next step.

d. Next plug in the phone by crossover cable or ethernet switch to the computer you are running this server from (make sure you disconnect any device attached to the network which resolves an ip through dhcp, as this will conflict with any other dhcp server on the network).

e. Power Cycle the phone and clear the configuration by holding down the # key and then plugging in the phone. After all the lights cycle on the phone, release the # key and press 123456789*0# followed with the 2 key (if you are using a 79×1, 79×2, 79×5, 7970 phone, plug the phone in and hold the # key till the extension lights blink amber…then press 3491672850*#. The lights will turn red, but if they dont, repeat this step. The phone will then wipe the flash and load whatever firmware is specified in the tftpd32 directory – if the phone just keeps downloading the term.defaults file constantly, just do an incremental upgrade to the firmware version that you want).

This will clear all settings on the phone and set it to defaults. Upon reboot, the phone will grab an ip address from the dhcp server on the windows machine running the dhcp server. Tftpd32 will also assign an ip address for the tftp server to the phone using option 150, and the phone should start pulling down files from the server after it obtains an ip address.

f. If you are doing an incremental upgrade to get to version 8.0.9, just keep editing the XMLDefault.cnf.xml file with the next version of firmware and save, then reboot the phone (after it has completed loading both the bootloader and application). The phone should find that it needs to upgrade itself until you stop editing the file with new firmware information.

g. After the phone gets to SCCP version 8.0.9, all you have to do is just download the version of SIP firmware you want, and then extract it into a seperate directory. Point the tftpd32 program to use that directory, copy the XMLDefault.cnf.xml file to that directory and edit the loadInformation tag with the POS-xxx filename which is located in that directory and  reboot the phone. The phone will automatically switch over to loading the SIP firmware.

You can check the events viewer within tftpd32 to ensure that the phone is grabbing the necessary files and getting an ip address. The 79×1/79×2/79×5/7970 phones take a bit longer to fully complete the flashing process since they use more numerous and larger files than the 7940/60 series phones. If the phones just sit like they arent doing anything, wait a bit longer and they should come back up. Its not uncommon for one phone to take up to 4-5 minutes to complete the entire process.

Thats all there is to it, and now that the phone has a good universal application bootloader, you will have no trouble switching between SCCP and SIP by just pointing the phone to the appropriate directory.

If you have any questions, feel free to send me a message on my contact page, if you get really stuck I can also provide these services remotely.

Post to Twitter

Filed under Computers, Hack
You can leave a comment, or trackback from your own site.

145 Comments

  • On January 17, 2013 at 3:34 am Marta said

    Hi
    I have 7940G after upgrading to version 5 P00305000500 my phone lost ability to deflash. Basically when I hold # on start it doesnt say sequence started anymore.
    also it never say bootloader at the begining, Is there any other way to wipe the flash on this phone?
    It seems to connect to tftp as it wants SEP001B0C18BDC1.cnf.xml and OS79XX.txt but I can not get it to pull another upgrade at all.
    Please help

  • On January 17, 2013 at 11:07 pm Blog Master said

    Just put an sccp load version above P00305000500 in the “load information” tag in the SEP001B0C18BDC1.cnf.XML file and reboot the phone. You’ll see the phone upgrade to the new load. Keep going till you get to the load I specified in the guide, then switch over to the SIP load.

  • On February 4, 2013 at 7:30 am Mike said

    I am trying to restore my 7961. Here’s what I did so far.
    1. Downloaded and running Tftpd32 v3.23. Configured DHCP as per instructions.
    2. Connected phone with crossover cable to pc and did the 34… sequence.
    3. Can see that the phone is getting an ip (can ping it too)
    4. Nothing happens after that. The tftp server log tab doesn’t show any files being pulled by the phone.

    Note: FW is off, restarted computer. Did everything possible. The phone’s speaker led in set intervals, comes up and at that time, can see an entry in the log viewer for IP request (DHCP keepalive)

    What do I do? Please help.

  • On February 4, 2013 at 8:58 pm Blog Master said

    Only thing I can think of is the tFTP server is listening on the wrong interface…

  • On February 14, 2013 at 6:28 pm ryva said

    I saw this tutorial 3 months back before i was just about to start CCNA Voice becuase I just bricked a phone I bought off ebay (couldn’t help but play around with the phone). I gave up and sent it back for a new one. I figure now since Im a lot more familiar that i give it another shot and try to upgrade my firmware again and once again ran into a similar problem. I came back here and your guidance step for step has helped me bring my phone back to life. Thank You!

  • On March 7, 2013 at 1:31 am dado said

    I had succesfuly to flashed firmware on C7941 and used this procedure as my guide. I use Cisco router as DHCP server(with 150 option configured), and used SloarwindsTFTP server.

    Used File cm-7941_7961-sccp.8-0-4ES4-0-1S from ftp link: ftp://ftp.itl.ua/pub/cisco/ip-7900ser/. Also I had to change XMLDefaultFile loadInformation filed to:SCCP41.8-0-4ES4-0-1S

    Now my phones work fine.

  • On March 13, 2013 at 3:22 am Todor said

    Hello i have a cisco 7911g i manage to isntall sip on it and everything is fine except that it can’t register with my sip account to the provider.I think it’s something with sepmacaddres.cnf.xml file but i can’t figure out what it is.There’s a little cros next to the little phone icon and when i pick up the headseat there is a signal , but when i dial something the signal is gone. I will provide my sepmacaddres.cnf.xml if needed.Please help i’ve tried everything and the thing does not work.

  • On March 14, 2013 at 12:17 am Todor said

    Yes the configuration is the same i think it’s something with the sip proxy of the provider but i can’t understand what it is. I can copy the config file if you want to see it.Register with proxy option is set to false ,but if i set it to true the phone keeps registering and thats all if its true then then the signal come up , but there is the little cross next to the phone icon.

  • On March 20, 2013 at 4:00 am drex said

    @todor
    have you tried checking the NAT settings? i had the same scenario before. cisco 7911g is registering but there is a “x” beside the phone icon on the screen. i just change the NAT settings and it worked fine. NAT=NO if the phone is connected on the local network and NAT=YES if the phone is connected on a public network. just sharing what i did.

  • On March 27, 2013 at 4:18 pm andy said

    Hi,thanks for your great tutorial :)

    I have a little problem here,
    I have 7940 Cisco IPPone,I upgrade it to Version5,now i want to upgrade it to Version8 but i couldn’t factory reset it anymore!

    This is what i do,I Unplug the power cable from the phone, and then plug in the cable again.The phone begins its power up cycle.
    I Immediately press and hold # and while the Headset, Mute, and Speaker buttons begin to flash in sequence,I release #.
    but the phone does not wait for me to enter the key sequence(123456789*0#) for the reset.

    do you know what is the problem?
    Or is there any other way to Reset the phone to the factory default? (because i want to upgrade it to version8)

    Thanks in advance

  • On March 29, 2013 at 8:02 am Blog Master said

    You should be able to upgrade it without factory resetting it if you have already done so. Resetting it just makes sure you have no strange network configuration in the phone and allows the phone to get the dhcp address from the sever. Just go ahead and put the newer firmware in the folder, but make sure you go incrementally. You’ll need version 6 Next, then you can jump to version 7 if converting to sip. If using sccp, just make sure you have the firmware filename in between the tags in the xmldefault configuration file, as described in my guide.

  • On April 2, 2013 at 9:01 am Christian said

    Guy Paddock solved my issue, change the TFTP option from 150 to 69, then it grabbed the files succesfully.

  • On April 11, 2013 at 1:38 am cmba said

    “We are going to use a windows based machine and load tftp/dhcp software on it which will make our windows machine a server for our phones.” I have set-up the tftp/dhcp. I am not sure now of the connection between phone & my computer. Do i need a separate switch or On which port do i connect the phone to get dhcp from PC since my PC do not hve PoE. sorry fo a dumb question. Please clarify the connection to me.

  • On April 11, 2013 at 8:09 am Blog Master said

    You’ll need a computer with a network card which supports auto mdix with regular Ethernet patch cable or a regular ethernet card and use a crossover cable to connect one phone to the computer. If you want to connect several phones, use a switch. Power the phones with a power adapter or use a poe switch without power adapter.

  • On April 11, 2013 at 10:32 am Chiptransisto said

    I use an Asterisk version of PBX (Pbxinaflash). I’ve had my cisco 7940 and 7960 phones working using the tftp server built into asterisk. They are not currently set up since I upgraded. I want to add a 7975 phone. The old firmware that I have is version POs3-08-06-00. Do you know if that firmware will work on a 7975 phone?
    Thanks for this site. It is great.

  • On April 11, 2013 at 7:56 pm Blog Master said

    7940/60 firmware is not compatible with 7975 phones or any other Cisco phones

  • On April 15, 2013 at 4:44 am cmba said

    Thank you very much. I got a PoE switch, uploaded the files on the tftpd32. I battled with tftpd32 on windows 7. TFTPD32 was issuing DHCP but the phone was not getting IPs, tried it on my computer it was the same. I then installed tftpd32 on windows XP and it worked like charm.I flashed the old firmware as specified in blog, then it loaded SIP firmware from TFTP server on tftpd32 as said in blog.Make sure the mac address of the IP phone is correct SIP.
    I messed the MAC ADDRESS and also some files were missing.I restarted the reseting from the start as in the blog after correcting my mistakes and the phone is now working with Trixbox. There is something which is not specified in the blog i want to point out it may help someone. I downloaded the firmware files from the link provided in blog, you have to edit the SIP<> XML file. In that file thus where you specify your extension, secret key, display name, & IP address of your IPBX. If you did not edit it before the firmware upgrade unfortunately you have to re-do the process from start with the new updated XML file(Thus how i did it, maybe there is a simpler way)

  • On April 23, 2013 at 2:34 pm Marc said

    Regarding what cmba said on April 15, 2013 at 4:44 am, I am having the same problem. I have a Cisco 7941.

    I am running W7 Professional. I do not have immediate access to a WXP machine. Is there a work around (i.e. running tftpd32 as compatible for WXP SP3)? I did try that, it didn’t work, but just confirming with you.

  • On May 10, 2013 at 1:09 am matty said

    do I really need to use an “endpoint manager” too add SIP accounts to the phone?

    If not and I only had one 7940G for use directly with a voip IP PBX hybrid like anveo.com or voip.ms what would I use an endpoint manager for?

    pbxinaflash. com/ community/index.php?threads/piaf-endpoint-manager.7097/

    this device cannot render flash so I couldn’t watch the tutorial

  • On May 10, 2013 at 9:54 am cornasdf said

    @Marc we are using solarwind tftp on win7. give that a shot.

    I am having a problem where i can get it to download the xmldefault config but nothing happens after that. this is the xml config i am using and I have the .loads file in the same directory. Is there anything else I need to do to get this to work on a 7962?

    Thanks

  • On May 10, 2013 at 10:49 pm Blog Master said

    If using a 7962 you actually just need to put the unzipped firmware files in the directory. no need for an xmldefault file. Just do the full factory reset using the 3491672850*# number sequence and it should pull the termdefault file and update itself. If it gets stuck, do an incremental firmware upgrade.

  • On July 5, 2013 at 11:52 pm melifluous said

    When cisco terminates support in 2015 for 7940G will there be third party SIP firmwares? perhaps to unlock additional line capabilities?

  • On July 15, 2013 at 11:53 pm stev said

    I have a set of three 7960G

    which files need “image_version:” specified? SIPDefault*, SIP[mac]*?

    And which: SEP[mac]*, XMLDefault*, OS*, SIPDefault*, SIP[mac]*

    use P0S* and which use P00*?

    there’s too much conflicting interweb advice and some phones comply with SIP upgrades to 8-12-00 and some stuck in boot loops or invalid messages

    rrrrrg

    I’m starting to think I should invest in a few snom instead :|

  • On July 15, 2013 at 11:55 pm stev said

    I’m using the tftp server in pfSense 2.1

  • On July 16, 2013 at 8:34 pm Blog Master said

    For the 7960 phones it really depends on what firmware version you have. Old versions check the 7900 text file then switches to the sip default file if sip. But the easiest way is to just keep it at sccp and upgrade it to the firmware I specified and then switch it over to sip. Otherwise you’ll be doing three incremental upgrades and modifying several different files.

  • On August 8, 2013 at 3:36 pm Bernie said

    I have a 7960 v.3.xx I am trying to upgrade to sip v.7.xx and I am not having any luck. I thought I followed your instructions but it does not seem to work.

    I downloaded the file from cisco and created an FTP server. The phone loads the initial file but somehow does not load any other…

  • On August 15, 2013 at 11:29 pm S R Ellis said

    Contact me at scott@srellis.com for the Cisco SIP Firmware if you don’t have it, I also have the samples of .cnf config files you need, they are working .cnf files… ones that I used that included various functions for about 10 phones

  • On October 14, 2013 at 2:08 am sam said

    Thanks for the tutorial, I am expericing the exact same problem as you mentioned here and have gone through all your steps, but I get a TFTP timeout error at the end! Do you happen to know why this might have been caused ?

  • On October 25, 2013 at 8:12 pm Steve said

    Hi thanks a lot for your article! I am stuck however and do not know how to proceed.

    I loaded SIP firmware 9.2.1 but want to restore SCCP. I power on the phone holding down # but it doesn’t cycle through the Headset/Mute/Speaker lights, Speaker comes on solid green. But I wait holding #. After a while the first two lights only flash amber but before the third lights up I get the CISCO welcome screen. Entering the number sequences do nothing.

    It’s as if it just won’t let me do a factory refresh. I’ve done this before but I don’t understand why I can’t do it anymore.

    Please help! I don’t know what to try next… :(

  • On October 28, 2013 at 1:32 pm Blog Master said

    best bet is to just put the sccp firmware load into the tag in the xml file

  • On October 28, 2013 at 4:36 pm Steve said

    OK that was silly of me. I didn’t realize that after a certain firmware revision that it will automatically load the firmware specified in the SEPxxxxx.cnf.xml. I updated this and the phone loaded that firmware when I rebooted it. Now I’m rocking FreeSwitch’s mod_skinny like nobody’s business.

    Thanks for the simple but effective suggestion.

  • On February 10, 2014 at 4:16 am David said

    Hi there, been trying this on and off for over a week with no success.
    My setup is a win7 laptop with the IP set to 192.168.1.1, version 3.23 of tfptd32 picks this up, I have it plugged into a small netgear switch to provide PoE to the phone, and I have a Cisco 7970 phone. I have all the settings as per your instructions. I do the 3491672850*# and the phone lights change etc and reboots, it is allocated an IP address that I can see in the event viewer, but it does not seem to start pulling the files. I have checked that the firewall is turned off and it is, and also ensured the app is allowed through it anyway. I further tried disabling the tftp in tftp32 and trying the solarwind one that has been suggested before, but no success. the only life in the phone is that the speaker light comes on every so often.

    Any hints?

  • On February 16, 2014 at 9:50 pm Blog Master said

    If there is absolutely nothing from the phone in the tftp32 log then its a good bet the phone has a bad Ethernet port. Had that happen multiple times. Try connecting the hone directly to the computer by Ethernet. See if there is any traffic. If not its a bad Ethernet port on the phone.

  • On February 17, 2014 at 6:58 am David said

    Hi there, I have three of these 7970 and it is the same on them all, I am getting an IP address assigned via DHCP following a request from the phone so there must be some traffic passing.

  • On February 26, 2014 at 6:35 pm Blog Master said

    Only thing I can think of is turning off yur firewall and making sure you load on thee lowest firmware version then incrementally increase the version as it loads.

  • On February 27, 2014 at 12:42 am gina said

    “In fact, Cisco phones are simple.”!!!After a 2 weeks struggling to get a SIP fimware on my Cisco IP7962 i confess that i am about to leave up.. The phone stuck on the upgrading screen Please Help.

  • On March 1, 2014 at 1:54 am David said

    OK firewall is turned off, but I didn’t realise that the incrementing part applied to the java based phones and it was not in the D and E sections, I’m not even sure what version was on these phones now, what is the lowest one for SIP that you recommend and I will see if I can get it.

  • On March 17, 2014 at 10:21 pm Blog Master said

    I believe its version 7

  • On March 28, 2014 at 3:20 am David said

    OK, So I just want to be clear, for the java based 7970 phones, do I need to do all the editing of default.xml file editing? Do I have to put SCCP version 7 on first or can I go straight in with the SIP firmware?

  • On March 29, 2014 at 8:04 pm Blog Master said

    with java based phones, you do not need the xml file to upload the new firmware

  • On April 1, 2014 at 2:45 am David said

    OK cheers, do I need to load SCCP first or can I go straight on with SIP? I’ve been onto the Cisco site and have downloaded version 7.0.3 and 8.0.3 of SCCP, the earliest SIP one that is available is 8.0.3. Just a bit of guidance on that and I will give it another shot.

  • On April 1, 2014 at 7:55 am neil said

    Hello,
    I read this and would liei to say thank you as is good and clear.

    Do you think this would work on an 8945 to go from sip to sccp?

    Thanks.

  • On April 2, 2014 at 6:10 pm Blog Master said

    Go straight to sip, with lowest version!

  • On April 9, 2014 at 4:53 am David said

    Success, I did a couple of things to make it work, I downloaded the 8-0-4 load for the 7970, but still no success, I then moved the files to a directory on the root of my hard drive, and that did the job. It’s possible that the older version of TFTP32 does not like the library folder format of WIN 7. Anyway, I’m happy, now I just need to understand some of the xml settings files so that I can try to point the phone to a SIP provider.
    I’ll let you know how I get on.

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Pingbacks / Trackbacks

Welcome

**NOTICE**

The contact page form has now been fixed! I didnt realize that it had gone inoperable since Oct 2012. Shouldnt have anymore problems now, so feel free to contact me by the contact form.

Translate

    Translate to: