2017-02-15 5 views
0

각 내선 번호에 대해 인바운드 호출의 동시 통화 제한을 설정해야하지만 잘 진행되지는 않습니다.별표 13.7 GROUP_COUNT는 항상 1을 반환합니다.

실제로 최소 요구 사항은 여러 전화가 동일한 내선 번호로 울리지 않도록하는 것입니다. 이것은 "RingInUse"설정에서 수행해야하지만 여러 호출이 대기열에 합류하는 경우 Asterisk에 버그가 있습니다. RingInUse 규칙을 위반하고 말하기/벨소리 울림을 울릴 수 있습니다.

별표 1.6에서는 call-limit = 1로 설정할 수 있었지만 별표 (Asterisk)에서는 별표 (Asterisk) 13.7에서는 효과가없는 것으로 나타났습니다. 그래서 다른 해결책을 생각해 내야합니다.

포럼의 일부 게시물에 따르면 GROUPGROUP_COUNT은 새로운 별표 (Asterisk) 버전을위한 완벽한 솔루션이라고합니다. 그런 다음 GROUPGROUP_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보다 크지 않기 때문에 정확합니다. 그렇다면 괜찮습니다. 그러나 두 번째 호출은 여전히 ​​카운트가 1이지만 2가 아니기 때문에 0을 반환합니다.

이 에이전트는 동일한 에이전트를 호출하기 위해 대기열에서 더 많은 수신 호출을 중지하지 않기 때문에이 결과에 매우 좌절했습니다.


그냥 내가 "사용에 링"을 깨고 두 수신 전화의 타이밍이 너무 가까이있는 경우 동일한 에이전트를 울리는 별표에서 가능한 버그가, 위에서 언급 한. 따라서 "Ring In Use"를 덮어 쓰려면이 기능이 필요합니다 (더 나은 내결함성을 위해 이미 해제 했음에도 불구하고).


내가 쉽게> 공을 잡으려고했지만 실패 할 수 있도록하는 GROUP_COUNT 순서를 변경

[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() 

2017-0216 02시 49분 (그리니치 표준시)에 업데이트 1.

+0

이 문제가 있었지만 그 이유를 찾을 수 없었습니다. https://issues.asterisk.org/jira/browse/ASTERISK-26496 –

답변

0

별표 13.14에는 이러한 버그가 없습니다. 구식 (2 년 이상) 버전에 대한 센스 테스트는 없습니다.

어쩌면 dialplan을 그와 같은 형태로 바꾸어야합니다 (공백 또한 중요합니다).

exten => _.,n,Noop(current count is ${GROUP_COUNT(Exceed_${EXTEN})}) 
exten => _.,n,Gotoif($[ "${GROUP_COUNT(Exceed_${EXTEN})}" = "1" ]?only-dialextension,${EXTEN},1) 
exten => _.,n,Hangup