mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
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
This commit is contained in:
@@ -104,6 +104,9 @@ ${QUEUE_PRIO} Queue priority
|
||||
The following variables can be set to change certian behaviour:
|
||||
${TOUCH_MONITOR} The filename base to use with Touch Monitor (auto record)
|
||||
|
||||
The monitor application sets the following variable:
|
||||
${MONITOR} Set to "true" if the channel is/has been monitored.
|
||||
|
||||
There are two reference modes - reference by value and reference by name.
|
||||
To refer to a variable with its name (as an argument to a function that
|
||||
requires a variable), just write the name. To refer to the variable's value,
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user