summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cdr/cdr_csv.c12
-rw-r--r--configs/cdr.conf.sample1
2 files changed, 12 insertions, 1 deletions
diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c
index 10c4eebbd..a504b6b09 100644
--- a/cdr/cdr_csv.c
+++ b/cdr/cdr_csv.c
@@ -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));
}
diff --git a/configs/cdr.conf.sample b/configs/cdr.conf.sample
index 8cfaea934..3866ab1fa 100644
--- a/configs/cdr.conf.sample
+++ b/configs/cdr.conf.sample
@@ -153,6 +153,7 @@
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