代码之家  ›  专栏  ›  技术社区  ›  Sebastian

用星号设置IVR

  •  11
  • Sebastian  · 技术社区  · 16 年前

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

    对于今天的日程,请按“1”,对于明天的日程,请按“2”,然后 等等。

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

    现在,我以前从来没有设置过这样的东西,在谷歌上做过一些挖掘。似乎我可以用星号来实现这一点。

    • 我还需要硬件方面的什么?
    • 一个简单的Linux服务器和一个德国供应商的VOIP帐户是否足够?
    • VPS会处理这个任务吗?
    • 多个并发来电怎么样?
    • 那些是用星号处理的吗?
    11 回复  |  直到 10 年前
        1
  •  16
  •   Quassnoi    16 年前

    这是完全可能的。

    你需要知道的是:

    1. 星号有一些问题 H323 . 如果您的供应商提供 SIP 问他们 相反。

    2. 你可以建立一个整体 IVR 在您的拨号计划中 extensions.conf 但对于复杂的任务,最好使用 AGI . 这些是 Perl Python 或者实现您的 体外受精 逻辑。各 阿吉 会话跨越子进程,使用 FastAGI 和网络守护进程,如果您希望频繁连接。

    3. 多个并发调用不是问题,我在一台简单的PC上安装星号可以处理 数百 同时通话。

    4. 唯一可能 真的? 影响性能的因素有 声音转换 声调检测 .

      要提高性能,您应该:

      1. 坚持使用一个编解码器( µLaw 是我用的),强制所有 连接以使用该编解码器,并使用 sox -t ul .一旦完成了这个操作,所有的星号操作就相当于从磁盘读取文件字节,然后通过网络发送它们,只需要基本的包装。除了简单的read-wrap发送操作之外,没有数学。

      2. 请您的服务提供商检测到他的声音并将其发送给您 带外 使用 RFC 2833 . 音调检测是一个相当消耗CPU的操作,让他们自己去做。

      我个人在 2,66 MHz Celeron IV 具有 2048 MB RAM Fedora 10 X86_64 . 150个连接一次工作正常,没有延迟。

      总交通量约为 9.6 KByte/sec 每个连接。对于现代的虚拟专用电脑来说,应该没有任何问题。

        2
  •  2
  •   Adam Batkin    14 年前

    星号岩石。对于几行来说,一个简单的P3或更好的可以。不要虚拟化PBX;星号依赖于相当准确的时间。

    FreePBX 这使得建立一个IVR变得非常容易——它有一个体面的基于网络的前端,并支持一些现成的酷星号工具。

    编辑:freepbx不是星号-它是一个很好的界面,可以为您生成配置。如果您想要一个简单的点射解决方案,默认情况下Trixbox包含它。

    如果您的VOIP帐户支持多条输入线路,那么星号将使用它们。您还需要足够的互联网带宽和良好的QoS。对于业务系统上的多条线路,我坚持使用专用连接,这样用户访问网络时就不会遇到退出的情况。

        3
  •  2
  •   Mike    14 年前

    构建IVR应用程序的最佳方法是使用由w3c.org设计的voiceXML(http://www.w3.org/tr/voicexml21/)。Asterisk不附带VoiceXML浏览器,但也有一些公司为Asterisk提供这种服务,例如SoftSyl Technologies(http://www.softSyl.com)。

    思科和Avaya等公司也提供VoiceXML浏览器,但它们不支持星号。

        4
  •  2
  •   Stanislav Sinyagin    12 年前

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

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

        5
  •  1
  •   vbcrlfuser    14 年前

    你可以在拨号计划中这样做…

    [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()
    
        6
  •  1
  •   MichelV69    12 年前

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

    正如别人所说,呼叫质量是一切。付费为您的IVR提示和公告制作专业级录音。确保您使用的是64K代码,如ULAW和ALAW;GSM(手机)的带宽可能很便宜,但它会打破客户对质量的期望。

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

    尽量保持菜单“浅”。如果需要三个以上的菜单选项来获取客户想要的信息,他们很可能会挂断电话,或者只需按“0”就可以与人交谈。你的体外受精失败了。

    如果您要对数据库查找、帐户身份验证等进行相当酷的操作,我建议您使用“agi”-星号网关接口-应用程序。我个人最喜欢的是 Adhearsion “,它与db/web端的ruby/rails很好地融合在一起。

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

        7
  •  1
  •   Pedro Sanders    12 年前

    对于更复杂的体外受精,你可以尝试 Astive Toolkit 尤其是当您需要数据库或WebServices迭代时。

        8
  •  0
  •   Ian Devlin    16 年前

    我过去曾与IVR合作过,但主要是在大型系统上,从未使用过星号。我快速浏览了一下他们的网站( http://www.asterisk.org/ )虽然这看起来很有用,但你查过那里吗?

        9
  •  0
  •   Elijah Glover    16 年前

    它与编程无关,但…

    看一看 trixbox.org 它支持从Cisco到…SNOM手机 它的星号/freepbx mod和一切在一个漂亮的用户界面下!

    我在澳大利亚有一个提供商把它们作为GSM中继线,花了3个小时安装了4个电话。支持IVR

    唯一的问题可能是…录音音质

        10
  •  0
  •   coding Bott    16 年前

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

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

    Sipgate是免费的,除非你在打外线电话。

        11
  •  0
  •   didacus    11 年前

    如果要设置星号IVR,还可以使用一些基于Web的拖放工具,以生成简单的自动助理(如在示例中)或复杂的IVR(管理脚本或数据库驱动的IVR)。 一种选择是 凯利广场 . 看看这里: http://www.callysquare.com/