Asterisk G.729 pass-thru issue


I’m trying to set up an Asterisk server that would “sit between” a SIP provider (net2phone) and SIP user agents.
Its role would be to play an audio message (advertisement) to users when they place a call, before transferring them to the “real” number.

Here’s the very lean “extensions.conf” :


exten => s,1,Answer()
exten => ${PATTERN},1,Playback(ad)
exten => ${PATTERN},2,Dial(SIP/${EXTEN}/outbound,,)
exten => t,1,Hangup()

Then, I turned the Asterisk some kind of SIP proxy (I only need to support outbound calls) :

useragent = Linksys/PAP2-2.0.12(LS)

type = peer
disallow = all
allow = g729
allow = gsm
host =
secret = XXXX
username = XXXXXXXXX
fromuser = XXXXXXXXX
fromdomain =

Finally, I configured my SIP clients to call through Asterisk.

Yet, there is a problem when it comes to G.729 codec : apparently, the pass-thru mode doesn’t work.

My SIP user agent is configured to support both GSM (for the ad message) and G.729 for the real communication with the SIP provider. The net2phone provider only supports G.711 or G.729.

So, in theory, Asterisk should be able to connect the SIP UA to the SIP provider using G.729 ?

Here’s a SIP debug trace.

What is especially strange is the capabilities Asterisk advertises :

Capabilities: us - 0x8000e (gsm|ulaw|alaw|h263), peer - audio=0x102 (gsm|g729)/video=0x0 (nothing), combined - 0x2 (gsm)

Why not also G.729 ?

I even remove the Playback line of my extensions.conf, but the debug trace then shows the same kind of problem.

I tried playing with the “canreinvinte” parameter but that didn’t work.

Of course, when I installed the G.729 codec in Asterisk, G.729 communication take place correctly.

Any idea ?

Thanks for your help!


Your log says it:

Capabilities: us - 0x8000e (gsm|ulaw|alaw|h263), peer - audio=0x102 (gsm|g729)/video=0x0 (nothing), combined - 0x2 (gsm)

if you do “show translations” , and your g729 codec has only dash bars in the translation display, then you can’t translate to anything else.

Thanks for your reply.

In my case, as I connect two G.729-capable SIP entities, I shouldn’t have to do translation, but only data pass-thru ?

Is there a “reference” set-up / configuration somewhere that shows how to get a working G.729 pass-tru ?


Did you try

In your sip.conf ? According to your log, you allow gsm|ulaw|alaw|h263, but not g729.

Yes, configuring Asterisk as you said still produces in the log :

Capabilities: us - 0x8000e (gsm|ulaw|alaw|h263), peer - audio=0x100 (g729)/video=0x0 (nothing), combined - 0x0 (nothing)

I really can’t see why…

[quote]In my case, as I connect two G.729-capable SIP entities, I shouldn’t have to do translation, but only data pass-thru ?

But your not passing the call through, You are answering the call, playing back an audio file then passig the call onto the endpoint.


As I said above, I even tried my configuration without even playing an audio file, just Dial().

So what should my extensions.conf look like to enable G.729 pass-thru ?

got the same problem here

it says asterisk can pass-through g723/729 , but never get this to work.

are there any trick about pass-through ?

and how we know pass-through work ?

( show translation for checking codec translation, what command for checking pass-through? )

I’m interested in this if anyone has any more input.
I’m having a problem with Asterisk 1.4 not sending
g729 through from the origination to the phones.