Time Conditions and Inbound calls


I’m setting up a system:

  1. Every inbound call between 16:00 and 18:00 goes to extension 123
  2. Every inbound call between 18:00 and 08:00 goes to Voicemail of extension 124
  3. Every inbound call between 08:00 and 16:00 goes to iVR

I have everything setup (3 time conditions, ivr, queue…), but I don’t know how to control the inbound routes with the above time controls? Any idea, how to get the call based on time to go where I want it (what destionation to set?)?

Inbound routes -> Time conditions

Time Conditions uses a “Time Group” to define the hours so you have to set that up first. Then Time Conditions routes to a destination that matches the “time group” or a destination that does not match the “time group”

Yeah, I’ve got that. But the problem is - I have three time conditions (for three time groups) - How can I route the call based on that?

One inbound route and three time conditions :frowning:

I guess you could daisy chain your Time conditions by pointing “Destination if time does not match” to another Time condition/group etc…

Nice idea, will try

It works… Thanks for the help.

One more thing -> is it possible to setup below call flow:

  • If an agent in queue 100 is busy (in a call), then an announcment is made (“please wait a moment…”), if it’s not busy, then it rings normaly?

Edit: And - does Asterisk know how to send Reason with SIP Cancel messages (“Call completed elsewhere”). If you have to agents with ringall strategy, and one answeres the call - the other gets missed call - not good, Aastra/Polycom has a SIP solution for this - SIP Cancel with reason?!?

If yes, how to implement this in FreePBX queue’s.

Edit2: Regarding “call completed elsewhere” - I see that Asterisk has it, but FreePBX does not. But nevermind, we’ve solved it - a little tweak to the functions of queue module…

Why don’t you share it with the community? That is how we improve the software.

First there need to be testing… -> and I’ve allready found a problem. Asterisk has a “c” dial option, which sends SIP CANCEL with reason to the caller if the call is dropped (“call answered elsewhere”).

Here lies the problem - this “c” call option should not be in the dial command, because you don’t know what will be the reason of dropped call - other agent pickup, caller droppes the call…

Lets say, you have a ringall strategy, and put the “c” option in it. Caller diales in the queue and cancels the call before any agent answeres it -> no missed call. Not good.
If another agent pickup’s the call, then the “c” options is good.

I find it strange, that asterisk forces you to forsee what will the CANCEL message be at dial() command.

Edit: It works with local dial command - example: SIP/100&SIP/101. But it seems that Asterisk does not have this “call completed elsewhere” functionality implemented in queue’s :frowning:

There is an option “Time group.”

If that doesn’t work, by creating 2 time-conditions we can make it working .

  1. First Time condition , give the timings ,if time matches => go to the IVR
    if doesn’t match go to “second Time condition”
  2. Second time condition , give the required time , if time matches => go to ext 123
    if doesn’t , go to voicemail …

Voila … cool