asterisk queue 队列

步骤1. 在sip.conf文件里添加 这样的三个

[1001]
type = friend
secret = 0
nat = yes
context = sipout
host = dynamic
dtmfmode = rfc2833
compensate = yes


[1002]
type = friend
secret = 0
context = sipout
host = dynamic
dtmfmode = rfc2833
compensate = yes


[1003]
type = friend
secret = 0
context = sipout
host = dynamic
dtmfmode = rfc2833
compensate = yes

步骤2,在queues.conf

添加如下内容

[general]  ;这些是系统默认的  
persistentmembers = yes  
autofill = yes  
monitor-type = MixMonitor  
[sipqueue]  
musicclass=default      //默认播放的音乐  
strategy= ringall       //振铃策略  
timeout=15              //每个座席分机的振铃时间  
retry=0          // 表示队列呼叫失败后,给多少秒再重新呼叫分机的振铃时间,一般我设置为0  
weight=0          //权重,一般设置默认为0,好像没看到所有什么特别之处  
wrapuptime=0  
member => SIP/1002,1  
member => SIP/1001,n 
member => SIP/1003,n 

步骤3. 在extensions.conf 添加如下内容

[sip]
exten => _1234,1,Set(CALLERID(num)=1111)
exten => _1234,n,Queue(sipqueue,t,,,150)    //sipqueue队列名
exten => _1234,n,hangup

这三步完成以后重启一下asterisk    

restart now

然后 用一个分机拨打1234 看看效果

在queues.conf

文件里 strategy的值 即 队列振铃方式有: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的顺序呼叫

posted @ 2011-04-27 16:43  我的团队  阅读(3874)  评论(0编辑  收藏  举报