0

我一直在学习星号拨号方案,并创建了一个非常简单的 IVR 菜单。我希望有人验证我创建的内容是否正确。我想创建一个非常简单的 IVR,它有 2 个菜单级别和一个退出选项。

[incoming]
exten => 123,1,Answer()
exten => 123,n,Background(main-menu)

exten => 1,1,Playback(digits/1)
exten => 1,n,Goto(incoming,123,1)

exten => 2,1,Playback(digits/2)
exten => 2,n,Goto(incoming,123,1)

exten => 9,1,Hangup()

[main-menu]
exten => 456,1,Answer()
exten => 456,n,Background(main-menu)

exten => 3,1,Playback(digits/3)
exten => 3,n,Goto(incoming,456,1)

exten => 4,1,Playback(digits/4)
exten => 4,n,Goto(incoming,456,1)

exten => 9,1,Hangup()

我在上面创建了 2 个上下文

[incoming] - 处理来电 [main-menu] - 一个菜单选项。

在传入的上下文中。当扩展名为“123”时,我调用 Answer() 应用程序然后它执行后台(主菜单)。

if the user presses '1' it plays '1' and goes back to 123 priority '1'

if the user presses '2' it plays '2' and goes back to 123 priority '1'

if the user presses '9' it hangs up.

同样在 [主菜单]

在这种情况下我还需要一个 answer() 吗?

我刚刚开始了解拨号方案,现在我有点困惑。

所以根据你的建议,我更新的拨号方案看起来像这样。

[incoming]
exten => 123,1,Answer()
 same => n(menuprompt),Background(main-menu)

exten => 1,1,Playback(digits/1)
 same => n,Goto(menuprompt)

exten => 2,1,Playback(digits/2)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

[main-menu]
exten => n(menuprompt),Background(main-menu)

exten => 3,1,Playback(digits/3)
 same => n,Goto(menuprompt)

exten => 4,1,Playback(digits/4)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

感谢您的建议和解释。但我有一个问题。

1)传递给背景的“主菜单”显然是声音文件。在[传入]的情况下,我想说这样的话

 "press 1 to play 1"
 "press 2 to play 2"
 "press 9 to hangup"

在 [main-menu] 的情况下,我希望它说类似

  "press 3 to play 3"
  "press 4 to play 4"
  "press 9 to hangup"

我必须记录那个文件吗?这是如何运作的?

提前致谢。

4

2 回答 2

1

您的 [传入] 上下文完全按照您的想法执行。
在开始向客户发送声音之前,您只需要 Answer() 一次。因此,如果您之前没有这样做,您只需要在 [主菜单] 中回答()。

这是对 [incoming] 的轻微重写,在可读性和防错方面会有点“更好”。

[incoming]
exten => 123,1,Answer()
 same => n(menuprompt),Background(main-menu)

exten => 1,1,Playback(digits/1)
 same => n,Goto(menuprompt)

exten => 2,1,Playback(digits/2)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

“Same”完全符合听起来的样子;“使用与上述行相同的扩展名”。如果您正在执行大型拨号计划,并且在不同部分(例如 IVR)之间进行一些剪切粘贴调整,则使用“相同”可以避免分机号码出错。

“(菜单提示)”称为标签,您可以在同一上下文中转到标签,这样您就不必计算“n”来确定要使用的优先级编号。

进一步阅读:https ://wiki.asterisk.org/wiki/display/AST/Contexts,+Extensions,+and+Priorities

于 2012-10-16T14:51:01.207 回答
1

你很接近,但不完全。

将上下文视为物理盒子。你不能穿过盒子里的墙壁。因此,“标签”和扩展名仅适用于该特定框/上下文中的内容。

在您更新的拨号方案中,您需要专门转到上下文/扩展名/优先级以从一个上下文获取另一个上下文。这样,拨号计划就知道您不是在尝试引用它已经在其中运行的上下文中的某些内容。

关于您正在播放的消息提示,是的,您需要记录这些提示。从用户的角度来看,MP3 格式是最容易使用的,但它会给 PBX 带来更多的负担。在这个多核千兆赫 CPU 的时代,我很少担心这一点。

如果这将是一个面向公众的系统,请考虑您的菜单记录是您系统中最重要的部分,来自客户 POV。质量差、音量低、口音难听等的消息会“说服”您的客户,您的 IVR “工作量太大”无法使用。

于 2012-10-17T14:17:18.407 回答