The 8945 firmware upgrade dance

For awhile now I’ve been hitting the fabulous issue mentioned in this Cisco forum post for 8945 phones in which the phone basically stops incrementing the time display. Being as I only had a few of these deployed and unplugging/plugging them would fix the issue, I had put off upgrading them. I had plan to put off upgrading the firmware until the proverbial upgrade cows came home and sat around my desk mooing their demands for attention, but unfortunately my plans were udderly derailed*.

I discovered while reading various release notes that the usually cumbersome but predictable upgrade process would be a bit more involved and would need to be done before I started major version upgrades, otherwise my phones would be shiny dialtone-less bricks with no usable firmware to make their happy little phone lives better.

Cutting to the chase, here’s what you have to do if you happen to be in the same series of release boats that I’m paddling around in.  Keep in mind that in this particular situation I am starting with 8945 phones with SCCP894x.9-2-3-5 installed and CUCM version 8.6.2.20000-2, your mileage may vary:

  • You must have the minimum Device Package 8.6.2(22030-1), which in this case I didn’t have. 8941 and 8945 phones won’t register at all if you try to install 9.3(1) or later without this device pack installed first. Yay.
  • Next, you’ve gotta do a step upgrade from 9.3(4) to 9.4(x) because in the grand tradition of voice upgrades being about as much fun as root canals, you can’t just upgrade straight from a 9.2 release to a 9.4 release. Double Yay.

There are a few key things to keep in mind when doing device pack and firmware installations.  First and foremost, always always always read the release notes. If something doesn’t seem clear or make sense, open a TAC case to clarify. This is way better than blowing up your server or phones because you assumed something the release notes didn’t cover or explain properly.

It should go without saying that you should always confirm you have a good backup before doing any file installations at all. I’m saying it anyway, check your backups, never assume they ran. Trust but verify, the emphasis being on verify.

Remember to copy down the values on the Device Defaults page before the upload of the files and to paste in old values if necessary directly after the upload. Check out this previous post for why you will thank me for this later.

Lastly, always remember to reboot after device package installs and to stop/start the TFTP service after firmware file installs.  These processes will save you some heartache and potentially a bruised skull from repeated head-desks when you finally realize you never did stop and start that service and the last 45 minutes of troubleshooting was for nothing.

*Anyone with a beef about my cow puns probably shouldn’t follow me on twitter either, the puns only get worse more fabulous from here… 

Published: 10/23/2014

14 thoughts on “The 8945 firmware upgrade dance

  1. The 8945; vigilance is mandatory. We were in the same boat needing to do the two step upgrade first to SIP 9-3-4-x then to SIP 9-4-1-x. We experience a 2% failure rate upgrading to the bridging load 9-3-4-x.

    Before any upgrade/cucm reload i would run the ‘show risdb query phone’ command on each call processing node for comparison after. If you notice a discrepancy between registered phones after the upgrade using filters in a spreadsheet you can track down the failed phones.

    The phones were failing cdp negotiation and could be identified on a switch (#show power inline) as a IEEE device consuming 6.4 watts. A shut/no shut resolved the issue.

    We had no problems upgrading from 9-3-4-x to 9-4-1-x.

  2. *Anyone with a beef about my cow puns probably shouldn’t follow me on twitter either, the puns only get worse more fabulous from here…

    I’m sure you will milk it to death on twitter also. 😉

  3. Just ran into the infamous “device pack” not installed issue after upgraded from CUCM 7.1.5 to 9.1, then purchasing a DX 80 for testing. Fun times. Not.

  4. Amy, I’m a noob to VOIP, and a friend asked me to help him install couple of 8945. They currently run SCCP firmware, but I need to use the phones as SIP. I found the firmware online, but now sure rather or not I can upgrade it individually using only a PC. Could you please give me some insight? Thank you in advance!

    1. You can tftp a SIP image like a SCCP image, but sometimes it’s not smooth going from SCCP to SIP. I would check release notes and forums if you run into issues.

  5. Let’s keep it going! “*Cudding* to the chase, here’s what you have to do”…
    FTFY

  6. I was playing with tftp, and it seems that the phone was searching for different files than I had. Is there any forum I can get help with this issue? Thank you

  7. I wrote a couple of bash scripts. lynx, grep, tr and awk required.

    The CDP script is used to find all switch ports to know where the 8945 phones are before locking them up and being up the creek again.

    Pull the current IP’s from CUCM and run the CDP script to record switch ports before scheduled change action.

    #!/bin/bash
    function phonecdp {
    myget=$( lynx -connect_timeout=6 -dump http://$1/PortInformation?1 \
    | grep -E “Neighbor|Phone” \
    | grep -v “LLDP” \
    | tr ‘\n’ ‘ ‘ \
    | awk ‘{ OFS = “,” }; { print $10, $14, $17, $5 }’ \
    )
    echo $myget
    }

    for i in $( cat infile.txt ); do
    phonecdp $i
    done

    I used the phone version script to step the phones up to the required version making note of which phones were in “lockout by default” and had to be touched to reset security settings.

    Phones that refused to upgrade to first step had to be visited to reset the security settings. Two thirds of 500 phones had to be visited. The phones would then upgrade to first and then final code.

    #!/bin/bash
    function phoneversion {
    myget=$( lynx -connect_timeout=6 -dump http://$1 \
    | grep -E “Host Name|App Load ID” \
    | tr ‘\n’ ‘ ‘ \
    | awk ‘{ OFS = “,” }; { print $8, $3 }’ \
    )
    echo $myget
    }

    for i in $( cat infile.txt ); do
    phoneversion $i
    done

  8. Hi Amy, I’ve run into something new while attempting to upload firmware. Due to my version of Call Manager, it is requiring that I add ciscocm.version3-keys.cop.sgn (RSA k3 Keys) before the firmware for new phones. Just wondering if you had any experience uploading this file or had any tips. It doesn’t look like a big deal, but I am always suspicious.

    1. I don’t have any specific experience with that cop file, but like you, I am always a bit suspicious. Anything in Cisco forums on it? I’d probably open a TAC case, too. What phone firmware is requiring this? And sorry for the delayed response – been a bit swamped of late. 🙂

      1. No worries. Thanks for your response. I have seen things on the forums, but that doesn’t tend to quiet my suspicions of ….There is something…. bad… that is going to happen, I just know it. I like to take it from a person with 1st hand experience. We are running 8.5 and the firmware is for 8851’s. The 8.5 is requiring these RSA Keys prior to allowing the upload of the firmware. We are nearing our upgrade pending getting through the security posture. So unless I am really pushed, I am trying to old off until the upgrade occurs. Since the firmware will already be there.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s