Author: rmudgett Date: Mon Nov 24 14:31:08 2014 New Revision: 428602 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=428602 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/ ........ Merged revisions 428601 from http://svn.asterisk.org/svn/asterisk/branches/12 Modified: branches/13/ (props changed) branches/13/main/bridge.c branches/13/main/bridge_channel.c Propchange: branches/13/ ------------------------------------------------------------------------------ Binary property 'branch-12-merged' - no diff available. Modified: branches/13/main/bridge.c URL: http://svnview.digium.com/svn/asterisk/branches/13/main/bridge.c?view=diff&rev=428602&r1=428601&r2=428602 ============================================================================== --- branches/13/main/bridge.c (original) +++ branches/13/main/bridge.c Mon Nov 24 14:31:08 2014 @@ -1764,8 +1764,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/13/main/bridge_channel.c URL: http://svnview.digium.com/svn/asterisk/branches/13/main/bridge_channel.c?view=diff&rev=428602&r1=428601&r2=428602 ============================================================================== --- branches/13/main/bridge_channel.c (original) +++ branches/13/main/bridge_channel.c Mon Nov 24 14:31:08 2014 @@ -2564,10 +2564,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); } -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits
