Home » Technology » Office Automation » Introducing the Cisco 7970 WonderPhone … Or Is It?

The Most Versatile VoIP Provider: FREE PORTING

Introducing the Cisco 7970 WonderPhone … Or Is It?

Cisco 7970

We didn't know quite how to begin this article so we decided to try and find a picture that sums up what you're up against installing a Cisco 7970 color IP telephone with Asterisk®. The disturbing part of this photo is that it shows the lengths to which Cisco will go to provide literally picture-perfect documentation for how to hang this phone on a wall while there is close to ZERO documentation for how to use it as a SIP telephone with anything other than Cisco's proprietary CallManager telephone system. It's almost like they don't want it used that way. LOL! Since the entire world is moving to SIP, Cisco obviously needed to be able to say they supported SIP ... but just barely. If you've never had to deal with Cisco or, better yet, Cisco's web site, lucky you! For those of us that ran Internet services in a former life, there was Cisco or Cisco when it came to routers. Luckily, that's not the case in the IP telephony business, and fortunately it's now changed in the router business as well. Guess why? Creativity and software quality have gone down the rat hole. And Cisco shareholders wonder why their company is losing market share.

It wasn't quite right to reduce Cisco's beautiful (and I do mean beautiful) new COLOR IP telephone to a nuts-and-bolts image. But we're trying to paint a picture of how it works, not how it looks. The good news for Asterisk users is that IF you ever get the 7970 working with your Asterisk system, you'll never go back. The quality of calls with the Cisco 7970G is head-and-shoulders above all of the competition. Embarrassingly good! Having said that, it's more than a little disappointing to encounter Version 8 of their SIP firmware and discover that it functions about like a .8 beta release of most telephony software. Many things don't work. Some buttons still crash the phone. And it appears that Cisco has little or no intention to make things much better ever. You might be asking, "Why would a company act like this?" It's really pretty simple: monopoly (they wish!) and money (ditto!). The phone can be purchased for under $500 from many on line retailers such as our favorite (shown above). The CallManager license adds another $250 to the retail price of each and every phone. You'd want a monopoly, too, with that sort of pricing structure.

SPECIAL NOTE: We have one, gently used Cisco 7970 for sale. It actually was used to prepare this article. Make us an offer, or we'll make you a deal you can't refuse. If you're interested, contact us.

So how do we get the damn phone to work with Asterisk? Well, here's where it gets a little tricky. The first thing you should do is watch Kerry Garrison's great video on setting up the phone. You'll find it at AsteriskTutorials.com. What you'll learn in the tutorial is that most of the configuration of the phone is done through XML config files which are ordinary text files with nested (special) keywords in brackets that tell the phone how and what to do when. You then copy these config files to a TFTP server and reboot the phone after pointing it to the IP address of your TFTP server. If you don't have a TFTP server, Kerry will even tell you about a great one for Windows that you can download for free: TFTPd32.

Welcome to TFTP Hell. As with everything Cisco, there are a few instant gotcha's with the installation process. First, Cisco provides no documentation with the phone and has published no documentation on the XML config files. Why? Monopoly and Money. The official answer would be that you don't need to know nothin' 'bout no stinkin' config files. Just use (buy!) their CallManager, and it generates the config files out of thin air. Now you get it. The only problem with the Cisco Scenario is that then your phone will only talk to the CallManager, not Asterisk. In fairness, we should note that Cisco documentation is available for the SIP firmware on the phone, but it all pertains to CallManager. Big surprise there. And, by the way, be sure to order the phone with SIP firmware, not SCCP, and a 7970 Power Supply or you're really S.O.L. with a dim phone to boot. So it's Go Back to Go time.

The second gotcha is that the phone has to know where to find the TFTP server before you can change anything. You can't manually set the TFTP IP address with something like telnet or ssh. That would be too simple. You can set it on the phone keypad provided the existing firmware is configured to allow changes. The default firmware load isn't. So what's left? Well, you'll need a DHCP server that understands Option 66. Most don't. What Option 66 does is store the IP address of your favorite TFTP server so that when a client obtains an IP address for IP access, it also can obtain an IP address for a TFTP server containing updated config files... or new firmware. If you don't have a router with DHCP that supports Option 66, not to worry. TFTPd32 includes it as well.

Gotcha #3 is that you can't just run TFTPd32 on your LAN and expect things to work. Why? Because your existing LAN probably already has a DHCP server (without Option 66) that's already handing out IP addresses. Can't we just disable our existing DHCP server? Absolutely, but you'll wipe out any preconfigured IP addresses that depend upon your DHCP pool of IP numbers which is the way most mere mortals reserve IP addresses on LANs without having to manually configure IP addresses, and subnet masks, and DNS server addresses for every device on your LAN. So ... the quickest, pain-free way to get started is to boot up a Windows machine on your network. Then replace the network cable connected to your PC with a crossover cable. Now connect the other end of the crossover cable to your shiny new Cisco phone. When the phone is rebooted, it will find the only remaining DHCP server in town (with Option 66 which you must set to match the first number in your DHCP pool since this number will be grabbed by your Windows machine when you plug in the crossover cable): the TFTPd32 DHCP server. If this sounds convoluted, hang on to your hat 'cause we're just getting started. Remember, we haven't changed anything yet!

