Ubuntu
如果上一個 INUSE,Asterisk 將呼叫轉移到下一個分機
如果上一個正在使用(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
但是沒有成功。我怎樣才能做到這一點?
這個使用 GROUP_COUNT() 而不是 EXTENSION_STATE 對我有用:
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)
您的解決方案很複雜,這基本上是它不起作用的原因之一。你應該試試這個,這是一種使用內部變數的常見更簡單的方法
${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)