@ -672,6 +672,7 @@ static int builtin_automonitor(struct ast_channel *chan, struct ast_channel *pee
if ( caller_chan & & callee_chan ) {
const char * touch_format = pbx_builtin_getvar_helper ( caller_chan , " TOUCH_MONITOR_FORMAT " ) ;
const char * touch_monitor = pbx_builtin_getvar_helper ( caller_chan , " TOUCH_MONITOR " ) ;
const char * touch_monitor_prefix = pbx_builtin_getvar_helper ( caller_chan , " TOUCH_MONITOR_PREFIX " ) ;
if ( ! touch_format )
touch_format = pbx_builtin_getvar_helper ( callee_chan , " TOUCH_MONITOR_FORMAT " ) ;
@ -679,19 +680,22 @@ static int builtin_automonitor(struct ast_channel *chan, struct ast_channel *pee
if ( ! touch_monitor )
touch_monitor = pbx_builtin_getvar_helper ( callee_chan , " TOUCH_MONITOR " ) ;
if ( ! touch_monitor_prefix )
touch_monitor_prefix = pbx_builtin_getvar_helper ( callee_chan , " TOUCH_MONITOR_PREFIX " ) ;
if ( touch_monitor ) {
len = strlen ( touch_monitor ) + 50 ;
args = alloca ( len ) ;
touch_filename = alloca ( len ) ;
snprintf ( touch_filename , len , " auto-%ld-%s" , ( long ) time ( NULL ) , touch_monitor ) ;
snprintf ( args , len , " %s|%s|m " , ( touch_format ) ? touch_format : " wav " , touch_filename ) ;
snprintf ( touch_filename , len , " %s-%ld-%s" , S_OR ( touch_monitor_prefix , " auto " ) , ( long ) time ( NULL ) , touch_monitor ) ;
snprintf ( args , len , " %s|%s|m " , S_OR ( touch_format , " wav " ) , touch_filename ) ;
} else {
caller_chan_id = ast_strdupa ( S_OR ( caller_chan - > cid . cid_num , caller_chan - > name ) ) ;
callee_chan_id = ast_strdupa ( S_OR ( callee_chan - > cid . cid_num , callee_chan - > name ) ) ;
len = strlen ( caller_chan_id ) + strlen ( callee_chan_id ) + 50 ;
args = alloca ( len ) ;
touch_filename = alloca ( len ) ;
snprintf ( touch_filename , len , " auto-%ld-%s-%s" , ( long ) time ( NULL ) , caller_chan_id , callee_chan_id ) ;
snprintf ( touch_filename , len , " %s-%ld-%s-%s" , S_OR ( touch_monitor_prefix , " auto " ) , ( long ) time ( NULL ) , caller_chan_id , callee_chan_id ) ;
snprintf ( args , len , " %s|%s|m " , S_OR ( touch_format , " wav " ) , touch_filename ) ;
}