如果之前的 INUSE,Asterisk 将呼叫转移到下一个分机
Asterisk Transfer call to next extension if previous 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
但是没有成功。我该怎么做?
EXTENSION_STATE()
函数仅适用于提示扩展。确保在 extensions.conf 中为扩展添加提示。类似于:
[default]
exten => 123,hint,SIP/123
详情:http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/DeviceStates_id265377.html
试试这个:
[sales]
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)
使用GROUP_COUNT()
代替EXTENSION_STATE()
如果前一个分机正在使用 (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
但是没有成功。我该怎么做?
EXTENSION_STATE()
函数仅适用于提示扩展。确保在 extensions.conf 中为扩展添加提示。类似于:
[default]
exten => 123,hint,SIP/123
详情:http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/DeviceStates_id265377.html
试试这个:
[sales]
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)
使用GROUP_COUNT()
代替EXTENSION_STATE()