Skip to content

KAZOO Support Channels

This documentation is curated by 2600Hz as part of the KAZOO open source project. Join our community forums here for peer support. Only features in the docs.2600hz.com/supported space are included as part of our 2600Hz Support Services plan.

Router Types#

The following is a description of the types of routers that are available to be used for Qubicle queues, and the method that they use to distribute sessions. These routing methods (with the exception of round robin) are all simple hard routing metrics. This means that based on the type they will all have potential caveats that would allow a recipient or recipients to get into a state where the routing metrics are skewed and could cause delivery issues (or the appearance of issues). This must be taken into account when choosing a routing method.

Round Robin#

Configuration#

"queue_router": "route_round_robin"

Description#

Round robin will evenly distribute calls amongst the membership of a queue. The routing algorithm will start a "round" that contains all members of the queue, and then for each session will offer a member an available session. When a member receives an offer, they are removed from the current "round" and will not be considered for delivery of an additional offer until everyone in the round has been offered a call. Note that the outcome of the offer to a member does not factor into their removal from the current round.

Caveats#

none

Least Calls#

Configuration#

"queue_router": "route_least_calls"

Description#

Least calls will take all members of a queue and sort the list by the number of calls that they have handled. Sessions will then be distributed in order starting with the member that has the least calls.

Caveats#

You must take into account that this routes according to HANDLED calls. Therefore if a recipient has the least number of handled calls and is offered a session but continues to reject that session they will still be offered the session until they either handle it, or it times out.

Least Offers#

Configuration#

"queue_router": "route_least_offers"

Description#

Least offers will take all members of a queue and sort the list by the number of sessions that they have been offered. Sessions will then be distributed in order starting with the member that has the least offers.

Caveats#

You must take into account that this routes according to OFFERS of sessions. If you have a recipient that is continually rejecting offers, or has stepped away and not correctly set their state to 'away' (therefore they are being offered sessions that will be rejected ultimately) then the routing metrics for that recipient will be skewed. They may then spend a long amount of time without being offered a session since their offered count will be much higher than recipients that are not repeatedly rejecting offers.

Most Idle#

Configuration#

"queue_router": "route_most_idle"

Description#

Most idle routing will sort the recipients by the time that they last handled a call, and route sessions to those with the longest time elapsed since they have handled a call.

Caveats#

As with other hard metric routing methods, there is the potential for undesirable behavior if a recipient skews the metrics and incorrectly sets their state. This must be taken into account when choosing a routing algorithm.