I’m setting up a system:
- Every inbound call between 16:00 and 18:00 goes to extension 123
- Every inbound call between 18:00 and 08:00 goes to Voicemail of extension 124
- 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
I guess you could daisy chain your Time conditions by pointing “Destination if time does not match” to another Time condition/group etc…
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
There is an option “Time group.”
If that doesn’t work, by creating 2 time-conditions we can make it working .
- First Time condition , give the timings ,if time matches => go to the IVR
if doesn’t match go to “second Time condition”
- Second time condition , give the required time , if time matches => go to ext 123
if doesn’t , go to voicemail …
Voila … cool