Knowlege base

Product Description

Article ID: 87
Last updated: 10 Mar, 2022

Imagicle Advanced Queuing is the enhanced call queuing and distribution application that allows effective management of incoming calls without the need of expensive and complex call center systems. It allows accepting and managing high volumes of incoming traffic, keeping the calls in queues and playing music while waiting for an operator to become available.

Advanced Queuing is the perfect product for inbound telephony services: front-end operators, help desks, assistants. Advanced Queuing is mainly focused on:

  • Providing a comfortable waiting treatment to the external and internal callers
  • Optimizing calls dispatching and the operators work, raising the daily volume of managed calls
  • Providing enhanced reports to monitor and tune the company incoming calls treatment

The web interface enables the administrator to design in a few steps either simple queuing services or more complex scenarios, including calendar schedules, backup routing, overflow treatments, leveraging the wide set of available features and the flexibility of the application.

Product Architecture

Imagicle Advanced Queuing is a voice application leveraging its internal SIP stack. Incoming calls are accepted, answered and kept in queue by the application that applies the scheduled treatments and replay the configured voice prompt/music to the callers.

Once an agent/target becomes available, the application transfers the call to the target, so that the voice resource is freed and a direct call between the caller and the agent is managed by the Calling Platform.

Basically, Advanced Queuing interacts with Calling Platform in two ways:

  • A SIP trunk to carry on voice calls to/from Advanced Queuing
  • A CTI link (provided by a TAPI Service Provider) used to monitor the agents phone activity.

The image below is a high level representation of the application architecture and interactions.

QME Architecture

Incoming calls are routed by your Calling Platform to the waiting queues depending on the called number (DNIS). In the case you need more complex rules, including interactive menu choices by the end user, you can leverage Auto Attendant in front of Advanced Queuing, for example to provide a service or a language pre-selection.

Incoming queues

An incoming queue is an entry point for incoming calls that need to be dispatched to one or more agents. Calls enter the queue and are dispatched to the first available agent or are held in queue while agents are busy.
Calls are managed in a FIFO fashion (first in, first out).
While waiting in queue, music on hold and other optional voice prompts are played to the callers.
Each queue is mainly associated to:

  • A unique mnemonic name to identify the queue
  • A unique telephone number (DNIS), that is the number to be called to enter the queue.
  • A set of destination targets (agents or phone numbers) configured to answer the incoming calls.
  • A set of programmed behaviours, based on time/calendar schedule and exceptions.
  • A set of voice prompts.
  • A login telephony number that agents can dial to login/logout themselves in the queue.
  • A priority level in the range 1-10

Basically, the usual call flow that is applied when the queue is in service is the following:

Welcome Message  =>  Waiting Music (loop) and optional wait voice prompts  =>  Transfer to the agent

The priority level is considered when an agent is serving multiple queues: calls in higher priority queues will be served first by the system.

Treatments and behaviours

A treatment is an action that can be applied to the incoming call in a particular time interval or in a specific situation. Available treatments include:

  • Enqueue: the call is put in queue waiting for an available agent. An optional configurable welcome message can be provided.
  • Drop: the call is dropped by Advanced Queuing, usually applied when the call is out of service. An optional configurable voice message can be provided before hang up.
  • Transfer-to: forwards the call to another phone number (maybe another queue, a mobile number, a backup hunt group, etc.). An optional configurable voice message can be provided before transferring the call.

A behaviour is basically a time interval or a particular situation that triggers a specific treatment on the incoming call. Following behaviours can be defined for each queue, they are listed in the increasing priority order they do apply:

  • Default behaviour: this behaviour and the related treatment are applied out of any configured schedule. For example this can be used to set the queue out of service out of the scheduled days/time intervals.
  • Ordinary weekly schedule: the weekly schedule that applies to the queue. Administrators can program treatments over the week specifying which treatments to apply in each configured time interval.
  • Holidays and special events: these are scheduled exceptions that override the weekly ordinary schedule (for example the Christmas day or a special opening on Sunday).
  • Particular scenarios: particular situation that trigger specific treatments, regardless of the programmed schedule. For example, particular treatments can be defined if no agents are available when the call arrives or if there is an overflow in the waiting queue.

Programming the queue means defining the possible behaviours with the associated treatments and voice prompts.

Destination targets

Imagicle Advanced Queuing dispatch queued calls to the first available destination target. Two kinds of destination targets can be configured for each queue:

  • Agents: an agent is an UC Suite user associated to his/her primary extension. The agent needs to login the queue in order to receive calls.
  • Simple destination numbers: a destination number is basically a phone number reachable by Advanced Queuing, for example an extension, an hunt group pilot, a voicemail pilot, an external phone number. Login is not required by this kind of targets in order to receive calls from the queue.

