We’ve mentioned the queues.conf file already, but there are many
    options in this file, and we figured it would be right and proper for us
    to go over some of them with you.
Table 13.1, “Available options for [general] section of queues.conf”
    contains the options available in the [general] section of queues.conf.
Table 13.1. Available options for [general] section of queues.conf
Table 13.2, “Available options for defined queues in queues.conf” describes the options available for configuring queue contexts.
Table 13.2. Available options for defined queues in queues.conf
| Options | Available values | Description | 
|---|---|---|
| musicclass | Music class as defined by musiconhold.conf | Sets the music class to be used by a particular queue. You
            can also override this value with the CHANNEL(musicclass)channel
            variable. | 
| announce | Filename of the announcement | Used for playing an announcement to the agent that answered the call, typically to let him know what queue the caller is coming from. Useful when the agent is in multiple queues, especially when set to auto-answer the queue. | 
| strategy | ringall,leastrecent,fewestcalls,random,rrmemory,linear,wrandom | 
 | 
| servicelevel | Value in seconds | Used in statistics to determine the service level of the queue (calls answered within the service level time frame). | 
| context | Dialplan context | Allows a caller to exit the queue by pressing a single DTMF digit. If a context is specified and the caller enters a number, that digit will attempt to be matched in the context specified, and dialplan execution will continue there. | 
| penaltymemberslimit | Value of 0or
            greater | Used to disregard penalty values if the number of members in the queue is lower than the value specified. | 
| timeout | Value in seconds | Specifies the number of seconds to ring a member’s device.
            Also see timeoutpriority. | 
| retry | Value in seconds | Specifies the number of seconds to wait before attempting
            the next member in the queue if the timeoutvalue is exhausted while
            attempting to ring a member of the queue. | 
| timeoutpriority | app,conf | Used to control the priority of the two possible timeoutoptions specified for a queue.
            TheQueue()application has a
            timeout value that can be specified to control the absolute time a
            caller can be in the queue. Thetimeoutvalue inqueues.confcontrols the amount of time
            (along withretry) to ring a
            member for. Sometime these values conflict, so you can control
            which value takes precedence. The default isapp, as this is the way it works in
            previous versions. | 
| weight | Value of 0or
            higher | Defines the weight of a queue. A queue with a higher weight defined will get first priority when members are associated with multiple queues. | 
| wrapuptime | Value in seconds | The number of seconds to keep a member unavailable in a queue after completing a call. | 
| autofill | yes,no | Same as defined in the [general]section. This value can be
            defined per queue. | 
| autopause | yes,no,all | Enables/disables the automatic pausing of members who fail
            to answer a call. A value of allcauses this member to be paused in
            all queues she is a member of. | 
| maxlen | Value of 0or
            higher | Specifies the maximum number of callers allowed to be waiting in a queue. A value of zero means an unlimited number of callers are allowed in the queue. | 
| setinterfacevar | yes,no | If set to yes, the
            following channel variables will be set just prior to connecting
            the caller with the queue member: | 
| setqueueentryvar | yes,no | If set to yes, the
            following channel variables will be set just prior to the call
            being bridged: | 
| setqueuevar | yes,no | If set to yes, the
            following channel variables will be set just prior to the call
            being bridged: | 
| membermacro | Name of a macro defined in the dialplan | Defines a macro to be executed just prior to bridging the caller and the queue member. | 
| announce-frequency | Value in seconds | Defines how often we should announce the caller’s position and/or estimated hold time in the queue. Set this value to zero to disable. | 
| min-announce-frequency | Value in seconds | Specifies the minimum amount of time that must pass before we announce the caller’s position in the queue again. This is used when the caller’s position may change frequently, to prevent the caller hearing multiple updates in a short period of time. | 
| periodic-announce-frequency | Value in seconds | Indicates how often we should make periodic announcements to the caller. | 
| random-periodic-announce | yes,no | If set to yes, will play
            the defined periodic announcements in a random order. Seeperiodic-announce. | 
| relative-periodic-announce | yes,no | If set to yes, theperiodic-announce-frequencytimer will start from when the end of the file being played back
            is reached, instead of from the beginning. Defaults tono. | 
| announce-holdtime | yes,no,once | Defines whether the estimated hold time should be played
            along with the periodic announcements. Can be set to yes,no, or onlyonce. | 
