我需要爲每個分機設置併發呼叫限制,但不是很好。星號13.7 GROUP_COUNT總是返回1
其實最低要求是防止多個呼叫振鈴相同的分機。這應該在「RingInUse」設置中完成,但是如果多個呼叫加入隊列,則星號中存在一個錯誤,它可能會破壞RingInUse規則並響鈴通話/振鈴擴展。
我能夠在Asterisk 1.6中設置call-limit = 1,但在Asterisk 13.7中似乎沒有影響(或折舊)。所以我需要提出另一種解決方案。
論壇上的一些帖子說GROUP
和GROUP_COUNT
是新版Asterisk版本的完美解決方案。然後我發現很多使用GROUP
和GROUP_COUNT
的例子,但其中大部分都是基於中繼或外撥的呼叫。但後面提到的入站呼叫也是工作,所以我在我的extensions.conf
的隊列部分實現了它。
[only-dialextension-q6701]
exten = _.,1,Gotoif(${DB(DND/${EXTEN})}>0?h,1)
exten = _.,2,Set(ODETIME=30)
exten = _.,n,Set(GROUP()=Exceed_${EXTEN})
exten = _.,n,Gotoif($[${GROUP_COUNT(Exceed_${EXTEN})}>1]?h)
exten = _.,n,Goto(only-dialextension,${EXTEN},1)
exten = h,1,Hangup()
問題
我被監測asterisk -vvvvvvvvvvr
和輸出。當第一次調用到來時,它返回0(布爾值表示false)。這是正確的,因爲1不大於1,那就好了。但第二個來電,它仍然返回0,因爲計數仍然是1但不是2.
我對此結果感到非常沮喪,因爲這不會阻止來自隊列的進一步呼叫來呼叫同一個座席。
剛纔我上面提到的,還有在Asterisk的一個可能的錯誤,打破「籃圈使用」和環同一個代理,如果這兩個來電的時間過於接近。所以我需要這個覆蓋「Ring In Use」(儘管我已經關閉它以實現更好的容錯性)。
在2017-0216 02:49 GMT
[only-dialextension-q6701]
exten = _.,1,Gotoif(${DB(DND/${EXTEN})}>0?h,1)
exten = _.,2,Set(ODETIME=30)
exten = _.,n,Gotoif($[${GROUP_COUNT(Exceed_${EXTEN})}>0]?callHangup:callQueueAgent)
exten = _.,n(callHangup),Hangup()
exten = _.,n(callHangup),Goto(always-Hangup,h,1)
exten = _.,n(callQueueAgent),Set(GROUP()=Exceed_${EXTEN})
exten = _.,n(callQueueAgent),Goto(only-dialextension,${EXTEN},1)
exten = h,1,Hangup()
我已經改變了GROUP_COUNT以使其更容易捕捉> 0,但未能更新1。
我有這個問題,但無法找到原因。 https://issues.asterisk.org/jira/browse/ASTERISK-26496 –