Codec Negotiation Or Transcoding Issue

Home » Asterisk Users » Codec Negotiation Or Transcoding Issue
Asterisk Users 1 Comment

I’m facing strange issue while establishing inbound calls from SIP trunks. Provider A is sending (G729, AlawuLaw) offer and asterisk dial the peer with its preferred codec order(G729, aLaw, uLaw). The peer’s phone send the codec list as (uLaw, speex) in 200 OK replay. The Peer’s phone has selected only uLaw and speed in this case.

Ideally Asterisk should establish the call on uLaw codec, but Asterisk establish the call with two codec for this call. For downstream RTP is established with G729 and for upstream RTP is established with uLaw codec. This behavior cause the one way audio for some phones like Eyebeam 1.5.9 but Phonerlite latest version allow it and there is no audio issue.

Is it normal SIP RFC 3261 behavior or there is something wrong with codec negotiation or transcoding?

I’m using Asterisk 13.14.0 with realtime chan_pjsip compiled with bundled pjproject on CentOS 6.8_x64. I have tested it with Asterisk 11.x with chan_sip and it works fine.

Please advise me how can I setup the call based on late negotiation mechanism?

One thought on - Codec Negotiation Or Transcoding Issue

  • Asterisk might be unable to transcode rtp type from downstream to upstream, or vice versa. There’s a bug reported here, for asterisk 12 or above, using chan_sip.
    It says that you could avoid the bug by using chan_pjsip, but you still encounter it?
    Turn `core set debug 5` to see whether you have `Unsupported payload type received` like I once did?