summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2014-04-09 21:43:23 +0000
committerMark Michelson <mmichelson@digium.com>2014-04-09 21:43:23 +0000
commit755696dcd0b9144754a914129e80116da1ebdbd8 (patch)
treea2610547eab064d96f9612ae2cfd6584061b11e9 /apps
parentc613ef6b308cbb18a4eea0549b797ecba6e1094b (diff)
Add a Command header to the AMI Mixmonitor action.
This fixes a parsing error that occurred during the processing of the AMI action. The error did not result in MixMonitor itself misbehaving, but it could result in the AMI response not giving correct information back. The new header allows for one to specify a post-process command to run when recording finishes. Previously, in order to do this, the post-process command would have to be placed at the end of the Options: header. Patches: mixmonitor_command_2.patch by jhardin (License #6512) ........ Merged revisions 412048 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412050 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rw-r--r--apps/app_mixmonitor.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c
index 4fe629dce..a5d383cbc 100644
--- a/apps/app_mixmonitor.c
+++ b/apps/app_mixmonitor.c
@@ -208,6 +208,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
would apply if invoked from the MixMonitor application. For a list of
available options, see the documentation for the mixmonitor application. </para>
</parameter>
+ <parameter name="Command">
+ <para>Will be executed when the recording is over.
+ Any strings matching <literal>^{X}</literal> will be unescaped to <variable>X</variable>.
+ All variables will be evaluated at the time MixMonitor is called.</para>
+ </parameter>
</syntax>
<description>
<para>This action records the audio on the current channel to the specified file.</para>
@@ -1292,6 +1297,7 @@ static int manager_mixmonitor(struct mansession *s, const struct message *m)
const char *id = astman_get_header(m, "ActionID");
const char *file = astman_get_header(m, "File");
const char *options = astman_get_header(m, "Options");
+ const char *command = astman_get_header(m, "Command");
char *opts[OPT_ARG_ARRAY_SIZE] = { NULL, };
struct ast_flags flags = { 0 };
char *uid_channel_var = NULL;
@@ -1314,7 +1320,7 @@ static int manager_mixmonitor(struct mansession *s, const struct message *m)
ast_app_parse_options(mixmonitor_opts, &flags, opts, ast_strdupa(options));
}
- snprintf(args, sizeof(args), "%s,%s", file, options);
+ snprintf(args, sizeof(args), "%s,%s,%s", file, options, command);
res = mixmonitor_exec(c, args);