Cisco 7970The Right Way, The Wrong Way, and The Cisco Way. While we're on a roll with DHCP and TFTP, let's assume for a moment that we already have your phone making calls through your Asterisk server which it isn't, of course. Now you've decided that you'd like a different ring tone or picture on your phone. Can the phone handle it? Absolutely. Is it intuitive? No way. To perform either of these feats of magic, the drill goes something like this. You create another XML config file for both the pictures and the ring tones. Then you load the config files in a secret place on your TFTP server. Then you copy your new ring tones and cover art to the same secret locations. Now you go to each phone and drill down through layer after layer of menu options until you finally come to a screen which will display available ring tones or background images. The phone then will kick off a TFTP session using your TFTP server (which hopefully is still on line). Once it retrieves the file names or thumbnails after querying the XML config file, you get a list of choices. Highlight the desired choice and the phone makes another TFTP connection to download the desired file into your phone. Rube Goldberg would be proud of what Cisco engineers have been able to dream up. I'd fire all of them. Here's a silly idea. Ever heard of HTTP and a web page. There's even HTML support already on the damn phone. Of course, it doesn't work, but who cares. Why fix it when you can dream up an installation scenario like this one? Who in their right mind would ever design an installation system which forces you to keep an insecure TFTP server running on your network all the time?

Call us picky, but here's another little detail. One disgruntled employee with a crossover cable and a notebook computer running TFTPd, and your entire Cisco phone system runs the very real risk of being toast. The problem with Option 66 is that whoever has physical access to your phones can wreak all sorts of havoc since the phones will connect to any available TFTP server. Holding down the pound key for 10 seconds while the phone reboots and then pressing all 12 buttons on the phone's dialpad (in order), and your phone is now MY PHONE. And, this is from a company that has been thinking about network security longer than almost anybody. We should point out that there is a phonePassword field in the config file which defaults to blank, and it may or may not help on the security front. My guess is that most companies never touch it. And, with the ink barely dry on our maintenance contract and given the other configuration quirks of this phone, we were reluctant to test this password feature for fear of turning the device into little more than a boat anchor. We'll leave that testing for you to try out on your new $500 phone. If there's some other, more obtuse security feature (such as tftpDefault) that we've missed, we're pretty confident that some diehard Cisco cheerleader will point it out to us in a comment shortly. In the meantime, we'll continue our head scratching. Memo to Cisco: There are lots of reasons that folks expect documentation with their equipment. Not the least of these is SECURITY.

Earth to Asterisk. Can You Read Me? Well, enough of the Cisco bashing. We really do want to get this phone working with Asterisk. And did we mention? We wouldn't trade the Cisco 7970 for ANY other phone on the planet. The voice quality with both the headset and the speakerphone is that good! For openers, to use the phone with Asterisk, you'll need at least Asterisk 1.2 to get any connectivity. Asterisk 1.09 won't cut it. And the 7970 ought to work fine with any version of TrixBox as well as Asterisk@Home versions going back to 2.0, all of which include at least Asterisk 1.2. Now for the fun part.

First, download the Sample Config Files from Kerry Garrison's AsteriskTutorials.com site. Unzip the file which will give you a configs folder with three files. Turn your phone over and write down the MAC address which is the number beginning with 00 and consists of 12 hex digits. Rename the SEP000E84E8E3D5.cnf.xml file substituting the MAC address you wrote down for 000E84E8E3D5 in the existing file name. If this config file name doesn't include the actual MAC adddress of your phone, your phone won't process any updates. Now press the Settings button on your phone. It's the one on the right side with a check mark on it. Then press 5, 3 and write down the version of the firmware that's loaded on your phone. If it doesn't start with SIP, send it back and tell the vendor that you requested a Cisco 7970 with SIP firmware. Unless the firmware version is SIP70.8-0-3S, you'll need to change the firmware version in both the SEP config file we renamed above and also in the XMLDefault.cnf.xml file. Use the Windows TextEdit program to search for SIP70.8-0-3S and replace it with the firmware version you wrote down.

Before we get too far along, let's be sure that your phone is locked in such a way that you can't manually specify a TFTP server's IP address. Press the Settings button again and then 2, 8. A closed padlock should appear in the upper right corner of the display. Pressing **# will attempt to unlock the phone. The padlock should open within a few seconds. If so, there may also be a new, gold Edit tab above the second (of six) softkey buttons on your phone. If the Edit button is not dimmed out, then you can press it and manually enter an IP address for a TFTP server. Otherwise, you'll need to go through the knuckle drill we 've previously outlined using a crossover cable. Be aware that each time you change or reenter the TFTP IP address, your phone will automatically reconnect to the TFTP server to check for updates as soon as you Save the IP address. This is worth remembering because it's an easy way to force a config reload on your phone.

