Make it possible to disable individual cdr files per accountcode in cdr_csv
authorOlle Johansson <oej@edvina.net>
Fri, 9 Jul 2010 11:06:19 +0000 (11:06 +0000)
committerOlle Johansson <oej@edvina.net>
Fri, 9 Jul 2010 11:06:19 +0000 (11:06 +0000)
Review: https://reviewboard.asterisk.org/r/678/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274866 65c4cc65-6c06-0410-ace0-fbb531ad65f3

cdr/cdr_csv.c
configs/cdr.conf.sample

index 10c4eeb..a504b6b 100644 (file)
@@ -46,6 +46,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define DATE_FORMAT "%Y-%m-%d %T"
 
 static int usegmtime = 0;
+static int accountlogs;
 static int loguniqueid = 0;
 static int loguserfield = 0;
 static int loaded = 0;
@@ -100,6 +101,7 @@ static int load_config(int reload)
        } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
                return 1;
 
+       accountlogs = 1;
        usegmtime = 0;
        loguniqueid = 0;
        loguserfield = 0;
@@ -115,6 +117,14 @@ static int load_config(int reload)
                        ast_debug(1, "logging time in GMT\n");
        }
 
+       /* Turn on/off separate files per accountcode. Default is on (as before) */
+       if ((tmp = ast_variable_retrieve(cfg, "csv", "accountlogs"))) {
+               accountlogs = ast_true(tmp);
+               if (accountlogs) {
+                       ast_debug(1, "logging in separate files per accountcode\n");
+               }
+       }
+
        if ((tmp = ast_variable_retrieve(cfg, "csv", "loguniqueid"))) {
                loguniqueid = ast_true(tmp);
                if (loguniqueid)
@@ -304,7 +314,7 @@ static int csv_log(struct ast_cdr *cdr)
                ast_log(LOG_ERROR, "Unable to re-open master file %s : %s\n", csvmaster, strerror(errno));
        }
 
-       if (!ast_strlen_zero(cdr->accountcode)) {
+       if (accountlogs && !ast_strlen_zero(cdr->accountcode)) {
                if (writefile(buf, cdr->accountcode))
                        ast_log(LOG_WARNING, "Unable to write CSV record to account file '%s' : %s\n", cdr->accountcode, strerror(errno));
        }
index 8cfaea9..3866ab1 100644 (file)
 usegmtime=yes    ; log date/time in GMT.  Default is "no"
 loguniqueid=yes  ; log uniqueid.  Default is "no"
 loguserfield=yes ; log user field.  Default is "no"
+accountlogs=yes  ; create separate log file for each account code. Default is "yes"
 
 ;[radius]
 ;usegmtime=yes    ; log date/time in GMT