From dde198813953bc722ae5aafecbcea4d2f26c38e8 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Wed, 8 Apr 2015 10:56:58 +0200 Subject: [PATCH] acc: new parameter cdr_on_failed to control writing cds for failed dialogs --- modules/acc/acc_cdr.c | 13 ++++++++----- modules/acc/acc_mod.c | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/acc/acc_cdr.c b/modules/acc/acc_cdr.c index bc2e66be69b..d01beb96f62 100644 --- a/modules/acc/acc_cdr.c +++ b/modules/acc/acc_cdr.c @@ -88,6 +88,7 @@ extern str cdr_end_str; extern str cdr_duration_str; extern str acc_cdrs_table; extern int cdr_log_enable; +extern int _acc_cdr_on_failed; /* write all basic information to buffers(e.g. start-time ...) */ static int cdr_core2strar( struct dlg_cell* dlg, @@ -693,11 +694,13 @@ static void cdr_on_create( struct dlg_cell* dialog, return; } - if( dlgb.register_dlgcb( dialog, DLGCB_FAILED, cdr_on_failed, 0, 0) != 0) - { - LM_ERR("can't register create dialog FAILED callback\n"); - return; - } + if(_acc_cdr_on_failed==1) { + if( dlgb.register_dlgcb( dialog, DLGCB_FAILED, cdr_on_failed, 0, 0) != 0) + { + LM_ERR("can't register create dialog FAILED callback\n"); + return; + } + } if( dlgb.register_dlgcb( dialog, DLGCB_TERMINATED, cdr_on_end, 0, 0) != 0) { diff --git a/modules/acc/acc_mod.c b/modules/acc/acc_mod.c index 2939cd39ea4..5412ed1b542 100644 --- a/modules/acc/acc_mod.c +++ b/modules/acc/acc_mod.c @@ -120,6 +120,7 @@ int acc_time_mode = 0; str acc_time_attr = str_init("time_attr"); str acc_time_exten = str_init("time_exten"); int _acc_clone_msg = 1; +int _acc_cdr_on_failed = 0; /*@}*/ @@ -317,6 +318,7 @@ static param_export_t params[] = { {"cdrs_table", PARAM_STR, &acc_cdrs_table }, {"time_format", PARAM_STRING, &acc_time_format }, {"clone_msg", PARAM_INT, &_acc_clone_msg }, + {"cdr_on_failed", PARAM_INT, &_acc_cdr_on_failed }, {0,0,0} };