|
|
@ -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"
|
|
|
|
|
|
|
|
);
|
|
|
|