Bladeren bron

acc: new parameter cdr_on_failed to control writing cds for failed dialogs

Daniel-Constantin Mierla 10 jaren geleden
bovenliggende
commit
dde1988139
2 gewijzigde bestanden met toevoegingen van 10 en 5 verwijderingen
  1. 8 5
      modules/acc/acc_cdr.c
  2. 2 0
      modules/acc/acc_mod.c

+ 8 - 5
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)
     {

+ 2 - 0
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}
 };