skip to Main Content

How To: Building an Embedded Asterisk PBX

In Use

In practice, I found that core PBX performance was solid. Internal calling, voicemail, hold, transfer, music-on-hold and conferencing all worked as I’d hoped they would. I rely upon several different service providers to handle incoming calls (including an 800 number) and outgoing call termination. All of my existing accounts worked immediately.

Note that all the phones and ITSP accounts were set to use G.711a audio, so no transcoding was required. This is especially important if I want to host MeetMe conferences, as the Soekris system doesn’t have the CPU power to transcode and mix several streams at once.

Similarly, Astlinux provides a modified Music-on-hold capability that relies upon the availability of music clips prepared in the compression scheme in use at the moment. In my case that was G.711a. This is in contrast to a more general Asterisk installation, which uses the third party open source MPG123 utility to on-the-fly transcode MP3 files into whatever audio encoding scheme is in use on a particular call. The Astlinux distribution includes several clips in the G.711 and GSM formats. Instructions for preparing other music clips were easily found in the VoIP wiki at www.voip-info.org/.

Perhaps one of the greatest attractions of Astlinux, when compared to a more typical Asterisk installation, is that the PBX application and the host OS and drivers are bundled in the Astlinux software release. This effectively eliminates the need to establish separate maintenance cycles for Fedora Core, Asterisk, MPG123, and the other drivers upon which the installation depends. If you’re not a Linux wizard this can also improve the reliability of the upgrade process, as you don’t have to address each of the software pieces individually.

The upgrade process for Astlinux itself is very straightforward. Major upgrades require writing a new boot image to the CF card, while minor upgrades are performed at the command prompt using the astup script. This script accesses the server at www.astlinux.org to update all of the software on the system in one quick step that takes just a few minutes; it has made it a simple matter to update the system on a weekly basis.

Of course, the Astlinux distribution includes documentation. The ten-page manual provides a good overview of the philosophy behind the project, information on getting through the initial installation, and options for booting from various devices.

A vibrant and active user community has also grown up around Asterisk. The Asterisk-Users mailing list often passes over 300 messages per day among its readership of well over 10,000. Additionally, Kris Companies has provided a similar mailing list for Astlinux; while not nearly as heavily trafficked, it is active and Kristian himself is usually available to address detailed issues at length.

Between the manual, the two mailing lists and the VoIP wiki at www.voip-info.org I have never felt that support was lacking. With just a little investigation I’ve been able to overcome every issue that has arisen, and gained something of an education along the way.

Closing Thoughts

Most of my experience with Astlinux on the Soekris platform has been with using version 0.28, which is based upon a very stable Asterisk v1.09 release from Jan 10, 2005. Kristian released version 0.29 recently, which encompasses the newer Asterisk v1.2 release from October 2005. By the time you read this review, Kristian may well be on release v0.30, which is projected to be a thoroughly tested Astlinux implementation including Asterisk v1.2 and support for some new hardware drivers. However, changes in Asterisk’s core dial plan logic behavior kept me from trying the new release within the context of this review. Kristian also made news at Astricon 2005 by successfully porting Astlinux to the Gumstix embedded SBC platform. Called TinyPBX, this combination was heralded as the “World’s Smallest VoIP PBX.”

The initial application of such a small Asterisk system was as a protocol translator, allowing common SIP desk phones to be easily adapted to use the IAX2 protocol native to Asterisk. Unlike SIP, IAX2 streams combine call setup signaling and the voice data stream into a single connection that easily traverses NAT routers and firewalls. The combination of a Gumstix based translator with SIP desk phones allows for the creation of distributed phone systems ideal for companies with many home office based employees, or for connecting several smaller offices into one primary Asterisk server. Using IAX2 instead of SIP permits this with a minimum of network setup and support complexity.

Astlinux has proven to be a valuable tool around my home office. It provides the power and flexibility of an Asterisk installation with the reliability and simplicity of an embedded system. It may not provide the comfort of a graphical administration scheme, but it suffers none of the overhead or setup limitations of common GUI overlays. The Soekris Net4801, while inexpensive, has been absolutely reliable as a host platform, delivering adequate processing power to support six extensions and up to four active lines at one time. It could perhaps do more, but such was beyond the scope of my ability to test. Together, Astlinux and the Soekris Net4801 represent an elegant D.I.Y. approach to deploying an iPBX in a home or small office setting.

This Post Has 8 Comments
  1. […] read around here. The single most popular article is the one I wrote back in January 2006 about Building An Embedded Asterisk Server Using Astlinux On a Soekris Net4801. I would have thought that would have less appeal since it was published elsewhere over two years […]

  2. It’s very interesting for me, do you have any practical use for your home Asterisk server? Why you aren’t using any hosted PBX?

    1. Oh, yes. Between our home lines and my home office needs we put the little Asterisk system to good use. However, this article was originally written in late 2005. Since then I have migrated to using a hosted IP-PBX for most things. I still have a small Asterisk system on-hand as a testbed.

      It may come more into service if ever I complete my home automation project. I’d like to be able to remotely turn things off/on/open/close by way of DTMF as well as other methods, like the LCDs on my Polycom phones.

  3. Hi after days of searching web i found your site really helpful i am from India can you suggest any low cost IVRS solution for our small business i find digium analog cards very expensive is there anyway for analog card IVRS solution please give me a solution

Comments are closed.

Back To Top
%d bloggers like this: