Yet another Cisco 7940 SCCP to SIP firmware thread

after two days of reading various manuals, howtos and having tried this about in about 30 ways I’m kind of desperate.
I bought two Cisco IP Phones (7940) from Ebay in order to use them with the Asterisk 1.6 package that comes with Debian Squeeze.
After successfully reseting the phones I figured out which firmware was used. It said 7.2 (v4) and told me the firmware would be “S003070200”. After some research I figured out that this would be the SCCP firmware. As I already run other SIP phones I also want the ciscos to use SIP.

First of all my network setup:

I am using a debian squeeze x86_64 server with XEN with two trunked NICs. The DOM0 (hypervisor domain) works as a router, firewall, DHCP, DNS and runs the Asterisk. All client phones are SIP phones and communication with the outer world is handled with a ISDN Interface.

So to flash the CISCOs i set up a tftpd server and enabled it in the /etc/inetd.conf. I added some infos to the dhcpd.conf to make sure the ciscos know where to find the the tftp server.
The phones picked up the IPs correctly and access to the tftp seemed to work just fine (tested it with a linux, mac and Windows Box from the same network).

ladmin@srv00:/srv/tftp$ cat /etc/inetd.conf 
#:BOOT: TFTP service is provided primarily for booting.  Most sites
#       run this only on machines acting as "boot servers."
tftp		dgram	udp	wait	root	/usr/sbin/tcpd	/usr/sbin/in.tftpd /srv/tftp

(thats the way cisco suggested howto set up tftpd)

After reading that one should first flash to a version less or equal to 7.5 and update later on I decided to first use 7.2 SIP from your page and I put these files into the tftp servers root directory (but I already tried with other versions, too - logs and errors are just the same). Access from other boxes once again worked just fine.

These Files were uploaded:

ladmin@srv00:~$ ls -la /srv/tftp/ total 856 drwxrwxrwx 2 root root 4096 Dec 21 18:09 . drwxr-xr-x 3 root root 4096 Dec 19 20:00 .. -rwxr-xr-x 1 ladmin ladmin 13 Dec 21 18:11 OS79XX.TXT -rwxr-xr-x 1 ladmin ladmin 124716 Dec 21 18:11 P003-07-2-00.bin -rwxr-xr-x 1 ladmin ladmin 125120 Dec 21 18:11 P003-07-2-00.sbn -rwxr-xr-x 1 ladmin ladmin 461 Dec 21 18:11 P0S3-07-2-00.loads -rwxr-xr-x 1 ladmin ladmin 587122 Dec 21 18:11 P0S3-07-2-00.sb2 -rwxr-xr-x 1 ladmin ladmin 133 Dec 21 18:11 SEP0014A9725C92.cnf.xml -rw-r--r-- 1 ladmin ladmin 498 Dec 21 18:11 SIP0014A9725C92.cnf -rwxr-xr-x 1 ladmin ladmin 29 Dec 21 18:11 SIPDefault.cnf -rwxr-xr-x 1 ladmin ladmin 803 Dec 21 18:11 XMLDefault.cnf.xml

listings at the end.

The Cisco performs the following steps :
I reset the phone an (2) reset the network settings.
The application loader starts.
Configuring VLAN
Configuring IP
TFTP P0S3-07-2-00.loads
Verifying load

