]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8 46/346/1
authorRodrigo Ramírez Norambuena <decipher.hk@gmail.com>
Thu, 30 Apr 2015 11:38:11 +0000 (07:38 -0400)
committerRodrigo Ramírez Norambuena <decipher.hk@gmail.com>
Thu, 30 Apr 2015 11:38:11 +0000 (07:38 -0400)
This patch adds a new option to cdr.conf, 'newcdrcolumns', that will handle CDR
columns added in Asterisk 1.8. The columns are:
 * peeraccount
 * linkedid
 * sequence
When enabled, the columns in the database entry will be populated with the data
from the CDR.

ASTERISK-24976 #close

Change-Id: I51a57063f4ae5e194a9d933a8df45dc8a4534f0b

UPGRADE.txt
cdr/cdr_csv.c
configs/samples/cdr.conf.sample

index 9adf3052c27edb28c1fe9286122d9af34bcb9af7..da225d74333ff9857492ff4bdd459650cfa71d55 100644 (file)
@@ -62,6 +62,10 @@ cdr_odbc:
    'sequence'. Support for the new columns can be enabled via the newcdrcolumns
    option in cdr_odbc.conf.
 
+cdr_csv:
+ - Added a new configuration option, "newcdrcolumns", which enables use of the
+   post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
+
 From 13.2.0 to 13.3.0:
 
 chan_dahdi:
index 046713a8666e4a7b7d67ea3799075312405f23e7..4ef3ce174bf8119e8c0223e7f8b21178a164826e 100644 (file)
@@ -58,6 +58,7 @@ static int accountlogs = 1;
 static int loguniqueid = 0;
 static int loguserfield = 0;
 static int loaded = 0;
+static int newcdrcolumns = 0;
 static const char config[] = "cdr.conf";
 
 /* #define CSV_LOGUNIQUEID 1 */
@@ -113,6 +114,7 @@ static int load_config(int reload)
        usegmtime = 0;
        loguniqueid = 0;
        loguserfield = 0;
+       newcdrcolumns = 0;
 
        if (!(v = ast_variable_browse(cfg, "csv"))) {
                ast_config_destroy(cfg);
@@ -129,7 +131,10 @@ static int load_config(int reload)
                        loguniqueid = ast_true(v->value);
                } else if (!strcasecmp(v->name, "loguserfield")) {
                        loguserfield = ast_true(v->value);
+               } else if (!strcasecmp(v->name, "newcdrcolumns")) {
+                       newcdrcolumns = ast_true(v->value);
                }
+
        }
        ast_config_destroy(cfg);
        return 1;
@@ -241,6 +246,11 @@ static int build_csv_record(char *buf, size_t bufsize, struct ast_cdr *cdr)
        /* append the user field */
        if(loguserfield)
                append_string(buf, cdr->userfield,bufsize);
+       if (newcdrcolumns) {
+               append_string(buf, cdr->peeraccount, bufsize);
+               append_string(buf, cdr->linkedid, bufsize);
+               append_int(buf, cdr->sequence, bufsize);
+       }
        /* If we hit the end of our buffer, log an error */
        if (strlen(buf) < bufsize - 5) {
                /* Trim off trailing comma */
index 2c7cdf6f0aef25f2ca5371cff555fce6a547f0e1..e175a2a7629578b3169404ac22b2ba7a0d1eb232 100644 (file)
@@ -154,6 +154,8 @@ 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"
+;newcdrcolumns=yes ; Enable logging of post-1.8 CDR columns (peeraccount, linkedid, sequence).
+                   ; Default is "no".
 
 ;[radius]
 ;usegmtime=yes    ; log date/time in GMT