【发布时间】:2011-12-29 11:58:34
【问题描述】:
我的星号拨号方案中有以下上下文。
[start-call]
exten => _X.,1,AGI(agi://localhost:4000)
exten => _X.,n,GotoIf($["${AGISTATUS}" = "FAILURE"]?redirect)
exten => _X.,1000(redirect),Hangup(31)
exten => 900,n,Goto(start-call,${EXTEN},1)
exten => h,n,Hangup
我有一个 AGI 应用程序,它连接呼叫并收集 DTMF 输入,并使用 SET EXTENSION agi 命令(第 1 行)将该号码设置为分机号。仅当没有 DTMF 输入时,我才将 AGISTATUS 设置为 FAILURE。如果没有输入,我会超时,然后挂断(第 3 行)。但是如果输入 900,我会返回开始调用上下文并在 AGI 应用程序中做一些魔术(第 4 行)。
问题是,现在即使我输入 900,通话也会被挂断。不是从第 3 行开始,而是从最后一行开始。所以它以某种方式跳过第4行。如果我将 900 扩展(第 4 行)移到标有 redirect(第 3 行)的扩展之前,它会起作用。
我认为星号会自动增加 'n' 的优先级,并希望它能够按照上面列出的顺序工作。我错了吗?
【问题讨论】: