]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix documentation for pgsql cel and cdr, and slightly improve pgsql_cel.
authorTim Ringenbach <tim.ringenbach@gmail.com>
Wed, 14 Jul 2010 16:09:11 +0000 (16:09 +0000)
committerTim Ringenbach <tim.ringenbach@gmail.com>
Wed, 14 Jul 2010 16:09:11 +0000 (16:09 +0000)
Change the documented pgsql schema to use "timestamp" instead of "time",
as the latter is only a time without a date.

Added some missing columns for cel's pgsql schema, and corrected spelling
on some others. Updated cel's uniqueid size to be the same as the cdr.
Added id column to cel's pgsql schema and updated code to allow unknown
columns to get their default value instead of forcing 0 or empty string.

Added microseconds to the timestamp cel logs to pgsql.

Review: https://reviewboard.asterisk.org/r/734

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

cel/cel_pgsql.c
doc/tex/cdrdriver.tex
doc/tex/celdriver.tex

index 17654875ce32e2eca900ed778fb99cc0230c437c..e4bdab1d7677c8d49d69573118c42214184a3de5 100644 (file)
@@ -55,7 +55,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/logger.h"
 #include "asterisk.h"
 
-#define DATE_FORMAT "%Y-%m-%d %T"
+#define DATE_FORMAT "%Y-%m-%d %T.%6q"
 
 static char *config = "cel_pgsql.conf";
 static char *pghostname = NULL, *pgdbname = NULL, *pgdbuser = NULL, *pgpassword = NULL, *pgdbport = NULL, *table = NULL;
@@ -240,9 +240,12 @@ static void pgsql_log(const struct ast_event *event, void *userdata)
                                } else if (strcmp(cur->name, "peer") == 0) {
                                        value = record.peer;
                                } else {
-                                       value = "";
+                                       value = NULL;
                                }
-                               if (strncmp(cur->type, "int", 3) == 0) {
+
+                               if (value == NULL) {
+                                       ast_str_append(&sql2, 0, "%sDEFAULT", SEP);
+                               } else if (strncmp(cur->type, "int", 3) == 0) {
                                        long long whatever;
                                        if (value && sscanf(value, "%30lld", &whatever) == 1) {
                                                LENGTHEN_BUF2(26);
index a94ddf28b4eff4a5e0a2525de17843b2adf7d5fb..8e3215c2f45787df5f7a23e5636c9e71d2bcb9b0 100644 (file)
@@ -258,7 +258,7 @@ CREATE TABLE cdr (
 \begin{astlisting}
 \begin{verbatim}
         CREATE TABLE cdr (
-                calldate      time               NOT NULL ,
+                calldate      timestamp             NOT NULL ,
                 clid          varchar (80)          NOT NULL ,
                 src           varchar (80)          NOT NULL ,
                 dst           varchar (80)          NOT NULL ,
index c3abf0df01aa6c060526b60c45f903d863080e98..c1b9e00d3b39ba0d414ce4e0d2c629bd6612f23c 100644 (file)
@@ -205,13 +205,15 @@ Using MySQL for Channel Event records is supported by using ODBC and the cel_odb
 
 \begin{verbatim}
         CREATE TABLE cel (
+                id            serial ,
                 eventtype     varchar (30)          NOT NULL ,
-                eventtime     time                  NOT NULL ,
-                cidname       varchar (80)          NOT NULL ,
-                cidnum        varchar (80)          NOT NULL ,
-                cidani        varchar (80)          NOT NULL ,
-                cidrdnis      varchar (80)          NOT NULL ,
-                ciddnis       varchar (80)          NOT NULL ,
+                eventtime     timestamp             NOT NULL ,
+                userdeftype   varchar(255)          NOT NULL ,
+                cid_name      varchar (80)          NOT NULL ,
+                cid_num       varchar (80)          NOT NULL ,
+                cid_ani       varchar (80)          NOT NULL ,
+                cid_rdnis     varchar (80)          NOT NULL ,
+                cid_dnid      varchar (80)          NOT NULL ,
                 exten         varchar (80)          NOT NULL ,
                 context       varchar (80)          NOT NULL ,
                 channame      varchar (80)          NOT NULL ,
@@ -219,7 +221,9 @@ Using MySQL for Channel Event records is supported by using ODBC and the cel_odb
                 appdata       varchar (80)          NOT NULL ,
                 amaflags      int                   NOT NULL ,
                 accountcode   varchar (20)          NOT NULL ,
-                uniqueid      varchar (32)          NOT NULL ,
+                peeraccount   varchar (20)          NOT NULL ,
+                uniqueid      varchar (150)         NOT NULL ,
+                linkedid      varchar (150)         NOT NULL ,
                 userfield     varchar (255)         NOT NULL ,
                 peer          varchar (80)          NOT NULL
         );