Out of office hours for all extensions

Hello Guys
i am very new to freepbx, we got around 30 extensions each with their very own DID.

what I am trying to do is put out of office IVR, so if time is not in 9am to 5pm then it should goto IVR. and if matches then carry on as normal DID destination.
but on time conditions it only lets me select individual extension or so.
anyone can suggest better way to doing this instead of doing one by one for all extensions like creating time condiitons for all extensions then IVR etc.


Tell us more about your extension number structure.

Hi Dave Burgess

to give you an example as below

Extension 301 got DID 0203XXXXXXX , in order to allow more then 1 call ring on deskphone I got Follow me enabled on extension so when a second call comes on same DID it rings on phone as call waiting instead of going to busy voicemail.
so all 301 to 330 extension are setup as above.

what we want to do is time conditions. so if its Mon-Friday within working office hours it should go to an extension as normal for each DID and if its not during that time then it should play an annoucement and option for caller to leave msg on someone else extension which is same for all. so one IVR can do the job for all.

I was thinking to have say one ibound route where have like any DID and then apply time conditions. but my issue is that on time condition there are only limited options like destination on successfull match or no match etc. and destination can be IVR ot extensions, fine for no match i can select IVR and but for other i want call to just carry on following next inbound routes like go to individual DID/Extension . but in selection i can’t see anything to do something like that it will just let me do one extension at a time, so looks like I have to create 30 time conditions/groups with each target going to each extension then edit inbound route for all 30 DIDs to check time conditions and so on.

or is there any other way of doing it for all extensions in one go ?

I was kind of hoping you would say “Extension 301 got DID XXXXXXX301” In that case, the solution would have been simple.

Because it isn’t, your choices are limited:

  1. Create a DID-based inbound route for every extension. This requires a separate time condition for every DID.
  2. Write a custom context that looks up your DID in a database and assigns the call to that extension. Put this behind a “day/night” mode selector. This way, your single time condition works at night and your extension gets selected from the database and routed appropriately.
    If you had a reasonable one-to-one mapping of numbers to extensions, you could do it with far less context code. Use the last three digits in the DID number to point to your extensions.

Hi Dave i have managed to make it work as below

Inbound Route for each EXT, that goes to Time Condition (time condition for each EXT)

Time condition checks 1st Time group which is 9-5 mon-fri , if matches it goes to EXT.
if not matches then target is another time condition which checks time weekend. if marches goes to Weekend IVR
if not matched goes to Out of office hours IVR.

so i had to create inbound routes for all DID/Extensions which we have anyway as we block ANY ANY DID for security reasons.
created 1 time condition for each extension.
1 extra time condition for second check.
2 time groups

not too complex i believe and it works.

do you see any issues . i don’t see any warnings on dashboard and call flow works fine.

am learning alot about freepbx now its great stuff, espeically when you coming from an expensive commericial product and almost getting same funcitonality.