Tuesday, February 12, 2013

Asterisk/FreePBX Setting up and enabling Speex codec.

Why Speex?

  1. It works like SILK but, see item 2.
  2. Its an old codec thus supported by lots of phones as opposed to SILK

Environments (of course, improvise and modify for your respective OSes, it can run too far away from these)

  • Debian 6 32bit (somehow I messed up my 64bit or it doesn’t work well with 64 bit)
  • Asterisk 11
  • FreePBX

So the steps are simple as outlined here;

  1. # apt-get install speex speex libspeexdsp-dev libspeex-dev
  2. Go to your Asterisk source directory
  3. Do a #make clean && ./configure && make && make install
  4. NOTE: It should automatically notice Speex libraries are already installed and it will auto select, so don’t have to menu select whatnot.
  5. Once done make, restart Asterisk (#amportal kill && amportal start)
  6. Then you should be autoloading the codec, so # asterisk –rx “core show translation”     should show you speex

    speex 15000 15000 15000 15000 15000  9000 15000     -   23000 15000    15000 17250  17000   15000   23000  17000  17000  17000  17000  17000  17000   17000
    speex16 23500 23500 23500 23500 23500 17500 23500 23500       - 23500    23500 15000   9000   23500   23000  17500  17000  17000  17000  17000  17000   17000

  7. Otherwise, manually load #asterisk –rx “module load codec_speex.so”
  8. If you hit errors, lookout for the full log…
  9. Now, if speex is loaded properly, go to the IAX/SIP Setting pages in FreePBX and enable speex codec respectively
  10. That should now allow you to use speex in the extensions/devices you’ve configured

And you guessed, it, here’s the cliché, Enjoy Speex-ing…

More Asterisk related codec.conf configuration on Speex can be found here:

PS> What Codec we really want to consider in future and see it released to support Asterisk?.
OPUS. I believe this one codec will rule them all. Till then, we use bits like SILK and SPEEX and sometimes g729 to get our very cranky networks to play nice with VoIP audio.

Post a Comment