Then the Firmware starts (at least it looks like it, there is CISCO 2000-2005 and the logo, on top there is a black bar with no text in it.

Configuring VLAN
Version Error
Registration Rejected
Configuring IP
Resetting

Then the Application Loader shows up again and starts the sequence again.

The status message in the phone’s status menu tells me:
SEP0014A9725C92.cnf.xml

my TFTPD log looks like this:

Dec 23 11:29:07 srv00 in.tftpd[7085]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:29:07 srv00 tftpd[7086]: tftpd: trying to get file: CTLSEP0014A9725C92.tlv Dec 23 11:29:07 srv00 tftpd[7086]: tftpd: serving file from /srv/tftp Dec 23 11:29:07 srv00 in.tftpd[7087]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:29:07 srv00 tftpd[7088]: tftpd: trying to get file: SEP0014A9725C92.cnf.xml Dec 23 11:29:07 srv00 tftpd[7088]: tftpd: serving file from /srv/tftp Dec 23 11:29:07 srv00 in.tftpd[7089]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:29:07 srv00 tftpd[7090]: tftpd: trying to get file: P0S3-07-2-00.loads Dec 23 11:29:07 srv00 tftpd[7090]: tftpd: serving file from /srv/tftp Dec 23 11:29:08 srv00 in.tftpd[7091]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:29:08 srv00 tftpd[7092]: tftpd: trying to get file: P003-07-2-00.sbn Dec 23 11:29:08 srv00 tftpd[7092]: tftpd: serving file from /srv/tftp Dec 23 11:29:24 srv00 in.tftpd[7093]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:29:24 srv00 tftpd[7094]: tftpd: trying to get file: P003-07-2-00.sbn Dec 23 11:29:24 srv00 tftpd[7094]: tftpd: serving file from /srv/tftp Dec 23 11:29:40 srv00 in.tftpd[7095]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:29:40 srv00 tftpd[7096]: tftpd: trying to get file: P003-07-2-00.sbn Dec 23 11:29:40 srv00 tftpd[7096]: tftpd: serving file from /srv/tftp Dec 23 11:30:08 srv00 in.tftpd[7097]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:30:08 srv00 tftpd[7098]: tftpd: trying to get file: CTLSEP0014A9725C92.tlv Dec 23 11:30:08 srv00 tftpd[7098]: tftpd: serving file from /srv/tftp Dec 23 11:30:08 srv00 in.tftpd[7099]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:30:08 srv00 tftpd[7100]: tftpd: trying to get file: SEP0014A9725C92.cnf.xml Dec 23 11:30:08 srv00 tftpd[7100]: tftpd: serving file from /srv/tftp Dec 23 11:30:13 srv00 tftpd[7100]: tftpd: read: Connection refused Dec 23 11:31:15 srv00 in.tftpd[7102]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:31:15 srv00 tftpd[7103]: tftpd: trying to get file: CTLSEP0014A9725C92.tlv Dec 23 11:31:15 srv00 tftpd[7103]: tftpd: serving file from /srv/tftp Dec 23 11:31:15 srv00 in.tftpd[7104]: connect from 10.0.1.8 (10.0.1.8) Dec 23 11:31:15 srv00 tftpd[7105]: tftpd: trying to get file: SEP0014A9725C92.cnf.xml Dec 23 11:31:15 srv00 tftpd[7105]: tftpd: serving file from /srv/tftp

Interesting fact is, that once in a while connection is refused to a random file but without showing any systematic behavior.

Asterisk log looks like this:

[Dec 23 11:24:45] ERROR[7063]: chan_skinny.c:4538 handle_register_message: Rejecting Device SEP0014A9725C92: Device not found [Dec 23 11:24:45] WARNING[7063]: chan_skinny.c:6322 get_input: Skinny Client sent less data than expected. Expected 4 but got 0.

What am I doing wrong?
I just can’t figure it out…

I would be very very very very thankful if you had a hint for me.
Merry christmas and all the best from Germany

Michael Lettrich


Listings

ladmin@srv00:/srv/tftp$ cat OS79XX.TXT P0S3-07-2-00

ladmin@srv00:/srv/tftp$ cat SEP0014A9725C92.cnf.xml <device> <deviceProtocol>SIP</deviceProtocol> <loadInformation model="IP Phone 7940">P0S3-07-2-00</loadInformation> </device>

ladmin@srv00:/srv/tftp$ cat SIP0014A9725C92.cnf
proxy1_address: "10.0.0.1" 

line1_name: "Line1"
line1_shortname: "Line1"
line1_displayname: "Line1"
line1_authname: "tel00"
line1_password: "1234"

nat_enable: "1" 
nat_address: "10.0.0.1" 
voip_control_port: "5060" 
start_media_port: "16348" 
end_media_port:  "20134" 
nat_received_processing: "0" 

phone_label: "tel00"
time_zone: CST 

telnet_level: "2" 
phone_prompt: "Cisco7940" 
phone_password: "password" 
enable_vad: "0" 
network_media_type: "auto" 
ladmin@srv00:/srv/tftp$ cat SIPDefault.cnf
image_version: "P0S3-07-2-00"
ladmin@srv00:/srv/tftp$ cat XMLDefault.cnf.xml
<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>  
<loadInformation8 model="IP Phone 7940">P0S3-07-2-00</loadInformation8>  
<authenticationURL></authenticationURL>  
<directoryURL></directoryURL>  
<idleURL></idleURL>  
<informationURL></informationURL>  
<messagesURL></messagesURL>  
<servicesURL></servicesURL>