How To: Building an Embedded Asterisk PBX

This article was originally published at www.smallnetbuilder.com.

Michael Graves
January 13, 2006

The Asterisk open source Voice over IP (VoIP) PBX is usually set up on a standalone PC. But Michael Graves shows how the combination of a special Asterisk distribution and a single board computer can provide a compact, quiet and low-power alternative.

Introduction

Astlinux is a bundled distribution of the Asterisk open source iPBX private branch exchange (PBX) software and a Linux operating system. Originally developed by Mark Spencer at Digium, Asterisk is the leading open source software in the telephony/VoIP space. Asterisk excels at combining traditional TDM telephony capability – provided through hardware from Digium and others – with VOIPservices. These include call routing, media gateway, media server and SIP signaling capabilities.

The Asterisk user community has been growing tremendously over the past two years, especially since the v1.0 release in the fall of 2004. With that growth has come the development of new distributions that bundle suites of software tools, to ease the setup and administration of a new Asterisk system. Asterisk@Home and Xorcom Rapid are both fine examples of this sort of activity.

Astlinux was developed by Kristian Kielhofner, and intended to go in a fundamentally different direction. Astlinux provides an Asterisk installation on a Linux distribution that has been built from scratch and optimized for small format hardware platforms – it takes what is essentially an embedded systems approach to Linux and Asterisk. In this article, I’ll show you how to build an VoIP PBX using Astlinux and a Soekris Net4801 single board computer (SBC).

Astlinux

Working largely on his own, Kristian has gone to great lengths to get the combination of the OS and Asterisk down to a mere 26 MB boot image. This opens up many possibilities in the design of the hardware, such as booting from small compact flash cards or USB memory keys. While keeping the size of the system to a minimum, Astlinux includes the following features:

  • Linux kernel 2.6.11.7
  • dnsmasq
  • Watchdog (busybox)
  • ssmtp
  • cron (busybox)
  • bash
  • busybox (and everything with it…)
  • TFTP server
  • vsftpd server
  • mini_httpd (with SSL)
  • PHP in CGI mode (patched for above)
  • OpenSSH
  • OpenSSL
  • NTP (ntpdate, ntpq, ntpd)
  • syslog (busybox with remote log support)
  • vi (from busybox)
  • tc (kernel traffic shaping)
  • iptables
  • phpconfig-like Asterisk GUI
  • Asterisk
  • AstShape, a QoS/traffic shaping script
  • rsync
  • nfs-utils (kernel modules and userspace tools for NFS support)
  • Sangoma WanPIPE driver use with Sangoma T-1 hardware
  • Zaptel drivers for Digium TDM hardware
  • working ztdummy (zaptel timing source without zaptel hardware)
  • libpri
  • Asterisk Manager Proxy

Don’t be too worried if some of these don’t mean anything to you. Astlinux is focused on providing only those things in the OS that are necessary to support the normal operation and administration of Asterisk. For example, email support is provided so that voicemail messages can be forwarded via email like any normal Asterisk installation. The inclusion of ztdummy allows for both MeetMe conferencing and music-on-hold, without requiring a Digium card for a hardware timebase reference. While the list of required supporting services may appear long, the idea is very simple – create a very small Linux and Asterisk installation that supports common telephony hardware, and once configured, behaves like an appliance.

8 thoughts on “How To: Building an Embedded Asterisk PBX”

  1. Pingback: Jessie
  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.