mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-11 23:28:59 +00:00
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.4@176701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1730,7 +1730,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);
|
||||
config->feature_timer -= diff;
|
||||
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;
|
||||
}
|
||||
|
||||
if (hasfeatures) {
|
||||
/* Running on backup config, meaning a feature might be being
|
||||
activated, but that's no excuse to keep things going
|
||||
|
Reference in New Issue
Block a user