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:
Jeff Peeler
2009-02-17 21:54:34 +00:00
parent 7799945eb9
commit de8f6bab86
3 changed files with 33 additions and 15 deletions

View File

@@ -529,12 +529,14 @@ enum {
AST_FEATURE_AUTOMON = (1 << 4),
AST_FEATURE_PARKCALL = (1 << 5),
AST_FEATURE_NO_H_EXTEN = (1 << 6),
AST_FEATURE_WARNING_ACTIVE = (1 << 7),
};
struct ast_bridge_config {
struct ast_flags features_caller;
struct ast_flags features_callee;
struct timeval start_time;
struct timeval nexteventts;
long feature_timer;
long timelimit;
long play_warning;