gpt4 book ai didi

include - 如何正确使用 Asterisk 包含语句?

转载 作者:行者123 更新时间:2023-12-02 11:21:59 32 4
gpt4 key购买 nike

我是 asterisk 新手,我有一个关于使用 include 语句的问题。

我有一个来自 FreePBX 的名为“app-calltrace-perform”的上下文,当人们按 *69 来跟踪他们的调用时使用。

[app-calltrace-perform]
include => app-calltrace-perform-custom
exten => s,1,Answer
...
exten => t,n,Macro(hangupcall,)

extensions_additional.conf 中编写的“app-calltrace-perform”,当用户在 Web gui 上提交有关 dialplan 的内容时,该内容将被覆盖。因此,我必须在另一个名为 extensions_custom.conf

的文件上编写自己的上下文“app-calltrace-perform-custom”

[app-calltrace-perform-custom]
exten => s,1,Answer()
same => n,VERBOSE("Something here")
same => n,Playback(hello-world)
same => n,Hangup()

请注意,extensions_additional.confextensions_custom.conf 已包含在 中扩展.conf

然后我dialplan reload并重试,但 dialplan 根本不播放我的上下文(没有详细信息,不播放 hello-world)。

我在 https://wiki.asterisk.org/wiki/display/AST/Include+Statements+Basics 中找到了一些有用的东西

Asterisk will always try to find a matching extension in the current context first, and only follow the include statement to a new context if there isn't anything that matches in the current context.

所以现在我不知道如何使用我的自定义上下文来处理这样的事情。抱歉,如果这是一个愚蠢的问题,但如果您有任何想法,请指导我。

编辑
这是 app-calltrace-perform 调用的地方

[应用程序调用跟踪]
包括 => 应用程序调用跟踪自定义
exten => *69,1,Goto(app-calltrace-perform,s,1)

现在我正在使用在上下文 app-calltrace-custom 中定义的另一个扩展 (*12345),它运行良好,但是硬编码的,因此无法由 Web Gui 修改

结束编辑

提前致谢
雷登

最佳答案

Asterisk 拨号方案匹配以这种方式工作

[context1]
exten => 1,1,Noop(1)
include =>context2
include =>context3
exten => i,1,Noop(invalid extension)
[context2]
exten => 1,1,Noop(2)
exten => 2,1,Noop(3)
[context3]
exten => 1,1,Noop(4)
exten => 2,1,Noop(5)
exten => _X,1,Noop(other)

假设您调用 context1

当调用 1 时,将从上下文 1 中选择命令,因为它存在于上下文中。如果您使用通配符,则相同。

调用时,将从上下文 2 中选择 2,第一个包含上下文当调用任何其他号码(例如 3)时,将在上下文 3 中选择“其他”(因为它未出现在上下文中,也未出现在先前包含的上下文中)

如果调用的 12 不存在于任何上下文中,将执行“无效”扩展

关于include - 如何正确使用 Asterisk 包含语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29619049/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com