用Asterisk设置IVR

时间:2009-01-30 11:52:44

标签: installation voip asterisk ivr

我需要为朋友的公司设置一个简单的IVR系统,让呼叫者通过按电话键浏览菜单。它有点像公交车时刻表。

  

今天的日程安排按'1',明天的日程安排按'2'和   等等。

它只是一个信息系统,即没有导航路线会以真人结束,但只播放音频信息。

现在,我以前从未设置过这样的东西,并在Google上进行了一些挖掘。似乎我将能够使用Asterisk实现这一目标。

  • 我还需要硬件方面的其他什么?
  • 一个简单的Linux服务器和一个德国提供商的VOIP帐户是否足够?
  • VPS会处理任务吗?
  • 多个并发来电怎么样?
  • 那些是由Asterisk处理的吗?

11 个答案:

答案 0 :(得分:16)

这完全有可能。

您需要了解的内容:

  1. Asterisk在H323方面存在一些问题。如果您的提供商提供SIP,请向他们询问SIP

  2. 您可以在IVR的拨号计划中构建整个extensions.conf,但对于复杂的任务,最好使用AGI。这些是PerlPython或任何实现您的IVR逻辑的语言脚本。每个AGI会话跨越子进程,如果您希望频繁连接,请使用FastAGI和网络守护进程。

  3. 多个并发呼叫不是问题,我在一台简单的PC上安装Asterisk会处理数百个同时呼叫。

  4. 可能真正影响效果的唯一因素是声音转换音调检测

    要提高效果,您应该:

    1. 坚持使用一个编解码器(我使用µLaw),强制所有SIP连接使用该编解码器,并使用sox -t ul将所有声音文件预转换为它。一旦你完成它,所有Asterisk操作都等于从磁盘读取文件字节并通过网络发送它们只需基本包装。没有数学,除了简单的read-wrap-send操作之外什么都没有。

    2. 要求您的提供商检测他身边的音调并使用RFC 2833将其发送给您带外。音调检测是一项耗费CPU的操作,让他们自己动手。

    3. 我个人在2,66 MHz Celeron IV上使用2048 MB RAMFedora 10 X86_64下运行Asterisk。 150个连接一次正常工作,没有延迟。

      每个连接的总流量约为9.6 KByte/sec。对于现代VPS,应该没有任何问题。

答案 1 :(得分:2)

星号岩石。对于几行,简单的P3或更好的将做。不要虚拟化PBX; Asterisk依赖于非常精确的计时。

FreePBX使得设置IVR非常容易 - 获得了一个不错的基于网络的前端,并支持一些很酷的Asterisk工具。

编辑:FreePBX不是Asterisk - 它是一个漂亮的界面,为您生成配置。如果你想要一个简单的瞄准和射击解决方案,Trixbox默认包含它。

如果您的VoIP帐户支持多个传入线路,那么Asterisk会很好地使用它们。您还需要足够的Internet带宽和良好的QoS。对于业务系统中的多行,我会坚持使用专用连接,这样当用户访问网络时您就不会遇到丢失。

答案 2 :(得分:2)

构建IVR应用程序的最佳方法是使用W3C.org设计的VoiceXML(http://www.w3.org/TR/voicexml21/)。 Asterisk并没有配备VoiceXML浏览器,但有些公司为Asterisk提供软件,如SoftSyl Technologies(http://www.softsyl.com)。

Cisco和Avaya等公司也提供VoiceXML浏览器,但不适用于Asterisk。

答案 3 :(得分:2)

如果你是新鲜的,我会建议学习FreeSWITCH而不是Asterisk。结构更好,还附带一些预先构建的示例,包括IVR菜单,IVR语法非常简单:http://wiki.freeswitch.org/wiki/IVR_Menu

我正在Xen虚拟服务器上运行FreeSWITCH实例,它可以在多个同时调用的情况下完美运行。

答案 4 :(得分:1)

您可以在拨号计划中执行此操作...

[menu-main]
exten => s,1,Noop()
exten => s,n(msg),Background(ForTodayPress1TomorrPress2)
exten => s,1,Goto(menu-today)
exten => s,2,Goto(menu-tomorrow)
exten => i,1,Playback(invalid)
exten => i,n,Goto(msg)
exten => t,1,Goto(msg)

[menu-today]
etc...

[menu-tomorrow]
etc...

或者正如其他人建议您可以使用任何可以写入stdin并从stdout读取的语言来执行此操作。 phpagi实现是我特别喜欢的味道。它可能适合这个例子,因为PHP在一个单独的盒子上运行,所以它不会在任何负载下影响PBX。

[menu-main]
exten => s,1,Noop()
exten => s,n(msg),Background(ForTodayPress1TomorrPress2)
exten => s,1,Goto(menu-today,s,1)
exten => s,2,Goto(menu-tomorrow,s,1)
exten => i,1,Playback(invalid)
exten => i,n,Goto(msg)
exten => t,1,Goto(msg)

[menu-today]
exten => s,1,Noop()
exten => s,n,agi(http://myapache/agi/readschedule.php)
exten => s,n,Hangup()

答案 5 :(得分:1)

对于更复杂的IVR,您可以尝试Astive Toolkit,特别是如果您需要数据库或Web服务迭代。

答案 6 :(得分:1)

Asterisk中的IVR设计并不困难,但是有一个“学习悬崖”与启动和运行第一台Asterisk服务器有关。

正如其他人所说,通话质量就是一切。支付您的IVR提示和公告的专业级录音。确保您使用的是64k代码,例如uLaw和aLaw; GSM(手机)可能在带宽上很便宜,但它打破了客户对质量的期望。

我强烈建议您将IVR放入其自己的拨号计划上下文中,然后将其直接调用。这样可以更轻松地管理菜单选项等内容。对于每个选项子集,请使用不同的拨号计划上下文。

尝试将菜单设置为“浅”。如果需要三个以上的菜单选项来获取客户所需的信息,他们很可能会挂断,或者只需按“0”即可与人交谈。这违背了你的IVR。

如果您打算使用数据库查找或帐户身份验证等做一些相当酷的事情,我建议使用“AGI” - Asterisk Gateway Interface - 应用程序。我个人最喜欢的是“Adhearsion”,它与DB / Web端的Ruby / Rails很好地融合。

如果您需要帮助或了解更多信息,请与我们联系。

答案 7 :(得分:0)

我过去曾使用过IVR,但主要是使用大型系统而且从未使用过Asterisk。我快速浏览了一下他们的网站(http://www.asterisk.org/),看起来非常有用,你在那里查了一下吗?

答案 8 :(得分:0)

它与编程无关,但......

看看trixbox.org,它支持从思科到snom手机的配置 它的Asterisk / Freepbx mod以及一个不错的ui下的一切!

我在澳大利亚有一家提供商将它们添加为gsm主干,花了3个小时来设置4部电话。支持IVR

唯一的问题可能是......录音的语音质量

答案 9 :(得分:0)

非常简单。我正在使用sipgate.de作为我的星号的提供者。 你需要设置一个拨号方案。

这也很简单。看看here。 你也可以看一下extensions.conf。 里面有一些样品。 这也是适合您的问题的样本。 要连接到sipgate,请查看他们的知识库。 有一些星号配置的样本。

sipgate是免费的,除了你正在拨打电话。

答案 10 :(得分:0)

如果您想设置Asterisk IVR,您还可以使用一些拖放式基于Web的工具,以便制作简单的自动助理(如您的示例中)或复杂的IVR(管理脚本或数据库驱动的IVR)。 一个选项是 Cally Square 。看看这里: http://www.callysquare.com/