Summary:ASTERISK-21464: with directrtpsetup some payload type identifiers from A party's INVITE are not copied to the INVITE for B party
Reporter:Kevin Stewart (skavin)Labels:
Date Opened:2013-04-16 23:51:50Date Closed:2013-10-25 18:42:03
Versions: Frequency of
Environment:Attachments:( 0) direct.log
( 1) extensions.conf
( 2) rtp_engine.diff
( 3) sip.conf
Description:with directrtpsetup=yes

an incoming invite with an SDP containing

m=audio 15018 RTP/AVP 8 0 18 4 2 119
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=rtpmap:4 G723/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:119 telephone-event/8000
a=fmtp:119 32-40

will produce and outgoing invite with an SDP containing

m=audio 15018 RTP/AVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
Comments:By: Kevin Stewart (skavin) 2013-04-16 23:55:56.333-0500

The fault appears to be caused by ast_rtp_instance_early_bridge_make_compatible calling ast_rtp_codecs_payloads_copy to copy from the outgoing channel to the incoming channel.
       ast_rtp_codecs_payloads_copy(&instance0->codecs, &instance1->codecs, instance1);
this does nothing as codecs is zeroed on creation

I would think copying the other way woulf be the correct thing to do
       ast_rtp_codecs_payloads_copy(&instance1->codecs, &instance0->codecs, instance0);
This causes the identifiers from the incoming leg to be used in the outgoing leg

By: Rusty Newton (rnewton) 2013-04-19 15:39:45.986-0500

Kevin, there is not enough information here, please provide:

* an Asterisk full log demonstrating this happening. Please have the log include SIP debug, (sip set debug on), plus VERBOSE and DEBUG messages set to level 5.
* complete sip.conf
* dialplan used for the complete call path

By: Kevin Stewart (skavin) 2013-04-30 19:05:23.064-0500

These are the logs as requested.
I have reduced the extensions.conf to a dial for simplicity.

By: Kevin Stewart (skavin) 2013-05-21 22:54:13.535-0500

Has there been any progress on this fault?
Do you need any more information?

By: Rusty Newton (rnewton) 2013-05-22 18:44:00.946-0500

No progress. If someone starts working on it they'll comment on here and you'll see the status or assignment change.

If you can provide a patch or have someone that can, of course then someone would only have to review it.

I think the information you have here is enough.


By: Kevin Stewart (skavin) 2013-05-30 18:07:41.839-0500

This is the patch I use to copy the Codec identifiers for direct media.

By: Rusty Newton (rnewton) 2013-06-05 17:51:59.914-0500

Kevin, You don't have a signed license agreement, so your patch won't show up. You can [read more about that here|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines#AsteriskIssueGuidelines-PatchandCodesubmission]

Once you have a license agreement on file then you can re-submit the patch. Thanks!

By: Kevin Stewart (skavin) 2013-06-10 21:14:25.291-0500

Now that the license agreement has been accepted here is the patch again

By: Rusty Newton (rnewton) 2013-06-14 13:14:07.794-0500

Thanks, we see it now!