| announce-position | yes,no,limit,more | Defines whether the caller’s position in the queue should
            be announced to her. If set to no, the position will never be
            announced. If set toyes, the
            caller’s position will always be announced. If the value is set tolimit, the caller will hear her
            position in the queue only if it is within the limit defined byannounce-position-limit. If the
            value is set tomore, the
            caller will hear her position if it is beyond the number defined
            byannounce-position-limit. | 
| announce-position-limit | Number of zero or greater | Used if you’ve defined announce-positionas eitherlimitormore. | 
| announce-round-seconds | Value in seconds | If this value is nonzero, we’ll announce the number of seconds as well, and round them to the value defined. | 
| queue-thankyou | Filename of prompt to play | If not defined, will play the default value (“Thank you for your patience”). If set to an empty value, the prompt will not be played at all. | 
| queue-youarenext | Filename of prompt to play | If not defined, will play the default value (“You are now first in line”). If set to an empty value, the prompt will not be played at all. | 
| queue-thereare | Filename of prompt to play | If not defined, will play the default value (“There are”). If set to an empty value, the prompt will not be played at all. | 
| queue-callswaiting | Filename of prompt to play | If not defined, will play the default value (“calls waiting”). If set to an empty value, the prompt will not be played at all. | 
| queue-holdtime | Filename of prompt to play | If not defined, will play the default value (“The current estimated hold time is”). If set to an empty value, the prompt will not be played at all. | 
| queue-minutes | Filename of prompt to play | If not defined, will play the default value (“minutes”). If set to an empty value, the prompt will not be played at all. | 
| queue-seconds | Filename of prompt to play | If not defined, will play the default value (“seconds”). If set to an empty value, the prompt will not be played at all. | 
| queue-reporthold | Filename of prompt to play | If not defined, will play the default value (“Hold time”). If set to an empty value, the prompt will not be played at all. | 
| periodic-announce | A set of periodic announcements to be played, separated by commas | Prompts are played in the order they are defined. Defaults
            to queue-periodic-announce(“All representatives are currently busy assisting other callers.
            Please wait for the next available representative”). | 
| monitor-format | gsm,wav,wav49, <any valid file
            format> | Specifies the file format to use when recording. If monitor-formatis commented out,
            calls will not be recorded. | 
| monitor-type | MixMonitor,
            <unspecified> | Same as monitor-typeas
            defined in the[general]section, but on a
            per-queue basis. | 
| joinempty | paused,penalty,inuse,ringing,unavailable,invalid,unknown,wrapup | Controls whether a caller is added to the queue when no
            members are available. Comma-separated options can be included to
            define how this option determines whether members are available.
            The definitions for the values are: 
 | 
| leavewhenempty | paused,penalty,inuse,ringing,unavailable,invalid,unknown,wrapup | Used to control whether callers are kicked out of the queue
            when members are no longer available to take calls. See joinemptyfor more information on the
            assignable values. | 
| eventwhencalled | yes,no,vars | If set to yes, the
            following manager events will be sent to the Asterisk Manager
            Interface (AMI):If set to  | 
| eventmemberstatus | yes,no | If set to yes, theQueueMemberStatusevent will be
            sent to AMI. Note that this may generate a lot of manager
            events. | 
| reportholdtime | yes,no | Enables reporting of the caller’s hold time to the queue member prior to bridging. | 
| ringinuse | yes,no | Used to avoid sending calls to members whose status is In Use. Recall from our
            discussion in the preceding section that only the SIP channel
            driver is currently able to accurately report this status. | 
| memberdelay | Value in seconds | Used if you want there to be a delay prior to the caller and queue member being connected to each other. | 
| timeoutrestart | yes,no | If set to yes, resets
            the timeout for an agent to answer if either aBUSYorCONGESTIONstatus is received from the
            channel. This can be useful if the agent is allowed to reject or
            cancel a call. | 
| defaultrule | Rule as defined in queuerules.conf | Associates a queue rule as defined in queuerules.confto this queue, which is
            used to dynamically change the minimum and maximum penalties,
            which are then used to select an available agent. See the section called “Changing Penalties Dynamically (queuerules.conf)”. | 
| member | Device | Used to define static members in a queue. To define a
            static member, you supply its Technology/Device_ID(e.g.,Agent/1234,SIP/0000FFFF0001,DAHDI/g0/14165551212). |