mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
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
This commit is contained in:
@@ -250,7 +250,7 @@ db_reconnect:
|
|||||||
struct ast_tm tm;
|
struct ast_tm tm;
|
||||||
char timestr[128];
|
char timestr[128];
|
||||||
ast_localtime(&tv, &tm, ast_str_strlen(cdrzone) ? ast_str_buffer(cdrzone) : NULL);
|
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);
|
value = ast_strdupa(timestr);
|
||||||
cdrname = "calldate";
|
cdrname = "calldate";
|
||||||
} else {
|
} else {
|
||||||
@@ -265,8 +265,7 @@ db_reconnect:
|
|||||||
/* Need the type and value to determine if we want the raw value or not */
|
/* Need the type and value to determine if we want the raw value or not */
|
||||||
if (entry->staticvalue) {
|
if (entry->staticvalue) {
|
||||||
value = ast_strdupa(entry->staticvalue);
|
value = ast_strdupa(entry->staticvalue);
|
||||||
} else if ((!strcmp(cdrname, "start") ||
|
} else if ((!strcmp(cdrname, "answer") ||
|
||||||
!strcmp(cdrname, "answer") ||
|
|
||||||
!strcmp(cdrname, "end") ||
|
!strcmp(cdrname, "end") ||
|
||||||
!strcmp(cdrname, "disposition") ||
|
!strcmp(cdrname, "disposition") ||
|
||||||
!strcmp(cdrname, "amaflags")) &&
|
!strcmp(cdrname, "amaflags")) &&
|
||||||
@@ -278,6 +277,12 @@ db_reconnect:
|
|||||||
strstr(entry->type, "numeric") ||
|
strstr(entry->type, "numeric") ||
|
||||||
strstr(entry->type, "fixed"))) {
|
strstr(entry->type, "fixed"))) {
|
||||||
ast_cdr_format_var(cdr, cdrname, &value, workspace, sizeof(workspace), 1);
|
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")) {
|
} else if (!strcmp(cdrname, "calldate")) {
|
||||||
/* Skip calldate - the value has already been dup'd */
|
/* Skip calldate - the value has already been dup'd */
|
||||||
} else {
|
} else {
|
||||||
|
@@ -18,7 +18,10 @@
|
|||||||
;user=asteriskcdruser
|
;user=asteriskcdruser
|
||||||
;port=3306
|
;port=3306
|
||||||
;sock=/tmp/mysql.sock
|
;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,
|
; If your system's locale differs from mysql database character set,
|
||||||
; cdr_mysql can damage non-latin characters in CDR variables. Use this
|
; cdr_mysql can damage non-latin characters in CDR variables. Use this
|
||||||
|
Reference in New Issue
Block a user