summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2005-01-10 04:29:33 +0000
committerMark Spencer <markster@digium.com>2005-01-10 04:29:33 +0000
commit34ff76582041593e5c96a65e24a8e51f1918bee0 (patch)
tree900297b03659a874c5661e3bf9f601e3c7577b1d /res
parentb629af806ed1a81c46bc5e725a046820400d8df9 (diff)
Merge anthm's monitor fixes (better default path, set variable for monitor) (bug #3266)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4745 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rwxr-xr-xres/res_monitor.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/res/res_monitor.c b/res/res_monitor.c
index 0603ad9f5..4c93517db 100755
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -122,14 +122,17 @@ int ast_monitor_start( struct ast_channel *chan, const char *format_spec,
seq++;
ast_mutex_unlock(&monitorlock);
- channel_name = strdup(chan->name);
- while((p = strchr(channel_name, '/'))) {
- *p = '-';
+ if((channel_name = ast_strdupa(chan->name))) {
+ while((p = strchr(channel_name, '/'))) {
+ *p = '-';
+ }
+ snprintf(monitor->filename_base, FILENAME_MAX, "%s/%ld-%s",
+ AST_MONITOR_DIR, time(NULL),channel_name);
+ monitor->filename_changed = 1;
+ } else {
+ ast_log(LOG_ERROR,"Failed to allocate Memory\n");
+ return -1;
}
- snprintf(monitor->filename_base, FILENAME_MAX, "%s/%s",
- AST_MONITOR_DIR, channel_name);
- monitor->filename_changed = 1;
- free(channel_name);
}
monitor->stop = ast_monitor_stop;
@@ -168,6 +171,8 @@ int ast_monitor_start( struct ast_channel *chan, const char *format_spec,
return -1;
}
chan->monitor = monitor;
+ /* so we know this call has been monitored in case we need to bill for it or something */
+ pbx_builtin_setvar_helper(chan, "__MONITORED","true");
} else {
ast_log(LOG_DEBUG,"Cannot start monitoring %s, already monitored\n",
chan->name);