Asterisk 为什么';拨号';此星号拨号计划';上下文

Asterisk 为什么';拨号';此星号拨号计划';上下文,asterisk,Asterisk,我在星号配置文件中有此拨号计划: [voicemenu-custom-1] exten = s,1,NoOp(VM_Main) exten = s,n,Answer() exten = s,n,Goto(ringgroup,s,1) exten = s,n,Dial(DAHDI/g1/009396464991) exten = s,n,Hangup() 这是拨号计划中一个非常简单的上下文,它要求星号回答,然后执行另一个名为ringgroup的上下文(同时拨打所有电话),然后尝试拨打外部号码(0

我在星号配置文件中有此拨号计划:

[voicemenu-custom-1]
exten = s,1,NoOp(VM_Main)
exten = s,n,Answer()
exten = s,n,Goto(ringgroup,s,1)
exten = s,n,Dial(DAHDI/g1/009396464991)
exten = s,n,Hangup()
这是拨号计划中一个非常简单的上下文,它要求星号回答,然后执行另一个名为
ringgroup
的上下文(同时拨打所有电话),然后尝试拨打外部号码(
0093964991
),然后挂断

环组
上下文的代码为:

[ringgroup]
exten = s,1,NoOp(RG1)
exten = s,n,Dial(SIP/1001&SIP/1002&SIP/1003&SIP/1004,30,${DIALOPTIONS})
exten = s,n,Hangup()
但我得到的是,Asterisk应答入站呼叫,然后转到
振铃组
上下文,但在执行
s,n,Dial(DAHDI/g1/009396464991)
行时,它遇到拨号错误,并且不会执行
拨号
应用程序

这里怎么了?

使用

asterisk -r 
core set verbose 10
看看到底是怎么回事

在您的计划中,我可以看到您正在进行转到(ringgroups,s,1),但上下文是ringgroups,而不是ringgroups。

使用

asterisk -r 
core set verbose 10
看看到底是怎么回事


在您的计划中,我可以看到您正在进行Goto(ringgroups,s,1),但上下文是ringgroups,而不是ringgroups。

您可以跳回
voicemenu-custom-1
上下文,因为您在Groupdial之后挂断了
(arheops已经指出)。
您可以跳转到标签,即
voicemenu-custom-1
的“FwdOutbound”,使用
Goto(上下文、扩展名、标签)

在铃声组中转到,而不是挂断:

[ringgroup]
exten = s,1,NoOp(RG1)
exten = s,n,Dial(SIP/1001&SIP/1002&SIP/1003&SIP/1004,30,${DIALOPTIONS})
exten = s,n,Goto(voicemenu-custom-1,s,FwdOutbound)
exten = s,n,Hangup()

您可以跳回
voicemenu-custom-1
上下文,因为您
挂断了
(正如arheops已经指出的那样)在Groupdial之后。 您可以跳转到标签,即
voicemenu-custom-1
的“FwdOutbound”,使用
Goto(上下文、扩展名、标签)

在铃声组中转到,而不是挂断:

[ringgroup]
exten = s,1,NoOp(RG1)
exten = s,n,Dial(SIP/1001&SIP/1002&SIP/1003&SIP/1004,30,${DIALOPTIONS})
exten = s,n,Goto(voicemenu-custom-1,s,FwdOutbound)
exten = s,n,Hangup()

根据您描述的行为,我建议您将“Goto”改为“GoSub”,并将[ringgroup]中的“HangUp”改为“Return”。这将产生你想要的效果

“Goto”永远不会从您发送到的上下文中返回。这是单程票。只要通话保持活动状态(即未挂断),GoSub将在用尽新的上下文后自动返回其发送的上下文

顺便说一句,GOSUB被认为是比现在使用宏做事情“更好的方法”,所以习惯它们是个好主意


进一步阅读:

根据您描述的行为,我建议您将“Goto”改为“GoSub”,并将[ringgroup]中的“HangUp”改为“Return”。这将产生你想要的效果

“Goto”永远不会从您发送到的上下文中返回。这是单程票。只要通话保持活动状态(即未挂断),GoSub将在用尽新的上下文后自动返回其发送的上下文

顺便说一句,GOSUB被认为是比现在使用宏做事情“更好的方法”,所以习惯它们是个好主意


进一步阅读:

更新了问题。一个简单的拼写错误。:)我不明白你想说什么。g1拨号时,它从不走那条线。原因很简单-它确实挂断在环组上下文的第3行。更新了问题。一个简单的拼写错误。:)我不明白你想说什么。g1拨号时,它从不走那条线。原因很简单-它确实挂断在环组上下文的第3行。