public class MinIdleAgentsRouting extends Object
AGENTSPREFWITHDELAYS
to add an additional routing rule based on the number of idle agents in the group.
The name of the policy is MINIDLEAGENTS
.
This policy allows continuous idle agent threshold parameters. When
the threshold is not an integer, the router with select either the ceiling or
floor value randomly depending on the fractional part of the parameter.
IMPORTANT: We consider an agent idle if he is free and ready to receive a new call.
We use the function AgentGroup.getNumFreeAgents()
to retrieve the number of idle agents.
If an agent is busy with an after service task or disconnection, then this routing policy does
not consider these agents to be idle.
The router works as following. The user must give a matrix parameter T of size I×K, where I is the number of groups and K is the number of call types. Matrix T is the idle agents threshold matrix, which can hold integer or double parameters. In addition to the priority and delay rules, an agent of group i can serve a call of type k if and only if the number of idle agents in group i is higher than T(i, k).
Important: If T(i, k) is not an integer, then the routing threshold will be selected randomly either floor(T(i, k)) or ceil(T(i, k)) at each decision time, such that the mean threshold will be equal to T(i, k). More precisely, the probability to choose a threshold of floor(T(i, k)) is 1 - (T(i, k) mod1). The router chooses ceil(T(i, k)) with the remainder probability. For example, if T(i, k) = 4.2, then the router will use the threshold of 4 with 80% probability and will use 5 with 20% probability.
Setting T(i, k) <= 0 is the same as without threshold, since it requires at least 1 idle agent to serve a call.
The user must give the property NumberArray named minIdleAgentsGT
, presenting the T
matrix. The number of rows must equal the number of agent group and the number of
element in each row must equal to the number of call types.
Modifier and Type | Class and Description |
---|---|
static class |
MinIdleAgentsRouting.MinIdleAgentsRouter |
static class |
MinIdleAgentsRouting.MinIdleAgentsRouterFactory |