2021
August 05: ESP and solar panel Part 2; the results2020
December 26: ESP and solar panel Part 1; the setup August 22: ESP-8266 power issue with ME6206 regulator2019
October 18: How to use alarm syscall in Ruby2018
December 20: Decode Oregon Scientific sensors with RaspberryPi and Arduino2016
October 19: How I recovered a dead hard drive with a freezer September 28: Drawing a ground plane in Kicad June 27: Quick Ruby On Rail memo2015
December 18: Signal handling and Ruby December 14: EventMachine is good but... September 18: My custom ortholinear keyboard February 08: Quick Sinatra boilerplate2014
September 16: Wifi access point on a Raspberry Pi March 24: Linphone and G729 on Opensuse2013
November 11: Ext4 rescue tips November 05: Why this blog is'nt running Wordpress ?The G729 codec is not a real free software, but may be useful with some SIP providers, as this is the best codec for VoIP, only 8 kbit/s and a reasonable good sound quality.
This codec is only freely available on Linux with Linphone. Other softphones don't provide it. The main problem is that this codec is provided as binaries only for Ubuntu by the Linphone team. The pre-compiled version of Linphone proposed by OpenSuse doesn't include this plugin. I tried to backport the binaries from Ubuntu to OpenSuse, but with no luck on the latest version (OpenSuse 13.1, Ubuntu 13.4 and Linphone 3.6.1).
So here is the compile process of Linphone with G729ab support on Opensuse 13.1.
Compile Linphone
First we need some dependencies:
zypper install intltool libeXosip2 libeXosip2-devel libosip2 libosip2-devel speex speex-devel libsoup-devel libvpx-devel libswscale-devel libXv-devel libv4l-devel libtheora-devel alsa-devel libffmpeg-devel glew glew-devel sqlite3 sqlite3-devel libupnp-devel
If you experience some dependency conflicts, try switching to Packman repositories. To install it use zypper ar -n packman http://packman.inode.at/suse/openSUSE_13.1/ packman
.
Then, let's download and compile:
wget http://download-mirror.savannah.gnu.org/releases/linphone/stable/sources/linphone-3.6.1.tar.gz
tar -xzvf linphone-3.6.1.tar.gz
cd linphone-3.6.1/
./autogen.sh
./configure --disable-strict
make BUILD_G729=1
make install
Note :
There is a small bug in the source code. To avoid the following error message, add --disable-strict
to the ./configure
command.
propertybox.c:1103:2: error: call to function ‘linphone_core_upnp_available’ without a real prototype [-Werror=unprototyped-calls]
if(!linphone_core_upnp_available(lc)) {
^
Compile the codec
And now, the G729 codec from Belledonne Communications. Be careful, the source code is licensed under GPLv2 but ITU G729 usage is governed by a patent license to be acquired from Sipro Lab. See here for more informations : http://www.linphone.org/eng/documentation/dev/bcg729.html
wget http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.0.tar.gz
tar -xzvf bcg729-1.0.0.tar.gz
cd bcg729-1.0.0/
./configure
make
make install
You can find more plugins here: http://www.linphone.org/eng/download/.
Check libraries
- Update library cache :
ldconfig
- Check if G729 libraries are correctly installed :
ldconfig -p | grep 729
Now it's ok, G729 codec should appear in the codec windows, you just have to enable it.