Quantcast
Channel: VOIP-info.org Wiki Changes
Viewing all articles
Browse latest Browse all 5767

Asterisk call queues

$
0
0
Queues consist of
  • Incoming calls being placed in the queue
  • Members that answer the queue (extensions or users that login as agents)
  • A strategy for how to handle the queue and divide calls between members
  • Music played while waiting in the queue
  • Announcements for members and callers

Queues are defined in queues.conf or in dynamic realtime. The latter allow storing queue configuration in a database so that changes are immediately available for new callers without the need for an explicit reload.

  • Agents are the people (or person) that answer call(s) that have been placed into a specific Queue. An agent logs in indicating that s/he is now ready to take calls. Asterisk transfers an inbound call to a queue, which is then in turn transfered to an available agent.
  • Members are those channels that are active answering the Queue. It can be agents or normal channels, like "sip/snom23"

New in Asterisk v1.2

A queue is now considered empty not only if there are no members but also if none of the members are available (e.g. agents not logged on). To restore the original behavior, use "leavewhenempty=strict" or "joinwhenempty=strict" instead of "=yes" for those options.

It is now possible to use multi-digit extensions in the exit context for a queue (although you should not have overlapping extensions, as there is no digit timeout). This means that the EXITWITHKEY event in queue_log can now contain a key field with more than a single character in it.

Members

Members can be direct channels, i.e. phones connected to Asterisk. You can also define members as individuals that login from any connection to receive calls.
Agents are defined in agents.conf. Agents login from other phones on special extensions that use the agentlogin application.

Strategies

Calls are distributed among the members handling a queue with one of several strategies, defined in queues.conf
  • ringall: ring all available channels until one answers (default)
  • roundrobin: take turns ringing each available interface (deprecated in 1.4, use rrmemory)
  • leastrecent: ring interface which was least recently called by this queue
  • fewestcalls: ring the one with fewest completed calls from this queue
  • random: ring random interface
  • rrmemory: round robin with memory, remember where we left off last ring pass



Menu for the user

You can define a menu for the user, while waiting. For this menu, you can only use one-digit extensions (Please, read this : a couple lines above, it is mentioned that, starting from 1.2, multi-digit exit are allowed. Can someone correct this ?). Define the context for the menu in the configuration for the queue to enable this option.


Penalties

Queue members can be defined as having a penalty - e.g.
member => SIP/200,1
member => SIP/201,2
member => SIP/202,3
member => SIP/203,2
If the strategy is defined as 'ringall', then only those available members with the lowest priorities will ring. In the example above, if 200 is not busy, then only 200 will ring. If 200 is busy, then only 201 and 203 will ring. If 200, 201 and 203 are busy, then 202 will ring.

Note: If extension 200 does not pick up it will not automatically go to extension 201. It will keep ringing 200 until they pick up. It will only go to the next extension if the current extension is either busy or unavailable.


Cascading Queues

You can set up a series of queues that cascade to each other. ...

Viewing all articles
Browse latest Browse all 5767

Trending Articles