From 7ec6acb6cb3ab5b3740d02a66146a8cf1925bd8a Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Mon, 12 Oct 2009 22:54:13 -0500 Subject: Sanitized configs from Fedora Talk --- queues.conf | 311 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 queues.conf (limited to 'queues.conf') diff --git a/queues.conf b/queues.conf new file mode 100644 index 0000000..53900e2 --- /dev/null +++ b/queues.conf @@ -0,0 +1,311 @@ +[general] +; +; Global settings for call queues +; +; Persistent Members +; Store each dynamic member in each queue in the astdb so that +; when asterisk is restarted, each member will be automatically +; read into their recorded queues. Default is 'yes'. +; +persistentmembers = yes +; +; AutoFill Behavior +; 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. +; +autofill = yes +; +; Monitor Type +; By setting monitor-type = 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. +; +monitor-type = MixMonitor +; +; Note that a timeout to fail out of a queue may be passed as part of +; an application call from extensions.conf: +; Queue(queuename|[options]|[optionalurl]|[announceoverride]|[timeout]) +; example: Queue(dave|t|||45) + +;[markq] +; +; A sample call queue +; +; 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. +; +;musicclass = default +; +; An announcement may be specified which is played for the member as +; soon as they answer a call, typically to indicate to them which queue +; this call should be answered as, so that agents or members who are +; listening to more than one queue can differentiated how they should +; engage the customer +; +;announce = queue-markq +; +; A strategy may be specified. Valid strategies include: +; +; ringall - ring all available channels until one answers (default) +; roundrobin - take turns ringing each available interface +; 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 +; +;strategy = ringall +; +; Second settings for service level (default 0) +; Used for service level statistics (calls answered within service level time +; frame) +;servicelevel = 60 +; +; A context may be specified, in which if the user types a SINGLE +; digit extension while they are in the queue, they will be taken out +; of the queue and sent to that extension in this context. +; +;context = qoutcon +; +; How long do we let the phone ring before we consider this a timeout... +; +;timeout = 15 +; +; How long do we wait before trying all the members again? +; +;retry = 5 +; +; Weight of queue - when compared to other queues, higher weights get +; first shot at available channels when the same channel is included in +; more than one queue. +; +;weight=0 +; +; After a successful call, how long to wait before sending a potentially +; free member another call (default is 0, or no delay) +; +;wrapuptime=15 +; +; Autofill will follow queue strategy but push multiple calls through +; at same time until there are no more waiting callers or no more +; available members. The per-queue setting of autofill allows you +; to override the default setting on an individual queue level. +; +;autofill=yes +; +; Autopause will pause a queue member if they fail to answer a call +; +;autopause=yes +; +; Maximum number of people waiting in the queue (0 for unlimited) +; +;maxlen = 0 +; +; 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 +; +;setinterfacevar=no +; +; How often to announce queue position and/or estimated +; holdtime to caller (0=off) +; +;announce-frequency = 90 +; +; +; How often to make any periodic announcement (see periodic-announce) +; +;periodic-announce-frequency=60 +; +; Should we include estimated hold time in position announcements? +; Either yes, no, or only once. +; Hold time will be announced as the estimated time, +; or "less than 2 minutes" when appropriate. +; +;announce-holdtime = yes|no|once + +; +; What's the rounding time for the seconds? +; If this is non-zero, then we announce the seconds as well as the minutes +; rounded to this value. +; +; announce-round-seconds = 10 +; +; Use these sound files in making position/holdtime announcements. The +; defaults are as listed below -- change only if you need to. +; + ; ("You are now first in line.") +;queue-youarenext = queue-youarenext + ; ("There are") +;queue-thereare = queue-thereare + ; ("calls waiting.") +;queue-callswaiting = queue-callswaiting + ; ("The current est. holdtime is") +;queue-holdtime = queue-holdtime + ; ("minutes.") +;queue-minutes = queue-minutes + ; ("seconds.") +;queue-seconds = queue-seconds + ; ("Thank you for your patience.") +;queue-thankyou = queue-thankyou + ; ("less than") +;queue-lessthan = queue-less-than + ; ("Hold time") +;queue-reporthold = queue-reporthold + ; ("All reps busy / wait for next") +;periodic-announce = queue-periodic-announce +; +; Calls may be recorded using Asterisk's monitor/MixMonitor resource +; This can be enabled from within the Queue application, starting recording +; when the call is actually picked up; thus, only successful calls are +; recorded, and you are not recording while people are listening to MOH. +; To enable monitoring, simply specify "monitor-format"; it will be disabled +; otherwise. +; +; You can specify the monitor filename with by calling +; Set(MONITOR_FILENAME=foo) +; Otherwise it will use MONITOR_FILENAME=${UNIQUEID} +; +; Pick any one valid extension for monitor format recording. If you leave +; monitor-format commented out, it will not record calls. +; +; monitor-format = gsm|wav|wav49 +; +; Monitor Type +; By setting monitor-type = 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. If you do not specify or comment out this option, +; it will default to the old 'Monitor' behavior to keep backward +; compatibility. +; +; monitor-type = MixMonitor +; +; ----------------------- TYPE MIXMONITOR OPTIONS ----------------------------- +; +; +; You can specify the options supplied to MixMonitor by calling +; Set(MONITOR_OPTIONS=av()V()W()) +; The 'b' option for MixMonitor (only save audio to the file while bridged) is +; implied. +; +; You can specify a post recording command to be executed after the end of +; recording by calling +; Set(MONITOR_EXEC=mv /var/spool/asterisk/monitor/^{MONITOR_FILENAME} /tmp/^{MONITOR_FILENAME}) +; +; The command specified within the contents of MONITOR_EXEC will be executed when +; the recording is over. Any strings matching ^{X} will be unescaped to ${X} and +; all variables will be evaluated just prior to recording being started. +; +; The contents of MONITOR_FILENAME will also be unescaped from ^{X} to ${X} and +; all variables will be evaluated just prior to recording being started. +; +; +; This setting controls whether callers can join a queue with no members. There +; are three choices: +; +; yes - callers can join a queue with no members or only unavailable members +; no - callers cannot join a queue with no members +; strict - callers cannot join a queue with no members or only unavailable +; members +; +; joinempty = yes +; +; +; If you wish to remove callers from the queue when new callers cannot join, +; set this setting to one of the same choices for 'joinempty' +; +; leavewhenempty = yes +; +; +; If this is set to yes, the following manager events will be generated: +; AgentCalled, AgentDump, AgentConnect, AgentComplete; setting this to +; vars also sends all channel variables with the event. +; (may generate some extra manager events, but probably ones you want) +; +; eventwhencalled = yes|no|vars +; +; If this is set to yes, the following manager events will be generated: +; QueueMemberStatus +; (may generate a WHOLE LOT of extra manager events) +; +; eventmemberstatus = no +; +; If you wish to report the caller's hold time to the member before they are +; connected to the caller, set this to yes. +; +; reportholdtime = 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'.) +; +; ringinuse = no +; +; If you wish to have a delay before the member is connected to the caller (or +; before the member hears any announcement messages), set this to the number of +; seconds to delay. +; +; memberdelay = 0 +; +; If timeoutrestart is set to yes, then the timeout for an agent to answer is +; reset if a BUSY or CONGESTION is received. This can be useful if agents +; are able to cancel a call with reject or similar. +; +; timeoutrestart = no +; +; Each member of this call queue is listed on a separate line in +; the form technology/dialstring. "member" means a normal member of a +; queue. An optional penalty may be specified after a comma, such that +; entries with higher penalties are considered last. An optional member +; name may also be specified after a second comma, which is used in log +; messages as a "friendly name". Multiple interfaces may share a single +; member name. +; +; It is important to ensure that channel drivers used for members are loaded +; before app_queue.so itself or they may be marked invalid until reload. This +; can be accomplished by explicitly listing them in modules.conf before +; app_queue.so. Additionally, if you use Local channels as queue members, you +; must also preload pbx_config.so (or pbx_ael.so, pbx_lua.so, or +; pbx_realtime.so, depending on how your dialplan is configured). +; +;member => Zap/1 +;member => Zap/2,10 +;member => Zap/3,10,Bob Johnson +;member => Agent/1001 +;member => Agent/1002 + +; +; Note that using agent groups is probably not what you want. Strategies do +; not propagate down to the Agent system so if you want round robin, least +; recent, etc, you should list all the agents in this file individually and not +; use agent groups. +; +;member => Agent/@1 ; Any agent in group 1 +;member => Agent/:1,1 ; Any agent in group 1, wait for first + ; available, but consider with penalty + -- cgit