skip to Main Content

How To: Building an Embedded Asterisk PBX

CPU Limitations

Naturally, there are limits imposed by the available CPU power on these sorts of small format systems. It is generally accepted that Asterisk requires about 30 MHz of CPU power per active voice channel. Thus the 266 MHz CPU on the Net4801, in theory, supports around eight simultaneous calls. This presumes that all calls are G.711 encoded audio; G.711 is the encoding scheme most commonly used by telcos in providing traditional land lines. When combined with IP overhead, G.711 requires around 80 kbps in each direction per call leg. Thus, passing ten calls to our Internet Telephony Service Provider (ITSP) requires a theoretical total of 800 kbps of bandwidth for both inbound and outbound data.

Sometimes it is desirable to limit or reduce the VoIP bandwidth requirements. In my case, my ADSL service is 2.2 Mbps download and 768kbps upload. With this sort of connectivity it’s unlikely that I could pass more than five or six G.711 encoded calls at the same time. Thus, if I needed to maximize my call capacity I’d need to use a more advanced voice compression scheme such as G.729a encoding.

Codecs for G.729a compression are not available open source, and thus are not part of the Asterisk or Astlinux base installations. Licenses are commercially available from Digium for $10 USD per stream. Using G.729a on each leg of the call allows it to be compressed down to <10 kbps of data, but real-time compression is a very CPU intensive task. The SC1100 CPU on the Net4801 will only successfully encode two streams of voice using G.729a compression.

There are other voice compression standards, such as GSM, G.723, iLBC and SPEEX. These generally trade compression efficiency against latency, CPU requirements and voice quality. None are as widely accepted by ITSPs as G.711a/u and G.729a. Again, considering the SOHO/small business nature of the target users for Astlinux, these limitations are probably not significant. It certainly doesn’t impact my use of the
system in my full time home office, even with four incoming lines. Of course, more demanding installations could run the generic 586 version of Astlinux on a more powerful hardware platform, to avoid being CPU limited.

Asterisk Administration

Asterisk has a well-earned reputation for being complex to setup and administer. Graphical management overlays often add to the actual complexity of the installation, in their attempt to shield users from the system internals.

Astlinux takes only small steps in the GUI direction, providing by default a Web-based administration portal at Note that this is a private IP address; the Web page is secured by default and only available on the LAN side of the device.

The Web-based administration GUI provides pages for examining the Asterisk configuration, accessing the Asterisk command line, listing the FTP root directory, and looking at the call history log (see Figure 6).

Figure 6: Asterisk Call Log

Figure 6: Asterisk Call Log

You can also load a general status page (Figure 7), access ping and tracert utilities, and access the Linux shell.

Figure 7: Server Status

Figure 7: Server Status

Finally, there is also a General setup page (Figure 8) with functions such as reboot, reload Asterisk settings, back up key files, etc.

Figure 8: General Setup

Figure 8: General Setup

In exposing the various config files via a Web-based presentation, these pages provide enough to get a beginner started without forcing them to learn the vi editor. However, users will still probably need to edit config files directly.

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: