email: sales@zettaserve.com
excellent : effective : responsive
OpenPBX
G.729 Annex B for OpenPBX
ZettaServe has developed a G.729A/AB codec for OpenPBX based on version 5.1 of the Integrated Performance Primitives (IPP) and Unified Speech Coding (USC) interface provided by Intel. The source code for the non-Intel component of the codec is provided below, along with Intel redistributable libraries and build instructions.
DISCLAIMER
- ZettaServe provides the software and instructions below with no warranty of any kind. By downloading this software you agree that ZettaServe can not be held accountable for any effects resulting from its use.
- G.729 is a patented technology and requires a license for use. G.729 licensing is administered by Sipro. ZettaServe does not provide G.729 licenses. It is your responsibility to obtain the necessary license.
Requirements and limitations
- As the codec makes use of the Intel IPP library its use is limited to IA32 (or compatible) architectures.
- The codec has been developed and tested on OpenBSD 4.0. It is known to compile on Linux and should also work on other BSD flavours.
- At this stage G.729 annex B is only usable on the SIP channel.
- G.729 annex B requires the use of a jitter buffer and at this stage only the “fixed” jitter buffer has been tested
Patching OpenPBX
The OpenPBX patch is designed to be applied against revision 2597 of the OpenPBX trunk.
- Obtain the OpenPBX source code from the OpenPBX Subversion repository.
- Download and apply the g729b.diff by running the following command from within the folder containing configure.ac:
patch -p0 < g729b.diff - Follow the usual process for compiling and installing OpenPBX.
See below for a discussion of why it is necessary to patch OpenPBX.
Building the G729B codec
- Download and extract the usc-codec.tar (5.5 Kb).
- Download and extract the Intel redistributables (114Mb).
- Edit the usc-codec Makefile to specify the following parameters:
IPPROOT Directory containing the Intel IPP redistributables. This is the intel/ipp directory in the intel.tar.gz archive. USCROOT Directory containing the Intel USC redistributables. This is the intel/usc directory from the intel.tar.gz archive. OPBXINC OpenPBX include directory. This needs to be the include directory in the OpenPBX build folder. OPBXLD OpenPBX library folder. OPBXMOD OpenPBX modules folder. - By default the codec is linked with the static IPP libraries. Alternatively on Linux the codec can be linked with the shared IPP libraries by setting the IPPSHARED variable in the usc-codec Makefile. If you are using the shared IPP libraries you will need to ensure OS loader can locate them. On many operating systems the ldconfig utility is used for this.
- Compile and install the usc-codec using make install in the usc-codec directory.
Usage
The following settings are required in the OpenPBX sip.conf file:
allow=g729b
allow=g729
jb-enable = yes
The purpose of the OpenPBX patch
The OpenPBX patch (g729b.diff) makes three functional modifications:
- It is necessary to distinguish between G.729 with and without annex B. This is achieved by intro

