diff -crB asterisk-addons-1.6.1.2/cdr/cdr_addon_mysql.c asterisk-addons/cdr/cdr_addon_mysql.c *** asterisk-addons-1.6.1.2/cdr/cdr_addon_mysql.c 2009-11-10 01:31:46.000000000 +0800 --- asterisk-addons/cdr/cdr_addon_mysql.c 2009-12-05 17:40:22.000000000 +0800 *************** *** 70,75 **** --- 70,76 ---- static int totalrecords = 0; static int timeout = 0; static int calldate_compat = 0; + static int usegmtime = 0; AST_MUTEX_DEFINE_STATIC(mysql_lock); *************** *** 244,249 **** --- 245,257 ---- ast_strftime(timestr, sizeof(timestr), "%Y-%m-%d %T", &tm); ast_cdr_setvar(cdr, "calldate", timestr, 0); cdrname = "calldate"; + } else if (usegmtime) { + struct ast_tm tm; + char timestr[128]; + ast_localtime(&cdr->start, &tm, "GMT"); + ast_strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm); + ast_cdr_setvar(cdr, "calldate", timestr, 0); + cdrname = "calldate"; } else { cdrname = "start"; } *************** *** 421,426 **** --- 429,435 ---- struct column *entry; char *temp; struct ast_str *compat; + struct ast_str *gmtime; MYSQL_ROW row; MYSQL_RES *result; char sqldesc[128]; *************** *** 457,462 **** --- 466,472 ---- res |= my_load_config_string(cfg, "global", "sock", &dbsock, ""); res |= my_load_config_string(cfg, "global", "table", &dbtable, "cdr"); res |= my_load_config_string(cfg, "global", "password", &password, ""); + res |= my_load_config_string(cfg, "global", "usegmtime", &gmtime, "no"); res |= my_load_config_string(cfg, "global", "charset", &dbcharset, ""); *************** *** 473,478 **** --- 483,494 ---- calldate_compat = 0; } + if (ast_true(gmtime->str)) { + usegmtime = 1; + } else { + usegmtime = 0; + } + if (res < 0) { if (reload) { AST_RWLIST_UNLOCK(&columns); Only in asterisk-addons/cdr: .cdr_addon_mysql.makeopts Only in asterisk-addons/cdr: .cdr_addon_mysql.moduleinfo Only in asterisk-addons/cdr: .makeopts Only in asterisk-addons/cdr: .moduleinfo