Merged revisions 176708 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

................
  r176708 | jpeeler | 2009-02-17 16:08:00 -0600 (Tue, 17 Feb 2009) | 23 lines
  
  Merged revisions 176701 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r176701 | jpeeler | 2009-02-17 15:54:34 -0600 (Tue, 17 Feb 2009) | 17 lines
    
    Modify bridging to properly evaluate DTMF after first warning is played
    
    The main problem is currently if the Dial flag L is used with a warning sound,
    DTMF is not evaluated after the first warning sound. To fix this, a flag has 
    been added in ast_generic_bridge for playing the warning which ensures that if
    a scheduled warning is missed, multiple warrnings are not played back (due to a
    feature evaluation or waiting for digits). ast_channel_bridge was modified to
    store the nexteventts in the ast_bridge_config structure as that information
    was lost every time ast_channel_bridge was reentered, causing a hangup due to
    incorrect time calculations.
    
    (closes issue #14315)
    Reported by: tim_ringenbach
    
    Reviewed on reviewboard:
    http://reviewboard.digium.com/r/163/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@176710 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jeff Peeler
2009-02-17 22:14:38 +00:00
parent 24ef2a922e
commit 46db811169
3 changed files with 33 additions and 14 deletions

View File

@@ -2267,6 +2267,15 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast
if (config->feature_timer) {
/* Update time limit for next pass */
diff = ast_tvdiff_ms(ast_tvnow(), config->start_time);
if (res == AST_BRIDGE_RETRY) {
/* The feature fully timed out but has not been updated. Skip
* the potential round error from the diff calculation and
* explicitly set to expired. */
config->feature_timer = -1;
} else {
config->feature_timer -= diff;
}
config->feature_timer -= diff;
if (hasfeatures) {
/* Running on backup config, meaning a feature might be being