add timezone support to mod_say_{de,es,ja,nl,th,zh}

This is nothing more than a shameless copy/paste from another mod_say
module, which already had timezone support. It simply checks if the
timezone variable is set and if it contains a valid timezone, then this
timezone will be used when announcing times/dates.

FS-7048 #resolve
This commit is contained in:
Hristo Trendev 2014-12-02 17:08:12 +01:00 committed by Ken Rice
parent 59fd7c26db
commit 3c0e57940e
6 changed files with 84 additions and 6 deletions

View File

@ -226,6 +226,8 @@ static switch_status_t de_say_time(switch_core_session_t *session, char *tosay,
switch_time_t target = 0;
switch_time_exp_t tm;
uint8_t say_date = 0, say_time = 0;
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *tz = switch_channel_get_variable(channel, "timezone");
if (say_args->type == SST_TIME_MEASUREMENT) {
int64_t hours = 0;
@ -314,7 +316,18 @@ static switch_status_t de_say_time(switch_core_session_t *session, char *tosay,
} else {
target = switch_micro_time_now();
}
switch_time_exp_lt(&tm, target);
if (tz) {
int check = atoi(tz);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Timezone is [%s]\n", tz);
if (check) {
switch_time_exp_tz(&tm, target, check);
} else {
switch_time_exp_tz_name(tz, &tm, target);
}
} else {
switch_time_exp_lt(&tm, target);
}
switch (say_args->type) {
case SST_CURRENT_DATE_TIME:

View File

@ -220,6 +220,8 @@ static switch_status_t es_say_time(switch_core_session_t *session, char *tosay,
switch_time_t target = 0;
switch_time_exp_t tm;
uint8_t say_date = 0, say_time = 0;
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *tz = switch_channel_get_variable(channel, "timezone");
if (say_args->type == SST_TIME_MEASUREMENT) {
int64_t hours = 0;
@ -304,7 +306,18 @@ static switch_status_t es_say_time(switch_core_session_t *session, char *tosay,
} else {
target = switch_micro_time_now();
}
switch_time_exp_lt(&tm, target);
if (tz) {
int check = atoi(tz);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Timezone is [%s]\n", tz);
if (check) {
switch_time_exp_tz(&tm, target, check);
} else {
switch_time_exp_tz_name(tz, &tm, target);
}
} else {
switch_time_exp_lt(&tm, target);
}
switch (say_args->type) {
case SST_CURRENT_DATE_TIME:

View File

@ -248,6 +248,8 @@ static switch_status_t ja_say_time(switch_core_session_t *session, char *tosay,
switch_time_exp_t tm;
uint8_t say_date = 0;
uint8_t say_time = 0;
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *tz = switch_channel_get_variable(channel, "timezone");
int mod_min;
char buffer[3];
@ -322,7 +324,18 @@ static switch_status_t ja_say_time(switch_core_session_t *session, char *tosay,
target = switch_time_make(t, 0);
else
target = switch_micro_time_now();
switch_time_exp_lt(&tm, target);
if (tz) {
int check = atoi(tz);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Timezone is [%s]\n", tz);
if (check) {
switch_time_exp_tz(&tm, target, check);
} else {
switch_time_exp_tz_name(tz, &tm, target);
}
} else {
switch_time_exp_lt(&tm, target);
}
switch (say_args->type) {
case SST_CURRENT_DATE_TIME:

View File

@ -178,6 +178,8 @@ static switch_status_t nl_say_time(switch_core_session_t *session, char *tosay,
switch_time_t target = 0;
switch_time_exp_t tm;
uint8_t say_date = 0, say_time = 0;
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *tz = switch_channel_get_variable(channel, "timezone");
if (say_args->type == SST_TIME_MEASUREMENT) {
int64_t hours = 0;
@ -262,7 +264,18 @@ static switch_status_t nl_say_time(switch_core_session_t *session, char *tosay,
} else {
target = switch_micro_time_now();
}
switch_time_exp_lt(&tm, target);
if (tz) {
int check = atoi(tz);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Timezone is [%s]\n", tz);
if (check) {
switch_time_exp_tz(&tm, target, check);
} else {
switch_time_exp_tz_name(tz, &tm, target);
}
} else {
switch_time_exp_lt(&tm, target);
}
switch (say_args->type) {
case SST_CURRENT_DATE_TIME:

View File

@ -234,6 +234,8 @@ static switch_status_t th_say_time(switch_core_session_t *session, char *tosay,
int32_t t;
switch_time_t target = 0;
switch_time_exp_t tm;
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *tz = switch_channel_get_variable(channel, "timezone");
#if 0
switch_time_t this_morning;
switch_time_exp_t tm2;
@ -323,7 +325,18 @@ static switch_status_t th_say_time(switch_core_session_t *session, char *tosay,
target = switch_time_make(t, 0);
else
target = switch_micro_time_now();
switch_time_exp_lt(&tm, target);
if (tz) {
int check = atoi(tz);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Timezone is [%s]\n", tz);
if (check) {
switch_time_exp_tz(&tm, target, check);
} else {
switch_time_exp_tz_name(tz, &tm, target);
}
} else {
switch_time_exp_lt(&tm, target);
}
switch (say_args->type) {
case SST_CURRENT_DATE_TIME:

View File

@ -198,6 +198,8 @@ static switch_status_t zh_say_time(switch_core_session_t *session, char *tosay,
int32_t t;
switch_time_t target = 0;
switch_time_exp_t tm;
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *tz = switch_channel_get_variable(channel, "timezone");
#if 0
switch_time_t this_morning;
switch_time_exp_t tm2;
@ -287,7 +289,18 @@ static switch_status_t zh_say_time(switch_core_session_t *session, char *tosay,
target = switch_time_make(t, 0);
else
target = switch_micro_time_now();
switch_time_exp_lt(&tm, target);
if (tz) {
int check = atoi(tz);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Timezone is [%s]\n", tz);
if (check) {
switch_time_exp_tz(&tm, target, check);
} else {
switch_time_exp_tz_name(tz, &tm, target);
}
} else {
switch_time_exp_lt(&tm, target);
}
switch (say_args->type) {
case SST_CURRENT_DATE_TIME: