Paul D. Robertson's blog
Security, Geekiness and Random Musings

Nice Saturday paddle on the Shenandoah River in a Current Designs Kestrel 120 Composite Hybrid.





I’ve had a Raspberry Pie for a while now, and recently picked up a Beaglebone Black.  Unlike the Pi, the BBB has onboard memory and a reasonably fast 1GHz processor.  That means that when I was contemplating setting up a new phone switch, rather than using a computer or the Pi, I bought a new BBB to run it on.  I also got a transparent case for the BBB.

The usual freeware VoIP phone system software is Asterisk.  I run a production Asterisk system for one of my customers with a call center.  I’ve traditionally run my own business’s phone system using Asterisk.  Recently, I’ve been playing more with Freeswitch though.  The main issue with Asterisk is the call logging.  A call comes in to the system with an ID, but it doesn’t keep the same ID- for instance if a call is forwarded between extensions, it gets a new ID, which isn’t related to the old one.  Same thing with going into a call queue- new ID, no relation.  That makes call reporting a bit of a mess if you’re not simply dialing directly into an extension.  Freeswitch by comparison is much, much more logical.

Initially, I tried to build Freeswitch on the default BBB install, but I got some very wonky linker errors.  Rather than spending a few hours trying to track down the issues, I decided to install Debian and follow the instructions at instead.

Installing Debian was a matter of downloading an install image onto an MMC card, pressing a button and rebooting the BBB.  That installed the OS to the built-in flash, after which I changed the root password.  Then I went to install Freeswitch, and ran out of storage.  So that required mounting the MMC card and using it.  I decided to mount the card on /usr/local since that’s where Freeswitch installs by default.

First, make a partition on the MMC card

# fdisk /dev/mmcblk1
n [for new partition]
p [for primary]
<enter> [default start]
<enter> [default end]
w [write the partition table]
q [quit fdisk]

Next, format the new partition

# mkfs.ext4 /dev/mmcblk1p1

Next, mount the partition on /usr/local

# mount /dev/mmcblk1p1 /usr/local

Then go to that directory

# cd /usr/local

Then we get the Freeswitch source code

# git clone -b v1.2.stable git://

After that, we set up the build environment

#apt-get -y install g++ make
#apt-get -y install autoconf automake libtool libncurses5-dev libjpeg-dev liblzo2-2 libpkcs11-helper1 git gawk python-dev libtiff4-dev libperl-dev libgdbm-dev libdb-dev gawk bzip2

Then we build the software

# cd freeswitch
# sh -c './ && ./configure && make all && make install'
# make cd-sounds-install
# make cd-moh-install

Then we add the following to /etc/fstab

/dev/mmcblk1p1 /usr/local ext4 defaults 0 2

Turn Freeswitch into a service (don’t remember how I did that.)


cp -pr rtl* /lib/firmware/rtlwifi/

vi /boot/uboot/uEnv.txt

add the line optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN

This will disable the HDMI port allowing enough power for the USB WiFi dongle (EDIMAX.)

Looks like a NAT interface for a VM can cause the VM to die if you push too much traffic through it, while a pass-through interface handles the same load just fine.

I’m glad Apple added the ability to have multiple email signatures in IOS 6. I’m starting to use multiple accounts seriously again, and it’s useful!

Finally ponied up for a Teensy 3.0. I’ve been advising a friend on portions of a novel that has INFOSEC tech involved and wanted to demo an exploit.



Powered by Wordpress
Theme © 2005 - 2009
BlueMod is a modification of the blueblog_DE Theme by Oliver Wunder