当前位置: 代码迷 >> 综合 >> asterisk queue.conf 配置文件中文详解
  详细解决方案

asterisk queue.conf 配置文件中文详解

热度:63   发布时间:2023-12-06 14:32:18.0

[general]
persistentmembers = yes ;在使用real-time时,asterisk 重启是否自动读入dynamic memebers
keepstats =no ;在reload期间保留Queue 统计
autofill = yes ;
autopause =yes ;未能成功应答也置pause
maxlen=0 ;q中最大等待用户数
;setinterfacevar=no 如果设置为yes,则在q成员接通电话前以下变量被设置
  MEMBERINTERFACE ,interface name like:agent/1234
  MEMBERNAME ,membername
  MEMBERCALLS ,被派call次数
  MEMBERLASTCALL ,最后一次派call时间
  MEMBERPENALTY  ,未接数
  MEMBERDYNAMIC  ,是否为动态members
  MEMBERREALTIME ,是否为realtime

;setqueueentryvar=no  ;如果为yes,将设置如下变量,QECHOLDTIME ,主叫hold time,
                      ; QEORIGIANALPOS ,主叫在Q的原始位置

;setqueuevar=no 设置为yes 则在主叫连接前和退出队列前,设置以下变量

; QUEUENAME name of the queue
; QUEUEMAX maxmimum number of calls allowed
; QUEUESTRATEGY the strategy of the queue;
; QUEUECALLS number of calls currently in the queue
; QUEUEHOLDTIME current average hold time
; QUEUECOMPLETED number of completed calls for the queue
; QUEUEABANDONED number of abandoned calls
; QUEUESRVLEVEL queue service level
; QUEUESRVLEVELPERF current service level performance


;membermacro= yourmacro  ;在接通到q member时执行该脚本,该选项可以被queue appliction 选项覆盖

;monitor-format=gsm|wav|wav49 ,允许接通时方开始录音,录音文件名可以通过Set(MONITOR_FILENAME=foo)
                               ; Otherwise it will use MONITOR_FILENAME=${UNIQUEID}

monitor-type=MixMonitor ;不设置将采用默认的monitor
;updatecdr=no ;update cdr dstchannels

shared_lastcall=no ;如果一个member属于多个q yes,在wrapuptime 上保持一致


queue 特定的配置:

musicclass= default
;servicelevel=60    ;接通时间不得超过指定的值,default=0

periodic-announce = thank-you-message
periodic-announce-frequency=60   ;每隔1分钟将向队列播放thank-you-message 录音

weight=0 ; 在多个队列情况下,q的weight 大的将优先获得可用通道。deadlock 现象
;joinempty=yes  控制呼入是否可以加入到一个无members的q
            ;yes 主叫可以进入无members或只有unavailable members 的Q中
            ;no 主叫不可进入无members 的Q
            ;strict 主叫不可以进入无members或只有unavailable members 的Q中
            ;loose 同strict,但paused Q members 不会作为unavailable members 统计
;leavewhenempty=yes ;在新主叫无法加入Q时,remove callers from Q,参考joinempty
;如果你使用Agents 作为Q members,总是把该参数设置为strict

;eventmemberstatus=no ;是否产生QueueMemberStatus Event
;reportholdtime=no ;是否在接到Q members 前提示 主叫等待的时间
;ringinuse=no ;避免Q 发送calls 到状态为"in use" 的member,不建议使用该选项,并且只有sip channel 才支持"in use"
;monitor-format=gsm|wav|wav49 ,默认disable
;announce-frequency=90
;announce-holdtime=yes|no|once ;是否估计hold time,小于1分钟则不发出通知
;queue-youarenext = "queue-youarenext" ; ("You are now first in line.")
 ;queue-thereare = "queue-thereare" ; ("There are")
 ;queue-callswaiting = "queue-callswaiting" ; ("calls waiting.")
 ;queue-holdtime = "queue-holdtime" ; ("The current est. holdtime is")
 ;queue-minutes = "queue-minutes" ; ("minutes.")
 ;queue-thankyou = "queue-thankyou" ; ("Thank you for your patience.")