We're almost ready to set up an extension to connect to your Asterisk server. But first, you'll need to be sure you have created an available SIP extension on your Asterisk system. Using AMP or freePBX, choose the Extensions option and Add a new SIP extension. Choose an available extension number and password. In the Device Options section, set the qualify field to No and set the mailbox option to something like 500@default instead of 500@device (using your chosen extension number, of course). Set up a voicemail account with the same password you specified for the extension. Then Submit your changes and click the Red Bar to reload Asterisk.

Now we're ready to edit the SEPxxxxxxxxxxxx.cnf.xml file using NotePad. First, search for 192.168.5.50 and replace every instance with the internal IP address of your Asterisk box. It should come as no surprise that Cisco has a different way of handling SIP connections through NAT and a firewall, and it's not yet compatible with the way the rest of the world (including Asterisk) do it. So, for the time being, forget using a 7970 outside your firewall unless you enjoy Water Torture. Beginning on line 10 of the file, you'll see two entries that look like this:

<datetemplate>M/D/Y</datetemplate>
<timezone>Pacific Standard/Daylight Time</timezone>

The top line tells the phone to display the date as MO/DA/YR with time in 24-hour military time. If you'd prefer a 12-hour clock with am and pm indications, add a lower case a immediately after the Y. Change Pacific on the second line to match your time zone. Leave the rest of it alone unless you live in a freaky Daylight Savings location. If you do, you'll know what I'm talking about. Otherwise, don't worry about it.

The 7970 theoretically can support 8 extensions on the eight buttons along the top right side of the phone. That only seems to work if all the designated extensions are housed on the same Asterisk server, i.e. one IP address. Here's what a typical entry for an extension should look like. To add another one, just duplicate the code, increment the line button number, and enter the appropriate settings for the next extension.

<line button="1">
<featureID>9</featureID>
<featureLabel>Ext. 400</featureLabel>
<proxy>192.168.0.108</proxy>
<port>5060</port>
<name>400</name>
<displayName>Ward Mundy</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName>400</authName>
<authPassword>1234</authPassword>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
<messagesNumber>*97</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>7b452e87-4496-4762-e11f-b26751a1884b</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>

We've shown the entries that worked for us. Most of the entries can be left alone. Just change the Proxy entry to the IP address of your Asterisk box. Then enter your extension number in featureLabel, name, and authName. Enter a displayName for calls from this extension, and enter your extension password in authPassword.

In addition to using these eight buttons for Extensions, you also can use them for Speed Dial entries. And these entries can be any sequence that your Asterisk server understands. For example, you could assign *8 to a button to do a Call Pickup. Here's what the entry would look like to assign this to the eighth button:

<line button="8">
<featureID>2</featureID>
<featureLabel>Call Pickup</featureLabel>
<speedDialNumber>*8</speedDialNumber>
</line>

Aside from assuring that the featureID code is 2, you can assign a Speed Dial entry to any button number and label it any way you choose. The speedDialNumber should be the exact string of numbers you would normally dial to place the call using the dialpad of your phone.

There are some other entries in the Config file, you'll want to take a look at. Near the bottom of the file you'll find settingsAccess. If this is set to zero, you'll want to change it to 1 so that you can avoid the TFTP knuckle drill we've outlined above. Once this configuration change is loaded into the phone, you should be able to manually enter a TFTP IP address as we described above.

Finally, there's a group of entries in the vendorConfig section of the file that determine when the 7970's display will be active and for how long. The entries look like this:

<daysDisplayNotActive>1,7</daysDisplayNotActive>
<displayOnTime>08:00</displayOnTime>
<displayOnDuration>10:30</displayOnDuration>
<displayIdleTimeout>01:00</displayIdleTimeout>

These are self-explanatory for the most part. The first line tells the phone which days of the week not to turn on the display automatically. If you want it on every day, delete 1,7. The displayOnTime tells the phone what time of day in your time zone to turn on the display (24 hour clock). The next line tells the phone how many hours and minutes to leave the display lit. And the last line tells the phone how long to leave the phone lit up when you manually turn on the display by pressing the sixth Display button (which will display a green light when the phone display is off).

To load the configuration changes we've made above, just copy the three files in your Config directory to the default directory you set up on your TFTP server. Then unplug the phone and plug it back in once you have your TFTP server with its DHCP server configured and running.

After reading the next paragraph, we think you'll understand why we're abbreviating the implementation step with this phone. I'd venture to say that not one of our daily readers is going to buy this phone after reading our review. If some of you prove us wrong with your comments, we'll be glad to add the missing pieces. Or you can go here and find most of the information you'll need to get started. Here are a few helpful hints on replacing the default photo and ring tone on the phone. A link for dozens of ring tones appears earlier in the column. Step 2 is to create a distinctiveringlist.xml file and put it in the root directory of your TFTP server together with the .raw sound files. In the XML file, you merely list the sound files. And it looks like this:

<CiscoIPPhoneRingList>
<Ring>
<DisplayName>Fun 1</DisplayName>
<FileName>CTU1.raw</FileName>
</Ring>
</CiscoIPPhoneRingList>

