aboutsummaryrefslogtreecommitdiffstats
path: root/main/rtp.c
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-09 19:41:31 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-09 19:41:31 +0000
commitf7a0744262af29999cf09fed70c6b7293dde0641 (patch)
tree4b910427173c33fed70414bbff984e9368803185 /main/rtp.c
parente6d5d0bc026c0aa6cdfbeb032b71b2f8f99dc928 (diff)
Merged revisions 129437 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r129437 | mmichelson | 2008-07-09 14:40:30 -0500 (Wed, 09 Jul 2008) | 21 lines Merged revisions 129436 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r129436 | mmichelson | 2008-07-09 14:32:20 -0500 (Wed, 09 Jul 2008) | 13 lines Fix a problem where inbound rfc2833 audio would be sent to the core instead of being P2P bridged. When the core regenerated the rfc2833 packet for the outbound leg, the SSRC would be different than the RTP audio on the call leg causing DTMF detection issues on the far end. (closes issue #12955) Reported by: tonyredstone Patches: dynamic_rtp.patch uploaded by tsearle (license 373) Tested by: tonyredstone ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@129438 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/rtp.c')
-rw-r--r--main/rtp.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/main/rtp.c b/main/rtp.c
index 4a1ba192e..4b871255e 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -1333,10 +1333,6 @@ static int bridge_p2p_rtp_write(struct ast_rtp *rtp, struct ast_rtp *bridged, un
/* Check what the payload value should be */
rtpPT = ast_rtp_lookup_pt(rtp, payload);
- /* If the payload coming in is not one of the negotiated ones then send it to the core, this will cause formats to change and the bridge to break */
- if (!bridged->current_RTP_PT[payload].code)
- return -1;
-
/* If the payload is DTMF, and we are listening for DTMF - then feed it into the core */
if (ast_test_flag(rtp, FLAG_P2P_NEED_DTMF) && !rtpPT.isAstFormat && rtpPT.code == AST_RTP_DTMF)
return -1;
@@ -1344,6 +1340,11 @@ static int bridge_p2p_rtp_write(struct ast_rtp *rtp, struct ast_rtp *bridged, un
/* Otherwise adjust bridged payload to match */
bridged_payload = ast_rtp_lookup_code(bridged, rtpPT.isAstFormat, rtpPT.code);
+ /* If the payload coming in is not one of the negotiated ones then send it to the core, this will cause formats to change and the bridge to break */
+ if (!bridged->current_RTP_PT[bridged_payload].code)
+ return -1;
+
+
/* If the mark bit has not been sent yet... do it now */
if (!ast_test_flag(rtp, FLAG_P2P_SENT_MARK)) {
mark = 1;