11

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

今天的日程按“1”,明天的日程按“2”,以此类推。

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

现在,我以前从未设置过这样的东西,并在 Google 上做了一些挖掘。似乎我可以使用 Asterisk 来实现这一点。

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

11 回答 11

17

这是完全可能的。

你需要知道的:

  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 操作都相当于从磁盘读取文件字节并通过网络发送它们,只需基本包装即可。没有数学,除了简单的读取-包装-发送操作。

    2. 请您的提供商检测他身边的音调,并使用RFC 2833. 音调检测是一个相当消耗 CPU 的操作,让他们自己做吧。

    2,66 MHz Celeron IV我个人在with 2048 MB RAM, under上运行 Asterisk Fedora 10 X86_64。一次 150 个连接可以正常工作,没有延迟。

    总流量约为9.6 KByte/sec每个连接。对于现代 VPS 来说应该完全没有问题。

于 2009-01-30T12:16:04.480 回答
2

星号岩石。对于几行简单的 P3 或更好的就可以了。不要虚拟化 PBX;Asterisk 依赖于非常准确的时间。

FreePBX使设置 IVR 变得非常容易 - 拥有一个不错的基于 Web 的前端,并支持一些很酷的 Asterisk 工具。

编辑:FreePBX 不是 Asterisk - 它是一个漂亮的界面,可以为您生成配置。如果您想要一个简单的傻瓜相机解决方案,Trixbox 默认包含它。

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

于 2009-01-30T12:01:47.037 回答
2

构建 IVR 应用程序的最佳方式是使用 W3C.org (http://www.w3.org/TR/voicexml21/) 设计的 VoiceXML。Asterisk 不附带 VoiceXML 浏览器,但有一些公司为 Asterisk 提供该浏览器,例如 SoftSyl Technologies (http://www.softsyl.com)。

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

于 2011-02-12T19:25:53.100 回答
2

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

我在 Xen 虚拟服务器上运行一个 FreeSWITCH 实例,它可以完美地运行多个同时调用。

于 2012-10-12T14:46:37.887 回答
1

对于更复杂的 IVR,您可以尝试Astive Toolkit,尤其是在您需要数据库或 Web 服务迭代时。

于 2012-05-15T22:13:33.580 回答
1

在 Asterisk 中进行 IVR 设计并不难,但是在启动和运行您的第一台 Asterisk 服务器时存在一些“学习悬崖”。

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

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

尽量保持你的菜单“浅”。如果需要三个以上的菜单选项来获取您的客户正在寻找的信息,他们很可能会挂断电话,或者只需按“0”与人交谈。这违背了您的 IVR 的意义。

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

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

于 2012-10-12T15:46:22.773 回答
0

我过去使用过 IVR,但主要使用大型系统,从未使用过 Asterisk。不过,我快速浏览了他们的网站(http://www.asterisk.org/),看起来信息量很大,你在那里检查过吗?

于 2009-01-30T11:59:46.930 回答
0

它与编程无关,但...

看看trixbox.org,它支持从 cisco 到...的配置...

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

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

于 2009-01-30T12:05:10.197 回答
0

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

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

sipgate 是免费的,除非您正在拨打电话。

于 2009-01-30T13:47:00.693 回答
0

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

[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()
于 2011-03-26T02:17:43.493 回答
0

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

于 2014-02-02T17:52:11.960 回答