CME Router Firmware Load (upgrading firmware on cisco IP Phones)

We are facing some issues with our VoIP network after factory resetting cisco phone (7942) the phone is loping (stuck) in Upgrading mode.

Upgrading Error 9742 by anish mandal

So i started diagnosing the issue

First my network design

VoIP network : 192.168.180.0 ( The DHCP Server is created on CME Router)
CME Router 2900 Series SCCP address : 192.168.160.1
Lan Network : 192.168.150.0 (My PC IP : 192.168.150.150)
Using Layer 3 Switch created IP Routing

i found out that the Firmware from Cisco 7942 IP Phone is deleted and using following command

VoIP_CME# sh ip dhcp binding

the following command is showing that the phone is able to get ip address and i am able to ping to phone ip.

so i thought its might be issue with tftp upload so i used following command to see tftp events

VoIP_CME# debug tftp events
VoIP_CME# terminal monitor

i got the following response on terminal

TFTP: Looking for term42.default.loads
the following output indicate that the phone is looking for firmware. so i see other phone configuration

7942 Firmware version by anish mandal

  Firmware Versions Load File : SCCP42.9-3-1SR1-1S
So i downloaded the firmware from Cisco website an zip file that contain following files.
apps42.9-3-1ES8.sbn
cnu42.9-3-1ES8.sbn
cvm42sccp.9-3-1ES8.sbn
dsp42.9-3-1ES8.sbn
jar42sccp.9-3-1ES8.sbn
SCCP42.9-3-1SR1-1S.loads
term42.default.loads
term62.default.loads
Note : There are two ways to load the firmware on Cisco IP Phones 
  1. Create DHCP and TFTP Server on local system and connect phone to system we can use cross cable for firmware load. (but because of PoE base phone i dont have dc48v power adapter to do the same and also only one PoE Switch with multiple VLAN network already running multiple DHCP servers on network i dont want to use this procedure yes i know i care create separate VLAN and put my system and IPHOne port in that VLAN and use this but still i want something best that will protect me this kind of incident happening in future i used following.
  2. Load Firmware files on CME Router 

(Before doing any changes in your devices kindly make sure you have full backup, The following commands for reference purpose i am not responsible for any damage or issues the following work for me and for my knowledge i am sharing)

As i said the phone is previously working so the ephone and ephone-dn is already configured in CME Router.
First extract all 6 files from zip to an folder called 7942 on c drive
C:7942 v 9.3
started tftpd application (tftpd32.jounin.net) on my system and pointed Current Directory to that folder 

tftpd for firmware by anish mandal

make sure the system is reachable from CME router using ping command.

to copy the 8 files on CME router using following command.

VoIP_CME# copy tftp: flash:

Address or name of remote host []?  192.168.150.150
Source filename []? apps42.9-3-1ES8.sbn
Destination filename [apps42.9-3-1ES8.sbn]? 
copied

just replace Source file name as the files.

cnu42.9-3-1ES8.sbn
cvm42sccp.9-3-1ES8.sbn
dsp42.9-3-1ES8.sbn
jar42sccp.9-3-1ES8.sbn
SCCP42.9-3-1SR1-1S.loads
term42.default.loads
term62.default.loads

Then i connect the phone still same issue.

i started diagnose and same massage.

see in flash using command

VoIP_CME# sh flash

it’s showed all 8 files are there but still

TFTP: Looking for term42.default.loads

It takes my 2 days to get the exact issue after running following command.

VoIP_CME# debug tftp packets

i got following reply.

TFTP: Looking for term42.default.loads
TFTP: Sending error 1 No such file

That make me realize i have not load the file on tftp server so using following 
Checking tftp server files command is

VoIP_CME# sh telephony-service tftp-bindings

then is config mode
VoIP_CME(config)#tftp-server flash:cnu42.9-3-1ES8.sbn
Replace last file names as all require files.
apps42.9-3-1ES8.sbn
cvm42sccp.9-3-1ES8.sbn
dsp42.9-3-1ES8.sbn
jar42sccp.9-3-1ES8.sbn
SCCP42.9-3-1SR1-1S.loads
term42.default.loads
term62.default.loads

and load command but in telephony-service

VoIP_CME(config)# telephony-service
VoIP_CME(config-telephony)#load 7942 SCCP42.9-3-1SR1-1S
VoIP_CME(config-telephony)# no create
VoIP_CME(config-telephony)# create cn
VoIP_CME(config-telephony)# exit
then i started all debug commands.
VoIP_CME#debug ephone detail mac 

VoIP_CME#debug tftp event
VoIP_CME#debug ephone register
VoIP_CME#debug ephone statistics
VoIP_CME#debug ephone error
VoIP_CME#debug ephone message
VoIP_CME#debug ephone state
VoIP_CME#debug dhcp

VoIP_CME# terminal monitor

and wolla………

The IP Phone loaded the new firmware and start working.