Use the following code for *60 time of day - it is
accurate to within about one second (assuming the
Asterisk box's clock is accurately set):
exten => *60,1,ringing
exten => *60,2,Set(FutureTime=$[${EPOCH} + 8])
exten => *60,3,Set(FutureTimeMod=$[${FutureTime} % 10])
exten => *60,4,Set(FutureTime=$[${FutureTime} -
${FutureTimeMod}])
;180 in next line is max # seconds connection can be
held open. Use multiples of 10.
exten => *60,5,Set(MaxConnectTime=$[${FutureTime} + 180])
exten => *60,6,Set(FutureTimeMod=$[${FutureTime} -
${EPOCH}])
exten => *60,7,GotoIf($["${FutureTimeMod}" < "0"]?10:8)
exten => *60,8,wait(1)
exten => *60,9,goto(6)
exten => *60,10,Answer
exten => *60,11,Set(FutureTime=$[${FutureTime} + 10])
exten => *60,12,Set(FutureTimeMod=$[${FutureTime} % 60])
exten => *60,13,wait(1)
exten => *60,14,playback(at-tone-time-exactly)
exten => *60,15,SayUnixTime(${FutureTime},,I)
exten => *60,16,SayUnixTime(${FutureTime},,M)
exten => *60,17,GotoIf($["${FutureTimeMod}" = "0"]?18:20)
exten => *60,18,SayUnixTime(${FutureTime},,p)
exten => *60,19,goto(23)
exten => *60,20,playback(and)
exten => *60,21,SayUnixTime(${FutureTime},,S)
exten => *60,22,playback(seconds)
exten => *60,23,Set(FutureTimeMod=$[${FutureTime} -
${EPOCH}])
exten => *60,24,GotoIf($["${FutureTimeMod}" < "1"]?27:25)
exten => *60,25,wait(1)
exten => *60,26,goto(23)
exten => *60,27,playback(beep)
exten => *60,28,Set(FutureTimeMod=$[${MaxConnectTime} -
${EPOCH}])
exten => *60,29,GotoIf($["${FutureTimeMod}" < "1"]?30:11)
exten => *60,30,Hangup
Logged In: YES
user_id=1287776
This KICKS ASS, I had just tried the time function about 10
minutes before and was going to post for someone to fix it
to work EXACTLY like this.
GOOD WORK !!!
This should BE INCLUDED in the next AAH release.