We've just completed our interview with Kristian Kielhofner who created the AstLinux project:
Could you tell us a little about yourself?
Surely. My name is Kristian Kielhofner, and I am the creator of AstLinux. You may remember me from other Asterisk-related things such as AstShape and my Polycom configuration files at krisk.org.
Could you tell us a little about AstLinux?
AstLinux is the premier all in one solution for Asterisk based systems. In other words, it's a custom-built Linux distribution centered around Asterisk. When I say centered around Asterisk, I mean that it includes only the tools needed to make Asterisk %100 functional, and nothing more. Actually, that isn't quite true. It doesn't currently support any kind of database connectivity (SQL, ODBC, etc) but it does include several Linux utilities and daemons that greatly enhance the usability of Asterisk, while not being directly related to it. Servers to provision phones, iptables, traffic shaping, etc. are all examples of this.
When I say custom built, I mean that it isn't based off of any existing distro. I used a kernel.org kernel, crosstool, and ptxdist to build a root filesystem while adding additional software such as Asterisk. This is why AstLinux fits in 27mb - I didn't have to remove 500mb of RedHat bloat and work around the problems encountered when using that method (no offense to RedHat, of course).
What made you first decide to try and get Asterisk working on such a small machine?
Back in November I was playing with the PCEngines WRAP boards running OpenBSD doing routing and firewalling, pretty basic stuff. I noticed that the load level never went very high and the boards seemed to be capable of quite a bit more. I had discovered Asterisk just a few months before, and I'm proud to admit that I was instantly obsessed with it. So it seemed only natural to attempt to meld my two new toys - Asterisk and the PC Engines WRAP. I of course, later focused more on the Soekris Net4801, mostly because they seemed to be more common and a couple were donated to me.
How have you found the development process?
Fun. Definitely fun. I really enjoy trying to cram as much practical functionality into my 32mb limit as possible. It can be difficult at times, but it's always fun.
What kinds of applications do you see it being used in?
Much like Asterisk itself, perhaps the best applications that it can be used in are those that I never thought of. Mostly though, it is either used by people doing very small, traditional PBX systems or ISPs and other service/solution providers rolling out VoIP services to customers. Two different sides of the spectrum, that's for sure.
How long have you been working with Asterisk?
Not that long! Luckily, by the time I found Asterisk in June of 2004, I had been working with Linux for about seven years. I like to think that I picked up Asterisk pretty quickly, and that would not have been possible without such a strong Linux and networking background.
Do you feel that there is sufficient attention being paid to the speed/size of Asterisk?
Overall, I don't really think it is much of an issue. After all, we are not trying to get Asterisk to run on a cell phone. My lowest supported hardware platform, the Soekris Net4801, has 128mb of RAM. AstLinux, when booted, with all of the daemons running (including Asterisk) typically consumes under 30mb of RAM. Not a problem there. As far as speed, Asterisk is pretty quick for what it does. It's not a miracle worker - I am not expecting it to be able to transcode 30 calls from G729 to G711u on a little Soekris. Right now it performs about as well as I could expect it to.
Where do you see the small SBC platform going in the future?
It's really funny because things (once again) seem to be coming full circle. The Zapata Telephony project was started to reduce the cost of telephony hardware by offloading functions previously done in expensive hardware to the host system's CPU. This is a great idea unless your host system doesn't have much in the way of CPU power. The Soekris Net4801 is a great example. It has a 266mhz (fanless) Geode processor with an emulated FPU - not exactly a powerhouse when compared to the current offerings from the likes of Intel and AMD. They don't have much power for things like echo cancellation, PRI, and HDLC, not to mention codec transcoding! However, they are very appealing for use in commercial solutions where reliability is a must. But these things still need to get done somehow. But where? In your telephony hardware, of course! The current offerings from both Digium and Sangoma offer much of the functionality that I mentioned before (PRI, HDLC, echo cancellation) in hardware right now - with more coming in the future. This is, of course, very exciting to me and the Asterisk/open source telephony community in general.
One of the most popular embedded Linux appliances on the planet follows this idea - the Tivo. By now most people know the Tivo runs Linux. What few people realize is that the Tivo's CPU is a PPC chip running at 60mhz. The Tivo accomplishes most of it's work by utilizing hardware MPEG2 encoders and decoders. The main CPU is there just to perform basic functions like memory management. In my opinion, this is also the way to build a highly reliable, flexible PBX - using all open source software.
Any chance of getting a stripped down copy of Asterisk running on a gumstix?
I've always thought those were interesting. The good news is almost anything is possible. The bad news is that I have been reluctant to cross-compile Asterisk (or AstLinux) for any architecture that doesn't have a legitimate G729 binary. Whether or not you'd want to run G729 on a Gumstix (or at all, for that matter) is debatable, but I would at least like the user to have a choice. With that being said, I've recently had an itch to cross-compile for some more "exotic" architectures, so maybe I will!
You've now started work on an AstLinux LiveCD, what direction do you see that going in?
The AstLinux LiveCD was actually quite easy to do, and like AstLinux came naturally. AstLinux runs from read-only media by default, so why not CD too? People love live cd's (thanks Knoppix), so I went for it. As of now, the LiveCD ISO image has been downloaded more than the other AstLinux offerings by a factor of two (combined). It's just in time too, because now I have something to hand out at conferences and trade shows :) .
What kind of hardware do you run at home?
The toughest question of all! I actually just recently moved from Wisconsin to Florida, so I am not really even sure where home is right now. But either way, the answer is "anything you can imagine". Home is my lab. It's where I try things first. So expect to find everything from Cisco switches to Soekris machines (of course). More recently I have been having quite a bit of fun with the various T1 hardware that has been donated to me by Sangoma and Digium.
Where is your time mostly spent at the moment?
I spend most of time working on or promoting AstLinux, which is amazing. AstLinux is nearing it's one year "birthday", and I never thought the hacked together mess that was 0.1.0 would mature into what it is today. There is still a lot of work to be done, which is why I am so happy that I can devote more of my time to it.
What kinds of things would you like to see in Asterisk in the future?
Not to join the crowd, but autoconf/automake would really make my life easier. Otherwise, it's mostly "small" things like better support for SIP extensions like SIMPLE, more G626 bitrates, wideband codec (g722) support, improved call parking, and improved CDR's, just to name a few. :)