[asterisk-commits] cdr mysql: fix UTC support (asterisk[14])
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Sep 21 17:11:56 CDT 2016
Anonymous Coward #1000019 has submitted this change and it was merged.
Change subject: cdr_mysql: fix UTC support
......................................................................
cdr_mysql: fix UTC support
* Make 'cdrzone=UTC' work properly.
* Fix the documentation of cdr_mysql.conf: it's cdrzone and not timezone
ASTERISK-26359 #close
Change-Id: I2a6f67b71bbbe77cac31a34d0bbfb1d67c933778
---
M addons/cdr_mysql.c
M configs/samples/cdr_mysql.conf.sample
2 files changed, 12 insertions(+), 4 deletions(-)
Approvals:
Anonymous Coward #1000019: Verified
Joshua Colp: Looks good to me, approved
Matthew Fredrickson: Looks good to me, but someone else must approve
diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c
index 9873395..896bad6 100644
--- a/addons/cdr_mysql.c
+++ b/addons/cdr_mysql.c
@@ -245,7 +245,7 @@
struct ast_tm tm;
char timestr[128];
ast_localtime(&tv, &tm, ast_str_strlen(cdrzone) ? ast_str_buffer(cdrzone) : NULL);
- ast_strftime(timestr, sizeof(timestr), "%Y-%m-%d %T", &tm);
+ ast_strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm);
value = ast_strdupa(timestr);
cdrname = "calldate";
} else {
@@ -260,8 +260,7 @@
/* Need the type and value to determine if we want the raw value or not */
if (entry->staticvalue) {
value = ast_strdupa(entry->staticvalue);
- } else if ((!strcmp(cdrname, "start") ||
- !strcmp(cdrname, "answer") ||
+ } else if ((!strcmp(cdrname, "answer") ||
!strcmp(cdrname, "end") ||
!strcmp(cdrname, "disposition") ||
!strcmp(cdrname, "amaflags")) &&
@@ -273,6 +272,12 @@
strstr(entry->type, "numeric") ||
strstr(entry->type, "fixed"))) {
ast_cdr_format_var(cdr, cdrname, &value, workspace, sizeof(workspace), 1);
+ } else if (!strcmp(cdrname, "start")) {
+ struct ast_tm tm;
+ char timestr[128];
+ ast_localtime(&cdr->start, &tm, ast_str_strlen(cdrzone) ? ast_str_buffer(cdrzone) : NULL);
+ ast_strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm);
+ value = ast_strdupa(timestr);
} else if (!strcmp(cdrname, "calldate")) {
/* Skip calldate - the value has already been dup'd */
} else {
diff --git a/configs/samples/cdr_mysql.conf.sample b/configs/samples/cdr_mysql.conf.sample
index 04b7049..e15a8ed 100644
--- a/configs/samples/cdr_mysql.conf.sample
+++ b/configs/samples/cdr_mysql.conf.sample
@@ -18,7 +18,10 @@
;user=asteriskcdruser
;port=3306
;sock=/tmp/mysql.sock
-;timezone=UTC ; Previously called usegmtime
+; By default CDRs are logged in the system's time zone
+;cdrzone=UTC ; log CDRs with UTC
+;usegmtime=yes ;log date/time in GMT. Default is "no"
+;cdrzone=America/New_York ; or use a specific time zone
;
; If your system's locale differs from mysql database character set,
; cdr_mysql can damage non-latin characters in CDR variables. Use this
--
To view, visit https://gerrit.asterisk.org/3948
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I2a6f67b71bbbe77cac31a34d0bbfb1d67c933778
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 14
Gerrit-Owner: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Matthew Fredrickson <creslin at digium.com>
More information about the asterisk-commits
mailing list