|
|
|
@ -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);
|
|
|
|
|