rendered paste body[custom-time] ; repeates time.
;
exten => s,1,ringing
exten => s,2,Set(FutureTime=$[${EPOCH} + 8])
exten => s,3,Set(FutureTimeMod=$[${FutureTime} % 10])
exten => s,4,Set(FutureTime=$[${FutureTime} - ${FutureTimeMod}])
exten => s,5,Set(MaxConnectTime=$[${FutureTime} + 180])
exten => s,6,Set(FutureTimeMod=$[${FutureTime} - ${EPOCH}])
exten => s,7,GotoIf($["${FutureTimeMod}" < "0"]?10:8)
exten => s,8,wait(1)
exten => s,9,goto(6)
exten => s,10,Answer
exten => s,11,Set(FutureTime=$[${FutureTime} + 10])
exten => s,12,Set(FutureTimeMod=$[${FutureTime} % 60])
exten => s,13,wait(1)
exten => s,14,playback(at-tone-time-exactly)
exten => s,15,SayUnixTime(${FutureTime},,I)
exten => s,16,SayUnixTime(${FutureTime},,M)
exten => s,17,GotoIf($["${FutureTimeMod}" = "0"]?18:20)
exten => s,18,SayUnixTime(${FutureTime},,p)
exten => s,19,goto(23)
exten => s,20,playback(and)
exten => s,21,SayUnixTime(${FutureTime},,S)
exten => s,22,playback(seconds)
exten => s,23,Set(FutureTimeMod=$[${FutureTime} - ${EPOCH}])
exten => s,24,GotoIf($["${FutureTimeMod}" < "1"]?27:25)
exten => s,25,wait(1)
exten => s,26,goto(23)
exten => s,27,playback(beep)
exten => s,28,Set(FutureTimeMod=$[${MaxConnectTime} - ${EPOCH}])
exten => s,29,GotoIf($["${FutureTimeMod}" < "1"]?30:11)
exten => s,30,Hangup