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

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.

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

  1. Tony

    Kindly, i am stuck with this since 2 weeks and unable to make the phone work, please, log file monitoring under TFTP log viewer tab keep showing ‘rcvd DHCP discovermsg from IP 0.0.0.0, mac 00:12:DA:AD:39:0A
    IP address 192.168.1.2 flushed from ARP table

    it keeps repeating this message, please help i really want to get out of this thing…

  2. James Mobberley

    Hi

    I have a 7940G phone and am trying to change the firmware from SIP to SCCP. The phone currently has P0S3-07-4-00 and as my first attempts to change to SCCP failed, I thought I would try a simple upgrade of SIP to P0S3-07-5-00.

    I have put these files into the TFTP folder: OS79XX, P0S3-07-5-00.bin, P0S3-07-5-00.loads, P0S3-07-5-00.sb2, P003-07-5-00.bin, P003-07-5-00.sbn, SIPDefault.cnf, XMLDefault.cnf.xml.

    When the phone boots, after getting an IP address etc, it contacts the TFTP server and downloads the P0S3-07-5-00.loads file. The phone then displays “Configuring VLAN”, “Configuring IP”, “Requesting Configuration” followed immediately by “Resetting”.

    The phone then starts again “Configuring VLAN”, Configuring IP” followed by downloading the P0S3-07-5-00.loads file. If left will loop around for ever.

    I have seven other 7940’s and all of those changed from SIP to SCCP with no problem.

    Any help would be greatly appreciated.

  3. Fritz

    Hi James,

    I´ve the same problem with some Cisoc Phones.
    Have you tried to Reset the Phone again? and Install the Firmware again?

  4. Tom R.

    James Mobberly: You’ve likely resolved your problem by now, but it sounds like your phone is likely trying to download its configuration file and when it does not find it, it resets. You should ensure that you have a valid SIPDefault.cnf file and a SIP.cnf file (where is replaced by the MAC address of the phone — if your phone’s MAC Address (found on a decal on the rear of the phone) is 00179486C202, you need a file named SIP00179486C202.cnf). The SIPDefault.cnf file contains all of the settings that should apply to each and every phone using that TFTP server, while SIP.cnf contains settings that are specific to that phone, and only that phone (you generally use that file to define the username, password, etc for that phone’s extension(s). The phone loads all the settings from SIPDefault.cnf first, then applies any found in the SIP.cnf file. If the two conflict, the SIP.cnf setting takes precedence.

    Try creating these two files and see if it is able to successfully request its configuration.

    Tom

  5. Tom R.

    Whoops – it looks like the site did not like the formatting in my last post. It should read “and a SIP{MAC}.cnf file (where {MAC} is replaced by the MAC address of the phone”, and anywhere you see “SIP.cnf”, replace it with SIP{MAC}.cnf

  6. David M

    I have a Cisco 7975G which I am trying to flash to SCCP75.9-0-3S. The phone looks dead with no screen and no indicators lit. The only way I know it is alive is that it is broadcasting CDP and LLDP packets, as well as DHCP and TFTP requests.

    During the flash it seems like the phone downloads term75.default.loads in two separate blocks but then it reboots and loops again. Upon checking using wireshark I see Protocol UDP, ETHERNET FRAME CHECK SEQUENCE INCORRECT. I cannot figure out how to get this phone back to life. I feel like the solution is right around the corner and I’m just not seeing it. I’m using the correct version of TFTPd32 and I have followed these instructions to the T. Any help would be greatly appreciated!

  7. Micheal

    I have 5 7970 G phones I am using with my Ring Central Cloud based PBX system. I saw that you could remotely upgrade to the newest firmware so that i can configure my phone manualy for SIP settings. Please please help

  8. Alex Green

    Hi I have tried the steps above I have a cisco 7940G with version 8.0 firmware
    P0030800800

    using a windows 7 laptop with a poe cisco switch nothing else on this switch
    tftpd32 version 3.23

    the phone is given an ip the log states error 2 in system call createfile the system cannot find the specified (15/09 19:03 18.536)

    I have tried option 150 and 69 on difference

    any help would be great

  9. Rob

    We’ve followed the steps but the instructions are not all together clear for the 7962G phones the important things are DHCP settings someone mentioned unchecking the ping option and it seems to work for some but not all.

    From what I can see we need a clear set of guidelines for each type and I’m willing to write it up if we can get a repeatable set of steps. It would nice to breakdown by type which ones are java based, xml based or a hybrid of both.

    The files included in the folder are important to make this work correctly and it appears if this is done on a Windows 7 system the folder for the TFTP needs to be on the root due to the way the TFTP server app recommended works. My guess is much like a lot of Linux tools built to run on windows we can blame Microsoft’s approach to directory structure.

    Could we get a list of which files are needed to make 7962G work? Also questions regarding Default.cnf.xml I read in other places this needs to be renamed to include the MAC address of the phone getting the new firmware but does that mean you keep that file in the folder or should we be deleting it after we’ve used it as a template to create the MAC prefixed versions of it.

    The other thing is there is a .TXT file which the phones look for upon load which should contain only one entry in it and that is the version of the firmware the phone should grab. This process needs to be included and explained.

    Other phones have to have CNF files created to make this work and if you have Call Manager Express there are IOS commands you can run to accomplish this, the question is are those files needed to flash without call manager using the suggested process highlighted in this BLOG.

    The best way I can see to getting a set of steps which work for all models is to edit this BLOG to breakdown the different models and show which files are needed for each model family and then NOTE what needs to be done with the Default.cnf.xml and OSXXXX.TXT file.

    I would also write the process a phone goes through when it boots up by line item so we can all understand in this non call manager process what files are needed.

    And the final setup of connecting it to a PBX like Epygi, or Astrisk or something else as the others have mentioned. I will write up a SuperGuide and share with OP if we can work together to get these missing details sorted out.

    A Troubleshooting section which covers some of the most common problems encountered and remedies like how to un-brick these things when it reboots after starting the reset/flash procedure. Following the instructions here we’ve managed to soft brick three of the 10 phones we were attempting to update to SIP from SCCP.

    It would also be nice for future readers to know what the contents should be inside the cnf and xml files per model number. There are too many people now requesting this of us because they simply can’t afford to pay for a pure Cisco experience but want Cisco phones.

    Let me know if anyone has figure some of these things out because we’ve been trying for two weeks to get a single 7962G to work coming from v8.3 (Skinny) SCCP to SIP v9.4.2.1. According to Cisco KB articles anything after v8.2 SCCP can be upgraded directly to SIP. The Application Boot Loader process is said to be the easy way to do this but that process should also be included in the BLOG steps.

    Let’s get this guide together and make it work for all who venture down this path in the future.

  10. Heverh Jim

    I have a CP-7961G and the firmware version is a 8.2, then I update at firmware 8.3.(3) first to jump to 9.X, I followed your instructions and had success in updating.

    Tankyou.

  11. Croxx

    Hi hope you can help.

    I could now update my phone cisco to sip with steps explain here in this post. But when the phone restarts says “Unprovisioned” and I can not find those parameters to configure the address of the PBX etc ..

  12. Stephen Yun

    I have 2X 7970G and 7971 phones.
    I tried to upgrade to cmterm-7970_7971-sip.8-5-2SR1
    But it only goes to term70.default.loads and keep restarting itself over and over.
    Can you upgrade the firmware for me.
    I will pay for your fee & all shipping.
    Steve

  13. Pingback: Flash a Cisco 7940 Phone to SIP Firmware | my daily tech

  14. WR

    Hi… following your directions… I am unable to find the files that match your screenshot (apps41.9-1-1TH1-16.sbn, term61.default.loads, etc)… the first server you listed is not responding, and the second one: radiotwenterand.nl doesn’t seem to host those files… any idea where to get those files? thanks

  15. JDM Technology Specialists

    Thank you very much for your info here, I have successfully upgraded a carton full of 7940G phones which where continually freezing and rebooting due to a XLM Parse Error caused by my hosted PBX providers account/user names i.e. 200-123456789, after hunting down similar faults on other blogs the “-” was an illegal character in older versions of firmware. Have upgraded to the latest and last release for this phone P0S3-12-4-00 with no drama’s what so ever, phone is stable and no Parse Errors.
    Regards, Dan.

  16. Lutfar

    HI,
    I was trying to install SIP70.9-4-2SR1-1S on my 7970 phone. I am stack. I think I am not giving the XML information properly. Can anyone help me? Please?

  17. Mike

    MY CISCO 7945G is unable to connect to DHCP server which is set up on my PC. It is getting request from other MAC address. Nothing happens after two red blinking LEDS.
    Please help.

    Thanks

  18. Adam

    i’m trying to connect cisco ip phone 7911 to Asterisk PBX. So i did the hard reset and successfully install the firmware with your provided guide. I can see my asterisk extension and the name appear on the phone.

    But when i connect the phone to my office network, its keep searching for cisco call manager firmware and reset the network.

    How can i avoide this to happen

  19. Leo

    Hello,
    I successfully update my cisco 7941G to the latest SIP firmware.
    Now the question is… How do I get to make it work?
    I can’t change the SIP values on the phone by accessing the settings button.
    Several or almost all of the configuration tabs are not accessible to be edited.
    Do I have to have any other files on the tftp server when flashing the last SIP firmware ? and if so, where can i get them.
    I only put everything I found in the cisco web site related to the firmware files.

    Thank you very much for your help

    Leo

  20. abel

    using the ip address of the default gateway is better than using the hexadecimal, that worked for me better than the hex, i tell you

  21. anny

    Hi, Now I have a Cisco IP phone 7970G, after reset to factory can’t boot on the phone, the screen always display black, is it broken, and is there any ways to fix it?

  22. mehran

    helo ex me but
    your links to download the firmware are not valid.
    please check and renew

  23. kevin

    Hello I am blocking on a cisco 7975g I would like to put my firmware up in sip the phone has had a reset with the following keys 123456789 * 0 # I have the screen upgrading by cons like a comment above tony on Tftpd 32 I have that mac address of visible and no ip address as address ip I have 0.0.0.0 and I can not move forward thank you to enlighten me the block I its done 1 month that I am Block my ip address of the computer is 192.168.1.57 my router is 192.168.1.254 and my ip address of the phone cisco 7975g is 192.168.1.67 I nevertheless put the files in the tftpd32 folder but I still have this problem d Ip address 0.0.0.0 thanks in advance for your answer thanks i’m french i live in france

  24. Oleg

    Hi,
    We have ip phones cisco 7911g. All of them work in the sip mode, they have the same provisioning server(Broadsoft) the same provisioning template. All of them have SIP11.8-5-4S firmware version. The issue is that some of them cannot load or accept ntp settings from the config file. I noticed that the problem phones have different boot load ID (tnp11.3-0-1-23.bin) instead of the well working tnp11.3-0-1-31.bin. The phones with tnp11.3-0-1-31.bin put ntp settings in /tmp/tnp_ntp.conf. If I use debug ntp in the phones with tnp11.3-0-1-23.bin they answer: “NTP: Failed to open config file ‘/usr/local/etc/ntp.conf’: No such file or directory” If to add this file with ntp servers manually then the ntp starts working.
    Can it be connected with boot load id and if yes, then maybe there is a solution to update it?

  25. Vishnurj S

    Hi,

    I have Hard reset the Cisco 7941 to update the firmware from Cisco Call manager for SCCP, but not working. Kindly provide the updated firmware link to download the same. Thanks.

  26. Stephen

    Just as a heads up for anyone attempting this in 2018 – I could not for the life of me get my Cisco 7960g to talk to my TFTP server on Windows 10 1709. The moment I copied it to a Windows 7 machine, it started to work perfectly. Hope this helps someone.

  27. harshavardhan Inukollu

    Hi,

    I have installed sip firmware SIP41.9-4-2SR2-2S in my cisco 7941G phone.The phone is showing registering from long time.there is no auth password option in phone sip configuration.Please help

    TIA

  28. Riley

    IF anyone is having the issue where the phone just keeps asking for DHCP, change the option from 150 to 66 and mine started working.

  29. Gerry Den abt

    Can someone post the sip-firmware for the cisco ip phone 7940 version 8.3
    Regards,
    Gerry

Leave a Reply

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