ChanIsAvail() generates a CDR when unanswered=yes in cdr.conf.
authorFrederic LE FOLL <frederic.lefoll@c-s.fr>
Thu, 5 Sep 2019 16:09:28 +0000 (18:09 +0200)
committerFrederic LE FOLL <frederic.lefoll@c-s.fr>
Tue, 10 Sep 2019 16:45:37 +0000 (11:45 -0500)
ChanIsAvail() creates a temporary channel with ast_request() to test
resource availability. It should not generate a CDR when it hangs up
this temporary channel.

This patch disables CDR generation for the temporary channel with
ast_cdr_set_property().

ASTERISK-28527

Change-Id: I7b0555c6909c7d322e452dde97c9ea5b111552d1

apps/app_chanisavail.c

index 70325b3..446bce1 100644 (file)
@@ -178,6 +178,9 @@ static int chanavail_exec(struct ast_channel *chan, const char *data)
                                        snprintf(tmp, sizeof(tmp), "%d", status);
                                        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);
+
                                        ast_hangup(tempchan);
                                        tempchan = NULL;