aboutsummaryrefslogtreecommitdiffstats
path: root/say.c
diff options
context:
space:
mode:
authorjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-01-13 00:47:43 +0000
committerjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-01-13 00:47:43 +0000
commit10c5b2754bbb46691f19cf0fb45b89cef769aecc (patch)
tree75742d5786f85b5361bee3e5fcdff53835d6d669 /say.c
parent3a27761b486ce06b9ca01dbf5c779a39fbe627fc (diff)
add the saying of seconds
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1996 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'say.c')
-rwxr-xr-xsay.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/say.c b/say.c
index 55f477d1d..52fc5b90c 100755
--- a/say.c
+++ b/say.c
@@ -478,6 +478,38 @@ int ast_say_date_with_format(struct ast_channel *chan, time_t time, char *ints,
case 'R':
res = ast_say_date_with_format(chan, time, ints, lang, "HM", timezone);
break;
+ case 'S':
+ /* Seconds */
+ if (tm.tm_sec == 0) {
+ snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", tm.tm_sec);
+ res = wait_file(chan,ints,nextmsg,lang);
+ } else if (tm.tm_sec < 10) {
+ res = wait_file(chan,ints,DIGITS_DIR "oh",lang);
+ if (!res) {
+ snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", tm.tm_sec);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ } else if ((tm.tm_sec < 21) || (tm.tm_sec % 10 == 0)) {
+ snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", tm.tm_sec);
+ res = wait_file(chan,ints,nextmsg,lang);
+ } else {
+ int ten, one;
+ ten = (tm.tm_sec / 10) * 10;
+ one = (tm.tm_sec % 10);
+ snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", ten);
+ res = wait_file(chan,ints,nextmsg,lang);
+ if (!res) {
+ /* Fifty, not fifty-zero */
+ if (one != 0) {
+ snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", one);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ }
+ }
+ break;
+ case 'T':
+ res = ast_say_date_with_format(chan, time, ints, lang, "HMS", timezone);
+ break;
case ' ':
case ' ':
/* Just ignore spaces and tabs */