aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_externalivr.c
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-01-23 04:45:43 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-01-23 04:45:43 +0000
commitaf01b998e166ba200b112d5467dc4ec651a8fc94 (patch)
treef8f819934cc5b65a3cdbd940a78ed6545a1d711b /apps/app_externalivr.c
parentf6e99009de04b34aa5c59dee7c2a38b5fc604168 (diff)
Make 'H' command do as advertised and add 'E' and 'V' commands to ExternalIVR. (issue #8165 reported by mnicholson)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@51592 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_externalivr.c')
-rw-r--r--apps/app_externalivr.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/apps/app_externalivr.c b/apps/app_externalivr.c
index 5e8144583..7f2071630 100644
--- a/apps/app_externalivr.c
+++ b/apps/app_externalivr.c
@@ -487,9 +487,15 @@ static int app_exec(struct ast_channel *chan, void *data)
AST_LIST_INSERT_TAIL(&u->playlist, entry, list);
AST_LIST_UNLOCK(&u->playlist);
}
+ } else if (input[0] == 'E') {
+ ast_chan_log(LOG_NOTICE, chan, "Exiting: %s\n", &input[2]);
+ send_child_event(child_events, 'E', NULL, chan);
+ res = 0;
+ break;
} else if (input[0] == 'H') {
ast_chan_log(LOG_NOTICE, chan, "Hanging up: %s\n", &input[2]);
send_child_event(child_events, 'H', NULL, chan);
+ res = -1;
break;
} else if (input[0] == 'O') {
if (!strcasecmp(&input[2], "autoclear"))
@@ -498,6 +504,15 @@ static int app_exec(struct ast_channel *chan, void *data)
u->option_autoclear = 0;
else
ast_chan_log(LOG_WARNING, chan, "Unknown option requested '%s'\n", &input[2]);
+ } else if (input[0] == 'V') {
+ char *c;
+ c = strchr(&input[2], '=');
+ if (!c) {
+ send_child_event(child_events, 'Z', NULL, chan);
+ } else {
+ *c++ = '\0';
+ pbx_builtin_setvar_helper(chan, &input[2], c);
+ }
}
} else if (ready_fd == child_errors_fd) {
char input[1024];