diff options
author | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2016-09-12 15:37:30 +0300 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2016-09-21 09:29:05 -0500 |
commit | 42cc267016229a7d6e9d525c860ff303912220cc (patch) | |
tree | 2900ceeb9d4cb8af0b7e91868acd95f95785396b /addons | |
parent | f16ab192922b6532e653bde41ceb7dd33e73e04e (diff) |
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
Diffstat (limited to 'addons')
-rw-r--r-- | addons/cdr_mysql.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c index 4fb3ce54f..4621143fe 100644 --- a/addons/cdr_mysql.c +++ b/addons/cdr_mysql.c @@ -250,7 +250,7 @@ db_reconnect: 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 { @@ -265,8 +265,7 @@ db_reconnect: /* 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")) && @@ -278,6 +277,12 @@ db_reconnect: 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 { |