diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-01-23 04:45:43 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-01-23 04:45:43 +0000 |
commit | af01b998e166ba200b112d5467dc4ec651a8fc94 (patch) | |
tree | f8f819934cc5b65a3cdbd940a78ed6545a1d711b /apps | |
parent | f6e99009de04b34aa5c59dee7c2a38b5fc604168 (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')
-rw-r--r-- | apps/app_externalivr.c | 15 |
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]; |