aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-07 17:57:37 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-07 17:57:37 +0000
commitbec9a4355a1ec83b28869c42ee207a9b9785a7b1 (patch)
tree5432ee3c10f410eaf96fa938a195fb14348d9ebb /main
parent3b679d120a3dccce95dd24f64f69a0504ef2ecc6 (diff)
Merged revisions 53434 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r53434 | file | 2007-02-07 12:53:03 -0500 (Wed, 07 Feb 2007) | 2 lines We can not reliably do P2P bridging with DTMF passing back with compensation if we need to listen for DTMF frames. (issue #8962 reported by caio1982) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@53435 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/rtp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/main/rtp.c b/main/rtp.c
index ea4366702..21310e1e7 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -3348,6 +3348,14 @@ enum ast_bridge_result ast_rtp_bridge(struct ast_channel *c0, struct ast_channel
audio_p1_res = AST_RTP_TRY_PARTIAL;
}
+ /* If the core will need to compensate and the P2P bridge will need to feed up DTMF frames then we can not reliably do so yet, so do not P2P bridge */
+ if ((audio_p0_res == AST_RTP_TRY_PARTIAL && ast_test_flag(p0, FLAG_P2P_NEED_DTMF) && ast_test_flag(p0, FLAG_DTMF_COMPENSATE)) ||
+ (audio_p1_res == AST_RTP_TRY_PARTIAL && ast_test_flag(p1, FLAG_P2P_NEED_DTMF) && ast_test_flag(p1, FLAG_DTMF_COMPENSATE))) {
+ ast_channel_unlock(c0);
+ ast_channel_unlock(c1);
+ return AST_BRIDGE_FAILED_NOWARN;
+ }
+
/* Get codecs from both sides */
codec0 = pr0->get_codec ? pr0->get_codec(c0) : 0;
codec1 = pr1->get_codec ? pr1->get_codec(c1) : 0;