Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

Introduction

G.729 is a toll-quality, low-bandwidth audio codec supported by many VoIP providers. The voice quality of a G.729-encoded call is about the same as that of G.711, the codec used for standard PSTN calls. However, the amount of bandwidth needed to carry a G.729 call is much lower than that for a G.711 call. Enterprises using G.729 will make more efficient use of available network bandwidth. G.729 uses roughly 1/8th of the bandwidth of a G.711 (8 kbit/s vs 64 kbit/s).

G.729 is available in two ways:

  • Passthrough
  • Transcoding

The passthrough method does not require licensing, however it has some limitations. For transcoding method G.729 license is necessary. Freeswitch offers a module and G729 license for transcoding G.729. Freeswitch's G.729 module supports Annex A and Annex B. 

Obtaining License

Licences can be purchased from the FreeSWITCH website  - see the G.729 tab at the top of the page.
Pricing is $10 per channel.

A single licence provides you with one encoder and one decoder, which is enough for bridging one call.

Licences are only required for channels performing transcoding (for bridging calls a leg uses G.729 and a different leg uses a different codec, and for applications which need to process media). Bridged channels where G.729 is on all legs still use pass-through mode, so that they do not consume a licence.

G.729 Module Installation

Download the fsg729-xxx-installer file from http://files.freeswitch.org/g729

cd /usr/tmp
wget http://files.freeswitch.org/g729/fsg729-158-installer
sh ./fsg729-*-installer

Note: fsg729-139-installer did not work with FreeSWITCH Version 1.0.head (1), try 136, the previous one if it gave error such as (var/log/sipxpbx/freeswitch.log):

[CRIT] switch_loadable_module.c:882 Error Loading module /usr/local/freeswitch/mod/mod_com_g729.so
*/usr/local/freeswitch/mod/mod_com_g729.so: undefined symbol: g729_decode_free*
-ERR [module load file routine returned an error]

G.729 License Activitation

Run the license validator:

cd /usr/local/freeswitch/bin/
./validator

Enter the sales code you received from Freeswitch, licenses.zip file will be generated in the current directory. Unzip this file into /etc/freeswitch/
After unzip there will be xxxxxxxxxxxxxxxx.conf in the /etc/freeswitch

Freeswitch Configuration

Sipxconfig should detect this module and add G.729 codec as default to the following:

  • System/Servers/Server nnn/Media Services/Codec
  • System/Servers/Server nnn/SIP trunking/SIP/Permitted Codecs  (TBD: I don't think this applies -- douglas)

Click  "Apply" button on each page even though you haven't changed anything to trigger config change and prompt to restart Media Services.  Go ahead and restart "Media Services"

freeswitch_licence_server is automatically started by mod_com_g729 if freeswitch is started by root, but in sipXecs freeswitch is not started by root. So you have to start freeswitch_license_server manually: /usr/sbin/freeswitch_license_server

if the license server is not working or the license is invalid, freeswitch will complain (var/log/sipxpbx/freeswitch.log):

[ERR] mod_com_g729.c:113 ENCODER CREATE FAILED- 0x9c213b0 (nil)

[ERR] switch_core_io.c:882 Codec G.729 encoder error!

Monitoring License

Run the freeswitch console:

/usr/local/freeswitch/bin/fs_cli

 freeswitch@internal> g729_status
 Permitted G.729AB channels: 1
 Encoders in use: 0
 Decoders in use: 0
  • No labels