Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
authorRussell Bryant <russell@russellbryant.com>
Mon, 15 Oct 2007 20:08:04 +0000 (20:08 +0000)
committerRussell Bryant <russell@russellbryant.com>
Mon, 15 Oct 2007 20:08:04 +0000 (20:08 +0000)
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
res/res_features.c

diff --git a/CHANGES b/CHANGES
index 71f4f1b..631e528 100644 (file)
--- 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.
index e45d021..9bf0914 100644 (file)
@@ -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);
                }