aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_dial.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-03 20:44:20 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-03 20:44:20 +0000
commit44c97e07a65646bf2d1fc8a7280fd6e65bd893bc (patch)
tree56c10c1872d9fd0161a612d81857273b97fee2af /apps/app_dial.c
parentfb3ba2f541e29d4411bdb3a3b3138516bf5c8fdc (diff)
Merged revisions 53133 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r53133 | russell | 2007-02-03 14:38:13 -0600 (Sat, 03 Feb 2007) | 4 lines set the DIALSTATUS variable to contain "INVALIDARGS" when the dial application exits early because of invalid arguments instead of just leaving it empty. (issue #8975) ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@53136 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_dial.c')
-rw-r--r--apps/app_dial.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index fefe4847e..72baab797 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -82,7 +82,7 @@ static char *descrip =
" ANSWEREDTIME - This is the amount of time for actual call.\n"
" DIALSTATUS - This is the status of the call:\n"
" CHANUNAVAIL | CONGESTION | NOANSWER | BUSY | ANSWER | CANCEL\n"
-" DONTCALL | TORTURE\n"
+" DONTCALL | TORTURE | INVALIDARGS\n"
" For the Privacy and Screening Modes, the DIALSTATUS variable will be set to\n"
"DONTCALL if the called party chooses to send the calling party to the 'Go Away'\n"
"script. The DIALSTATUS variable will be set to TORTURE if the called party\n"
@@ -793,7 +793,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
const char *end_sound = NULL;
const char *start_sound = NULL;
char *dtmfcalled = NULL, *dtmfcalling = NULL;
- char status[256];
+ char status[256] = "INVALIDARGS";
int play_to_caller = 0, play_to_callee = 0;
int sentringing = 0, moh = 0;
const char *outbound_group = NULL;
@@ -814,21 +814,25 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Dial requires an argument (technology/number)\n");
+ pbx_builtin_setvar_helper(chan, "DIALSTATUS", status);
return -1;
}
u = ast_module_user_add(chan);
parse = ast_strdupa(data);
-
+
AST_STANDARD_APP_ARGS(args, parse);
if (!ast_strlen_zero(args.options) &&
- ast_app_parse_options(dial_exec_options, &opts, opt_args, args.options))
+ ast_app_parse_options(dial_exec_options, &opts, opt_args, args.options)) {
+ pbx_builtin_setvar_helper(chan, "DIALSTATUS", status);
goto done;
+ }
if (ast_strlen_zero(args.peers)) {
ast_log(LOG_WARNING, "Dial requires an argument (technology/number)\n");
+ pbx_builtin_setvar_helper(chan, "DIALSTATUS", status);
goto done;
}
@@ -844,6 +848,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
calldurationlimit = atoi(opt_args[OPT_ARG_DURATION_STOP]);
if (!calldurationlimit) {
ast_log(LOG_WARNING, "Dial does not accept S(%s), hanging up.\n", opt_args[OPT_ARG_DURATION_STOP]);
+ pbx_builtin_setvar_helper(chan, "DIALSTATUS", status);
goto done;
}
if (option_verbose > 2)