In both cases, Advanced Queuing tries to monitor the target phone number by the CTI/TAPI link, in order to optimise the call distribution and save the conversation times for reporting scopes. Advanced Queuing monitors the target phone and tries to transfer the call to a target when it sees it idle (not busy). Targets that cannot be monitored by TAPI (for example external numbers and a generic answering group) are engaged by the Advanced Queuing in a best-effort way, that is attempting to call them even if they are busy, eventually retrying later. Also notice, that some distribution algorithms don't work properly if one or more targets are not CTI-monitored (see the dedicated section for details).

Agents can login/logout in one of the following ways:

  • Calling the login phone number of the queue from the agent extension: a simple responder will answer playing the actual status (logged in/logged out) of the agent on that queue
  • Using the login/logout web page, in the UC Suite web portal
  • Using the Attendant Console client (if available and licensed)

Calls distribution algorithms

Advanced Queuing dispatches calls to the available targets using a distribution algorithm, that can be defined by the administrator specifically for each queue. This algorithms instructs the Advanced Queuing on how choosing the next agent do dispatch the next call in queue.

Destination targets are grouped into escalation levels. An escalation level is a group associated to a progressive number that is considered by some of the available algorithms in the case of no-answer escalation. Such algorithms try to engage an available target starting from the first escalation level; if nobody answers the call in the current escalation level, the algorithm raises to the next escalation level group, searching for another available target. Algorithms involving escalation levels also can have sub-selection variants, that are different policies used to choose the first agent when considering raising in the higher escalation level.,

Following, a table representing the available algorithms and their sub-selection variants, with the description of how they work. Please, notice how some algorithms require that all target phones are CTI-monitored (TAPI) to make them working properly. If one or more phones are not monitored, the call distribution of such algorithms may be different from the expected one.

Please note that the algorithms never take into account how much time the agent was logged into the system. If needed, they calculate the time the agent spent on a call.

Algorithm type Considers Escalation level Requires CTI monitoring Description Sub-selections policies
Priority Yes Yes Selects the available agent starting from the first escalation level. Escalates to next levels only when all agents in previous levels are not available or busy. This algorithm can be used to manage skill levels, balancing the load inside the skill group.
  • Round Robin: inside an escalation level, selects the agent who had the oldest engagement.
  • Circular: inside an escalation level, always selects the next agent in a circular fashion (regardless of its last engagement).
Sequential Yes no Scans for an available agents/targets starting from the first level. If a call is not answered by the current level, it escalates to the next level (no-answer escalation).If the call is not answered by the next escalation level, it loops back to the first agent group.
  • Linear: inside an escalation level agents are selected basing on their position in the group (linear scan).
  • Round Robin: inside an escalation level, always selects the agent with oldest engagement.
  • Circular: inside an escalation level, always selects the next agent in a circular fashion (regardless of its last engagement).
Round Robin No No Always selects the available agent with the oldest engagement. Escalation level and position in the group are not considered by this algorithm, that is focused only to load-balancing. - None -
Idle Time No Yes Selects the available agent that is idle for the longest time. Escalation level and position in the group are not considered by this algorithm, that is focused on the load-balancing. - None -
Broadcast No No All agents/destination phones are made ringing at the same time, the first of them answering will take in charge the call. Priority level is not considered by this algorithm. - None -
On Demand ("pull") No No This algorithm does not push the call to agents. By using their Attendant console, they can manually pick and answer a call from the waiting queue. The call remains in the queue until it is picked up by an agent or the maximum waiting time is over. - None -

Decision tree

When a call is queued, Advanced Queuing evaluates a set of conditions in order to understand which is the right treatment to apply to the call.
Basically, it has to check if it has available resources (licensed channels) to manage the new call, understand the treatment scheduled for the current date/time and check if particular scenarios occur (overflow, no agents available, etc.).
The following schema depicts the decision tree that is evaluated by Advanced Queuing when a new call arrives to a queue number and the possible treatments that could be applied.
Once a call is enqueued for an agent, it can be:

  • SERVED: answered by an agent
  • ABANDONED: disconnected by the caller while waiting
  • TERMINATED: dropped by the system because of time out (maximum waiting time)

QME Decision tree

Imagicle Contact Manager integration

Imagicle Advanced Queuing can lookup caller numbers into Contact Manager public directories content. If a match is found, two additional features are available:

  • If the matched contact belongs to a directory marked as VIP, the call is managed by Advanced Queuing with higher priority respect to the other regular calls;
  • Advanced Queuing can show the caller name on Attendant Console, when receiving a call from a contact whose number is available in a Contact Manager Directory.

Both these features will be available only if Contact Manager is licensed on the same machine.

Technical note: since Advanced Queuing performs an anonymous query on Contact Manager directories, only the contacts stored in Public directories will be considered.

Article ID: 87
Last updated: 10 Mar, 2022
Revision: 6
Views: 4542
Print Export to PDF Subscribe Share
This article was:  
Prev   Next
Administration Guide     Configuration Task List