Asterisk Queue

Asterisk 中的隊列,在做 IVR 時作用重大,比如處理呼叫排隊。和 MeetMe 類似,有動態隊列和靜態隊列之分。

先談談靜態隊列,在 queues.conf 中配置如下

[queue_sip]
musicclass=default     ;默認播放的音樂  
strategy= ringall       ;振鈴策略  
timeout=15              ;每個座席分機的振鈴時間  
retry=0          ;表示隊列呼叫失敗後,給多少秒再重新呼叫分機的振鈴時間,一般我設置爲0  
weight=0          ;權重,一般設置默認爲0
wrapuptime=0
member=>SIP/111,1
member=>SIP/222,n
member=>SIP/333,n
member=>SIP/444,n
member=>SIP/555,n

當然了事先得到 sip.conf 裏創建 5 個分機號

sip.conf
--------
 
[template](!)
type=peer
context=devices
host=dynamic
secret=123456
dtmfmode=rfc2833
disallow=all
allow=ulaw
 
[111](template)
[222](template)
[333](template)
[444](template)
[555](template)

再在 extensions.conf 寫撥號計劃

[devices]
exten => _X.,1,Answer()  
same=>n,Queue(queue_sip,t,,,20)   ;20 秒爲呼叫整個該隊列的超時時間  
same=>n,Hangup()  

這時撥打話機進入 queue_sip 隊列時,會依次呼叫隊列的話機。

最後看看動態隊列,在 queues.conf 中配置

queues.conf
----------
 
[queue_template](!)
musicclass=default      ; play [default] music
strategy=rrmemory       ; use the Round Robin Memory strategy
joinempty=yes           ; join the queue when no members available
leavewhenempty=no       ; don't leave the queue no members available
ringinuse=no            ; don't ring members when already InUse
 
[sales](queue_template)
; Sales queue
 
[support](queue_template)
; Support queue

asterisk -r 進入命令行,使用 queue show [queue_name] 查看隊列成員信息,使用 queue add member <channel> to <queue>queue remove member <channel> from <queue> 動態添加、刪除隊列成員,這樣就可以實現 IVR 進線不會呼叫在休息中客服,當然了也可以使用 queue pause member sip_name queue queue_namequeue unpause member sip_name queue queue_name 來達到同樣的效果,具體使用可參照 此篇文章 。同時撥號計劃對應的應用如下

AddQueueMember(queue_name,sip_name)
RemoveQueueMember(queue_name,sip_name) 
PauseQueueMember(PauseQueueMember)
UnpauseQueueMember(PauseQueueMember)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章