[Asterisk-Dev] G.729 Problems - Startup, Voicemail, Voicemail2

John Laur johnl at blurbco.com
Tue Jun 17 17:44:33 MST 2003

I am testing the g729 codec on a small scale (2 licenses), and I'm
getting two problems I can't find documented:


First, I get this warning on startup - don't know if it's normal or
something bad happening:

[codec_g729b.so] => (Annex B (floating point) G.729/PCM16 Codec
  == Detected 2 licensed G.729 transcoders
WARNING[1024]: File translate.c, Line 218 (calc_cost): Translator
'g729tolinb' does not produce sample frames.
  == Registered translator 'g729tolinb' from format 8 to 6, cost 99999
  == Registered translator 'lintog729b' from format 6 to 8, cost 31
  == Parsing '/etc/asterisk/enum.conf': Found


Next, (maybe a related problem?) when using the voicemail application
from a phone that is using g729, I cannot record greetings at all unless
I specify g729 as the only format by 'format=g729' in voicemail.conf
because I seem to be running out of licenses. 

It seems that the voicemail application is being 'greedy' when pulling
g729 translators during recording -- ie when I call in to do voicemail
via g729 with a line like 'format=g729|gsm|wav|wav49', I need 5
licenses. Voicemail2 seems to have the same problems (except it crashes
instead of just skipping the recording part)

Also, it seems that something inside voicemail is hanging onto the
licenses - If I attempt to unsuccessfully record a greeting with the
voicemail app, then try to join a MeetMe conference, I get: 

WARNING[23570]: File app_meetme.c, Line 369 (conf_run): Huh?  Got a
non-ulaw (256) frame in the conference

A restart of asterisk seems to be required to get things functioning
normally again after a bout with running out of g729 licenses in the
Voicemail app.

Voicemail2 does not seem to hang onto the licenses and after it bails, a
restart of asterisk doesn't seem to be required. Here is the debug from

    -- Playing 'vm-rec-unv'
    -- Playing 'beep'
    -- x=0, open writing:
       voicemail/default/2003/unavail format: wav49, 0x8115e20
    -- x=1, open writing:
       voicemail/default/2003/unavail format: gsm, 0x8115500
    -- x=2, open writing:
       voicemail/default/2003/unavail format: wav, 0x8115638
    -- x=3, open writing:
       voicemail/default/2003/unavail format: g729, 0x8115880

Error Opening channel:2  not available, see va_g729_init_global(..)
WARNING[22546]: File codec_g729b.c, Line 179 (lintog729_new): No
available g729 resources for channel 2
WARNING[22546]: File translate.c, Line 111 (ast_translator_build_path):
Failed to build translator step from 6 to 8
WARNING[22546]: File file.c, Line 198 (ast_writestream): Unable to
translate to format g729, source format 64
WARNING[22546]: File app_voicemail2.c, Line 869 (play_and_record): Error
writing frame
  == Spawn extension (local, 8500, 2) exited non-zero on

Am I incorrect to assume that 2 g729 licenses are sufficient for having
two g729 telephones as endpoints or is this just a nuisance of the
voicemail applications? It's not really a problem for me to get some
extra g729's to make sure people can record greeings and whatnot, but I
wanted to make sure this was not just a bug.

For instance: how many licenses are required for a fully functioning
system with 6 users needing g729 assuming two or three of them might be
in the voicemail application at the same time while others are on the
line, in conferences, etc -- worst case? Would it be a good idea to have
g729 versions of all my prompts to lower the number of transcoders (and
thus licenses) required to support the g729 clients, and if so, is there
an application out there that can convert existing gsm or wav prompts to
a g729 format compatible with *?


More information about the asterisk-dev mailing list