星号拨号方案背景说明

时间:2012-10-15 07:16:26

标签: sip asterisk sip-server

我一直在学习星号拨号方案,我创建了一个非常简单的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个上下文

[传入] - 处理来电 [主菜单] - 菜单选项。

在传入上下文中。当扩展名为'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.

同样在[主菜单]

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

我刚刚开始理解拨号方案,目前我有点困惑。

因此根据您的建议,我更新的拨号方案看起来就像这样。

[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"

在[主菜单]的情况下,我想要说出像

这样的内容
  "press 3 to play 3"
  "press 4 to play 4"
  "press 9 to hangup"

我是否必须录制该文件。这有什么作用?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您的[传入]上下文完全符合您的想法 在开始向客户发送声音之前,您只需要一次接听()线路。所以如果你之前没有这样做,你只需要在[主菜单]中回答()。

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

[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()

“相同”完全听起来像是什么; “使用与上面一行相同的扩展名”。如果您正在进行大型拨号计划,您在不同部分(例如IVR)之间进行一些剪切 - 调整,使用“相同”可以避免使用分机号码进行错误。

“(menuprompt)”被称为标签,您可以在相同的上下文中转到标签,这样就无法计算“n”来计算要使用的优先级数。

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

答案 1 :(得分:1)

你很亲密,但并不完全。

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

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

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

如果这是一个面向公众的系统,请考虑从客户POV中将菜单记录作为系统中最重要的部分。质量差,音量低,口音难以等的信息会“说服”您的客户您的IVR“使用太多”。