• Idefisk
  • Tools
  • Tutorials
  • Reviews
  • VoIP Providers
  • Archives
ZOIPER softphone
Back to Tutorials

6.34. queues.conf

1. Introduction

The file is located in the /etc/asterisk/ directory.

This configuration file is used to create queues. The queue is very useful function. It allows you to bring more professional services to your customers. Thanks to the queues, the system is able to answers each call immediately without considering whether there is an available operator or not. If all the lines are busy or unavailable, the call will be hold in a queue until it could be answered by the next available call agent.

The queues.conf is responsible for the control of the queues.

 


2. The queues.conf file

There are two types of contexts. The first one is the [general] context. Its name cannot be changed. The name of the other context could be arbitrary. It could be whatever you want. You define the start of a context by typing the following: [general]. Do not forget the brackets. One context ends when another one starts.

For example:
start-->          [context name]
                      option1=something
                      ......
end--->
start next--->[other context name]
                      option1=something
                      .....


Now, lets take a look at the options in the [general] context.

1) The general context

The following option is available:

persistentmembers - if this option is set to yes, it will cause the system to store each dynamically logged in agent, from each separate queue, in the Asterisk`s database. In this way, in case of restarting the Asterisk PBX, the agents will be automatically readded into their recorded queues. By default the option is set to yes.

autofill - (default value - yes) - The old/current behavior of the queue has a serial type behavior in that the queue will make all waiting callers wait in the queue even if there is more than one available member ready to take calls until the head caller is connected with the member they were trying to get to. The next waiting caller in line then becomes the head caller, and they are then connected with the next available member and all available members and waiting callers waits while this happens. The new behavior, enabled by setting autofill=yes makes sure that when the waiting callers are connecting with available members in a parallel fashion until there are no more available members or no more waiting callers. This is probably more along the lines of how a queue should work and in most cases, you will want to enable this behavior. If you do not specify or comment out this option, it will default to no to keep backward compatibility with the old behavior.

monitor-type - (default value - MixMonitor). When specifying monitor-format to enable recording of queue member conversations, app_queue will now use the new MixMonitor application instead of Monitor so the concept of "joining/mixing" the in/out files now goes away when this is enabled. You can set the default type for all queues here, and then also change monitor-type for individual queues within queue by using the same configuration parameter within a queue configuration block. If you do not specify or comment out this option, it will default to the old 'Monitor' behavior to keep backward compatibility.

The [general] context is the place for the global settings

2) The named context

The following options are available:

musicclass - (default value - default). Musicclass sets which music applies for this particular call queue. The only class which can override this one is if the MOH class is set directly on the channel using Set(CHANNEL(musicclass)=whatever) in the dialplan.

announce - thanks to this option you can specify an announcement, which to be played to the agents, when they answer the incoming call. Usually this option is used to inform the agents, which queue exactly, they will answer. This is made for agents which are set in more than one queue.

strategy - with this option you define, in what way the incoming calls, to ring to the agents. The following strategies are available:
ringall - ring to all available agents in the queue until one answers. This is the strategy set by default
roundrobin - ring to the each available agent one by one.
leastrecent - ring the agent which was least recently called by this queue.
fewestcalls - ring the agent with fewest completed calls from this queue.
random - ring randomly the agents
rrmemory - round robin with memory, remember where we left off the last answered ring and tries to ring the next agent.

servicelevel - the option is used for service level statistics. You set a period of time in which the calls has to be answered. By default it is set to 0(disabled).

context - with this option you can specify a context(from extensions.conf) in which the user to be transfered in case of pressing a single digit. If the user press a digit, it will be taken out from the queue and transfered to the specified context in the extension with number the same as the pressed one.

timeout - How long can we wait ringing, before to consider that the call won`t be answered. the time is in seconds.

retry - How long can we wait before to start trying all the members again.

weight - when one channel is included in more than one queue, the queue with the higher weight will be the first one which will handle an incoming call on this channel.

wrapuptime - this option sets a period of time, which has to expire, after one call is finished, before another call to be pass to the agent. The time is in seconds.

autopause - (default value - yes) - Autopause will pause a queue member if they fail to answer a call.

maxlen - with this option we define the maximum number of calls which could wait in the queue. (0 is for unlimited).

setinterfacevar - (default value - no) - If set to yes, just prior to the caller being bridged with a queue member the MEMBERINTERFACE variable will be set with the interface name (eg. Agent/1234) of the queue member that was chosen and is now connected to be bridged with the caller.

