mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Add 'm' option to Monitor app to use soxmix (if available) to mix the output recording to one file.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -24,13 +24,14 @@ static unsigned long seq = 0;
|
|||||||
|
|
||||||
static char *monitor_synopsis = "Monitor a channel";
|
static char *monitor_synopsis = "Monitor a channel";
|
||||||
|
|
||||||
static char *monitor_descrip = "Monitor\n"
|
static char *monitor_descrip = "Monitor([file_format|[fname_base]|[options]]):\n"
|
||||||
"Used to start monitoring a channel. The channel's input and output\n"
|
"Used to start monitoring a channel. The channel's input and output\n"
|
||||||
"voice packets are logged to files until the channel hangs up or\n"
|
"voice packets are logged to files until the channel hangs up or\n"
|
||||||
"monitoring is stopped by the StopMonitor application.\n"
|
"monitoring is stopped by the StopMonitor application.\n"
|
||||||
"The option string may contain the following arguments: [file_format|[fname_base]]\n"
|
|
||||||
" file_format -- optional, if not set, defaults to \"wav\"\n"
|
" file_format -- optional, if not set, defaults to \"wav\"\n"
|
||||||
" fname_base -- if set, changes the filename used to the one specified.\n";
|
" fname_base -- if set, changes the filename used to the one specified.\n"
|
||||||
|
" options:\n"
|
||||||
|
" 'm' - when the recording ends mix the two leg files into one using 'soxmix' utility which has to be installed on the system.\n";
|
||||||
|
|
||||||
static char *stopmonitor_synopsis = "Stop monitoring a channel";
|
static char *stopmonitor_synopsis = "Stop monitoring a channel";
|
||||||
|
|
||||||
@@ -275,6 +276,8 @@ static int start_monitor_exec(struct ast_channel *chan, void *data)
|
|||||||
char *arg = NULL;
|
char *arg = NULL;
|
||||||
char *format = NULL;
|
char *format = NULL;
|
||||||
char *fname_base = NULL;
|
char *fname_base = NULL;
|
||||||
|
char *options = NULL;
|
||||||
|
int joinfiles = 0;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
/* Parse arguments. */
|
/* Parse arguments. */
|
||||||
@@ -285,13 +288,21 @@ static int start_monitor_exec(struct ast_channel *chan, void *data)
|
|||||||
if( fname_base ) {
|
if( fname_base ) {
|
||||||
*fname_base = 0;
|
*fname_base = 0;
|
||||||
fname_base++;
|
fname_base++;
|
||||||
|
if ((options = strchr(fname_base, '|'))) {
|
||||||
|
*options = 0;
|
||||||
|
options++;
|
||||||
|
if (strchr(options, 'm'))
|
||||||
|
joinfiles = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
res = ast_monitor_start( chan, format, fname_base, 1 );
|
res = ast_monitor_start( chan, format, fname_base, 1 );
|
||||||
if( res < 0 ) {
|
if( res < 0 ) {
|
||||||
res = ast_monitor_change_fname( chan, fname_base, 1 );
|
res = ast_monitor_change_fname( chan, fname_base, 1 );
|
||||||
}
|
}
|
||||||
|
ast_monitor_setjoinfiles(chan, joinfiles);
|
||||||
|
|
||||||
if( arg ) {
|
if( arg ) {
|
||||||
free( arg );
|
free( arg );
|
||||||
|
Reference in New Issue
Block a user