[Asterisk-Users] Definitive answer: time-range includes

tmassey at obscorp.com tmassey at obscorp.com
Fri Oct 21 08:51:54 MST 2005


Hello!

I have a question regarding time-based includes in the dialplan.  How are 
boundary conditions handled?  And is there a definitive, documented 
procedure for how to handle overlapping time includes?  For example, if I 
want to have day/night service from 8 A.M. to 5 P.M., there are two ways I 
can do it:

No overlapping times:

        [PSTN]
        include => PSTN-Nighttime|17:00-7:59|mon-fri|*|*
        include => PSTN-Daytime|8:00-16:59|mon-fri|*|*
        include => PSTN-Nighttime|*|sat-sun|*|*

On this one, no time has more than one valid time entry associated with 
it.  Each entry ends the previous minute to the next one starting.  This 
is the correct one to use iff Asterisk matches the time to the includes 
inclusive of both the start and end time.  However, if Asterisk is *not* 
inclusive of, say, the end time, you will end up with one-minute holes at 
the boundaries.

Overlapping time:

        [PSTN]
        include => PSTN-Nighttime|17:00-8:00|mon-fri|*|*
        include => PSTN-Daytime|8:00-17:00|mon-fri|*|*
        include => PSTN-Nighttime|*|sat-sun|*|*

On this one, there are two times that have more than one valid time entry 
associated with it:  One minute at each of 8:00 A.M. and 5:00 P.M.  Each 
entry overlaps the other.  This is the correct one to use iff Asterisk 
matches the time to the includes inclusive of the start time but 
*exclusive* of the end time (or vice-versa)  However, if this is not the 
case, you will end up with one-minute overlaps at the boundaries.

The following link in the Wiki describes how to use Asterisk's time-based 
includes, and even includes overlapping time entries, but does not 
document these corner-cases:
 http://www.voip-info.org/wiki/index.php?page=Asterisk+tips+openhours

Does anyone know the difinitive anser to how Asterisk matches time ranges?

A difinitive, precise statement of what happens with overlapping includes 
would be nice.  Given the right answer, it would allow nice and easy 
holiday nighttime includes:

        include => PSTN-Nighttime|*|*|25|dec            ; Night on 
Christmas
        include => PSTN-Nighttime|*|sat-sun|*|*         ; Night on 
weekends
        include => PSTN-Nighttime|17:05-7:55|mon-fri|*|*        ; Night on 
evenings
        include => PSTN-Daytime|*|*|*|*                 ; Default:  Handle 
as daytime

Even a simple order-based priority would be great:  whichever time entry 
matches *first* (or last) would work well.  In fact, it may even already 
work that way.  I just don't see anything describing how boundaries and 
overlaps are handled.  I'm also not sure that that final entry will work 
as an "include only if there is no other time entry matching".  I would 
hope so.  You can't use an include *without* time matching, otherwise it 
would always be included and would mess things up.

Does anyone know the answer to this?

Tim Massey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20051021/cdffe0c2/attachment.htm


More information about the asterisk-users mailing list