Cisco 7961G and CTLSEP tlv file

1 July, 2008 (20:35) | Asterisk, Cisco, Linux, UNIX

I’ve recently been playing around with some of the great Cisco IP phone hardware, and recently I was able to pick up a 7961G at a good price from Ebay. Soon after, I grabbed a 7960G also for a good price too, but that’s a story for another day :)

Well, my plan was to run SIP firmware on the phone and use it with Asterisk. This would be my home phone setup - overkill yes, but I’m a geek and a sucker for Cisco gear :)

When I got the phone I also bought a SMARTNet contract on it so I could get access to the SIP firmware legally; rather than the dodgy route of going through the ‘mate of a mate who works at an ISP that has a Cisco account’ (like most people who have Cisco gear at home do). The SMARTnet contract wasn’t expensive at all. I paid IIRC $40AUD for the contract on the 7961G; the trick is to cover it as a ’spare’ phone.

Anyway, after grabbing the new SIP firmware from the site after my SMARTnet contract was created; I had issues with the phone trying to download the CTLSEP<mac>.tlv file. It would sit there and loop 3 times, then drop its IP and re-request it from DHCP before trying again. This continued on forever.

I was under the impression that perhaps the Firmware I was running was bad, or perhaps it wasn’t working as it should. I thought I’d perhaps stepped over too many firmwares in the one hit. Anyway, I attempted to go back to a version 7 SCCP firmware, which loaded on to the phone, but STILL the same issue with the CTLSEP<mac>.tlv file.

Tried upgrading to a version 8 SCCP firmware, but this is where things went awry. Something didn’t work with the upgrade, and it was stuck in an endless upgrade cycle. Sigh. Thanks to my SMARTnet contract, I was able to contact Cisco and get help. They (understandably) wouldn’t support my Asterisk setup, but I wasnt really asking for that; all I wanted was to know how I could fix this phone I had. He couldn’t suggest anything that would work, seeing as I had attempted everything on my own anyway. Hard reset did nothing, hand-set off the hook while booting did nothing, either. Phone wasnt requesting ANY files from tftp once it had an IP from DHCP.

Anyway, I asked the question and under my SMARTnet contract I was able to have the phone replaced with a new one! I have to send my bricked phone back, but hell, for $40 for the SMARTnet contract, who’s complaining? :D

Got my new 7961G today, and lo and behold, same issue! Looping looking for the CTLSEP<mac>.tlv file 3 times, then dropping the IP and reconnecting to DHCP to get the IP again, and another 3 loops. A lot of googling later, I found a post that suggested some TFTP servers give bad error codes when a non-existant file is found.

Turned out my Debian machine I was using uses one of those TFTP servers.. For shits and giggles I installed a TFTP server on my Gentoo workstation, and what do you know, as soon as DHCP was configured to give out that IP address everything worked. The phone simply skipped over the missing CTLSEP<mac>.tlv file and proceeded on to look for the next file in its hunt group.

Sweet! Now to get this beast working with Asterisk!

Debian box was running tftp: $Id: tftpd.c,v 1.20 2000/07/29 18:37:21 dholland Exp $ (found by running strings on the binary)
Gentoo box was running tftp: Latest version installed: net-ftp/atftp 0.7-r1

Comments

Comment from James McLean
Date: July 2, 2008, 1:55 pm

To add to this, I installed version 0.7 of ATFTPD on my Debian box, but same issue.. No idea why it’s failing; I may end up going for Gentoo on the Asterisk machine - which I was hoping not to do..

Comment from vortex
Date: July 18, 2008, 3:24 pm

I’ve now tried FreeBSD with it’s default TFTP server, and it works perfectly out of the box. Asterisk aparenlty runs OK on FreeBSD, so that’s the OS i’ll probably use.