Since I seem to be feeling rather talkative today, I figured I'd post a bit on the latest little bit of geekery I committed this week. All noted configuration file examples can be downloaded from here.
I've had a Cisco 7970 running SCCP firmware in the lab for a little, but suddenly it lacked a Cisco CallManager box to talk to when I shipped out some test gear. The 7970 is simply a gorgeous phone (although the SIP code could use some help) and I have a deep-seated requirement to use a cool piece of hardware whenever possible, I decided to hook that phone up to my Broadvoice SIP account instead of my Zyxel 2000W V2 WiFi SIP phone. Theoretically, it should have been simple -- Broadvoice offers a TFTP server for Cisco 7940 and 7960 phones, so it should just be a matter of telling the phone where to find a config file and voila.
The 7970 changed all the rules of Cisco IP phone configurations. The new config format is XML, versus the prior variable=value style configuration. This presented a problem. I could take some time and whack away using guessed values for the phone's configuration until I was able to peer with my Broadvoice account, or I could set up an Asterisk system in the lab to switch that phone and the Zyxel, and peer with Broadvoice for outbound calling.
It certainly wasn't as simple as it should be, but it's all working -- well, most of it. At the moment, if a call comes into the SIP line, both phones (extensions) ring as they should given the call group configuration. The Cisco phone, however, never stops ringing. If left unanswered, it will bleat until someone gets annoyed enough to "answer" the non-existent call. I haven't fleshed that bug out yet, but then, I've spent a total of two hours on this since Tuesday, so I'll consider myself ahead of the game.