[asterisk-commits] kmoore: trunk r396385 - /trunk/main/bridge.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Aug 8 07:38:15 CDT 2013


Author: kmoore
Date: Thu Aug  8 07:38:06 2013
New Revision: 396385

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=396385
Log:
Prevent unreal channels from optimizing during DTMF emulation

This prevents unreal channel optimization during the prequalification
phase when either channel is involved in DTMF emulation. This prevents
a situation where an emulated digit would be missed because the
emulation was never completed.

Review: https://reviewboard.asterisk.org/r/2747/
(closes issue ASTERISK-22214)

Modified:
    trunk/main/bridge.c

Modified: trunk/main/bridge.c
URL: http://svnview.digium.com/svn/asterisk/trunk/main/bridge.c?view=diff&rev=396385&r1=396384&r2=396385
==============================================================================
--- trunk/main/bridge.c (original)
+++ trunk/main/bridge.c Thu Aug  8 07:38:06 2013
@@ -2198,6 +2198,9 @@
 	if (!AST_LIST_EMPTY(ast_channel_readq(chan))) {
 		return NULL;
 	}
+	if (ast_test_flag(ast_channel_flags(chan), AST_FLAG_EMULATE_DTMF)) {
+		return NULL;
+	}
 	if (ast_channel_has_audio_frame_or_monitor(chan)) {
 		/* Channel has an active monitor, audiohook, or framehook. */
 		return NULL;
@@ -2241,6 +2244,10 @@
 		return NULL;
 	}
 	if (!AST_LIST_EMPTY(ast_channel_readq(peer))) {
+		ast_channel_unlock(peer);
+		return NULL;
+	}
+	if (ast_test_flag(ast_channel_flags(peer), AST_FLAG_EMULATE_DTMF)) {
 		ast_channel_unlock(peer);
 		return NULL;
 	}




More information about the asterisk-commits mailing list