From ea02f3d0c5383c181202da67d7a3e3fc2f6647d2 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Mon, 15 Oct 2007 20:08:04 +0000 Subject: [PATCH] Added support for reading the TOUCH_MONITOR_PREFIX channel variable. It allows you to configure a prefix for auto-monitor recordings. (closes issue #6353) Reported by: ivanfm Patches: asterisk_automon_v4.patch uploaded by ivanfm (original patch) - updated patch: 6353-touch_monitor_prefix.diff uploaded by qwell (license 4) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85682 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- CHANGES | 2 ++ res/res_features.c | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 71f4f1b9d6..631e528d53 100644 --- a/CHANGES +++ b/CHANGES @@ -295,3 +295,5 @@ Miscellaneous SIP call to Voicemail by putting a Local channel in the middle. This feature is enabled by using the 'j' option in the Dial string to the Local channel in conjunction with the existing 'n' option for local channels. + * Added support for reading the TOUCH_MONITOR_PREFIX channel variable. + It allows you to configure a prefix for auto-monitor recordings. diff --git a/res/res_features.c b/res/res_features.c index e45d021849..9bf0914e97 100644 --- a/res/res_features.c +++ b/res/res_features.c @@ -672,6 +672,7 @@ static int builtin_automonitor(struct ast_channel *chan, struct ast_channel *pee if (caller_chan && callee_chan) { const char *touch_format = pbx_builtin_getvar_helper(caller_chan, "TOUCH_MONITOR_FORMAT"); const char *touch_monitor = pbx_builtin_getvar_helper(caller_chan, "TOUCH_MONITOR"); + const char *touch_monitor_prefix = pbx_builtin_getvar_helper(caller_chan, "TOUCH_MONITOR_PREFIX"); if (!touch_format) touch_format = pbx_builtin_getvar_helper(callee_chan, "TOUCH_MONITOR_FORMAT"); @@ -679,19 +680,22 @@ static int builtin_automonitor(struct ast_channel *chan, struct ast_channel *pee if (!touch_monitor) touch_monitor = pbx_builtin_getvar_helper(callee_chan, "TOUCH_MONITOR"); + if (!touch_monitor_prefix) + touch_monitor_prefix = pbx_builtin_getvar_helper(callee_chan, "TOUCH_MONITOR_PREFIX"); + if (touch_monitor) { len = strlen(touch_monitor) + 50; args = alloca(len); touch_filename = alloca(len); - snprintf(touch_filename, len, "auto-%ld-%s", (long)time(NULL), touch_monitor); - snprintf(args, len, "%s|%s|m", (touch_format) ? touch_format : "wav", touch_filename); + snprintf(touch_filename, len, "%s-%ld-%s", S_OR(touch_monitor_prefix, "auto"), (long)time(NULL), touch_monitor); + snprintf(args, len, "%s|%s|m", S_OR(touch_format, "wav"), touch_filename); } else { caller_chan_id = ast_strdupa(S_OR(caller_chan->cid.cid_num, caller_chan->name)); callee_chan_id = ast_strdupa(S_OR(callee_chan->cid.cid_num, callee_chan->name)); len = strlen(caller_chan_id) + strlen(callee_chan_id) + 50; args = alloca(len); touch_filename = alloca(len); - snprintf(touch_filename, len, "auto-%ld-%s-%s", (long)time(NULL), caller_chan_id, callee_chan_id); + snprintf(touch_filename, len, "%s-%ld-%s-%s", S_OR(touch_monitor_prefix, "auto"), (long)time(NULL), caller_chan_id, callee_chan_id); snprintf(args, len, "%s|%s|m", S_OR(touch_format, "wav"), touch_filename); }