cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
6916
Views
30
Helpful
11
Replies

CUCM Tftp has NO "XMLDefault.cnf.xml" File?

Matthew Martin
Level 5
Level 5

Hello All,

CUCM Version: 8.6.2.24901-1

I am trying to re-flash/re-upload an older F/W version onto a bricked IP Phone using an old Cisco 1861 Router, a laptop and a C7941G.

On a bunch of different webpages that I found for doing this exact task, they keep talking about the XMLDefault.cnf.xml file which should be what tells the IP Phones what file(s) they need to download. But, when I check the tftp directory on CallManager, there is no file resembling that name. In fact the only XML files I see are:

admin: file list tftp *xml*
DistinctiveRingList.xml         Ringlist-wb.xml
Ringlist.xml
dir count = 0, file count = 3


So I'm not sure why I don't have this file...?

If I don't have this file how does the phone know what Firmware version to grab? Also, what is the file extension(s) (*or file type(s)) do the phones download? Is it the *.s(g|b)n or *.loads, etc...

Also, does anyone know of a good site/page, that has a very detailed step-by-step for flashing a phone that won't upgrade automatically because it's Firmware is too old..?

Any thoughts or suggestions would be greatly appreciated!

Thanks in Advance,
Matt

11 Replies 11

Jonathan Schulenberg
Hall of Fame
Hall of Fame

The webpages only show you static files (eg firmware and background images), not programatticly generated files (eg phone XML files). You can get a copy of it using a TFTP client or your browser if CUCM is on a recent version over http://serverIP:6970/

Also, I'm not sure why you need the 1861 to do this. You can install the older firmware COP - probably 8.5(2) in this case - and then change the Device Default back to the current LOADS file. Then add the phone as a device in then cluster and set the older firmware LOADS file and as firmware version on that phone. This will define the older firmware in the device-specific XML file and the phone should do the upgrade. After the phone has that and registers just clear the phone-specific firmware setting and it should upgrade to the cluster default.

Hi Jon, thanks for the reply.

I was using the 1861 because the phone was looking for the term41.default file on the upgrade screen and I thought if I modified this to a different version, then every phone on the network would try to download this new firmware version... But, you're saying I can do this in a Phone/Device Specific way through CUCM..?

I haven't done any of this before with the COP files and firmware and such. Is there any good guides out there for doing it that way..?

BTW, if I login to CUCM while the phone is in the boot/upgrade loop, I cannot find the Device Name in Device > Phone if I do a search for it.

Thanks again for the reply, very much appreciated!

-Matt

Yes, you can do it in CUCM. Firmware is defined at a global default level and can be overridden per-device. Those who dislike COP files could grab the ZIP variant instead and manually upload the unzipped files into TFTP but that's additional steps for a process you seem mostly unfamiliar with. The COP does some of that for you as long as you remember to change the Device Default back to what it was before installing the COP so the rest of the cluster doesn't downgrade.

Here's a tech note that covers most of the process: http://www.cisco.com/c/en/us/support/docs/voice-unified-communications/unified-ip-phone-7900-series/108090-upgrade-ip-firmware.html

As for the phone not appearing in CUCM: you'll need to add it of course.

Hi Jonathan, thank you again for the reply, much appreciated.!

Ok, excellent, thanks for the info and the link. I will check it over and give it a shot, and I'll post back with my results.

Out of curiosity, how come it seems like so many people use the method I was attempting, instead of doing it this way, any idea?

Thanks Again,

Matt

Usually those people are attempting to register the Cisco phone to a non-Cisco PBX such as Asterisk. They have to recreate the TFTP environment that the phone is expecting to download firmware from.

Ok gotcha, that makes sense.

One other thing. The phone that I am working with has not been used in quite a while and I'm not sure the exact Firmware version that is installed on it. Given that our current 7941s are using SCCP41.9-3-1SR3-1S, is there a general version I should use to attempt upgrade this phone to first, before that version can be applied?

I had downloaded the zipped version of the firmware when I was going to do this the other way, which contained SCCP41.8-5-25.loads. I downloaded that one because I think i read that at least that version would need to be on the device before you can go to 9.3.x... Do you know if that is correct?

Thanks Again,

Matt

Start with 8.5(2) since it changed the digital signature keys out; a phone cannot install anything later than that without first having 8.5(2) installed. Since you don't know install that and then let it upgrade to the cluster default that you're using.

Hey Jon,

So far I have done:

  1. Downloaded --> cmterm-7941_7961-sccp.8-5-2.cop.sgn
    1. Copied the current Load Name from "Device Defaults" for 7941G-GE to notepad...
  2. Uploaded/Installed the 8.5(2) COS file from the CUCM OS Admin page.
  3. Then went back to Device Defaults page and copied the new load name for 7941G to notepad.
  4. Wasn't sure about this part here but I think I did it right.. I then took the original Load name that I had copied to notepad for 9.3(1)SR3 and replaced the 4 spots where it now showed the 8.5(2) load name that I just installed in #2 and replaced that with the original load name for 9.3 and clicked save.
  5. Then I added the bricked phone Manually to CUCM by using it's MAC Address.
  6. I configured the necessary options for that phone and then copied the 8.5(2) load name (*SCCP41.8-5-2S) to the Phone Load Name textbox of that device's configuration page, saved and applied the config.


