Do I need a g729 license for people on hold?

Do I need a g729 license for people on hold?

I have 2 lines, and an on hold queue that can hold up to 10 people.

Do I need a minimum of 2 licenses, or a minimum of 12 licenses?


It depends what they are doing when they are on-hold. I believe that if you have your music on hold files in .g729 format asterisk won’t need to do any transcoding, and thus won’t require a license.

On a similar note, if you have two SIP agents which both support G.729 and you are doing native bridging, asterisk will simply perform G.729 pass-thru and won’t require a license.

Just remember that if you record or spy on a channel it will require a transcoder.


I am just using the default on hold music, so for that, I either need to replace that iwth a .g729 format music file, or they won’t hear music, but it won’t drop their call, correct?

The call will most likely drop if you don’t have g.729 licenses available. Asterisk won’t be able to send the RTP stream, so most likely the call will terminate.

just an FYI, asterisk has a built in “convert” application which you can use from the CLI. I believe it’s as easy as:

*CLI>convert /var/myaudio.gsm /var/myaudio.g729

I haven’t used it to convert g.729 audio, but i think that should work if you have licenses.

Ah, ok, thanks!


If you set you system to transcode all calls via slin you will not from testing I did some while back have an issue

here is an example

cypbx*CLI> sip show channels
Peer             User/ANR    Call ID      Seq (Tx/Rx)  Form  Hold     Last Message  1234        5970f5bb2e2  00102/00000  alaw  No       Tx: ACK   
Channel               Peer             Username    ID (Lo/Rem)  Seq (Tx/Rx)  Lag      Jitter  JitBuf  Format
(None)            (None)      00002/00000  00004/00000  00000ms  0000ms  0040ms  unknow
IAX2/xxxxxxl-4  gradwell    00004/00046  00010/00010  00040ms  0000ms  0040ms  g729
2 active IAX channels
cypbx*CLI> show g729  <<<<<<<<<<<<On the call
1/1 encoders/decoders of 2 licensed channels are currently in use
cypbx*CLI> show g729  <<<<<<<<<<<<call On hold
1/1 encoders/decoders of 2 licensed channels are currently in use

then with transcode via slin set to no

show g729 <<<<<< with call on hold 2/1 encoders/decoders of 2 licensed channels are currently in use

so you can see an extra encoder is used.

If you are expecting to hold calls then I would make sure you have it transcoding. There will be a slight hit on the server but no different to all the g79 transcoding.

For some reason your post passed my by otherwise I would have told you this at the begining


ian - wouldn’t he also not use a license if the MOH was in g.729 format on the file system?

also - if you force everything to be transcoded to slinear, aren’t you then requiring a license even if both UAs support G.729 and the asterisk server would otherwise be doing simple G.729 pass thru?


The calls are coming in via a queue. so the will need to be transcoded realy unless you record all your prompts music etc in g729 and then dont allow recording. once on the lan using pass through mode is too risky, as mentioned he wants to record them, hold them in a queue and I guess transfer them.

I would make all the sets use alaw the trunks use g729 and transcode calls via slin.

For example i have a customer that has 15 agents and calls come in from ISDN and from SIP., They limit the sip incoming to 8 channels all calls are recorded and also chanspy is used. and have 10 licences on the system.

Dont forget that your idea of using meetme only does what it does because meetme and recording is all done via slin


Thanks for the great feedback!