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_name
、queue unpause member sip_name queue queue_name
來達到同樣的效果,具體使用可參照 此篇文章 。同時撥號計劃對應的應用如下
AddQueueMember(queue_name,sip_name)
RemoveQueueMember(queue_name,sip_name)
PauseQueueMember(PauseQueueMember)
UnpauseQueueMember(PauseQueueMember)