G729
Introduction
There are two methods describe here. The second is to download the binary files from hosting.lv which I recommend for asterisk version 12.x.x and below. At time of writing there are no binary files for asterisk 13.x.x so building and installing some components are required.
Processor Type
Before downloading or building the codec module you need to verify what your processor type is to ensure compatibility.
From the Linux command type in:
cat /proc/cpuinfo
Look specifically at the model name and the flags. The following is an example of the process that I am using.
processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 6 model name : Intel(R) Pentium(R) D CPU 3.00GHz stepping : 5 microcode : 0x7 cpu MHz : 3000.249 cache size : 2048 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 6 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr pdcm lahf_lm bogomips : 6000.49 clflush size : 64 cache_alignment : 128 address sizes : 36 bits physical, 48 bits virtual power management:
From this information we can see that it is a Pentium D processor. These are the 2 bits of required information we need. If you don’t see sse in your flags settings then the file you need must contain the words no-sse
Building
Don't use bcg729 as it required porting for Asterisk.
bcg729
cd /usr/src wget http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.2.tar.gz tar xvf bcg729-1.0.2.tar.gz rm -f bcg729-1.0.2.tar.gz cd bcg729-1.0.2 ./configure make make install
g729
cd /usr/src wget http://asterisk.hosting.lv/src/asterisk-g72x-1.4.3.tar.bz2 bzip2 -d asterisk-g72x-1.4.3.tar.bz2 tar xvf asterisk-g72x-1.4.3.tar rm -f asterisk-g72x-1.4.3.tar cd asterisk-g72x-1.4.3 ./autogen.sh ./configure --enable-pentiumm --with-bcg729 --with-asterisk18
Binaries
Now go to http://asterisk.hosting.lv/ and select the appropriate Asterisk version.
Change folders to /usr/lib/asterisk/modules
cd /usr/lib/asterisk/modules
Download the required file(s)
For the G729 codec with a Pentium 4 sse chip:
wget http://asterisk.hosting.lv/bin/codec_g729-ast120-gcc4-glibc-x86_64-pentium4.so
For the G723 codec with a Pentium 4 sse chip:
wget http://asterisk.hosting.lv/bin/codec_g723-ast120-gcc4-glibc-x86_64-pentium4.so
Restart asterisk and you are done.
If Asterisk does not start then you will need to use a different version of the codec files.