announce-frequency - this option defines through how many seconds the system to announce the current position of the caller in the queue. If it is set to zero, the option will be turned off.

periodic-announce-frequency - How often to make any periodic announcement

announce-holdtime - setting this option to yes will cause the including of the estimated hold time in the position announcements. There are three possible choices for this option yes, no and once

announce-round-seconds - If this option is set to something different from zero, then the system will announce the seconds, as well as the minutes, rounded to this value.

The following position/holdtime announcement files are available to be played:
queue-youarenext = queue-youarenext - the message which will be played is: You are now first in the line.
queue-thereare = queue-thereare - the message which will be played is: There are
queue-callswaiting = queue-callswaiting - the message which will be played is: calls waiting.
queue-holdtime = queue-holdtime - the message which will be played is: The current estimated holdtime is
queue-minutes = queue-minutes - - the message which will be played is: minutes.
queue-seconds = queue-seconds - the message which will be played is: seconds.
queue-thankyou = queue-thankyou - the message which will be played is: Thank you for your patience.
queue-lessthan = queue-less-than - the message which will be played is: less than
queue-reporthold = queue-reporthold - the message which will be played is: Hold time
periodic-announce = queue-periodic-announce - the message which will be played is: All representatives are busy / wait for next.

This sound messages can be changed if you need to. Just record your own messages and replace the right part of the options above with the names of your files. You have to put the sound files in the directories /var/lib/asterisk/sounds and /usr/src/asterisk/sounds.

monitor-format - this option has two functions. The first one is to enable the monitoring of the conversation. In other words to enable the recording of the call. The second function is to specify the desired format for the files, in which the conversations will be stored. The recording will start when the call is answered. The best part is no recording will be initiated while the people are listening to music on hold. The name of the file will be defined by the variable ${UNIQUEID}. If you would like to change it to something else, you can use the Set application. The possible formats are: gsm, wav and wav49

monitor-join - when this option is set to yes the two files, in which the conversation is recorded (one for the output sound and one for the input sound), will be mixed together in one joint file automatically.

joinempty - through this option, you can determine, whether the caller could join a queue with no members or not. There are three possible choices.
yes - you allow the callers to join queues with no members or unavailable members.
no - you disallow the callers to join a queue with no members
strict - the callers cannot join a queue with no members, but they can join queues with unavailable members.


leavewhenempty - if this option is set to yes you will allow the removing of callers from the queue, if there are new callers, which cannot join. The possible choices are the same as the ones for the joinempty option.

eventwhencalled - when this option is set to yes, the following manager events will be generated: AgentCalled, AgentDump, AgentConnect and AgentComplete.

eventmemberstatus - (default value - no) - If this is set to yes, the following manager events will be generated:
QueueMemberStatus
(may generate a WHOLE LOT of extra manager events)

reportholdtime - this option is very useful. When it is set to yes, the member of the queue, which answer the line, will hear for how long the caller has been left on music on hold.

memberdelay - if you wish to have a silent period of time before the member of the queue to be connected to the caller, you can set to this option a delay in seconds.

ringinuse - (default value - no) - If you want the queue to avoid sending calls to members whose devices are known to be 'in use' (via the channel driver supporting that device state) uncomment this option. (Note: only the SIP channel driver currently is able to report 'in use').

