aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-04-21 15:49:14 +0000
committerrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-04-21 15:49:14 +0000
commit53d4d48821050e597cdfc910ba8ac146e0ab18ad (patch)
tree0aa687541bdffdc089e84dffe69260a01de6e4e1
parent27e0e17fc93fe480176a0dc8379178140f787909 (diff)
update configuration, generalize date format and
start mapping digit strings git-svn-id: http://svn.digium.com/svn/asterisk/trunk@21960 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--configs/say.conf.sample125
1 files changed, 73 insertions, 52 deletions
diff --git a/configs/say.conf.sample b/configs/say.conf.sample
index 0e8c5eb17..77c4ac407 100644
--- a/configs/say.conf.sample
+++ b/configs/say.conf.sample
@@ -21,6 +21,7 @@
; datetime for dates and times
; char for character strings
; phonetic for phonetic strings
+; digit for digit strings
;
; but others can be used at will.
;
@@ -65,65 +66,85 @@
; case insensitive, so you must use [X] [N] [Z] .. if you
; want exact match.
+; We start with the basic rules that might be more-or-less
+; language-independent
+
+[digit-base](!) ; base rule for digit strings
+ ; XXX incomplete yet
+ _digit:[0-9] => digits/${SAY}
+ _digit:[-] => letters/dash
+ _digit:[*] => letters/star
+ _digit:[@] => letters/at
+ _digit:[0-9]. => digit:${SAY:0:1}, digit:${SAY:1}
+
+[date-base](!) ; base rules for dates and times
+ ; the 'SAY' variable contains YYYYMMDDHHmm.ss-dow-doy
+ ; these rule map the strftime attributes.
+ _date:Y:. => num:${SAY:0:4} ; year, 19xx
+ _date:[Bb]:. => digits/mon-$[${SAY:4:2}-1] ; month name, 0..11
+ _date:[Aa]:. => digits/day-${SAY:16:1} ; day of week
+ _date:[de]:. => num:${SAY:6:2} ; day of month
+ _date:[hH]:. => num:${SAY:8:2} ; hour
+ _date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12
+ _date:[M]:. => num:${SAY:10:2} ; minute
+ ; XXX too bad the '?' function does not remove the quotes
+ ; _date:[pP]:. => digits/$[ ${SAY:10:2} > 12 ? "p-m" :: "a-m"] ; am pm
+ _date:[pP]:. => digits/p-m ; am pm
+ _date:[S]:. => num:${SAY:13:2} ; seconds
+
[en-base](!)
-_[n]um:0. => num:${SAY:1}
-_[n]um:X => digits/${SAY}
-_[n]um:1X => digits/${SAY}
-_[n]um:[2-9]0 => digits/${SAY}
-_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
-_[n]um:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
+ _[n]um:0. => num:${SAY:1}
+ _[n]um:X => digits/${SAY}
+ _[n]um:1X => digits/${SAY}
+ _[n]um:[2-9]0 => digits/${SAY}
+ _[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
+ _[n]um:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
+
+ _[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
+ _[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
+ _[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
+
+ _[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
+ _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2}
+ _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3}
-_[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
-_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
-_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
+ _[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
+ _[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
+ _[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}
-_[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
-_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2}
-_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3}
+ ; enumeration
+ _e[n]um:X => digits/h-${SAY}
+ _e[n]um:1X => digits/h-${SAY}
+ _e[n]um:[2-9]0 => digits/h-${SAY}
+ _e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1}
+ _e[n]um:[1-9]XX => num:${SAY:0:1}, digits/hundred, enum:${SAY:1}
-_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
-_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
-_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}
+[it](digit-base,date-base)
+ _[n]um:0. => num:${SAY:1}
+ _[n]um:X => digits/${SAY}
+ _[n]um:1X => digits/${SAY}
+ _[n]um:[2-9]0 => digits/${SAY}
+ _[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
+ _[n]um:1XX => digits/hundred, num:${SAY:1}
+ _[n]um:[2-9]1XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
-; enumeration
-_e[n]um:X => digits/h-${SAY}
-_e[n]um:1X => digits/h-${SAY}
-_e[n]um:[2-9]0 => digits/h-${SAY}
-_e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1}
-_e[n]um:[1-9]XX => num:${SAY:0:1}, digits/hundred, enum:${SAY:1}
+ _[n]um:1XXX => digits/thousand, num:${SAY:1}
+ _[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1}
+ _[n]um:XXXXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2}
+ _[n]um:XXXXXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3}
-[en](en-base)
+ _[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
+ _[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1}
+ _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2}
+ _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3}
-[it]
-_[n]um:0. => num:${SAY:1}
-_[n]um:X => digits/${SAY}
-_[n]um:1X => digits/${SAY}
-_[n]um:[2-9]0 => digits/${SAY}
-_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
-_[n]um:1XX => digits/hundred, num:${SAY:1}
-_[n]um:[2-9]1XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
+ _datetime::. => date:AdBY 'digits/at' IMp:${SAY}
+ _date::. => date:AdBY:${SAY}
+ _time::. => date:IMp:${SAY}
-_[n]um:1XXX => digits/thousand, num:${SAY:1}
-_[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1}
-_[n]um:XXXXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2}
-_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3}
+[en](en-base,date-base,digit-base)
+ _datetime::. => date:AdBY 'digits/at' IMp:${SAY}
+ _date::. => date:AdBY:${SAY}
+ _time::. => date:IMp:${SAY}
-_[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
-_[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1}
-_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2}
-_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3}
-; YYYYMMDDHHmm.ss-dow-doy
-_datetime::. => date:AdBY 'digits/at' IMp:${SAY}
-_date::. => date:AdBY:${SAY}
-_time::. => date:IMp:${SAY}
-_date:Y:. => num:${SAY:0:4} ; year, 19xx
-_date:[Bb]:. => digits/mon-$[${SAY:4:2}-1] ; month name, 0..11
-_date:[Aa]:. => digits/day-${SAY:16:1} ; day of week
-_date:[de]:. => num:${SAY:6:2} ; day of month
-_date:[hH]:. => num:${SAY:8:2} ; hour
-_date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12
-_date:[M]:. => num:${SAY:10:2} ; minute
-; _date:[pP]:. => digits/$[ ${SAY:10:2} > 12 ? "p-m" :: "a-m"] ; am pm
-_date:[pP]:. => digits/p-m ; am pm
-_date:[S]:. => num:${SAY:13:2} ; seconds