I’m facing strange issue while establishing inbound calls from SIP trunks. Provider A is sending (G729, Alaw, uLaw) 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?