@ -134,6 +134,8 @@ static int chanavail_exec(struct ast_channel *chan, const char *data)
}
}
peers = args . reqchans ;
peers = args . reqchans ;
if ( peers ) {
if ( peers ) {
struct ast_custom_function * cdr_prop_func = ast_custom_function_find ( " CDR_PROP " ) ;
cur = peers ;
cur = peers ;
do {
do {
/* remember where to start next time */
/* remember where to start next time */
@ -179,7 +181,9 @@ static int chanavail_exec(struct ast_channel *chan, const char *data)
ast_str_append ( & tmp_availcause , 0 , " %s%s " , ast_str_strlen ( tmp_availcause ) ? " & " : " " , tmp ) ;
ast_str_append ( & tmp_availcause , 0 , " %s%s " , ast_str_strlen ( tmp_availcause ) ? " & " : " " , tmp ) ;
/* Disable CDR for this temporary channel. */
/* Disable CDR for this temporary channel. */
ast_cdr_set_property ( ast_channel_name ( tempchan ) , AST_CDR_FLAG_DISABLE_ALL ) ;
if ( cdr_prop_func ) {
ast_func_write ( tempchan , " CDR_PROP(disable) " , " 1 " ) ;
}
ast_hangup ( tempchan ) ;
ast_hangup ( tempchan ) ;
tempchan = NULL ;
tempchan = NULL ;
@ -212,4 +216,9 @@ static int load_module(void)
AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS ;
AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS ;
}
}
AST_MODULE_INFO_STANDARD_EXTENDED ( ASTERISK_GPL_KEY , " Check channel availability " ) ;
AST_MODULE_INFO ( ASTERISK_GPL_KEY , AST_MODFLAG_DEFAULT , " Check channel availability " ,
. support_level = AST_MODULE_SUPPORT_EXTENDED ,
. load = load_module ,
. unload = unload_module ,
. optional_modules = " func_cdr "
) ;