To load a new Ring Tone for your first extension, crank up the TFTP server. Then press the Settings button on your phone followed by 1, 1, 2. Then follow the prompts to Select your desired Ring Tone for each extension.

You do something similar for photos except you need two PNG images for each photo you want to make available for display on the phone. One is a thumbnail (80x53) and the other is the photo itself (320x212 in 12 bit color). Don't worry about the 12 bits. The phone will convert 16 bit images, but keep the full-size images relatively small, e.g. 100K. Once you have your photos, create a Desktops folder off the root directory of your TFTP server. Then create a subdirectory inside it called 320x212x12. Using Notepad, create an XML file there and name it List.xml. Capitalization matters! Sample entries are shown below. Now copy all of your images to the 320x212x12 folder.

<CiscoIPPhoneImageList>
<ImageItem Image="TFTP:Desktops/320x212x12/MyGirlsTN.png" URL="TFTP:Desktops/320x212x12/MyGirls.png"/>
</CiscoIPPhoneImageList>

To change the desktop photo, crank up your TFTP server. Then press the Settings button on the phone followed by 1, 2. Then pick the desired photo and press the Select button. Save your change and you're done.

In theory, there are all sorts of other neat things you should be able to do with this phone. For example, there's a message waiting light. Doesn't work. Then there's a stutter dial tone with message waiting. Doesn't work. The phone is designed to display a listing of Phonebook Entries out of an XML file on your web site when you press the Directory button. Doesn't work. It's also supposed to display a page of helpful tips when you hit the question mark button. Doesn't work. Then there's the ability to run a web-based XML application. No cigar there either. And, when you answer a call on the phone, don't dare press the Transfer button unless you like watching core dumps. Fortunately, # transfers still work with Asterisk. Well, you get the idea. And this is Version 8? Can you even imagine what Version 1 looked like? And the sad part of all of this: the Cisco 7970 probably has the best voice quality of any telephone we've ever used. And we've used lots of them. Here's how we've decided to use the phone in our pure-VoIP environment. It's a variant of the old adage: "Don't Call Us, We'll Call You." We put the 7970 on a separate table in our high tech office and, whenever we need to talk to someone important, we'll call from our cushiest chair using this phone. For the rest of our incoming calls and our voicemail, we'll use another phone ... that works and better supports IP telephony but sounds more like a cellphone call. So, if you get a crystal-clear call from us, you can stand a little taller knowing how important you are. It's a call from the Cisco 7970!

The Hobson's Choice for most folks boils down to this. Do you want great sounding IP phone calls with a phone that costs two to five times as much as other IP phones while giving up virtually every other feature that has made IP telephony great? While it will let you retrieve your voicemail messages from your Asterisk server, unfortunately you'll never know you have a message unless you dial in regularly and manually check. This phone has been pitched as the perfect phone for the busy executive. The first busy executive that misses an important meeting because the message waiting lamp never lit up, and this phone would be out the window. Too bad!

Perhaps more than any other American company, Cisco is responsible for getting IP telephony off the ground. So it's especially disappointing to see what an absolutely crappy job they've passed off to the Internet community as their SIP offering. If you're one of their corporate customers, we hope you'll take the time to drop a line to John Chambers at Cisco and give him your thoughts. Cisco didn't get to where they are today with software that just barely passes the smell test.


Nerd Vittles Fan Club Map. Thanks for visiting! We hope you'll take a second and add yourself to our Frappr World Map compliments of Google. In making your entry, you can choose an icon: guy, gal, nerd, or geek. For those that don't know the difference in the last two, here's the best definition we've found: "a nerd is very similar to a geek, but with more RAM and a faster modem." We're always looking for the best BBQ joints on the planet. So, if you know of one, add it to the map while you're visiting as well.

Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) and take any or all of them for a spin. The sound quality may not be perfect due to performance limitations of our ancient Intel 386 demo machine. But the price is right.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!


