Sunday, September 16, 2007

It's for you...

Dear god,

I said I wanted an Open Source phone system -- not open sores with salt rubbed in them. Please correct your mistake as soon as possible.

Your's Frustratingly,

"CPU"

About 2 years (or more?) ago, I decided it would be a neat idea to spearhead a project to replace the antiquated phone system for our research laboratory of 600+ people with something more modern and based on Voice Over IP (VoIP). After looking at the total crap that was out there commercially and usually based on MS-Windows I came upon Asterisk, an Open Source PBX based on Linux. Lots of collaboration with friends and reading through thousands of lines of source code got me up-to-speed and excited about the prospects of replacing our phone system.

Fast forward two years later. I've learned a lot about telephony that I never knew (and some I still don't want to know). But what I really learned was that not very many people really know much about telephony, and lots think they know and don't. We've deployed Asterisk along with a lot of serious customization that I've pretty much done on my own. It's very cool. Some stuff isn't so cool...

The biggest hassle though has been finding T1 interface cards that do the right thing with timing. This is a fundamental thing that has to be right -- If audio is is being transmitted digitally faster than the receiving end is expecting to receive it, then pieces of the audio will get dropped. This is barely acceptable for speech, but it isn't at all if you have a FAX machine or modem on there.

So I have adapter cards from vendor "A" who just happens to know Asterisk really well because their founder created it. We bought vendor A's Quad-T1 cards back at the beginning and they usually worked, but had some quirky problems with them. Two years go by and those quirky problems are becoming more problematic, and we want to get a hardware echo canceler too. So we try to contact vendor A several times by e-mail, to which they either respond with a completely nonsensical answer or not at all. My last question was, in effect, "Can your hardware be upgraded? If yes, how much does it cost? If not, is there a trade-in policy for new hardware?"

After a little bit of this, we decided to try a competitor's (vendor "B") adapter card, because some people on the Internet say they work better. Vendor B's cards are interesting and their sales and tech people are responsive, but the device drivers are just not there. So we bring some of the real show-stopper issues to vendor B's attention and indicate that vendor A's cards do this thing correctly. Their tech guy spends 30 minutes on the phone trying to convince me that vendor A's cards don't do what I think they do, and tries to play down the seriousness of the issues we found (failure to provide redundant timing).

Oh, did I mention that these adapter cards are $1,500 each (add $1,000 for echo canceling hardware).

In the end, I learned a lot by understanding what was going wrong with vendor B's cards, and got vendor A's cards to work better in our system (no thanks the vendor A's folks, and we still don't know if we can upgrade the cards or not). We decided to send vendor B's adapter cards back.

I don't know everything about telephony. I do have a good understanding of the concepts, though. What people are doing to implement these concepts is twisted, and it doesn't need to be this difficult.

We're about 2 months from completing the transition from our old phone system, and then will begin the arduous task of implementing a way of maintaining this mess. Wish me luck.

...ring... "Hello? Oh, hello Mr. Frustration. Hold on...I'll get him.... It's for you."


No comments: