Conditions allow you to manage the call flow, playing for example a different messages or routing the call based on hours, or days, or calling party. Conditions can also apply to extension state or user input.
There are several type of conditions:
Weektime: a complete week planner allows to easily identify in which day/hour to trigger the destination.
Calendar: a complete calendar with dates
Hours: specifies distinct hours range
Caller ID: the routing decision is made using the Caller ID of the call. For example, allowing coworkers calling the main number to reach directly the support staff without waiting in the Queue.
Weekday: allows to route calls based on the day of the week
Date: permits to route the calls based on specified dates. A date, like Christmas, can be made “recurring”, so it will trigger every day, regardless the year.
Extension Status: the routing decision is made based on the status of an extension. This condition is really powerful when connected to the custom setting of extension status or a Flow/Variable.
Variable Value: checks the value of a variable defined in the Flow/Variable sections or at runtime. It is possible also to check using a Regex.
Multiple Extension Status: permits to check if any or all of your extensions are online/offline or in use, useful to route calls automatically on the backup number in case the internet connection for a client is offline
AGI Script: execs an AGI script and check the variable AGIRESULT. If set to true, the condition is matched, otherwise the “not match” condition is followed.
Authenticate: requests a PIN to be entered
Tenant – number of channels: permits to check the number of channels used by the tenant
DID – number of channels: permits to check the number of channels used by the selected DID
Number of custom group channels: allows to check with the number of calls running, being marked in a specific group
Answering Machine Detection: useful when using Call Campaigns, allows to identify answering machine
SIP Header: will check for the SIP Header in the call
Agent logged in a queue: will check if an agent is currently logged in the queue
Agent paused from queue: will check if an agent is currently paused from the queue
For every type of condition you have two destinations, “when matches” and “when NOT matches”