After some tweaking, I believe I have everything working the way I want it with my new TrixBox/Asterisk system. To recap, the actual Asterisk server is a Trixbox 1.2.3 build running on a VMware virtual server, linking to a SIP trunk from BroadVoice. Internal phones have now been expanded to include a few Cisco 7960 sets as well as the 7970.
Following my earlier posting about getting the 7970 to function with Asterisk, TrixBox founder Andrew Gillis sent me a note about the Endpoint Manager feature in TrixBox, which will create Cisco phone configuration files on the fly. In TrixBox 1.2.3, there's support for the XML configuration file format that drives the 7970's SIP firmware, as well as older phones such as the 7940 and 7960. I'd seen this in my initial perusal of TrixBox, but didn't immediately see that the configuration files were available anywhere, so I built my own. Of course, TrixBox assumes that it will be the TFTP server for the phones, so it dumps the configuration files into /tftpboot on the TrixBox server itself. Well, if I'd looked there to begin with, I wouldn't know half of what I now know about the configuration of these phones... and the phone setup would have been much quicker.
The configuration files generated by TrixBox for the 7970 will work (and seem to have cleared up the continuous ring problem, though I'm not sure exactly why yet), but still need manual intervention to configure some extended functions of the phone, such as multiple line and speed dial settings. Also, the Services and Phonebook menus on the 7970 wouldn't work -- they wouldn't even make a HTTP request to the server. It appears that with the <webAccess> parameter set to '1', the phone's internal Web server and client are disabled. Setting this to '0' seems to have enabled both functions, and the phonebook and services menus are now populated on the phone. In addition, there's a debug statement present in /var/www/html/cisco/services/PhoneDirectory.php that will cause XML parsing errors. Comment out the
echo $Query statement near the bottom of that script to fix that problem. I also noted that Cisco has released a new rev of the SIP firmware for the 7970, version 8.2(0) Unfortunately, it seems flawed right out of the box, as the load file that comes with the firmware references the wrong filenames. Specifically, it begins the firmware upgrade process, and looks for a file named Jar70sip.8-2-0-55.sbn, but that file doesn't exist in the firmware zip file. Presumably, it's looking for the file jar70sip.8-2-0-55.sbn, which is present. I began to rename the file to permit the firmware upgrade to continue, but then thought better of it. If Cisco can't seem to get the names of their own files straight in a production firmware release, what other bugs might be in this new version? I punted and am still running 8.0(3).
As far as the 7960s go, they're a whole different beast than the 7970. The configuration file syntax is arguably easier, and they don't have the 7970's habit of going into a reboot death spiral when there are XML parsing problems on the configuration file. They also work flawlessly with Asterisk.
So at the moment I have five extensions on my Asterisk box with a single SIP gateway. I'm going to be dropping in a Linksys SPA-3102 to act as both an FXS and FXO analog adapter for a regular POTS line, and run through the dialplans on both that and the Asterisk box to bring at least one POTS line into the mix, along with an analog phone. If that goes well, the other lines will get the same treatment. The SPA-3101 seems to have the right featureset, including internal dialplans to shift calls from the analog phones to Asterisk first, then the connected POTS line should the Asterisk server be unavailable. Also, in the event of power loss to the SPA-3101, it will fail open, providing the analog phone with a passthrough to the POTS service. Hopefully, it will arrive early next week.
In a perfect world, I'll have everything running through Asterisk with several POTS lines and at least one SIP trunk, a smart dialplan to prefer certain trunks over others depending on the number dialed, and failover to POTS. It'll be a little bit of a project, but every step of the way, I'm more impressed with Asterisk and TrixBox.