I think the only thing left to do now is to restart the TFTP Service on CUCM. But, I have a question about this before I restart TFTP.

  1. Do I only need to restart TFTP on the CUCM I uploaded the load file to? We have 3 CUCMs and wasn't sure if it was all 3 or not that needed to have TFTP restarted..?

I ran the CDR Report "Unified CM Phones with Mismatched Load" and 2 of our 3 CUCMs had devices listed in this report. CUCM-03 shows 15 x 7911s most of which have 9.1(1) listed as the Active Load-ID.

And on CUCM-02 it lists 24 phones in which all but 2 have 9.1(1) as their Load-ID and two phones with 9.0(3).

I uploaded the load file to CUCM-01, so I wasn't sure if I could just restart TFTP on CUCM-01 or not. Also, will all those phones attempt to upgrade to 9.3(1) after TFTP comes back in service..?

Device Defaults shows:

7911s --> SCCP11.9-3-1SR3-1S
7941G-GE --> SCCP41.9-3-1SR3-1S


Thanks Again,
Matt

The COP files should be evenly installed across all nodes. Any node where the TFTP service is running needs to have the service restarted.

Hey Jon,

So I made sure SCCP41.8-5-2S.loads was on all 3 CUCMs. I only had to upload it to 2 of the CUCMs though, because CUCM-03 was already showing it was in the tftp dir with the "file list tftp SCCP41.8*" command.

So I then restarted TFTP on all 3 CUCM Nodes. I then unplugged and re-plugged back in that 7941G that I'm am having trouble with and it is still doing the exact same thing.

I took some images of the screens that I see during boot-up... I will attach them below.

Screen #1:

Screen #2:

Screen #3: *this screen goes by extremely fast, as well as #4 too...

Screen #4: this screen also changes extremely fast. So fast I needed to take a video of the screen just to get a screenshot of this...

Screen #5: this is the last screen I see before it tries to do the upgrade firmware thing again after so much time has gone by...

Those images of the screens the phone cycles through are the exact same as they were before uploading the new load file. Also, I never actually see the device in CallManager say Connected and/or Not Registered or anything like that... It is getting an IP Address though.The Status and IP Address columns in CUCM just says Unknown.

If I login to our core switch and show the mac address table, I can see this phone's MAC Address and then I check the ARP table and it is showing the same IP Address that shows in Image #3.

Any other ideas, am I missing something maybe??

Thanks Again for your help, it is very much appreciated!

-Matt

**** ISSUE RESOLVED ****

So after attempting to upgrade the phone's Firmware using CUCM (*the usual way) for a few hours with no luck I decided to go back to the original method I was attempting to do when I opened this discussion.

And I was finally able to get this phone Un-Bricked as well as another 7941G that would not even display anything on the LCD Screen, so that phone was about just as good as a very expensive paper weight..!! But, they are both working perfectly now!!

So what I did was, I used that 1861 Router I mentioned previously and configured a DHCP Pool that would put the laptop and the phone in the same VLAN. Then I gave the laptop a static IP and set it as the option 150 setting of the DHCP Pool on the Router. I then unzipped the cmterm-7941_7961-sccp.8-5-2.zip file into the TFTP Root directory on the laptop. The zip file consisted of the following files:

apps41.8-5-2TH1-9.sbn
cnu41.8-5-2TH1-9.sbn
cvm41sccp.8-5-2TH1-9.sbn
dsp41.8-5-2TH1-9.sbn
jar41sccp.8-5-2TH1-9.sbn
SCCP41.8-5-2S.loads
term41.default.loads
term61.default.loads


Lastly, I created the "XMLDefault.cnf.xml" file in the TFTP Root directory of the laptop as well.

*On the tftpd32 log window I could see that the phone did actually grab this file from the laptop. So I'm assuming it was needed to get this done...



XMLDefault.cnf.xml Contents:

<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>
<loadInformation115 model="Cisco IP Phone 7941">SCCP41.8-5-2S</loadInformation115>
<loadInformation309 model="Cisco IP Phone 7941GE">SCCP41.8-5-2S</loadInformation309>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<servicesURL></servicesURL>
</Default>

Also, I forgot to mention above, that I set both FastEthernet ports that I plugged the laptop and Phone into with:

switchport access vlan 2
switchport voice vlan 2


So, after I plugged the phone into the configured PoE FastEthernet port of the Router it booted up and started downloading the firmware right away!! Then, after that 1st phone finished updating, as just a shot in the dark I decided to plug in that other phone I mentioned that wouldn't even display anything on the screen... And what do you know, after a few minutes I saw the phone reboot and it actually showed the upgrading screen..!!

After both phones finished upgrading, I unplugged them from the 1861 and re-connected them back into our normal network and the both upgraded to 9.3(1)SR3. After the 1st phone finished upgrading to 9.3, I got an error saying: Registration rejected: error mismatch, I then remembered I had added this phone to CUCM manually, so I deleted that profile and the phone Auto-Registered without a hitch.

So everything seems good now and the phones are now running as expected. Thanks again for the help on this, much appreciated!

Thanks Again,
Matt