Call Recording 44 Bytes

Hi, I have call recording on and FreePBX creates a recording file for but each file is only 44 bytes and thus unuseable. Any advice, please?

Current Asterisk Version: 14.7.1

Asterisk/FreePBX and All modules updated to the latest version.

Ok, did quite a bit of further testing and troubleshooting and found that if I exclusively use the alaw codec then the recordings are 100% but as soon as I change the codec to g729 then I get these 44 byte recordings. Can anyone shed some light on this for me please?

Hi!

You need the codec which is not there by default because it was patent encumbered…

It no longer is since the beginning of this year but unless you find a free implementation of it, you still have to pay for it…

The easiest way to purchase licenses is from Digium, the makers of Asterisk.

The best thing is to avoid this codec altogether if you can…

Good luck and have a nice day!

Nick

Hi Nick, thanx for the reply. In South Africa you really want to use the g729 codec as connectivity is not the best and the g729 codec helps. Also the VOIP providers here almost exclusively support g729. I did however find this article online and it looks like this has fixed the issue: https://www.jodrik.nl/using-g729-codec-on-asterisk-13-with-freepbx-13-on-a-x64-modern-kernel/

So I was able to install the free version of the g729 codec by following the guide found here: https://www.jodrik.nl/using-g729-codec-on-asterisk-13-with-freepbx-13-on-a-x64-modern-kernel/ - but it only worked on by Virtualbox VM. I also have a Giada Celeron based PC which doesn’t take the codec. I assume this is due to the CPU architecture differences but I haven’t been able to figure out which version of the g729 codec matches up with the CPU in this PC. Can you guys help me out please?

You need a cpu/kernel/asterisk version specific module built.

Some say that you still need to pay royalties, the patent owners say otherwise, there are some things that might need licensing depending on how you install but if you leave out the intel or digium binary blobs, my understanding that if you

#build in /usr/src

wget https://github.com/BelledonneCommunications/bcg729/archive/master.zip

#steps needed
unzip master.zip
cd bcg729-master
./autogen.sh
./configure --prefix=/usr
make
make install

#you can then build also in /usr/src

wget http://asterisk.hosting.lv/src/asterisk-g72x-1.4.2.tar.bz2

#steps needed
tar -xjvsf asterisk-g72x-1.4.2.tar.bz2
cd asterisk-g72x-1.4.2
./autogen.sh
./configure --with-bcg729
make
make install

#then

rasterisk -x ’ module load codec_g729 ’

You are likely fine, You could probably put that in a bash script as I did but we are not allowed to post complete scripts no matter how trivial for some reason.

Thank you so much for this, sadly I have to say that I got a failure on the 2nd last step and I’m finding nothing about this on Google. Can you please shed some light on this?

Ps. On my clean Sangoma Linux release 7.4.1710, I had to install the following to get to this point:
yum install autoconf
yum install libtool
yum install bzip2

You need the asterisk.h (headers) file, this is usually included in the asterisk-devel or asterisk-dev package in a package based deployment, also of course in the asterisk source code you probably need also the asterisk/ directory as well , usually in /usr/include/

I’m getting closer and closer… Like you said I also had to install: yum install asterisk-devel - I was then able to complete the make and make install commands. The g729 codec file was created under (/usr/lib/asterisk/modules/) although on my box the modules are actually found here (/usr/lib64/asterisk/modules). I copied the codec_g729.so to this location and set ownership and permissions accordingly. However when I try to load the codec I get this error:

I don’t use RH so not a problem for me, in the g729 directory is s README file, which clues you to run

,/configure --help

for options specific to your situation probably libdir and asterisk version and location

Ah man, why does this has to get so complicated!? I’m quite new to Asterisk so from here on forward I don’t actually know what to do next. Anyone out there who also uses the Sangoma OS (CentOS) that can help a brother out?

It would probably be more cost effective for you to buy the digium codec @ $10 per concurrent use

So after a quick spin up of the distro asterisk 14/FPBX 14

uname -a
Linux freepbx.sangoma.local 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

rasterisk -V
Asterisk 14.6.2

you would modify the recipe (as expected) to

yum install -y asterisk14-devel automake libtool bzip2 m4

for bcg729
./configure --prefix=/usr --libdir=/usr/lib64

for asterisk-g729
./configure --with-bcg729 --with-asterisk140 --prefix=/usr --libdir=/usr/lib64

The rest remains the same.

You will have specifically built the unencumbered linphone opensource (no Intel here, please move along) and used it to compile a now license/royalty unencumbered g729 codec from our latvian friends.

To check if it IS there and working

rasterisk -x “core show translation paths g729”

If it works then please send your $10 to the charity of your choice ( Please not Roy Moore or any of his ilk :slight_smile: )

1 Like

Success! Thank you so much for helping a man out here and going the extra mile! I will definitely make a donation.

Just one edit required:
rasterisk -x ‘module load module load codec g729’ should be rasterisk -x 'module load codec_g729’

1 Like

I’m happy it works for you but not surprised, also the post was originally

asterisk -x ’ module load module load codec_g729 ’

So I FU’ed UP, please leave out the st’st’utter

I will edit

But essentially are your Call recordings now working ?