timeoutrestart - If this option is set to yes, and a BUSY or CONGESTION signal received on the line, the agent`s timeout for answering will be reseted. This can be useful with agents, which has the permission to cancel a call with reject.
 


3. The creation of a queue

Now, lets see the form for creating a queue and how to assign agents to it.

There are two forms:
1) If you use the agents.conf file. In other words if you use the dynamic way. When you use this way, your agents could login from any work station. They are not bind to one particular work station. The form is:member => Agent/<agent number|group>,<penalty>

member is a key word. It is followed by the => characters and then another key word - Agent. For the next setting you have a couple of possibilities.

The first one is to write the the agent number:

For example:

member => Agent/8888

The second possibility is to write the number of the group, in which the agent is included(if there is such one. Look at agents.conf). In this way all incoming calls in the queue will be forwarded to the agents of this agent group. Below we will give you an example how to call an agent group.

For example:

member => Agent/@1

or

member => Agent/:1

It is one and the same. This will call the group with number 1

penalty - it is some kind of priority. The idea is, that the system will try to ring first to the agents with the lower priority. So the agents with the higher penalty will be tried last. The penalty is optional

2) If you do not use the agents.conf file. The so called static way. The disadvantage of this way is that the user is bind to one work station(the one on which is registered) and it cannot login into the queue from another work station. The form is: member => Agent/interface/user>,<penalty>.

member is a key word. It is followed by the => characters and then another key word - Agent.

[interface/user] - you have to write the name of the registered user, which you would like to answer the incoming calls in the queue and also the channel through which the connection to be established.

For example:
member => SIP/operator

penalty - it is some kind of priority. The idea is, that the system will try to ring first to the agents with the lower priority. So the agents with the higher penalty will be tried last. The penalty is optional

 


4. Example


[general]

persistentmembers = yes

[queue_test1]

reportholdtime=yes

member => Agent/user1
member => Agent/user2
member => Agent/user3
member => Agent/user4
member => Agent/user5

[queue_test2]

monitor-format=wav
monitor-join
strategy = ringall

member => Agent/user1
member => Agent/user2
member => Agent/user3
member => Agent/user4
member => Agent/user5

[test]

context=qtest
announce-frequency=5
periodic-announce-frequency=5
announce-holdtime=yes
announce-round-seconds=10
reportholdtime=yes

queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-holdtime = queue-holdtime
queue-minutes = queue-minutes
queue-seconds = queue-seconds
queue-thankyou = queue-thankyou
queue-lessthan = queue-less-than
queue-reporthold = queue-reporthold
periodic-announce = queue-periodic-announce

member => SIP/operator

 



5. Additional information

For more information look at agents.conf and the dialplan application concerning the queues:

AddQueueMember
RemoveQueueMember
AgentLogin
AgentMonitorOutgoing
PauseQueueMember
UnpauseQueueMember

 

 
User Comments
Cecilcaw (ktpq41634 at first dot baburn dot com)
24 December 2017 17:07:02
<a href=http://www.karateklubben.nu/timberland-trekking-outlet-131.php>Timberland Trekking Outlet</a>
A lot of people snore in their deepest sleeping while being untruthful on their back. Normally, it is really not a challenge unless of course the heavy snoring disturbs their resting lover, whereby, they might be awakened and be asked to roll on their area. This step is probably the very first and most ancient cure for heavy snoring.

<img>https://www.voetbalschoenengoedkoop.nl/images/que2/14207-puma-tricks-voetbalschoenen.jpg</img>

When trying to market your home, generally try and make the atmosphere as pleasing and comfy as is possible. A wonderful way to build a pleased sensation in your home is always to make some thing delightful for example loaves of bread, cookies or apple inc pie just ahead of the coming of potential customers, so that the inviting odor wafts throughout the kitchen. With such a tiny bit of energy it is possible to support consumers envision themselves as well as their family members shelling out might pleasurable yrs in the house.

<img>https://www.sneakers-online.nu/imagess/sne2/10590-supra-skytop-australia-legit.jpg</img>
Scottveilm (rxvn65974 at first dot baburn dot com)
03 October 2017 07:46:09
<a href=http://www.info-slovakia.eu/academia/biller.php?id=87-Comprar-Cialis-Generico-Portugal-Cialis-2.5-Mg-Preço-Comprar-Cialis-En-Espana>Comprar Cialis Generico Portugal</a>
Try not to be impulsive with your feelings and measures. It is very tough to analyze what is going on and what must be carried out if one makes hasty and sloppy selections. Of course some judgements can be created rather quickly, but this is to obtain anyone to feel more details on decisions which require a greater portion of your power and time.
<a href=http://www.gninutech.com/Scripts/biller.php?me=37-Levitra-Bestellen-Online-Levitra-10mg-Rezeptfrei-Deutschland-Levitra-Rezeptfrei-In-Der-Apotheke>Levitra Bestellen Online</a>
Individuals who experience hypersensitive reactions to their household pets are usually success the hardest psychologically. Though it may be possible to reduce shrimp from the diet, or steer clear of dust particles, often times a pet is much like section of the family. If it is correct for you personally, consider shaving your pet in order to prevent problems.
<a href=http://www.united-plast.com/css/heat.php?id=101-Cialis-Ohne-Rezept-Kaufen,Cialis-Generika-Indien,Cialis-Rezeptfrei-Per-Überweisung.html>Cialis Ohne Rezept Kaufen</a>
To sluggish your process of aging make sure to do routines that boost your breathing price. Trying to keep your lungs energetic is very important. As individuals use their respiratory system much less they shed lung potential. To know this, a well used individual fighting the staircases probably seems like they can be inhaling and exhaling from the straw.
<a href=http://www.idown.info/images/class.php?o=18>Cialis Apotheek Belgie</a>
Richardsa (rpwz35812 at first dot baburn dot com)
20 July 2017 05:02:33
vnlovoj

http://www.campingmareblu.it/nike-free-inneva-man-366.html
http://www.firenzerestauro.it/nike-free-run-flyknit-2016-475.php
http://www.napoliinternational.it/hogan-decollete-2016-356.html
http://www.grifodoro.it/345-scarpa-valentino-borchie-imitazione.htm
http://www.amadoriscavi.it/nike-huarache-gialle-e-verdi-111.html

<a href=http://www.firenzerestauro.it/free-5.0-tr-fit-5-309.php>Free 5.0 Tr Fit 5</a>
<a href=http://www.happycentre.it/231-cinture-lv.htm>Cinture Lv</a>
<a href=http://www.agriturlasabbionara.it/192-jordan-concord.htm>Jordan Concord</a>
<a href=http://www.cosebuonedicampagna.it/occhiali-ray-ban-aviator-con-parasudore-284.html>Occhiali Ray Ban Aviator Con Parasudore</a>
<a href=http://www.nuovageovis.it/817-vibram.htm>Vibram</a>
CurtisOn (mjmo19368 at first dot baburn dot com)
18 July 2017 09:32:58
hzbnsse

http://www.restaurantegallegoosegredo.es/jordan-son-of-low-850.php
http://www.renardlecoq.nl/364-nike-blazer-vintage-low.html
http://www.evcd.nl/huarache-nike-baby-434.html
http://www.pzpc.nl/gouden-louboutins-prijs-675.html
http://www.depoelgroningen.nl/505-asics-gel-lyte-2.php

<a href=http://www.cheap-laptop-battery.co.uk/122-adidas-stan-smith-weave-rose.htm>Adidas Stan Smith Weave Rose</a>
<a href=http://www.elisamurciaartengo.es/jordan-zapatillas-mujeres-191.php>Jordan Zapatillas Mujeres</a>
<a href=http://www.renardlecoq.nl/352-dames-nike-blauw.html>Dames Nike Blauw</a>
<a href=http://www.poker-pai-gow.es/460-zapatillas-mizuno-ultima-6.htm>Zapatillas Ultima</a>
<a href=http://www.cazarafashion.nl/nike-roshe-blauw-wit-055.htm>Nike Roshe Blauw Wit</a>
Richardsa (xsww56839 at first dot baburn dot com)
09 June 2017 04:28:32
dwnfzzs

http://www.restaurant-traiteur-creuse.fr/adidas-tubular-x-marron-437.php
http://www.sitesm.fr/959-adidas-neo-lite-racer-rose.php
http://www.leighannelittrell.fr/adidas-neo-lite-racer-gris-et-rose-844.html
http://www.estime-moi.fr/adidas-zx-flux-slip-on-black-248.php
http://www.vivalur.fr/718-adidas-ultra-boost-garçon.php

<a href=http://www.beasys.fr/152-adidas-tubular-instinct-grey.htm>Adidas Tubular Instinct Grey</a>
<a href=http://www.creagraphie.fr/037-adidas-flux-enfant.html>Adidas Flux Enfant</a>
<a href=http://www.vivalur.fr/373-adidas-ultra-boost-technology.php>Adidas Ultra Boost Technology</a>
<a href=http://www.creagraphie.fr/280-adidas-zx-flux-olive-green-and-black.html>Adidas Zx Flux Olive Green And</a>
<a href=http://www.ChaussureAdidasonlineoutlet.fr/891-adidas-superstar-suede-berlin.html>Adidas Superstar Suede Berlin</a>
Richardsa (qgdq59817 at rng dot marvsz dot com)
18 February 2017 04:31:44
cfszdtz

http://www.cuadros-famosos.es/389-camisa-polo-ralph-lauren-cuadros.html
http://www.younes.es/740-nike-air-max-zero-comprar
http://www.cuadros-famosos.es/593-polo-lacoste-niño-precio.html
http://www.younes.es/064-nike-huarache-blancas-y-grises
http://www.tacadetinta.es/abercrombie-buzos

<a href=http://www.cuadros-famosos.es/187-polo-ralph-lauren-mujer-las-rozas.html>Polo Ralph Lauren Mujer Las Rozas</a>
<a href=http://www.batalladefloreslaredo.es/lentes-oakley-mujer-029>Lentes Oakley Mujer</a>
<a href=http://www.colegio-sanfranciscojavier.es/522-botas-timberland-para-mujeres-el-salvador.html>Botas Timberland Para Mujeres El Salvador</a>
<a href=http://www.elregalofriki.es/gafas-de-sol-ray-ban-tienda-online-400.php>Gafas De Sol Ray Ban Tienda Online</a>
<a href=http://www.cuadros-famosos.es/552-zapatos-polo-ralph-lauren-para-mujer.html>Zapatos Polo Ralph Lauren Para Mujer</a>
Christian Leon Soler (christianleonsoler at hotmail dot com)
20 May 2009 17:57:10
Quisiera que al entrar una llamada, el Caller ID tambien junto con el numero telefonico, identifique porque cola esta entrando.

Muchas gracias.
juskvakkas (juskvakkas at gmail dot com)
07 August 2008 07:23:38
Hi
My scenario is that i want to insert the extension of the agent who picksup the call in the CDR table and i want it to be done on call received by the agent not when he hungs up the call.

Any help would be deeply appreciated
Thanks in advance.
juskvakkas (juskvakkas at gmail dot com)
07 August 2008 07:22:44
Hi
My scenario is that i want to insert the extension of the agent who picksup the call in the CDR table and i want it to be done on call received by the agent not when he hungs up the call.

Any help would be deeply appreciated
Thanks in advance.
Matt H (matthew at herson dot biz)
23 October 2007 00:34:29
Is there a way for a call to enter the queue; then after 5 min, if no one answers, go to a specific voice mail?
rahul (rahulyadav1 at gmail dot com)
03 August 2007 13:04:32
All inbound calls should be added to a queue
if all the agents are busy a wav file should be play.
And i also want to play a wav file when anybody answers the call
tahir shafique (tahirgull at yahoo dot com)
25 July 2006 14:35:01
I used monitor-join=yes and format=wav but i am not able to join in and out recorded files can any body help me in this regard.
Thanks
Salman (prodeveloper2000 at yahoo dot com)
28 June 2006 06:36:54
I need to implement the following scenario:

1. All inbound calls are added to a queue
2. As soon as an agent becomes available the queue redirects to an agi script (i need to play a wave file according to the customer id) and then redirected to the agent.

Any help regarding this is appreciated.
Carlo (ccafasso at sigeco dot net)
28 April 2006 16:44:55
Context option doesn't work...any body knows why??
Blaz Ziherl (blaz dot ziherl at abraxas dot si)
18 March 2006 21:12:13
The option eventmemberstatusoff is now eventmemberstatus. If this is option is set to yes, the following manager event will be generated: QueueMemberStatus
 
Add Comment
Name:
Email:
Comment:
In order to prevent automatic posting on our website, we kindly request you to type in the number you see in the picture below.
Image Verification:
 

Latest Headlines:

  • T.38 faxing with Zoiper 2.15 is now easier than ever
    section: voip software
  • Asterisk 1.4.21 Released
    section: Asterisk
  • Asterisk 1.4.20 Released
    section: Asterisk
  • Asterisk 1.4.20-rc2 Released
    section: Asterisk
  • Asterisk 1.4.20-rc1 Now Available
    section: Asterisk
  • News Archives (older news)

Latest Tutorials:

  • Sending Fax from Zoiper to Zoiper using T.38
    added 08/Dec/2008 18:16
  • VMAuthenticate (dialplan application)
    added 01/Mar/2008 15:57
  • Siptronic ST-530
    added 06/Nov/2007 17:57
  • Siemens C455 IP hardphone
    added 05/Nov/2007 10:24
  • Zoiper
    added 22/Oct/2007 17:53

Latest Comments:

  • Following the thesis, you should provide...
    tutorial: Asterisk 1.4.0 CLI commands
  • viagra 50mg online canadian <a href=...
    tutorial: Voicemail Example 2
  • &#1056;&#1040;&#1057;&#1055;&#1056;&#105...
    tutorial: Voicemail Example 2
  • &#1050;&#1083;&#1077;&#1085;&#1073;&#109...
    tutorial: Voicemail Example 2
  • &#1056;&#1040;&#1057;&#1055;&#1056;&#105...
    tutorial: Voicemail Example 2
 
contact us at: support@asteriskguru.com - asterisKGuru.com © all rights reserved   |   *asterisk is registered trademark of © Digium™