Tony Mountifield wrote: > In article <05d03313-994b-4892-b045-f61332ddb...@geekinter.net>, > Steve Howes <st...@geekinter.net> wrote: > >> On 14 Aug 2009, at 09:17, Neeraj Chand wrote: >> >> >>> Asterisk version 1.4 >>> From: Neeraj Chand >>> Sent: Friday, 14 August 2009 8:17 PM >>> To: 'asterisk-users@lists.digium.com' >>> Subject: [asterisk-users] Time of Day Routing >>> >>> Hi David, >>> >>> With this: >>> ifTime(00:00-12:00|*|*|*) >>> >>> Whatever time you specify at the end, I believe asterisk continues >>> to evaluate this condition as true for 2 more minutes. >>> >>> So in this case, it will be valid for 00:00-12:02, even though >>> you’ve specified 12:00 >>> >>> Cheers! >>> >>> Neeraj >>> >>> >> Post a few hours ago.. >> >> "Actually, that's 12:02, because times before 1.6.2 are only accurate >> down >> to the 2-minute interval. So 12:01 is treated the same as 12:00. >> Starting >> with 1.6.2, times are accurate down to the minute." >> > > Hmm, I would still consider it a bug, whether on 1 or 2 minute resolution. > The example condition should start being true at 00:00 exactly, and stop > being true at 12:00 exactly. So at 12:00:01 it should NOT match: > > if (now >= start_time && now < end_time) > > This then is independent of the resolution, provided the end time is an > exact multiple of that resolution. > > After all, if a shop shuts at 5pm prompt, and you get there at 10 seconds > after 5pm, it is shut, not open until 5:00:59.999999 or whenever. > > Cheers > Tony > > ------------------------------------------------------------------------ We're talking precision here, though. With a 2-minute precision, you have to understand that there IS no 12:00:01 as far as Asterisk is concerned. There is simply 12:00 and 12:02. At exactly 12:00, it evaluates true, just as has been put in the if statement. It checks again at 12:02 and it evaluates false.
That's not a bug. That's just a lack of precision in checking. It can't check ALL the time without devoting cycles to checking, which takes cycles away from other things. Think cron on a unix system. Nothing happens in 30-second increments. Things happen in 1 minute increments at the smallest because that's the maximum precision that's built into the program. You could WRITE a cron that checks every 5 seconds, but it's not a bug in cron that it only checks every 1 minute. That's simply the way it works. N. _______________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- AstriCon 2009 - October 13 - 15 Phoenix, Arizona Register Now: http://www.astricon.net asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users