This is a proof-of-concept test to see if the PC Engines’ ALIX2 board is suitable for a basic VoIP application.
First I compiled the latest FreeSWITCH version from Git. It was a mistake to run the compilation on the ALIX board: the CPU is quite slow, and the whole compilation took several hours. I should’ve done the compilation on a more powerful machine and then copy the binaries to the ALIX.
In these tests, I used the default dialplan that came with FreeSWITCH (highly insecure, with the password 1234 for all users). I added an external SIP profile to connect it to my other IP PBX, so that I can easily place incoming calls.
An Ubuntu notebook with Twinkle was used as the SIP client for the ALIX server.
FreeSWITCH was running with -rp option, assigning the process a high priority.
1. IVR prompts and voicemail worked immediately, and the flash memory speed delays were insignificant.
2. A call without transcoding. Both call legs were using PCMA codec:
# "vmstat 1" output: procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 3792 4036 23204 187060 0 0 0 36 1205 1576 0 2 98 0 1 0 3792 4036 23204 187068 0 0 0 0 1205 1548 0 3 97 0 # "top" output PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3187 freeswit -2 -10 30504 12m 4148 S 6.9 5.0 0:16.60 freeswitch
3. A call with transcoding. One leg used G722@16000 codec, and the other leg was GSM@8000:
# "vmstat 1" output: procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 3796 4320 22844 186712 0 0 0 0 1207 1333 14 3 83 0 1 0 3796 4320 22844 186712 0 0 0 0 1205 1348 14 4 82 0 # "top" output: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2909 freeswit -2 -10 31240 12m 4188 S 21.3 5.1 1:18.38 freeswitch
4. A conference with 5 PCMA channels:
# "vmstat 1" output: procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 122888 36440 58244 0 0 0 0 1458 844 7 6 87 0 0 0 0 122896 36440 58244 0 0 0 0 1440 814 6 4 90 0 # "top" output: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8124 freeswit -2 -10 34208 13m 4224 S 12.1 5.5 1:29.85 freeswitch
Outcome: it’s possible to build a pretty decent small PBX for SOHO usage with this hardware. In all cases the voice quality was absolutely fine.
UPD1: a conference call with automatic recording into MP3: the CPU load jumps to 60% every few seconds, and the conference experiences significant delays and clippings. With WAV recording, everything runs smoothly, and not much different from the above results.
#1 by Bret on September 17, 2012 - 1:18 pm
What version of Linux did you use on teh Alix? I’m about to do the same thing and came across your blog post..
Thanks
#2 by txlab on September 17, 2012 - 1:46 pm
It’s Voyage Linux, see my other posts with the same tag
#3 by John on February 24, 2020 - 7:52 pm
I have 3 boards alix 2d13 with latest voayage lunux and i would like to use them with freeswitch. Unfortunately all my attempts failed to make it work.it compiles without errors from git bit it does not start. Any ideas, please?