2009-01-30 75 views
11

我需要为朋友的公司设置一个简单的IVR系统,让主叫方通过按电话键在菜单中导航。它有点像公交时刻表。使用星号创建IVR

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

它仅仅是一个信息系统,即没有导航路线最终会与真人对话,而只会播放音频消息。

现在,我从来没有设置过这样的东西,并且对Google进行了一点挖掘。似乎我将能够使用Asterisk实现这一点。

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

有没有编程的角度? – Kev 2009-01-30 12:10:47

+1

我还不知道......现在它只是技术相关的。但人们似乎渴望帮助并给出答案... – Sebastian 2009-01-30 12:18:40

回答

16

这是完全可能的语音质量。

你需要知道什么:

  1. Asterisk有一些问题H323。如果您的供应商提供SIP,请改为请求他们SIP

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

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

  4. 可能真的影响性能的唯一的事情是声音转换音调检测

    为了提高性能,您应该:

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

    2. 请求您的提供者检测他身旁的音调并将它们发送给您带外,使用RFC 2833。音频检测是相当耗时的CPU操作,让他们自己动手。

    我亲自跑与2048 MB RAM一个2,66 MHz Celeron IV星号,Fedora 10 X86_64下。一次150个连接工作正常,没有延迟。

    总体流量约为每个连接9.6 KByte/sec。对于现代VPS,根本没有问题。

0

我过去曾与IVR合作,但主要与大型系统有关,并且从未使用过Asterisk。我快速浏览了他们的网站(http://www.asterisk.org/),但它似乎非常丰富,你在那里检查过吗?

+0

yepp。已经做到了。但我想听听已经完成我想做的事情的人,谁能告诉我可能出现的并发症或建议安装。 – Sebastian 2009-01-30 12:03:40

2

星号岩石。对于几行,一个简单的P3或更好将会做。不要虚拟化PBX; Asterisk依靠相当准确的时机。

FreePBX使设置IVR变得非常简单 - 有一个体面的基于Web的前端,并支持一些很酷的Asterisk工具。

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

如果您的VoIP帐户支持多条传入线路,则Asterisk将使用它们。您还需要足够的Internet带宽和体面的QoS。对于业务系统上的多条线路,我会坚持使用专用连接,以便在用户访问网络时不会遇到退出。

+0

您是否认为使用安装了Asterisk的常规VPS还可以实现IVR?还是应该让我专门的服务器? – Sebastian 2009-01-30 12:16:01

+0

如果你在某处安装了Asterisk,那么请尽量使用它。几条线路的IVR几乎不需要很多资源。如果你正在谈论很多线路(20+),那么考虑一下专用硬件。 – 2009-02-01 04:29:56

0

它不是编程有关,但...

看看trixbox.org,它支持从配置思科... SNOM电话 它的Asterisk/FreePBX的MOD,一切都很好的用户界面下!

我有一个在澳大利亚的提供商添加他们作为GSM干线,花了3小时安装4phone。 IVR支持

唯一的问题将可能是...记录

0

它很简单。我使用sipgate.de作为我的星号的提供者。 您需要设置拨号方案。

这个也很简单。看看here。 你也应该看看extensions.conf。 里面有一些样品。 这也是一个适合你的问题的样本。 连接到sipgate,看看他们的知识库。 有一些用于星号配置的示例。

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

2

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

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

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... 

或者像其他人建议你可以在可以写入标准输入和标准输出从读取任何语言做到这一点。 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() 
1

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

2

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

我在Xen虚拟服务器上运行FreeSWITCH实例,它运行完美与多个同时呼叫。

1

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

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

我强烈建议您将IVR放入自己的拨号计划上下文中,然后直接调用它。这使得菜单选择等管理工作变得更加简单。对于每个选项子集,请使用不同的拨号计划上下文。

尝试并保持菜单“浅”。如果需要三个以上的菜单选项来获取您的客户正在寻找的信息,他们很可能会挂断,或者只需按“0”与人交谈即可。这就击败了你的IVR。

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

如果您需要帮助或更多信息,请告诉我。

0

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