我正在使用 Asterisk 1.8.11-certified4 设置新服务器。在测试中,我们发现当呼叫限制设置为 0 时,动态登录到队列的代理将接收第二个队列呼叫作为呼叫等待。
由于所讨论的代理并不总是在代理队列中,因此,call-limit=1 会不必要地阻止他们接收呼叫等待,即使他们不在队列中。
以下配置的测试和结果如下:
- 让远程用户登录队列
- 将呼叫放入队列
- 远程用户应答呼叫 #1
- 将呼叫 #2 放入队列
- 远程用户报告第二个呼叫是呼叫等待呼叫。
扩展.ael
上下文进入销售队列{ s => { 回答(); 队列(den-x-queue,,,,60); 语音信箱(9001,u); 挂断(); }; };
队列.conf
[den-careers-queue]
strategy=leastrecent
timeout=17
ringinuse=no
autopause=no
musicclass = default
context = so-operator
monitor-format = wav
setinterfacevar = yes
timeoutpriority = conf
monitor-type=MixMonitor
reportholdtime=no
ringinuse=no
joinempty=strict
leavewhenempty=strict
retry=2
配置文件
[local-codecs](!) ; local user codecs, dont compress.
disallow=all
allow=ulaw
allow=alaw
[basic-options](!) ; template for what every sip user should have
dtmfmode=rfc2833
context=stationside
type=friend
host=dynamic
allowsubscribe=yes
subscribecontext=blf
notifyringing=yes
notifyhold=yes
limitonpeers=yes
call-limit=0
[local-mode](!,basic-options,local-codecs)
nat=no
qualify=yes
[6599](local-mode)
secret=xxxx
callerid=Peter Grace
accountcode=foobar
答案1
我在 freenode 上的 Asterisk IRC 频道中询问了同样的问题,其中一位开发人员回复说,在较新的 Asterisk 版本中(我假设是 1.8 及以上版本),您需要在 sip.conf 的常规配置中指定 callcounter=yes。
他还提到,call-limit 永远不应为零,因为从技术上讲,这不是该字段的有效选项。它应为 1 或更大。
在 1.8 之前的 Asterisk 版本中,callcounter=yes 不存在,因此只需指定一个任意高数字的呼叫限制就会使 Asterisk 正确跟踪呼叫数量并使队列按预期运行。
如果是 ASTERISK 1.8 或更高版本:
配置文件
[general]
callcounter=yes
如果在 1.8 之前使用 ASTERISK:
配置文件
[exten]
type=friend
...
call-limit=999
答案2
这可能会有帮助:
根据几位 Asterisk 用户的报告,他们在使用本地通道在 Asterisk Queue() 函数中提供热办公支持时遇到了 ringinuse=no 不起作用的问题,我们开发了一个非常简单的修复方法,现在已在我们流行的 Asterisk 队列教程中进行记录。
您不需要对 STATEINTERFACE 进行任何花哨的操作即可使其工作,并且它还适用于所有 Asterisk 电话类型,包括 SIP 和 DAHDI 通道。
更多详细信息请参阅:
http://www.orderlyq.com/asteriskqueuesLocal.html#ringinuse
因此,如果您正在为此苦苦挣扎,也许由于放弃了现已弃用的代理通道机制,您可能需要看一看:)
[编辑] 这需要使用 OrderlyStats 并将管理部分中的自动暂停参数设置为 >0 [\编辑]