aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-20 20:59:06 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-20 20:59:06 +0000
commit3674ae02ec50cfda8e90bb6cbfcbda3806398e5c (patch)
tree22e071f64a8e76deb0ba7f9469d0b4116e0a2b70 /res
parent67f990dc2fac8834c0a5fef5276ed39327d7db48 (diff)
Do not queue up DTMF frames while a call is on hold.
(Fixes ABE-2110) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@278167 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_features.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/res/res_features.c b/res/res_features.c
index 9298e6c8f..52f4449cd 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -695,6 +695,7 @@ static int builtin_automonitor(struct ast_channel *chan, struct ast_channel *pee
if (!ast_strlen_zero(courtesytone)) {
if (ast_autoservice_start(callee_chan))
return -1;
+ ast_autoservice_ignore(callee_chan, AST_FRAME_DTMF_END);
if (ast_stream_and_wait(caller_chan, courtesytone, caller_chan->language, "")) {
ast_log(LOG_WARNING, "Failed to play courtesy tone!\n");
ast_autoservice_stop(callee_chan);
@@ -798,6 +799,7 @@ static int builtin_blindtransfer(struct ast_channel *chan, struct ast_channel *p
transferer_real_context = real_ctx(transferer, transferee);
/* Start autoservice on chan while we talk to the originator */
ast_autoservice_start(transferee);
+ ast_autoservice_ignore(transferee, AST_FRAME_DTMF_END);
ast_indicate(transferee, AST_CONTROL_HOLD);
memset(xferto, 0, sizeof(xferto));
@@ -914,6 +916,7 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
transferer_real_context = real_ctx(transferer, transferee);
/* Start autoservice on chan while we talk to the originator */
ast_autoservice_start(transferee);
+ ast_autoservice_ignore(transferee, AST_FRAME_DTMF_END);
ast_indicate(transferee, AST_CONTROL_HOLD);
/* Transfer */
@@ -1229,6 +1232,7 @@ static int feature_exec_app(struct ast_channel *chan, struct ast_channel *peer,
}
ast_autoservice_start(idle);
+ ast_autoservice_ignore(idle, AST_FRAME_DTMF_END);
if (!ast_strlen_zero(feature->moh_class))
ast_moh_start(idle, feature->moh_class, NULL);