首页 / 知识
关于ruby:用于IVR的Asterisk AGI框架;格斗替代品?
2023-04-17 11:19:00

Asterisk AGI framework for IVR; Adhearsion alternative?我正在尝试开始使用Asterisk和Ruby编写可伸缩的电信级应用程序。我原本打算为此使用Adhearsion框架,但它没有所需的成熟度,并且严重缺乏其文档资料。 AsteriskRuby似乎是一个不错的选择,因为它有据可查并且由Vonage编写。 有人在部署基于AGI的IVR应用程序方面有经验吗?您使用了什么框架(如果有)?如果有理由,我什至会考虑使用非Ruby。谢谢! SipX确实是错误的答案。我已经在SipX 3.10.2上编写了一些极其复杂的VoiceXML,并且自从SipX 4删除了要求将IVR编译为JAR的接口的SipXVXML以来,一切都变得毫无意义。最重要的是,北电申请破产,开源版本的文档非常差,对VXML 2.0(自3.10.2起)和SIP标准(自3.10.2起)的依从性差,不能很好地适应ITSP。我将为执行PBX而做的专为bangup的工作而称赞。但是作为IVR,如果我要再做一次,我会做一些不同的事情。我不知道该怎么办,但有所不同。我现在正在玩Trixbox CE,并且正在尝试将其绑定到JVoiceXML或VoiceGlue。 此外,请不要阅读SipX Wiki的废话。它将SipX 3.10与AsteriskNOW 1与Trixbox 1进行比较。这就像将Mac OS X与Win95进行比较!更为现实的比较是将SipX 4(将于2009年第一季度到期)与Asterisk 1.6和Trixbox 2.6进行比较,这表明它们在可扩展性和高可用性领域中取得了几乎相同的结果。 SipX胜出。但是,为了成熟和稳定,我建议使用Asterisk。 此外,我在SipXVXML上的真实表现是: 我将在完成对VoiceGlue和JVoiceXML的评估后发布我的发现,但我认为我将最终编写一个从AGI调用的自定义PHP,因为所有工具都是Asterisk固有的。 随着v0.8.1的发布,您应该重新访问Adhearsion,并且文档最近已经变得更好。在这里看看: http://adhearsion.com 如果您正在寻找"电信级"应用程序,则可能需要研究SipXecs而不是星号。它功能强大,免费且开放源代码,北电可提供商业支持。您可以通过使用ruby(或任何其他语言)的Web Services API与之交互。 有关更多信息,请参见SipXecs Wiki。该站点上有一个比较矩阵,用于将功能与AsteriskNOW和TrixBox进行比较。 对于小型应用程序,我在perl中使用Asterisk :: AGI。快速AGI也有扩展。对于较大的应用程序,例如VoIP运营商的后端,我使用类似于Java编写的OrderlyCalls(我自己的代码)的东西。尽管从Java fastagi引擎开始并将其扩展到您的需求,OrderlyCalls还是很棒的。 用PHP编写的简单而灵活的小Asterisk AGI IVR 再臭。在使用PHPAGI将客户端的IVR从SipX迁移到Asterisk之后,我必须说,我还没有遇到过任何其他简单而又强大的体系结构。今天,我将在与之前测试SipX相同的硬件上对Trixbox CE 2.8进行压力??测试。但是我必须说,将PHPAGI用于IVR和将Asterisk CLI用于调试非常有效,这使我开发IVR的速度远远超过了其他公司。我今天正在努力实施TTS和ASR,并且会在可能的时候发布我的压力测试结果。 我已经广泛使用JAGIServer,即使它不再处于开发中,它也非常好并且易??于使用。它是FastAGI的接口,我建议您使用它而不是简单的AGI。 此框架的新版本是OrderlyCalls,它似乎具有更多功能,但是由于我不需要它们,因此我没有尝试过。 我想这一切都取决于您要使用AGI做什么;通常我有一个比较复杂的拨号计划来收集和验证所有用户输入,然后使用AGI连接到Java应用程序,该程序将读取一些变量,对其进行处理(执行操作,查询等),然后进行更多设置AGI通道上的变量并断开连接。此时,拨号计划将继续进行,具体取决于Java应用程序设置的变量的结果。 这真的非常快,因为您在Java应用程序上有一个ServerSocket,它可以接收来自AGI的传入连接,并使用新的套接字和JAGIProcessor的新实例创建一个JAGIClient(您必须编写该文件,对象,它将完成所有处理),然后在线程池中运行JAGIClient。 因此,您一直在运行Java应用程序,它可以是简单的J2SE应用程序,也可以是容器上的EE应用程序,这无关紧要;一旦运行,它将立即非常快速地处理AGI请求,因为不必启动新的进程(与简单的AGI相比,它为每个AGI调用运行一个程序)。 我在这里,这里和这里问了一些相关的问题。我正在使用Microsoft的Speech Server,并且对了解现有的任何替代方案(尤其是开源替代方案)非常有经验。您可能会在这些问题之一的答案中找到一些不错的信息。 确实没有任何其他框架。当然,每种语言都有AGI绑定,但是就用于开发电话应用程序的成熟框架而言,我们还不存在。至少在开源世界中。 |
最新内容
相关内容
linux移动文档命令?
linux移动文档命令?,文件,名称,系统,位置,目录,信息,命令,源文件,目标,文件名,linux中如何移动文件语法:mv [选项] 源文件或目录 目标文件或目linux命令文档下载?
linux命令文档下载?,工具,网络,系统,工作,基础,数据,名称,管理,位置,代理,linux命令怎么下载pdf文件方法如下 wget是linux下一个从网络上自动linux命令chm文档?
linux命令chm文档?,电脑,系统,文件,首页,百度,软件,电机,管理,产品,设备,谁知道在linux下的常用后缀名啊?linux下python解释器的后缀有py、pyclinux中编辑文档命令?
linux中编辑文档命令?,状态,工作,命令,电脑,信息,第一,系统,编辑,终端,文件,Linux系统如何编辑TXT文档1、进入Ubuntu桌面后,打开终端,快捷键为ctlinux常用命令文档?
linux常用命令文档?,工作,系统,地址,管理,网络,命令,信息,目录,操作,文件,linux基本操作命令linux常用命令有pwd命令、cd命令、ls命令、cat命linux打开文档命令?
linux打开文档命令?,密码,图片,系统,标准,命令,文件,终端,发行,信息,情况,Linux系统终端打开文件用什么命令1、linux下打开图片文件的命令:eoglinux进入文档命令?
linux进入文档命令?,工作,地址,图片,系统,标准,命令,信息,设备,一致,发行,Linux系统终端打开文件用什么命令1、linux下打开图片文件的命令:eoglinux上传文档命令?
linux上传文档命令?,服务,工具,密码,系统,软件,工作,电脑,综合,命令,文件,Linux上传文件到服务器命令是什么呢1、ssh ssh username@remotehostlinux如何命令建文档?
linux如何命令建文档?,时间,名字,文件,系统,新增,命令,文件名,密码,工作,目录,linux怎么创建文件终端下键入:touch加文件名,这样就创建了一个文linux命令打开文档?
linux命令打开文档?,系统,软件,图片,电脑,一致,环境,名称,发行,中心,官方网站,Linux命令如何创建,复制,打开,删除文件呢创建一个叫test的文件linux剪切文档命令是?
linux剪切文档命令是?,标准,系统,数据,文件,命令,地方,第一,位置,电子,名字,linux怎么删除指定目录的内容?-f,--force强制删除:忽略不存在的文件linux简单的文档命令?
linux简单的文档命令?,系统,地址,标准,工作,命令,数据,管理,时间,信息,单位,linux必学的60个命令安装和登录命令:login、shutdown、halt、reboo