QueueRule (AQR0)
Description
Release notes
Version 1.2.0 - Early deployment
- Feature: Added QUEUE_RAISE_PENALTY feature (M21060)
- Dependency:
- Queue Action >= 2.0.0
- Queue Resource >= 3.0.0
- Communication Server 3.24.0
Version 1.1.0 - Early deployment
- Feature: Complete queue rules definition available (M16973)
- Dependency:
- Queue Action >= 2.0.0
- Queue Resource >= 3.0.0
Resource configuration interface
Resource configuration parameters
- Description: an informative label
- Queue Rule Definition: a list of "penaltychange" statements, one by line, describing the change to make to the maximum and minimum penalties after a certain amount of time. Syntax:
penaltychange => (1),(2),(3),(4)
- number of seconds into the call
- absolute (just an integer without sign) or relative (sign + or - and integer) change to QUEUE_MAX_PENALTY
- absolute or relative change to QUEUE_MIN_PENALTY (optional)
- absolute value for QUEUE_RAISE_PENALTY
Each call has its own QUEUE_MIN_PENALTY, QUEUE_MAX_PENALTY and QUEUE_RAISE_PENALTY, defined as channel variable. Default value is zero. You can use the SetVar action to set an initial value to each of the QUEUE_[MIN|MAX|RAISE]_PENALTY on a call.
Example
A QueueRule allows to dynamically change the min and max penalties of a call entering in a queue. Only the members whose penalty is between the min and max penalties will be considered as avaiable.
This can be useful to manage a queue with members who have penalties and still have a linear behaviour, based on the penalties instead of the order.
For example, consider the following queue :
- Member A, penalty 0
- Member B, penalty 1
- Member C, penalty 2
When member A joins the queue, he takes all incoming calls.
When member B joins the queue, member A still takes all incoming calls, but if he does not answer after a certain delay, the call goes to member B.
When member C joins the queue, the queue acts the same as above, but if member B does not answer after a certain delay, the call goes to member C.
Considering those data, we can define a minimum penalty and a maximum penalty : 0 and 2.
By increasing the minimum penalty of the call every x seconds, we can exclude the members for the next ringing :
- At 20 seconds, the min penalty changes to 1, A is excluded
- At 40 seconds, the min penalty changes to 2, A and B are excluded
- At 60 seconds, the min penalty changes to 0, everyone can receive the call
By repeating the above schema, a call can be dispatched to several levels without losing its position in the queue.
The variable QUEUE_RAISE_PENALTY enables to consider all the members with penalty lower or equal to QUEUE_RAISE_PENALTY as if they had the min penalty. This can be used to make sure that we keep on expanding the group of members to ring.