42 Comments

  1. Ward, and I thought the 7960G was tough! Good article. One thing that helped me with the initial tftp, was to turn off DHCP on my router and using Webmin…Turn DHCP on temporarily on my Trixbox. I know it is a goofy workaround, but the phone I got would not even boot. This way I got the SIP firmware loaded and then unlocked and manually set the correct DHCP server and TFTP server. After that it is working great. Now I will have to start a fund raiser web site to try a 7970.

    Robert.

  2. I have been using a 7970 with asterisk for quite a while now. The transfer, conference button etc. work fine for me. I am using the SIP firmware 8.0.1 though. Seems like that’s a better choice.

    Also there used to be a nice web-site with background pictures and ringtones for the phone but for some reason that was taken down. Would be nice if someone knows if that’s still out there somewhere.

  3. Your Rube Goldberg analogy and silly HTTP idea nearly had me spit soda over the keyboard. You briefly touched on the negatives of keeping a TFTP server running all the time. Is this a requirement? Or is it just needed for provisioning and pushing changes to the phone. Thanks for another great article. Jeff

    [WM: You only need the TFTP server running when you want to change something on the phone or add a ringtone or photo. In a corporate environment, that would translate into pretty much all the time.]

  4. I think you guys would be better suited to using your Web Space to type up articles about things that work instead of Dog something that wasn’t designed to be used the way you are trying to use it.

    Please stick with the awesome tutorials you guys have been pumpin out and leave the drama in the trash can. I don’t think it’s worth the time or effort.

    [WM: Hi Terry. Each to his or her own, I suppose. Everybody that uses VoIP needs a phone and some even like a good phone. Once Cisco decided to support SIP telephony, they made the 7970 a choice for many of us. The fact that it doesn’t work so well is just the breaks once you buy one. Since we bought one, we wanted to let everyone else know what to expect. The good thing about web sites is that, if you don’t find one or more of our articles interesting, you have the absolute right to move on.]

  5. I enjoyed this article a lot and thanks for the info. I had been considering getting some cisco phones to try for a while now and thanks to your article, I can avoid that mistake. I have installed a number of @home and now Trixbox systems in small to medium companies and we always let the customer know that your site is one of the best placess to find all the neat things one can do with Asterisk.

    You have advocated a number of phone solutions (Grandstream, Sipura SPA). What do you think of the Polycom phones (IP501, IP601, or IP430’s)? We have deployed these phones with our customers and the voice quality have been great plus they feel like a real enterprise phone.

    Thanks again for the info on Cisco.

  6. I dislike the way cisco treats the consumers they depend on and have for some time. Can’t believe they got where they are by being this way — maybe it is something that happened as they became the 800lb gorilla (and smelly one at that) they are today. or maybe they just got where they are by being experts at buying out or bullying any threat that ever sprouted in their path.

    I disagree about the 7970 having good sound quality. the handset is OK but the speakerphone is not much better than a linksys SPA-942 (also owned by cisco now). They are pretty phones and my message waiting indicators have never failed me for the 3 extensions i have registered with my trixbox.

    if you want a phone that sounds fantastic get a polycom. both the handset and speakerphone are unrivalled. too bad polycom is a silly company too (becoming more like cisco every day). i like the polycom speakerphone so much better that i have a 501 sitting right next to my 7970 for when i need to use the speakerphone. maybe i have something misconfigured?

    that being said, if somebody has specifics on how to get a different background on my 7970, i would forever be indebted!

    [WM: Thanks for your comments. We covered replacement of the background image on the 7970 in the article.]

  7. I would also love to hear your opinion on Polycom phones and how they work with Asterisk! Do they really sound worse than Cisco? And do the features like one-button-transfer and MWI work with them?

  8. Thanks! There were the background image instructions all along! sorry for not seeing them. My MWI works and has not failed me (both the red LED on the handset and the flashing envelope by the extension work). I am using SIP firmware version 8-0-2. I have heard some versions of cisco’s SIP firmware have broken MWI. I would be happy to send you my config if it helps. There is also a thread on the trixbox forums about MWI on the 7960 (something about changing the voicemail context to device) but I did not have to do those steps to get mine to work. Also for MWI to work in trixbox you need a valid symlink in the device folder and backups and restores can mess these up. That could be why changing the voicemail context to device works for some folks. I use deviceanduser mode in Trixbox.

    are there settings to make the speakerphone sound better? I am not pleased with mine but I seem to be in the minority. When I count to 10 and have the remote party do the same, we can hardly hear each other while on the Polycom it really feels more full duplex.

  9. It’s been mentioned in a private note that much of the information contained in this article came from a variety of sources in the Asterisk community, none of which were directly credited other than Kerry Garrison’s site. For long-time readers of our columns, you will recall that we try to mention various sources even though this is a blog, not a thesis. We thought we had done that in this case with the link to the voip-info wiki which contains a wealth of information (with sources) to obtain further details about configuring Cisco phones. We didn’t mention the TrixBox Forums directly in this article (although we regularly provide links to the forums in our articles). And you may assume that we always include information which we have obtained from a variety of threads posted there. For others that have contributed to the effort to get Cisco phones to work (at all) with Asterisk, your efforts are most appreciated as well. Nerd Vittles attempts to boil down complex information into concepts which mere mortals can get their arms around. To the extent we sometimes forget to attribute information to all of our sources, our apologies. People learn in different ways. And, for many, wiki’s and message threads are difficult to navigate much less learn from. Nerd Vittles provides more of a textbook approach, but to each his (or her) own. Finally, it would be painfully boring to read articles that routinely made attribution for everything we’ve learned. In the legal business, we had footnotes to handle this. And textbooks have appendices that nobody ever reads. Unfortunately (or perhaps fortunately), blogs don’t.

  10. Wow. What an amusing article. I guess DHCP TFTP and XML are a little over your head. It’s not rocket science, dude. All of the SIP information is available on Cisco’s site as well instructions of how to create wallpaper, services, and ringtones. It’s right there in english or whatever language you want on Cisco’s site. I’ve been using 7970’s with CallManager running SCCP and SIP for years. I’ve done it with Asterisk and just stright to a SIP provider. It’s not that hard. Your article slays me.

    [WM: Where are the links… dude?]

  11. Sorry if this is a second post, I didn’t get any confirmation of my submit.

    I thought I’d let people know if they didn’t already that cisco released 8.2.1 SIP image (at least for 7970) and it seems to work pretty good, I’ve got it registered with Asterisk@Home 2.6 (haven’t upgraded yet) and all the basic phone functionality works (transfer call button etc) I can provide a .cnf.xml file that works correctly to setup the phone as I had to get pieces from here and there, not one single config worked correctly as-is.

    [WM: As soon as we receive the config file, we will post a link. In the meantime, you can download the update from here (assuming you have a Cisco maintenance contract).]

  12. If you get the 8.2.1 SIP image and try to load it, I found that the phone would say it couldn’t load SIP70.8-2-1S.loads but it really couldn’t load one of the files listed in the SIP70.8-2-1S.loads file. So, after you extract the files from the .cop file, rename jar70sip.8-2-0-55.sbn to Jar70sip.8-2-0-55.sbn. The difference is the first letter ‘J’ needs to be capitalized. I only found this out by using tcpdump to see what files were being requested.

    As promised, here is my .cnf.xml file

    This needs to be renamed to reflect your phone’s actual MAC address, e.g. SEP123456789012.cnf.xml.

    Then replace all of the following:

    NTP_TIME_SERVER IP address of an NTP time server.
    ASTERISK_ADDRESS IP address of your asterisk server.
    DISPLAY_ON_SCREEN_1 Text name to display for the line 1 on the phone screen.
    LINE_AUTH_NAME_1 Authorization name for line 1 in asterisk.
    LINE_AUTH_PASSWORD_1 Authorization password for line 1 in asterisk.
    LINE_EXTENSION_NUMBER_1 Extension number for line 1 in asterisk.
    DISPLAY_ON_SCREEN_2 Text name to display for the line 2 on the phone screen.
    LINE_AUTH_NAME_2 Authorization name for line 2 in asterisk.
    LINE_AUTH_PASSWORD_2 Authorization password for line 2 in asterisk.
    LINE_EXTENSION_NUMBER_2 Extension number for line 2 in asterisk.

    [WM: I’ve moved your config file to our server for download just to avoid symbol problems with WordPress. Thanks. Send me your mailing address. You’ve won a PBX-in-a-Flash drive for your tip!]

  13. I’ve been breaking my head for days to get my 7970 phones (4 of them) working with Asterisk. I would greatly appreciate if one can help me.

    I tried different firmware and now rolled back to 8.02 as I thought that this will do the WMI. My main problems now are;

    DTMF tones not sending out. It apparently does catch internally, as it authenticates VM.

    Can’t get the dialplan.xml to work, this forces me to press” dial” or wait for the call to send. (I know how to do it on a Polycom)

    I tried the latest firmware, but it kept on crashing. I also read that WMI will only work on 8.0.2. I’m running * 1.2.13.

    Thanks in advance!

    Len

  14. I can’t get the PC pass thru port to work on my 7971G-GE. Can anybody else? I’ve tried the config files found here and 1/2 dozen other places on the ‘net and it’s just impossible. Same with enabling the web access. It *is* possible to enable the port on the phone itself, but a reboot with subsequent config file load disables the port all over again. Advise appreciated.

  15. Top article Ward…. I congratulate you for it! I do have a problem though with my 7970, hahaha it keeps saying "registering" and I get a message at bootup saying "Error Updating Locale" and a status message saying "No CTL installed". I’ve been fussing around with the phone for 2 days now trying to get it up and running, but to no luck! I followed your article to the bone and I still have this problem…. could you or someone please give me some advice before I pull out all my hair!!

  16. Excellent article, but i’m sorry i have to disagree on a few points.

    Most dhcp servers i’ve seen, have no trouble at all with option 66 or 150. Windows’ dhcp can do it, Linux dhcpd can do it, Cisco’s IOS can do it. In fact, i’m pretty positive that any dhcp server has to be able to offer dhcp options (not just the tftp-related ones, but all 255 of them, see http://en.wikipedia.org/wiki/Dhcp#Client_configuration_parameters)

    Also, for security and performance reasons, corporate voip networks use separate vlan’s for their voice infrastructure. So nobody can plug in a laptop in a wall outlet (or even the pc port on the back on the phone, as the phone separates the dataport on a different vlan) to run a rogue dhcp & tftp server in the voice network, because the network is configured not to allow any non-voice hardware on the voice vlan.

    And what would be the advantage of http over tftp? All you need to do is put your ringtones and backgrounds on a tftp-server, add a config file, and you’re all set. Tftp is designed as a quick and easy way to transfer occasional small files across a controlled network, and this is just such a situation. I don’t see the added value of http (with its extra overhead), or even ftp (no authentication neccesary, as long as the voice vlan is secured).

    Having said that, i agree it is a pain to convert a skinny phone to SIP (and even more to convert it back). But don’t forget that Cisco’s main target is the corporate world, not enthousiasts like you & me. This is reflected in their products (and pricetags).

  17. I have five of the Cisco CP-7970 phones and at first glance, it’s a well-engineered and well-built product. When you get into using them with Asterisk or any other SIP implementation besides Cisco Call Manager, you quickly discover just how poorly Cisco supports this product. That poor support transforms a really nice phone into a worthless piece of crap. Really.

    Because of the DST changes, I decided to do a firmware upgrade on the phones, hoping that would fix the display time. After spending a few hours and accomplishing nothing, I’ve decided it’s the last straw. I’ll be ordering replacement Aastra phones tomorrow.

    Cisco can’t put crap like this out on the market without eventually damaging their good name. I know that going forward, I’ll buy anything but Cisco whenever I have a choice.

    PS: I’m a Cisco Reseller/Partner (or was).

  18. Any idea how to fix the April to March DST problem for the US time change?

    [WM: Here’s what appears to be the Cisco Solution… wait for April.]

  19. Just a little update that we’re still running SIP70.8-0-3S which seems to be the most stable and reliable SIP firmware that Cisco can produce. And, lo and behold, the web access features have started working. What’s the trick? Well, you set <webAccess>0</webAccess> in your config file. That makes perfect sense, doesn’t it? No means Yes in Cisco-speak. We’ve written PHP XML scripts that retrieve news and weather reports on the 7970 using our existing Nerd Vittles apps. BUT we don’t plan to share them until Cisco gets their SIP act together. We never want to be accused of doing anything that generated a dime of income for Cisco. Their SIP software for these phones remains the crappiest on the market while their pricing remains the highest of any SIP telephone. Go figure!

  20. lt – in response to your DST question, here is the Cisco answer for the update in an SCCP environment. I assume that parts of this would work in the SIP world as well.
    1) Update the Cisco OS load on the CallManager server (Yes, cisco actually releases it’s own OS versions, so you can’t just use Windoze updates. I guess it’s good because they test everything)
    2) Update the CallManager version (Cisco gets UTC from the computer clock to use for time. It converts the UTC to the local date/time with a table entry in the SQL database, so the phones get time from there and not from the server time itself. This only applies to 7940’s and 7960’s, the 7970’s are a bit different, but that’s where the next step comes in)
    3) Update the DevicePack – Ver39 (This it the bulk firmware load for all the phones. There is a firmware load that has the new DST information in it for EVERY phone model, since some convert UTC to date/time in the phone itelf. What’s interesting is that the version of firmware for the 7970 that’s included in this pack is not available for individual download yet. The only place I can find it is in this pack).
    4) Install CallManager DST Patch – this changes the DST fields in the CallManager’s DST database.

    I know this is more related to CallManager and SCCP, but hopefully it will transfer somewhat towards SIP functionality. -k

    [WM: Sorry, but none of that works with their SIP firmware. There isn’t a CallManager.]

  21. I really like the default fountain background that I have seen on the Cisco site for the 7970 but I currently have a different ugly default background. Anyone know or can provide a link where I can get DL the Cisco Fountain background. I googled it for an hour or so and all I found was references to files names CiscoFountain.png and Fountain.png on various sites but no actual images.

  22. Great resource thanks guys one thing. Im not yet flashy enough to have asterix serevr her at the office and im using an offsite VOIP provider. Im trying to get my 7970 working with them, does any one have a working SEP{mac}.cnf.xml file they could send me that they know works with an ‘off site’ provider? Im currently on SIP70.8-2-2 any help would be greatly appreciated shane {at} creative-fusion couk.

    Thanks again for a great resource

  23. Ive got the phone working now with the help of our VOIP providers Noble Solutions nad its fantastic. One thing I dont have, and cant seem to find, is a softkey template, or a guide on how to build one. Is this something anyone can help me with? Email address in last post

  24. Greetings,
    I’ve been following the steps mentioned about but when I try to upgrade it keep on telling the following:

    10/17/2007 10:12 :Sending SEP000F90CEF7E0.cnf.xml to (192.168.0.90)
    10/17/2007 10:12 :Sent SEP000F90CEF7E0.cnf.xml to sep0014f2d7110a (192.168.0.90), 8572 bytes
    10/17/2007 10:12 :TFTP Error from 192.168.0.90 requesting United_States\7980-tones.xml : File does not exist
    10/17/2007 10:12 :TFTP Error from 192.168.0.90 requesting English_United_States\7980-kate.xml : File does not exist
    10/17/2007 10:12 :TFTP Error from 192.168.0.90 requesting English_United_States\7980-dictionary.xml : File does not exist
    10/17/2007 10:12 :TFTP Error from 192.168.0.90 requesting English_United_States\SCCP-dictionary.utf-8.xml : File does not exist
    10/17/2007 10:12 :TFTP Error from 192.168.0.90 requesting English_United_States\Unicode.font : File does not exist

    or that the load is incorrect. I’m trying the same exact firmware mentioned in the tutorial.

    My phone is on
    Load file term70.default
    App jar70.2-5-47-19.sbn
    JVM jvm.70.499.kr5.sbn
    os load id cnu70.2-5-43-17a.sbn
    boot load id 7970_64060118.bin

    Any ideas? Thanks in advance.

  25. If firmware is on and you unlock you can just set yes to "Alternate TFTP Server" and you won’t have to go through DHCP hell. Otherwise good article, I laughed my ass off. Still wouldn’t give up this phone for anything, though. 😛

  26. I have been trying to get the 7970 and other handsets using firmware 8.x to work on our Zultys SIP IP phone system. Every SIP handset we have ever tried works, but not Cisco. The offending line in the register method is

    Supported: (null) …………..

    Zultys comes back with a 400 BAD REQUEST (from memory)
    I sent the logs to Zultys and they said that the problem is in the supported line. It is using brackets which are not allowed according to the RFC. Now Asterisk guys can write around this, which is the pragmatic way. But Zultys are not interested in writing "broken" SIP code to support Cisco invalid requests.

    Does anyone know if there are any XML config lines that might change, or remove the supported field in the REGISTER method? I am pulling my hair out and I have a client with 100 7941 handsets that they want to put onto a Zultys PBX.

    Regards

    Mark

  27. Has anyone been able to successfully get a 7970 to work outside of the firewall? The article mentions it’s water torture and that seems to be quite accurate. Unfortunately, this is the model phone we have and we need to deploy it outside the firewall. I’ve been able to configure the phone (using TFTP) successfully, however it now just sits there and states "Registering…". There are a few posts on the three XML NAT entries for the config file, but unfortunately, not as much documentation exists around this as for the rest of the process.

    If anyone has been successful with this, any thoughts on how to complete the setup would be greatly appreciated. Thanks in advance!

    Robert

  28. Good article, hits the nail on the head. Although new firmware fixes some functionality of the MWI, your still right in that many of the other advanced features we’re paying for just don’t work.

    The call quality, and the phone sturdyness is better than most. The software is useless.

  29. Has anyone been able to get the 7970 running firmware SIP70.8-3-5S to work with trixbox? If anyone could provide a "working" SEPXXX.conf.xml for this phone, I would be glad to make a donation via paypal for their time. John – 214.669.8500

  30. John,

    In your configuration file change:
    0

    To:

    8.3.5S has a bug in the XML parser that will cause a complete failure to load the configuration instead of just ignoring the bad line.

  31. Odd. I’ve been running a 7970 on Asterisk for years — right after they came out — without any issues other than the MWI problem right at the beginning. Updated it all the way from 8.0.3S to 8.4.2S when that was released and all was well, no muss, no fuss.

    Seriously, I don’t get the hate for this phone. It’s been nothing but solid and stable for me.

    [WM: You’re obviously not using SIP with the phone.]

  32. I just bought a lot of 7960’s 7970’s and 7920’s for a few bucks. They all had non sip images on them. I found the software for the 7960’s, I am looking for the software for the 7970’s and I guess I am SOL on the 7920’s.

    That is not why I am writing though..

    I have used a bunch of different IP phones in both small and large roll installs.

    For a small office install I just love the Grandstream GPX2000’s. $80, they DHCP and give you the ip address in the LCD and you can program them with a web browser. Slick and easy for a handfull of phones.

    The Cisco’s and the Polycom’s with the XML are a bit more of a pain in the ass for a small roll out. At least with the Polycom you have the (limited) web interface. Cisco does not even give you that.

    However, with a bit of shell sripting you can make a setup that will generate the proper mac addressed template files for the phones, and then allow end users or admins to do per phne custom stuff.

    Not as easy for one or two phones, but if you have an entire office of say 200 phones to do, it would be nice to be able to start with a base template file and a text file with user names, extension numbers, speed dial numbers etc, and then run a script, generate all the files, dropkick the phones and have them set up and ready to go.

    It would be nice for Cisco to add a web interface but I don’t think they are shooting at the market where they only have a few phones.

    I am not fefending them. I am real unhappy about say the stronghold on the software and the lack of documentation, but I think in their market they are more concerned about rolling out 100’s of phones and not onesee twosies

  33. Took a few hours to get it right (now that I found the link above in the blog post!) but I _LOVE_ the quality of sound on the 7970, and the color touchscreen is cool too. Now I have to "play" and see what else it can do.

    Perhaps the SIP firmware problems are the result of outsourcing / offshoring development to faraway lands?

    My e-bay 7970 came with SCCP, and I’ve flashed it (one version at a time) to SIP 8-5-3S without any issues. It’s now happily working with PIAF.

  34. I have my 7970 working in Trixbox and it seems to work – mostly. I have an issue where if a caller hangs up before I answer the 7970, it still shows that the line is ringing even though the other party is gone. Which means that the line button is flashing amber, and the active call list shows an active call. I can still call out/in on the phone. The strange part is that when the caller disconnects, the handset LED stops flashing red, and the phone stops ringing, but the line button still flashing and the display doesn’t clear.

    Any ideas?

  35. If there is anyone that can program these phones with trixbox service I would like to hire to program my phones please respond to 832-341-3530 ask for Alonso thanks, I faild at this project thanks.

  36. Got this working with the latest PIAF2 builds. Just remember that the extension settings for a Cisco phone require NAT=No and Qualify=No if your server and phones are sitting behind a hardware-based firewall.

Comments are closed.