[asterisk-users] I can do alaw, ulaw and gsm; remote can do g729 and alaw; asterisk wants to translate g729 -> alaw. WHY?

John Hughes john at calva.com
Thu May 14 09:30:31 CDT 2020


On 14/05/2020 08:10, John Hughes wrote:
>
> I am having a problem with one of my callers who is using either g729 
> or alaw.  I can do alaw but not g729 so asterisk should negotiate alaw 
> right?  In fact from the sip debug it looks like it does, but then I 
> get the dreaded "channel.c:5630 set_format: Unable to find a codec 
> translation path: (g729) -> (alaw)" and the call hangs up.  Why?
>
> Last minute thought: Is it possible that the caller is sending g729 in 
> RTP even though the SIP negotiation clearly chooses alaw?  Maybe I 
> need some RTP debugging.
>
And in fact that is exactly what's happening.
>
> <--- SIP read from UDP:SUPPLIER:5060 --->
> INVITEsip:LOCAL at ASTERISK:5060  SIP/2.0
> Via: SIP/2.0/UDP SUPPLIER:5060;branch=z9hG4bK02B5ab9c8e55f864da9
> From:<sip:REMOTE at SUPPLIER>;tag=gK02498cb1
> To:<sip:LOCAL at ASTERISK>
> Call-ID: 205665777_90679951 at SUPPLIER
> CSeq: 539098 INVITE
> Max-Forwards: 70
> Allow: INVITE,ACK,CANCEL,BYE,REGISTER,REFER,INFO,SUBSCRIBE,NOTIFY,PRACK,UPDATE,OPTIONS,MESSAGE,PUBLISH
> Accept: application/sdp, application/isup, application/dtmf, application/dtmf-relay, multipart/mixed
> Contact:<sip:REMOTE at SUPPLIER:5060>
> P-Asserted-Identity:<sip:REMOTE at REMOTE-SUPPLIER;user=phone>
> Supported: timer,100rel,precondition
> Session-Expires: 1800
> Min-SE: 90
> Content-Length: 282
> Content-Disposition: session; handling=required
> Content-Type: application/sdp
>
> v=0
> o=Sonus_UAC 176880 320591 IN IP4 SUPPLIER
> s=SIP Media Capabilities
> c=IN IP4 213.41.124.6
> t=0 0
> m=audio 8526 RTP/AVP 18 8 101
> *a=rtpmap:18 G729/8000*
> a=fmtp:18 annexb=no
> *a=rtpmap:8 PCMA/8000*
> a=rtpmap:101 telephone-event/8000
> a=fmtp:101 0-15
> a=sendrecv
> a=ptime:20
> <------------->

So he says he wants g729 or alaw

> Found RTP audio format 18
> Found RTP audio format 8
> Found RTP audio format 101
> Found audio description format G729 for ID 18
> Found audio description format PCMA for ID 8
> Found audio description format telephone-event for ID 101
> Capabilities: us - (alaw|ulaw|gsm), peer - audio=(alaw|g729)/video=(nothing)/text=(nothing), combined - (*alaw*)
> Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x1 (telephone-event|), combined - 0x1 (telephone-event|)

And asterisk calculates that the common codecs are just alaw,

So asterisk says: "let's do alaw":

> <--- Reliably Transmitting (no NAT) to SUPPLIER:5060 --->
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP SUPPLIER:5060;branch=z9hG4bK02B5ab9c8e55f864da9;received=SUPPLIER
> From:<sip:REMOTE at SUPPLIER>;tag=gK02498cb1
> To:<sip:LOCAL at ASTERISK>;tag=as4502927f
> Call-ID: 205665777_90679951 at SUPPLIER
> CSeq: 539098 INVITE
> Server: Asterisk PBX 13.14.1~dfsg-2+deb9u4
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
> Supported: replaces, timer
> Session-Expires: 1800;refresher=uas
> Contact:<sip:LOCAL at ASTERISK:5060>
> Content-Type: application/sdp
> Require: timer
> Content-Length: 264
>
> v=0
> o=root 227409966 227409966 IN IP4 ASTERISK
> s=Asterisk PBX 13.14.1~dfsg-2+deb9u4
> c=IN IP4 ASTERISK
> t=0 0
> m=audio 13948 RTP/AVP 8 101
> *a=rtpmap:8 PCMA/8000*
> a=rtpmap:101 telephone-event/8000
> a=fmtp:101 0-16
> a=ptime:20
> a=maxptime:150
> a=sendrecv
>
> <------------>

And when I look at the RTP debugging I see the data from the remote is:

> Got RTP packet from xx.xx.xx.xx:50644 (type 18, seq 001338, ts 610458, 
> len 000020) 

AAArgh!  Type 18 is g729.  Why on earth is the remote sending me g729 
when I clearly said the only thing I could do was alaw.

Is this legal?

Is the other side broken?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20200514/d8d8b1e8/attachment.html>


More information about the asterisk-users mailing list