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
This commit is contained in:
Sean Bright
2017-02-09 11:01:22 -05:00
parent c7fcc4468f
commit 8936568515
7 changed files with 51 additions and 25 deletions

View File

@@ -74,7 +74,9 @@ static char *orig_app(int fd, const char *chan, const char *app, const char *app
return CLI_FAILURE;
}
ast_format_cap_append(cap, ast_format_slin, 0);
ast_pbx_outgoing_app(chantech, cap, chandata, TIMEOUT * 1000, app, appdata, &reason, 0, NULL, NULL, NULL, NULL, NULL, NULL);
ast_pbx_outgoing_app(chantech, cap, chandata, TIMEOUT * 1000, app, appdata,
&reason, AST_OUTGOING_NO_WAIT, NULL, NULL, NULL, NULL,
NULL, NULL);
ao2_ref(cap, -1);
return CLI_SUCCESS;
@@ -118,7 +120,9 @@ static char *orig_exten(int fd, const char *chan, const char *data)
return CLI_FAILURE;
}
ast_format_cap_append(cap, ast_format_slin, 0);
ast_pbx_outgoing_exten(chantech, cap, chandata, TIMEOUT * 1000, context, exten, 1, &reason, 0, NULL, NULL, NULL, NULL, NULL, 0, NULL);
ast_pbx_outgoing_exten(chantech, cap, chandata, TIMEOUT * 1000, context,
exten, 1, &reason, AST_OUTGOING_NO_WAIT, NULL, NULL,
NULL, NULL, NULL, 0, NULL);
ao2_ref(cap, -1);
return CLI_SUCCESS;