The Zaptel PSTN Interface
I finally decided to update my Asterisk installation, which was several revisions behind. While this isn't normally a significant concern, some of the updates included security fixes that I did want applied.
The installation here uses both IP and PSTN telephony services; calls are routed using a simple least-cost algorithm based on the destination phone number. For the outbound calls using the PSTN, a Digium TDM400p card is installed in one of the servers.
The TDM400p, Asterisk, and the Zaptel drivers used with the card have worked flawlessly — but after the upgrade, I was no longer able to make calls over the analog network. Inbound calls worked just fine, but outbound calls would be terminated as soon as the card attempted to take the line off-hook. A couple of messages about battery voltage appeared in the log file, but nothing was obviously wrong.
Needless to say, this was a significant concern. For the short term, I configured all calls for VOIP rather than the analog lines, but this was a problem that needed to be solved. Analog service is important both for inbound calls and for the reliability of the old-fashioned phone connection; SBC is legally required to keep phone lines up and functional with tremendously high availability, and that is important when health and well-being may depend on being able to make a phone call.
After doing some research, I found a reference to bug 12099 on the Digium site; it turns out that I was one of a few people that started experiencing problem with battery (line voltage) thresholds; a fix is scheduled for the 1.4.10 Zaptel driver release.
Unfortunately, this exposes one of my concerns about using unsupported software (or hardware!) for critical applications. While this was something I could research and fix myself, it took time. Worse, it appeared to be an unusual problem; while Zaptel 1.4.9 had been out for a little while, I saw no reported problems. Once I found the bug report on Digium's website, the issue still hadn't been resolved; the fix that was suggested evidently didn't work properly, at least for the person who reported the issue. My fix was to significantly decrease sensitivity of the card to state changes on the phone line, something that is known to be sub-optimal.
Will I continue to use Asterisk and the Digium, card? Yes, I will. But I'll also be more leery of updates and more concerned about potential problems when deciding what technologies to use for important applications.
Of course, I also have to remember that a commercial vendor may have even less support and be less forthcoming with information. There are no guarantees, even if you pay good money for a product. In the end, it's sometimes just easier to stick with the old-fashioned way of doing things.