
이전 내선이 사용 중이거나(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)