[asterisk-commits] rmudgett: branch 12 r428601 - in /branches/12/main: bridge.c bridge_channel.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Nov 24 14:26:45 CST 2014


Author: rmudgett
Date: Mon Nov 24 14:26:37 2014
New Revision: 428601

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=428601
Log:
DTMF hooks: Leaving channels need to push any collected digits into the bridge.

Any partially collected DTMF digits for a DTMF hook need to be pushed into
the bridge when a channel leaves the bridging system as if there were a
timeout.

Review: https://reviewboard.asterisk.org/r/4199/

Modified:
    branches/12/main/bridge.c
    branches/12/main/bridge_channel.c

Modified: branches/12/main/bridge.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/bridge.c?view=diff&rev=428601&r1=428600&r2=428601
==============================================================================
--- branches/12/main/bridge.c (original)
+++ branches/12/main/bridge.c Mon Nov 24 14:26:37 2014
@@ -1754,8 +1754,8 @@
 	}
 
 	/*
-	 * We are claiming the reference held by the depart bridge
-	 * channel thread.
+	 * We are claiming the bridge_channel reference held by
+	 * bridge_channel_depart_thread().
 	 */
 
 	ast_bridge_channel_leave_bridge(bridge_channel,

Modified: branches/12/main/bridge_channel.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/bridge_channel.c?view=diff&rev=428601&r1=428600&r2=428601
==============================================================================
--- branches/12/main/bridge_channel.c (original)
+++ branches/12/main/bridge_channel.c Mon Nov 24 14:26:37 2014
@@ -2540,10 +2540,15 @@
 
 		ast_bridge_unlock(bridge_channel->bridge);
 		bridge_channel_event_join_leave(bridge_channel, AST_BRIDGE_HOOK_TYPE_JOIN);
+
 		while (bridge_channel->state == BRIDGE_CHANNEL_STATE_WAIT) {
 			/* Wait for something to do. */
 			bridge_channel_wait(bridge_channel);
 		}
+
+		/* Force a timeout on any accumulated DTMF hook digits. */
+		ast_bridge_channel_feature_digit(bridge_channel, 0);
+
 		bridge_channel_event_join_leave(bridge_channel, AST_BRIDGE_HOOK_TYPE_LEAVE);
 		ast_bridge_channel_lock_bridge(bridge_channel);
 	}




More information about the asterisk-commits mailing list