aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-25 21:22:06 +0000
committerjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-25 21:22:06 +0000
commit13bae1ccdd71c7814329947589320603a3ab6628 (patch)
tree2525b8b3dcb06633a11c9baa7607298a32f08ef4
parentd3fe19b246d934e263fe45466e48fc7d5cd1938d (diff)
Ensure that monitor recordings are written to the correct location (again)
This is an extension to 248757. As such the dialplan test has been extended: exten => 5040, 1, monitor(wav,tmp/jeff/monitor_test,b) exten => 5040, n, dial(sip/5001) exten => 5041, 1, monitor(wav,/tmp/jeff/monitor_test2,b) exten => 5041, n, dial(sip/5001) exten => 5042, 1, monitor(wav,monitor_test3,b) exten => 5042, n, dial(sip/5001) exten => 5043, 1, monitor(wav,tmp/jeff/monitor_test3,m) exten => 5043, n, changemonitor(monitor_test4) exten => 5043, n, dial(sip/5001) exten => 5044, 1, monitor(wav,monitor_test4,m) exten => 5044, n, changemonitor(tmp/jeff/monitor_test5) ; this looks to fail by design and emits a warning exten => 5044, n, dial(sip/5001) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@248860 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--res/res_monitor.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/res/res_monitor.c b/res/res_monitor.c
index f5e0911f7..803bca2d1 100644
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -377,12 +377,12 @@ int ast_monitor_change_fname(struct ast_channel *chan, const char *fname_base, i
if (chan->monitor) {
int directory = strchr(fname_base, '/') ? 1 : 0;
- const char *absolute = *fname_base == '/' ? "" : "/";
+ const char *absolute = *fname_base == '/' ? "" : ast_config_AST_MONITOR_DIR;
char tmpstring[sizeof(chan->monitor->filename_base)] = "";
int i, fd[2] = { -1, -1 }, doexit = 0;
/* before continuing, see if we're trying to rename the file to itself... */
- snprintf(tmpstring, sizeof(tmpstring), "%s%s%s", directory ? "" : ast_config_AST_MONITOR_DIR, absolute, fname_base);
+ snprintf(tmpstring, sizeof(tmpstring), "%s/%s", absolute, fname_base);
/*!\note We cannot just compare filenames, due to symlinks, relative
* paths, and other possible filesystem issues. We could use
@@ -427,7 +427,7 @@ int ast_monitor_change_fname(struct ast_channel *chan, const char *fname_base, i
/* try creating the directory just in case it doesn't exist */
if (directory) {
char *name = strdup(fname_base);
- snprintf(tmp, sizeof(tmp), "mkdir -p %s",dirname(name));
+ snprintf(tmp, sizeof(tmp), "mkdir -p \"%s/%s\"", absolute, dirname(name));
free(name);
ast_safe_system(tmp);
}