Asterisk

Initial Experimentation

[index] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]

First Thoughts (19-Sep-2004)

When Monica and I were up in Indiana for my family reunion in August 2004, I had a chance to see Tom Neville's asterisk installation. Although my exposure was shallow it did spark my interest. Coupled with my lust for the sexy Cisco IP phone that dbaker has in his home office it was enough to get me to try out Asterisk for myself. I wasn't sure if VoIP was really "there" yet, but that's never stopped me from trying a technology in the past.

I had some reservations about the quality of VoIP calls on my home DSL line, though. Even though I've got ample bandwidth I also have several servers hosted here and see frequent spikes of usage which are completely beyond my control. I figured that if asterisk panned out I would probably be figuring out altq shortly thereafter to do traffic shaping and priority queuing so that phone calls could enjoy more consistent performance. I also decided very early on that I was going to tie in my existing analog line as a failsafe.

Since I knew I wanted to use a hardware interface to my existing POTS line, it looked like Linux was my best option. (how often does that happen? jeez) The fully hardware solutions like the Cisco ATA-186 and the Sipura SP-3000 all had minor usability issues which I didn't want to accomodate and the on FreeBSD drivers for the Digium onboard solutions were not very well-used and I felt might lead to difficulties. To be fair, I don't know anyone using the FreeBSD drivers so it's possible that they're bulletproof, but the fact that I don't know anyone using them was a deterrent in the end.

Naturally I chose Slackware for the box.

Installation

I had an old Dell Optiplex laying around the house with a Celeron 500 processor which seemed like a reasonable machine to host the server. I did a quick, minimal install of Slackware (is there a different kind with Slackware?) and did a cvs checkout of the Asterisk software. The Zapotel drivers built fine, but I had errors trying to build the asterisk module. I fell back to the asterisk-1.0-RC2 tarball but had the same problems with it. The compile was failing in trying to build gtkconsole because it was unable to find libXext. The problem turned out to be that Slackware had helpfully installed gtk2 libs on the box despite my not having installed X11 libs. The Makefile for asterisk simply assumes that nobody would be silly enough to have gtk2 and not also have X11 so it was trying to build all the X gunk which I didn't care about. I took the lazy solution and just installed the X11 libs and the compile was able to complete.

I also did a "make samples" which installs a sample set of config files. The configuration files for asterisk are a bit of a mess. There are over a dozen relevant config files and there are a few different formats they share. A single change can often require updates to several of the configs and it's pretty much inscrutable at first. Like most things, I've found myself growing more comfortable with things as I experiment. It's pretty opaque for a new user though. In short order I had two softphones set up (x-lite on my Powerbook and SJphone on my Windows box). I was able to call between the two softphone "extensions" and everything seemed as well as I could have expected.

Software Phones

I haven't spent a lot of time exploring the options here but every single software sip phone I've encountered has been abysmally bad. I suspect that they're usable if you have a proper headset and I had sort-of reasonable success by using my powerbook's mic and a pair of headphones. None of the packages I tried had any form of echo cancellation that worked, so the person I was talking to would get to hear what they'd just said about a half second later as my mic picked up their words from my speakers. The only solution I found was to decouple the sounds by using headphones.

I think it's fair to say that you will not be satisfied with any software-only solution. At a minimum you'll want to have a headset to use with sip client software. Even with the headset I have found the audio quality of the software phones to be much worse than actual hardware sip clients. It's a damn shame.

I understand that iChat is all SIP underneath the covers. Maybe if we're lucky, some future revision of iChat will be able to function as a SIP client as well as an IM client.

Next up, What can I do with this thing?