diff options
Diffstat (limited to 'main/features.c')
-rw-r--r-- | main/features.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/main/features.c b/main/features.c index 0668ae657..d2f989835 100644 --- a/main/features.c +++ b/main/features.c @@ -978,6 +978,7 @@ static int play_message_in_bridged_call(struct ast_channel *caller_chan, struct /* First play for caller, put other channel on auto service */ if (ast_autoservice_start(callee_chan)) return -1; + ast_autoservice_ignore(callee_chan, AST_FRAME_DTMF_END); if (ast_stream_and_wait(caller_chan, audiofile, "")) { ast_log(LOG_WARNING, "Failed to play automon message!\n"); ast_autoservice_stop(callee_chan); @@ -988,6 +989,7 @@ static int play_message_in_bridged_call(struct ast_channel *caller_chan, struct /* Then play for callee, put other channel on auto service */ if (ast_autoservice_start(caller_chan)) return -1; + ast_autoservice_ignore(caller_chan, AST_FRAME_DTMF_END); if (ast_stream_and_wait(callee_chan, audiofile, "")) { ast_log(LOG_WARNING, "Failed to play automon message !\n"); ast_autoservice_stop(caller_chan); @@ -1130,6 +1132,7 @@ static int builtin_automixmonitor(struct ast_channel *chan, struct ast_channel * 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, "")) { ast_log(LOG_WARNING, "Failed to play courtesy tone!\n"); ast_autoservice_stop(callee_chan); @@ -1277,6 +1280,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)); @@ -1418,6 +1422,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 */ @@ -1624,6 +1629,7 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st while (!newchan && !atxferdropcall && tries < atxfercallbackretries) { /* Trying to transfer again */ ast_autoservice_start(transferee); + ast_autoservice_ignore(transferee, AST_FRAME_DTMF_END); ast_indicate(transferee, AST_CONTROL_HOLD); newchan = feature_request_and_dial(transferer, transferee, "Local", ast_best_codec(transferer->nativeformats), @@ -1964,6 +1970,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); |