After receiving a call from Paris, France from a gentleman who has spent the last two days trying to convert his SCCP Cisco 7940G to SIP – I decided to share my findings to the rest of you – I sure hope it works for you.
Setup a tftp/dhcp server on a linux or windows box and have it plugged into a switch (or use a crossover cable if you are provisioning one phone at a time) – tftp setup is out of scope for this article however for Windows users, google “solarwind”, Linux try atftpd + dnsmasq (works well for me).
I built up a standard tftpboot directory which should help you get at least an older SIP image on your phone, upgrading to a newer image is up to you. Copy the contents of THIS FILE into your tftp root directory (linux : /tftpboot) and chmod 777. This is the (very hard to find until now) version 6.3 firmware so send me your praise or donate some money for beer to paypal@rappiddev.com. I hope I don’t get arrested for releasing this to you… keep it quiet will ya?
Once you have all of that done you should just have to change the *<mac>*.* (any file with MAC in the title) to the MAC address of your Cisco Phone.
If you keep getting CTL or TLV errors – remove the CTLSEPMAC.tlv file while the phone is stuck in the reboot loop. Should advance you to the next step where it actually loads the firmware.
Once again I hope this works out for you – feel free to send me your feedback!
See how the Cisco services menu interfaces with the web services panel – plus a factory reset for proof.
Here are some images of the script in action.
I wrote about this app in the past, you can view the video demo here. Now I have decided to share it with others -you can find the source here.
Here is how to install it (presuming you are using Trixbox):
- Copy the source to /var/www/html – untar it, the folder should be named services
- Create a database mysqladmin -u root -p create services
- cd services/
- mysql -u root -p services < services.sql
- nano system/application/config/database.php (match your Trixbox MySQL settings)
- nano system/application/config/config.php and change the base_url to your Trixbox IP address / services.
- chmod 777 -R /var/www/html/services/cisco
- chmod 777 -R /var/www/html/services/grandstream
That should do it, you can now visit http://trixbox-ip/services and begin adding contacts / RSS feed.
Links are provided at the bottom of the application to copy and paste into your phone configurations.
This app supports GXP2000 & Cisco 79XX IP Phones.
I have found some goodies online for those with the 79XX models, take a peek at the bottom of this post for ringtones, firmware and additional resources.

The guys at Cisco are good for one thing: making administration a nightmare. A friend left me his Cisco 7940 last year and I was finally able to track down a cheap power adapter for it ($17 CDN w/shipping from Hong Kong). So I get super excited to play with my now usable toy and it turns out the SIP IOS for this device does not include a web interface!
I have a some experience with TFTP from my Grandstream GXP2000 and Trixbox makes it easy with its endpoint manager however I prefer PiaF for faxing so I decided to configure TFTP on my NAS box. I tried a few different TFTP daemons including tftpd-hpa and tftpd via xinetd though the easiest to use was atftpd. The reason for this is (in Debian) you can just run dpkg-reconfigure atftpd and it gives you a nice “wizard” to configure the daemon, so no file editing.
Once I hunted down the latest IOS (no thanks to Cisco) I got the phone booted up with P0S3-08-8-00 and I was happy. Next was configuring an extension, this part sucked ass. I am not going to explain how to do it, if you can’t figure it out yourself just use the Trixbox Endpoint Manager, though I will give you a hint : disable nat for the extension in the FreePBX extension configuration.
On to the review
The phone is huge, nice big screen and the tilt is awesome. The handset feels solid and rests on the shoulder quite nicely, by far my favourite handset. Audio quality is no better than my Grandstream however surpasses my SPA2102 hands down. The buttons are quite satisfying to the touch though the navigation button (up / down) feels cheap (it is a rocker type). I absolutely love the Message / Ringing lamp built right into the handset and the extension selection is simple to use.
Geekery – Customization
Though the provisioning is stupid to set up, once it is done configuration is a breeze. This phone supports XML menus using the little globe button, these services are super awesome to play with. With a bit of PHP / XML knowledge it is easy to write a simple RSS feed reader (useless but fun) as well as email reader (using php-imap) and phone directory services.
There are a ton of good ringtones for this thing, I am currently using the infamous “24″ ringtone (the one mocked in South Park) and I smile every time I get a call. The background is also customizable, I cureently am using the one below and I love it (supports BMP).

Overall I give this phone an 8 / 10, only because for the price I would expect either an LCD screen or at least better font selection. If you are looking for a good enterprise ready IP Phone the Cisco 7940 is a great choice.
Here are your promised Links (I may mirror these, this stuff is precious)
Wicked firmware mirror – no stupid Cisco registration or $$$
Where I found my 24 ringtone (other great ringtones too!)


