23 lines
973 B
Text
23 lines
973 B
Text
; Talking clock by Michael Geddes
|
|
; Borrowed from bits here and there.
|
|
[macro-talkingclock] ; (TimeFormat, DateFormat, Zone)
|
|
exten => s,1,Answer
|
|
exten => s,n,set(tcTimeFormat=${ARG1})
|
|
exten => s,n,GotoIf($["${tcTimeFormat}" = ""]?:tfOK)
|
|
exten => s,n,set(tcTimeFormat=HM\'vm-and\'S\'seconds\')
|
|
exten => s,n(tfOK),set(tcDateFormat=${ARG2})
|
|
exten => s,n,GotoIf($["${tcDateFormat}" = ""]?:dfOK)
|
|
exten => s,n,set(tcDateFormat=AdBY)
|
|
exten => s,n(dfOK),set(tcZone=${ARG3})
|
|
exten => s,n,GotoIf($["${tcZone}" = ""]?:znOK)
|
|
exten => s,n,set(tcZone=${TalkingClockZone})
|
|
exten => s,n(znOK),SayUnixTime(,${tcZone},${tcDateFormat})
|
|
exten => s,n(again),Wait(2)
|
|
exten => s,n,Set(FutureTime=$[${EPOCH} + 6])
|
|
exten => s,n,Playback(misc/at-tone-time-exactly)
|
|
exten => s,n,SayUnixTime(${FutureTime},${tcZone},${tcTimeFormat})
|
|
; Wait to say the beep.
|
|
exten => s,n(waitforit),noop
|
|
exten => s,n,GotoIf($[ ${EPOCH} < ${FutureTime} ]?waitforit:)
|
|
exten => s,n,playback(beep)
|
|
exten => s,n,goto(again)
|