Voice basics: upgrading firmware for specific phone models

Occasionally in voice world you are required to update firmware for just certain phone types and not others. Say for example you’ve received a batch of those 7945 or 7965 phones that only support 9.3(1)SR1* and you aren’t running that version of firmware on your CUCM yet. There are just a few simple steps and gotchas to watch out for to get this firmware up and running on these phones.

First, hop on over to cisco.com and download the firmware files for CUCM.  In my case, I downloaded cmterm-7945_7965-sccp.9-3-1SR4-1.cop.sgn.**

Save the file to your sFTP directory and launch your sFTP client.  I typically use FreeFTPd, but use whatever sFTP client you are comfortable with.

Now before you go off installing firmware files, there is one crucial step I would always recommend:

Log into CUCM, navigate to Device Settings -> Device Defaults -> [models of phones you are upgrading]

Copy and paste the current value of the default firmware into Notepad or Evernote or whatever program you use that helps keep you from losing stuff.

In this case, I copied SCCP45.9-2-1S which was the default device firmware for the 7945 and 7965 phones.

Next jump on over to the publisher and navigate to OS Administration -> Software Updates -> Install and Upgrade. Walk through the prompts to upgrade from sFTP, select your file, check the MD5 hash, and start the install.

Once installed, repeat the process on the subscribers as well.***

Now at this point, newbies to voice might think that their work here is done, firmware file installation reported complete, so what could be left? Well, it’s voice, it’s *never* that easy.

In this case, the system has actually done you a favor.  If you jump over to CUCM Administration, you will see that the device default fields for your phone models have been updated to the version you have just installed.  Because, however, you have not stopped and started the TFTP service, you have a fabulous opportunity to paste back in your old version value if you would like, before the TFTP service is reset and the system starts upgrading your phones.  I typically copy and paste the new value to Notepad and place the old value back into the appropriate fields. Now I can apply the firmware to a single test phone and not *all* the phones of that model type before rolling the firmware out.  This becomes massively more important when dealing with some of the newer phones and brand new releases of code.

Then it’s over to Cisco Unified Serviceability -> Control Center – Feature Services to restart the TFTP service on each node.

tftpservice

Now, to test your new firmware on a specific phone, find that phone in CUCM and paste the new firmware value into the Phone Load Name field.  Reboot the phone and it should then grab the new version.

Phoneload

Once you’ve established that the new code doesn’t bork your shiny Cisco device, paste the new firmware value into the appropriate Device Defaults field for your phone models. Then all phones of that type will be able to upgrade to that version.

*There are certain 7945s and 7965s shipping now that only support 9.3(1)SR1.  I missed any official announcement but remembering hearing rumors of this at Cisco Live.  The phone will register without you upgrading the firmware files on CUCM, but if you ever reset it to factory defaults, it won’t register again.  At that point, I offer you this help on fixing bricked phones

**It should go without saying, but I’ll say it anyway, always read the release notes and check the compatibility of the file(s) you are selecting. Voice is extremely unforgiving if you choose not to read the fine print.

***Technically you really only need to do this on the server(s) that are acting as TFTP servers, but I like the consistency of all the servers having the files in case one should need to take over that role unexpectedly.

Published 3/4/2014

It’s been mostly dead all day…

Setting a misbehaving phone back to factory defaults is a great way to cure endpoint wonkiness*.  This process successfully eradicates a multitude of demons, but recently my reset results were more of a botched lobotomy than a successful exorcism.  The phone powered on, cycled to the Cisco logo screen, spat out curses about my mother, and power cycled itself again. Cue infinite loop. Please note, it might have been me doing the actual cursing…

So what do you do with a rather expensive Cisco brick besides throw it at well deserving users?

Well, you’ll need a couple of things to pull off this miracle – first, a really large cloak**…nah, only kidding, but you will need firmware files.  Yep, head on over to cisco.com and locate the firmware files for your phone model.  You are looking for the individual files versus the .cop file for CUCM.  In my case, I had a beautiful 7945 brick, so I downloaded cmterm-7945_7965-sccp.9-3-1SR2-1.zip.

You will also need tftpd32 or tftpd64. I guess technically you could use any tftp server application, but this one is free, easy to configure, and I know it works.

All you need now is to build yourself a little network island using a stand alone switch and some patch cables. You will need to provide a DHCP address to your phone with the option 150 set to the IP of your laptop.  I used a small layer 3 switch that I could configure a DHCP pool on.

Next up, configure tftpd32 as a server and place the firmware files in the correct directory.*** Rather than reinvent the wheel, here is a good post on configuring tftp32 as a server: http://www.tricksguide.com/how-to-setup-a-tftp-server-tftpd32-windows.html

Once you have your laptop and the phone in the same vlan with the TFTP server running, you should start to see the magic happen. It should look something like this when your firmware files are being downloaded by the phone:

filetransferbrickphone

This should bring your phone back to the land of the living, if you’re lucky.  But since you are already at this point I am highly doubting your luck, so here is a post with a few more ideas that may help as well: https://supportforums.cisco.com/thread/2007970

Published 12/5/2013

*wonkiness: the term a voice engineer uses to explain the unexplainable behavior of a device that is configured correctly but is clearly possessed by an evil spirit with an extremely vindictive sense of humor.

**Not surprisingly, another Princess Bride reference, just go watch it already.

***Should you forget or not realize what directory your tftp server is set to serve up files from, and yes sadly I am speaking from experience on this one, you can buy yourself a clue in the form of a Wireshark capture.  You should see the file being requested in the capture. If you are seeing a request like the one below, then check the location of the file. If not, check your DHCP bindings and confirm the phone is getting an address with the option 150 set.

term45