login | register
Sat 19 of Jul, 2008 [23:25 UTC]

voip-info.org

Discuss [4] History

Asterisk G.729 Licensing

Created by: flavour,Last modification on Thu 29 of May, 2008 [17:38 UTC] by UncleWard

How to license G.729 codec for use in Asterisk


G.729 requires a license per channel unless it is used in pass-thru mode.
This license is purchased from Digium.

This license is keyed to all NICs in the system. If any NICs changed/added/removed then need to re-register. This can only be done once without contacting Digium.

When upgrading the number of licenses, Digium will have to merge the old licences with the new & provide a new license file.
Reboot the server to be sure that the license is seen correctly.

Study or experiment with G.729 for free

Under patent law, it is a legitimate use to study or experiment with a patented technology without paying for a patent license. You only have to pay royalty fees if you sell a product based on the technology or use the technology in products internally (this includes using the codec in a commercial setting, even if you aren't selling your platform, but only a service).

Opensource implementation

An opensource implementation of G.729 codec can be found at http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/. It is a wrapper around Intel Integrated Performance Primitives. Please note: You might still have to pay royalty fees to the G.729 patent holders for using their algorithm and to Intel for using their libraries!

Binaries can be found at http://asterisk.hosting.lv/

Warning

Please see Marks response on the user list (dated 25 Sep 2004) regarding use of G.729 codec from other sources. In short, this violates the GPL license and jeopardizes the asterisk project, specifically because the advocacy of its use may be seen by patent lawyers as contributory infringement. If you do choose to use this module, please be aware of the restrictions on using it without purchasing licenses, and do not advocate its use on any Digium-sponsored mailing lists (again, this could be seen as contributory infringement, if Digium resources are used to encourage its use).

There is some disagreement about whether this truly does violate the GPL. The FSF, in particular, has rendered the legal opinion that it does not violate the GPL even if the modules are not GPL compatible. The GPL violation would occur only if GPL and non-GPL compliant code is distributed together or if the module links to GPL code (use ldd to verify what it links to) or is derived from GPL code (see copyright.gov for US copyright law on derivative works; look to your own countries' laws potentially in addition to the US laws since Digium is in the US). There is a page on this wiki that talks about asterisk GPL compliance and another that talks about how to make non GPL modules for asterisk legally.

GPL Myth Note: the GPL is a distribution license, not a use license. If you downloaded Asterisk from someone else and are using it, the person you downloaded Asterisk from must comply with the GPL. If you combine a static G.729 binary (non-GPL compatible licensed) with GPL software, YOU DO NOT VIOLATE THE GPL UNTIL YOU DISTRIBUTE THE COMBINATION. You ARE, however, allowed to use it yourself. Acceptance of the GPL is NOT required to download and use Asterisk, either by itself or in combination with the above G.729 implementation. Therefore, if you're not planning on giving copies of Asterisk away to others, the above GPL violation statement doesn't apply to you. For more information, please see the GPL FAQ.

Old Voiceage codec info:

This license is keyed to inodes on an IDE disk (hard disk or CD-ROM in drive), which can be reused up to 3 times (e.g. if HDD dies) before having to contact Digium.

Older versions needed IDE disk to be one of hda, hdb, hdc, hdd and wouldn't work on SCSI-only systems. This is no longer true for new versions.

Need to run Asterisk with a console (this can be done in the background, by using safe_asterisk or screen).

How to count the number of licences required?

A license is required only when the codec functionality is *actually* in use
i.e. when asterisk needs to transcode g729 into anything else, or the other way around
During a transcoded g729 call both directions (encoding and decoding) count as 1 license (but there could also be bugs crawling around in VA code regarding this matter)

You need 2 licenses to use 2 Cisco 7960s at the same time, assuming they are not calling each other at that moment. Accessing Voicemail counts as any other regular call
A license is required for any other "internal" asterisk function (C7960 to IVR, C7960 to MOH, Voicemail, etc), unless you could record all your IVR prompts in g729, in which case you would not need a VA license to play them to a g729 phone.
If you record Voicemails in g729 (which is possible with * by using format_g729.c) and all your phones used g729, you would not need a license, however you would need a license to access the Voicemail from PSTN!

If your g729 C7960 calls someone, and the called party places the callee on hold with MOH, a total of *2* licenses will be necessary — 1 for the call and 1 for MOH;

To confirm your purchased G.729 license key works:

Run the Asterisk console and check:
# asterisk -r
*CLI> show g729

If this gave an error message, then either you have not run the Digium-supplied register utility, something about your system hardware changed (particularly Ethernet adapters), or there was a problem preventing the g729 codec from loading.

If you run Asterisk as an user other than root (highly recommended!), you may also need to ensure the user you run it under has access to the license information.

This assumes you run Asterisk with the asterisk user and asterisk group:
# chown -R asterisk:asterisk /var/lib/asterisk/licenses

If codec installation and license key works, you should see something like this — e.g. for three purchased licenses:

# asterisk -r
*CLI> show g729
0/0 encoders/decoders of 3 licensed channels are currently in use

See also:




Comments

Comments Filter
222

333Re: bad link

by sidney1310, Tuesday 09 of January, 2007 [13:39:36 UTC]
I fixed the bad link to Mark's response.

222

333

by dnz63, Sunday 04 of June, 2006 [06:48:08 UTC]
You can change same bytes in codec_g729a.so and have next message in "full" log file

logger.c: codec_g729a.so => (Annex A/B (floating point) G.729 Codec (optimized for i686))
codec_g729.c: G.729 transcoding module Copyright (C) 1999-2005 Digium, Inc.
codec_g729.c: This module is supplied under a commercial license granted by Digium, Inc.
logger.c: == Found total of 893 G.729 licenses
logger.c: == Registered translator 'g729tolin' from format g729 to slin, cost 5
logger.c: == Registered translator 'lintog729' from format slin to g729, cost 15

222

333bad link

by edo, Tuesday 14 of March, 2006 [09:39:32 UTC]
"Marks responce on the user list (dated 25 Sep 2004)" is incorrect
222

333

by dovb, Wednesday 19 of October, 2005 [19:20:05 UTC]
What happens after all licenses bought are being used? Is the next call established with another codec? In my case, the next call is established with g729, but is totally mute (to both ends), until another call that is using g729 ends up.