;announce-position=yes |no ;If turned off, only the holdtime will be announced
;min-announce-frequency ;defines a minimum time which must pass between position/holdtime announcements
;wrapuptime=15  ;接到一个call后,需要等待多长时间方置为空闲
;memberdelay=5 ; 连接和应答延时时间
;timeoutrestart=yes ;agents useful
strategy=ringall ;派call 策略
                  ;ringall :ring 所有可用channels 直到应答为止
                  ;roundrobin :轮流ring 每个可用interface,1calls :1->2->3,2calls:2->3->1;3calls:3->1->2
                  ;leastrecent :ring 进来最少在队列中最少被呼叫的interface,有可能一直响某台分机
                  ;fewestcalls :ring one 最少completed calls
                  ;random  :随机ring
                  ;rrmemory :在内存中把最后一个ring pass 放到最左边,即不会一直ring某个分机
                  ;linear    :根据配置文件中的顺序ring(v1.6)
                  ;wrandom   :(V1.6)

;Timeout=15    ;phone ring before timeout
;retry=5       ;再次trying all members again,需要等待多久,设置为0 默认为5秒。
;context= default   用户按single exten 退出Q后的context
;defaultrule=myrule
announce= xxxx ;将在电话接通的时候播放xxxx,

 

;应用调用的方式:
Asterisk 1.6.0:
 Queue(queuename[,options[,URL[,announceoverride[,timeout[,AGI[,macro[,gosub[,rule]]]]]]]])

Asterisk 1.4:
 Queue(queuename[|options][|URL][|announceoverride][|timeout][|AGI])

Asterisk 1.0 through 1.2:
 Queue(queuename[|options][|URL][|announceoverride][|timeout])

Queues an incoming call in a particular call queue as defined in queues.conf or dynamic realtime.

The option string may contain zero or more of the following characters:

d — data-quality (modem) call (minimum delay).
h — allow callee to hang up by pressing *.
H — allow caller to hang up by pressing *.
n — no retries on the timeout; will exit this application and go to the next step.
r — ring instead of playing MOH.
t — allow the called user to transfer the calling user.
T — allow the calling user to transfer the call.
w — allow the called user to write the conversation to disk via Monitor.
W — allow the calling user to write the conversation to disk via Monitor.
c — continue in the dialplan if the callee hangs up (Asterisk 1.6.0 and above).
i — ignore call forward requests from queue members and do nothing when they are requested (Asterisk 1.6.0 and above).
k — Allow the called party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf (Asterisk 1.6.0 and above).
K — Allow the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf (Asterisk 1.6.0 and above).
x — allow the called user to write the conversation to disk via MixMonitor (Asterisk 1.6.0 and above).
X — allow the calling user to write the conversation to disk via MixMonitor (Asterisk 1.6.0 and above).


队列振铃方式有:ringall,roundrobin,leastrecent,fewestcalls,random,rrmemory。

ringall是呼叫所有可到达的分机直到有接听的。

roundrobin是轮流呼叫每一个可以达到的分机。

leastrecent是呼叫最近被这个队列呼叫的最少的分机。

fewestcalls是呼叫这个队列完成电话数最少的分机。

random是随机呼叫分机。

rrmemory是使用内存进行roundrobin呼叫,记住上次呼叫的分机。

leastrecent和fewestcalls可能会造成队列不停的把进来的电话分配到某个分机上,如果该分机处于通话中并且通话时间比较长的话会造成很大的电话损失。

roundrobin和rrmemory看起来好像并没有什么不同,但它们之间还是有区别。最大的区别在于roundrobin记住上次开始的分 机,然后从下一个开始。假设有1,2,3三个分机,如果第1个电话是1->2->3的顺序呼叫队列的话,第2个电话将会是 2->3->1的顺序呼叫队列,第3个电话就是3->1->2。而rrmemory记住上次最后呼叫的分机,然后从下一个开始。 假设还是有1,2,3三个分机,第1个电话呼叫顺序是1->2,分机2接了或者电话挂断;那么第2个电话来将是按3->1->2的顺序 来呼叫,如果是roundrobin,第2个电话进来应该是按2->3->1的顺序呼叫。

  相关解决方案