G729 Transcoding Question

Scenario: g729 Gateway -> Asterisk -> g711 Phone

[src_gateway]
disallow=all
allow=g729

[dest_phone]
disallow=all
allow=ulaw
allow=alaw

The gateway INVITEs Asterisk using g729b.
Asterisk INVITEs the phone using g711u or g711a.

The destination phone rings, but as soon as I answer,
the call is closed and the source phone gets a “busy”.

CLI> show g729
0/0 encoders/decoders of 1 licensed channels are currently in use

We’ve had no luck with G729 pass-through, so we’re
attempting to see if we can get the G729 transcoding
to at least work for G729 calls from the gateway.

No luck. Where am I going wrong? Shouldn’t this work?

Thanks,
Scott

Hi

One big problem is that you are telling us things but not showing any of the debug or the dialplan.

first then you need to do is prove that calls from the gateway work. IE point it at the echo test. then point it a phone with a simple dialplan ie Dial(SIP/200) and see i that works.

but yo do need to post debug info.

Ian

What’s the best (preferred) way to create good debugs?
Can this be done on a per peer basis so it’s not diluted?

Thanks,
Scott

Hi

Ok this expalins it.

try typing “help sip debug” and all will become clear. The help in asterisk is good its there to be used.

But you still dont post the dialplan though.

Ian

I’m trying a simple Echo test and it’s failing for g729…

exten => 1267,1,Answer()
exten => 1267,2,Echo()

Test #1 (failure)
gateway33 codecs g729a, g729b

[gateway33]
type=friend
host=gateway33
context=default-inbound
disallow=all
allow=g729

gateway33 INVITE = g729b
Asterisk 200 OK = no media
Asterisk sends (one way) g711u RTP

Test #2 (failure)
gateway33 codecs g729a

[gateway33]
type=friend
host=gateway33
context=default-inbound
disallow=all
allow=g729

gateway33 INVITE = g729a
Asterisk 200 OK = no media
session is terminated
gateway33 INVITE = g729a
Asterisk 200 OK = no media
session is terminated

Test #3 (success)
gateway33 codec g729a, g729b, g711u

[gateway33]
type=friend
host=gateway33
context=default-inbound
disallow=all
allow=ulaw
allow=g729

gateway33 INVITE = g729b, g711u
Asterisk 200 OK = g711u
Asterisk sends/receives g711u RTP

Does any of this point to a specific problem? I even have a licensed
g729 channel.

CLI> show g729
0/0 encoders/decoders of 1 licensed channels are currently in use

What information can I provide to help troubleshoot? This is making no sense.

When I setup my desk phone to use G729 and make the test call directly (bypassing the gateway), the call completes fine and media is sent using G729 successfully. I’m not sure why it would work any differently from a Cisco gateway?

The only difference that I’m aware of is that my phone (Polycom 430) seemed to ask for G729, while the gateway was either G729a or G729b specifically. In the instance of my phone, Asterisk came back with G729a in the 200 OK message.

Thanks,
Scott

Is there any way to output the debug for a specific IP or peer
to a certain file? So it’s not combined w/ all the other output?

Thanks,
Scott

I’m relatively new to Asterisk and I’m learning a ton of stuff every day. I had the same question and figured out a way to do it. I’m not sure if it’s the “easy” or “right” way, but here it is:

Edit logger.conf and add a line like:

sip729=debug

Then at the CLI, type “logger reload”. This will create a log file called “sip729” and will only have debug info. Then, you can turn on debug for a specific peer or IP. Assuming sip debug was turned off before turning it on for a specific peer/IP, the file will only contain debug info for that peer/IP.

I would appreciate if some experienced user would comment if this is the right way, wrong way or if there’s a better way. Thanks.