Benoit Frigon
My blog about electronic projects, telephony and other stuff...

Projects » Asterisk PBX

View on GitHub

This is my Asterisk telephony server (PBX). It consists of a SBC board (PcEngine ALIX 2d2) and a FXS/FXO board (Openvox A400M with 2 FXS and 1 FXO modules). The alix2d2 has a Geode LX800 processor at 500 Mhz and 256 MB of memory. Not particularly fast, but enough for the job. I needed it to be a very low power system (under 10 watts) since it has to run 24/7.

Asterisk PBX

PBX Case construction

Front panel

The front panel was made from the 1/8” panel that comes with the CH-1440 chassis and a 22 gauge aluminum sheet glued together. I made it that way, so the LCD module is almost flush with the surface of the panel. I made the decals by using the Decalpro FX toner transfer system. (I posted an article that describe the process)

Capacitive switches / LCD module

Instead of using ordinary push buttons, i went with a capacitive switch solution and that was my first attempt with that kind of interface. As you can see in the pictures above, the sensor electrode (1 x 1cm, .7mm tich copper sheet) is encased in epoxy and painted over to make it seamless with the rest of the panel. The touch sensor IC is a 1 channel Atmel AT42QT1011. In the rev. A, i used the QT320 IC from Quantum (2 channel touch sensor), the IC was located on the lcd pcb and the electrode connected via a wire. BAD idea! It worked, but the controller had a hard time calibrating and false detection would occur sporadically. So, instead, I went for the AT42QT1011 on two separate boards (left and right buttons). The electrodes are now closer to the sensor IC and it’s working flawlessly. However, since the panel is made of aluminum, it must be grounded properly, otherwise, the entire panel becomes the touch sensor.

Design files

Type Title Size
git LCD module pcb cad files (Eagle)
git LCD module Firmware
pdf Schematic - Rev. A 50.3 KB
pdf Schematic - Rev. B 46.3 KB

Final assembly

The OS

I use Voyage Linux which is a lightweight distro for embedded systems. It is a stripped down version of Debian and was optimized to run from a compact flash card. Frequently written files (eg. /var/log) are stored in memory (ramfs) rather than on the CF itself. A local copy of those files are kept on the CF card. It can be synchronized by running:

/etc/init.d/voyage-sync sync

The obvious disadvantage is that the files that were not synced are lost if there is a power failure.


Manager interface

I made a web interface for Asterisk, i called it Y.A.A.M (Yet Another Asterisk Manager), I’m not good at naming things… I started working on this about 2 years ago. At the time, i did not find any existing software that allowed me to do what i wanted or was way too ressource hungry for my tiny server. So i decided to make my own. It has only the basics : Status page, call log, voicemail, System logs. extension management, dialplan and other settings are still done with the good old config files…

More details here