[asterisk-commits] file: trunk r187108 - /trunk/main/rtp_engine.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Apr 8 13:12:32 CDT 2009


Author: file
Date: Wed Apr  8 13:12:28 2009
New Revision: 187108

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=187108
Log:
Fix a bug where we would native bridge when we did not want to.

Modified:
    trunk/main/rtp_engine.c

Modified: trunk/main/rtp_engine.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/main/rtp_engine.c?view=diff&rev=187108&r1=187107&r2=187108
==============================================================================
--- trunk/main/rtp_engine.c (original)
+++ trunk/main/rtp_engine.c Wed Apr  8 13:12:28 2009
@@ -1186,6 +1186,16 @@
 		goto done;
 	}
 
+	/* If we need to get DTMF see if we can do it outside of the RTP stream itself */
+	if ((flags & AST_BRIDGE_DTMF_CHANNEL_0) && instance0->properties[AST_RTP_PROPERTY_DTMF]) {
+		res = AST_BRIDGE_FAILED_NOWARN;
+		goto done;
+	}
+	if ((flags & AST_BRIDGE_DTMF_CHANNEL_1) && instance1->properties[AST_RTP_PROPERTY_DTMF]) {
+		res = AST_BRIDGE_FAILED_NOWARN;
+		goto done;
+	}
+
 	/* If we have gotten to a local bridge make sure that both sides have the same local bridge callback and that they are DTMF compatible */
 	if ((audio_glue0_res == AST_RTP_GLUE_RESULT_LOCAL || audio_glue1_res == AST_RTP_GLUE_RESULT_LOCAL) && ((instance0->engine->local_bridge != instance1->engine->local_bridge) || (instance0->engine->dtmf_compatible && !instance0->engine->dtmf_compatible(c0, instance0, c1, instance1)))) {
 		res = AST_BRIDGE_FAILED_NOWARN;




More information about the asterisk-commits mailing list