별표 이전 INUSE인 경우 다음 내선 번호로 통화 전환

별표 이전 INUSE인 경우 다음 내선 번호로 통화 전환

이전 내선이 사용 중이거나(INUSE) 통화가 진행 중인 경우 다음 내선으로 통화를 전환하려고 합니다. EXTENSION_STATE(extension[@context])다음과 같이 상태를 찾기 위해 사용하려고했습니다 .

[sales]
exten => s,1,Dial(SIP/123)
exten => s,n,GotoIf($["${EXTENSION_STATE(123)}"="INUSE"]?passed:failed)
exten => s,n(passed),Dial(SIP/124)
exten => s,n(failed),Hangup();if other

하지만 성공하지 못했습니다. 어떻게 해야 합니까?

답변1

귀하의 솔루션은 매우 복잡하며 기본적으로 작동하지 않는 이유 중 하나입니다. 오히려 이것을 시도해야 합니다. 이것은 내부 변수를 사용하는 일반적이고 더 간단한 접근 방식입니다 ${DIALSTATUS}. 응답하면 통화가 간단하게 끊기므로 모든 오류 상태만 처리하면 됩니다.

[sales] exten => s,1,Dial(SIP/123) exten => s,2,Goto(${EXTEN}-${DIALSTATUS},1) exten => s-BUSY,1,Dial(SIP/other) exten => s-CONGESTION,1,Dial(SIP/someone)

답변2

이것은 EXTENSION_STATE 대신 GROUP_COUNT()를 사용하여 저에게 효과적이었습니다.

exten => s,1,Set(GROUP()=OUTBOUND_GROUP)
exten => s,2,GotoIf($[ ${GROUP_COUNT()} > 1 ]?try1:try2)
exten => s,3(try1),Dial(SIP/124)
exten => s,4(try2),Dial(SIP/123)

관련 정보