|
|
|
@ -93,7 +93,7 @@ int ast_monitor_start( struct ast_channel *chan, const char *format_spec,
|
|
|
|
|
memset(monitor, 0, sizeof(struct ast_channel_monitor));
|
|
|
|
|
|
|
|
|
|
/* Determine file names */
|
|
|
|
|
if( fname_base && strlen( fname_base ) ) {
|
|
|
|
|
if (fname_base && !ast_strlen_zero(fname_base)) {
|
|
|
|
|
int directory = strchr(fname_base, '/') ? 1 : 0;
|
|
|
|
|
/* try creating the directory just in case it doesn't exist */
|
|
|
|
|
if (directory) {
|
|
|
|
@ -129,7 +129,7 @@ int ast_monitor_start( struct ast_channel *chan, const char *format_spec,
|
|
|
|
|
monitor->stop = ast_monitor_stop;
|
|
|
|
|
|
|
|
|
|
// Determine file format
|
|
|
|
|
if( format_spec && strlen( format_spec ) ) {
|
|
|
|
|
if (format_spec && !ast_strlen_zero(format_spec)) {
|
|
|
|
|
monitor->format = strdup(format_spec);
|
|
|
|
|
} else {
|
|
|
|
|
monitor->format = strdup("wav");
|
|
|
|
@ -197,7 +197,7 @@ int ast_monitor_stop( struct ast_channel *chan, int need_lock )
|
|
|
|
|
ast_closestream(chan->monitor->write_stream);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (chan->monitor->filename_changed&&strlen(chan->monitor->filename_base)) {
|
|
|
|
|
if (chan->monitor->filename_changed && !ast_strlen_zero(chan->monitor->filename_base)) {
|
|
|
|
|
if (ast_fileexists(chan->monitor->read_filename,NULL,NULL) > 0) {
|
|
|
|
|
snprintf(filename, FILENAME_MAX, "%s-in", chan->monitor->filename_base);
|
|
|
|
|
if (ast_fileexists(filename, NULL, NULL) > 0) {
|
|
|
|
@ -219,7 +219,7 @@ int ast_monitor_stop( struct ast_channel *chan, int need_lock )
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (chan->monitor->joinfiles && strlen(chan->monitor->filename_base)) {
|
|
|
|
|
if (chan->monitor->joinfiles && !ast_strlen_zero(chan->monitor->filename_base)) {
|
|
|
|
|
char tmp[1024];
|
|
|
|
|
char tmp2[1024];
|
|
|
|
|
char *format = !strcasecmp(chan->monitor->format,"wav49") ? "WAV" : chan->monitor->format;
|
|
|
|
@ -262,7 +262,7 @@ int ast_monitor_stop( struct ast_channel *chan, int need_lock )
|
|
|
|
|
int ast_monitor_change_fname(struct ast_channel *chan, const char *fname_base, int need_lock)
|
|
|
|
|
{
|
|
|
|
|
char tmp[256];
|
|
|
|
|
if ((!fname_base) || (!strlen(fname_base))) {
|
|
|
|
|
if ((!fname_base) || (ast_strlen_zero(fname_base))) {
|
|
|
|
|
ast_log(LOG_WARNING, "Cannot change monitor filename of channel %s to null", chan->name);
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
@ -307,7 +307,7 @@ static int start_monitor_exec(struct ast_channel *chan, void *data)
|
|
|
|
|
int res = 0;
|
|
|
|
|
|
|
|
|
|
/* Parse arguments. */
|
|
|
|
|
if (data && strlen((char*)data)) {
|
|
|
|
|
if (data && !ast_strlen_zero((char*)data)) {
|
|
|
|
|
arg = ast_strdupa((char*)data);
|
|
|
|
|
format = arg;
|
|
|
|
|
fname_base = strchr(arg, '|');
|
|
|
|
@ -371,7 +371,7 @@ static int start_monitor_action(struct mansession *s, struct message *m)
|
|
|
|
|
char *mix = astman_get_header(m, "Mix");
|
|
|
|
|
char *d;
|
|
|
|
|
|
|
|
|
|
if ((!name)||(!strlen(name))) {
|
|
|
|
|
if ((!name) || (ast_strlen_zero(name))) {
|
|
|
|
|
astman_send_error(s, m, "No channel specified");
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@ -388,7 +388,7 @@ static int start_monitor_action(struct mansession *s, struct message *m)
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ((!fname) || (!strlen(fname))) {
|
|
|
|
|
if ((!fname) || (ast_strlen_zero(fname))) {
|
|
|
|
|
// No filename base specified, default to channel name as per CLI
|
|
|
|
|
fname = malloc (FILENAME_MAX);
|
|
|
|
|
memset(fname, 0, FILENAME_MAX);
|
|
|
|
@ -419,7 +419,7 @@ static int stop_monitor_action(struct mansession *s, struct message *m)
|
|
|
|
|
struct ast_channel *c = NULL;
|
|
|
|
|
char *name = astman_get_header(m, "Channel");
|
|
|
|
|
int res;
|
|
|
|
|
if ((!name)||(!strlen(name))) {
|
|
|
|
|
if ((!name) || (ast_strlen_zero(name))) {
|
|
|
|
|
astman_send_error(s, m, "No channel specified");
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@ -450,11 +450,11 @@ static int change_monitor_action(struct mansession *s, struct message *m)
|
|
|
|
|
struct ast_channel *c = NULL;
|
|
|
|
|
char *name = astman_get_header(m, "Channel");
|
|
|
|
|
char *fname = astman_get_header(m, "File");
|
|
|
|
|
if ((!name) || (!strlen(name))) {
|
|
|
|
|
if ((!name) || (ast_strlen_zero(name))) {
|
|
|
|
|
astman_send_error(s, m, "No channel specified");
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
if ((!fname)||(!strlen(fname))) {
|
|
|
|
|
if ((!fname)||(ast_strlen_zero(fname))) {
|
|
|
|
|
astman_send_error(s, m, "No filename specified");
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|