Temporary channel lifespan is very short and CDR deactivation request
through ast_cdr_set_property() may happen when CDR is not available
yet. Use CDR_PROP() dialplan function instead, it will first wait
for pending CDR insertion requests to be processed.
ASTERISK-28636
Change-Id: I1cbe09e8d2169c0962c1195133ff260d291f2074
}
peers = args.reqchans;
if (peers) {
+ struct ast_custom_function *cdr_prop_func = ast_custom_function_find("CDR_PROP");
+
cur = peers;
do {
/* remember where to start next time */
ast_str_append(&tmp_availcause, 0, "%s%s", ast_str_strlen(tmp_availcause) ? "&" : "", tmp);
/* 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);
tempchan = NULL;