From 0910773077f065a45e975c1a5914be084d9a4bdc Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Thu, 9 Feb 2017 11:01:22 -0500 Subject: manager: Restore Originate failure behavior from Asterisk 11 In Asterisk 11, if the 'Originate' AMI command failed to connect the provided Channel while in extension mode, a 'failed' extension would be looked up and run. This was, I believe, unintentionally removed in 51b6c49. This patch restores that behavior. This also adds an enum for the various 'synchronous' modes in an attempt to make them meaningful. ASTERISK-26115 #close Reported by: Nasir Iqbal Change-Id: I8afbd06725e99610e02adb529137d4800c05345d --- pbx/pbx_spool.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'pbx/pbx_spool.c') diff --git a/pbx/pbx_spool.c b/pbx/pbx_spool.c index dcd2ce734..ba91d66ab 100644 --- a/pbx/pbx_spool.c +++ b/pbx/pbx_spool.c @@ -397,15 +397,17 @@ static void *attempt_thread(void *data) int res, reason; if (!ast_strlen_zero(o->app)) { ast_verb(3, "Attempting call on %s/%s for application %s(%s) (Retry %d)\n", o->tech, o->dest, o->app, o->data, o->retries); - res = ast_pbx_outgoing_app(o->tech, o->capabilities, o->dest, o->waittime * 1000, - o->app, o->data, &reason, 2 /* wait to finish */, o->cid_num, o->cid_name, + res = ast_pbx_outgoing_app(o->tech, o->capabilities, o->dest, + o->waittime * 1000, o->app, o->data, &reason, + AST_OUTGOING_WAIT_COMPLETE, o->cid_num, o->cid_name, o->vars, o->account, NULL, NULL); } else { ast_verb(3, "Attempting call on %s/%s for %s@%s:%d (Retry %d)\n", o->tech, o->dest, o->exten, o->context,o->priority, o->retries); res = ast_pbx_outgoing_exten(o->tech, o->capabilities, o->dest, o->waittime * 1000, o->context, o->exten, o->priority, &reason, - 2 /* wait to finish */, o->cid_num, o->cid_name, o->vars, o->account, NULL, - ast_test_flag(&o->options, SPOOL_FLAG_EARLY_MEDIA), NULL); + AST_OUTGOING_WAIT_COMPLETE, o->cid_num, o->cid_name, + o->vars, o->account, NULL, ast_test_flag(&o->options, SPOOL_FLAG_EARLY_MEDIA), + NULL); } if (res) { ast_log(LOG_NOTICE, "Call failed to go through, reason (%d) %s\n", reason, ast_channel_reason2str(reason)); -- cgit v1.2.3