0

我想开发一个用户通过电话远程交互的系统。就像您银行的电话银行系统一样。

这个系统将非常简单:当用户呼叫时,它只需要提示用户并接受纯粹通过键盘的输入。此外,它还需要能够接收和发送短信。

1-是否有支持这一点的非专有框架?

2- 任何人都可以分享他们部署这种系统的基本经验吗?陷阱,要注意什么等?

4

4 回答 4

4

有一个开源项目 Asterisk可以帮助您完成这项工作。

于 2012-01-09T16:28:51.810 回答
1

我已经建立了其中一个,工作流程是“用户呼叫”(从他的手机,门外),“等待剪辑”,“如果未知号码拒绝呼叫”,“接听”,“提示:请输入 PIN”, “等待 4 位 DTMF 数字”、“检查电话号码/PIN 与 DB”、“如果 OK 通过串口打开门”、“否则提示 'F*** Off'”、“挂断”

这些是主要的陷阱:

  • 串行/USB/PCI 上的许多(TBH:绝大多数)便宜的“语音调制解调器”将在几分钟/几小时/几天后失效。如果你走这条路,请使用 GSM、VoIP 或 ISDN。如果您真的需要模拟座机,请使用真实硬件
  • 我还没有找到一个健全的跨平台工具包,所以如果你不想从“ATZ”开始,请准备好选择一个操作系统蚂蚁。
  • 确保在编码之前设计应用程序。这种事情不适合“随手设计”
  • 很难弄清楚不同设备愿意接受哪种编解码器和格式。如果您不想专注于某种类型的硬件,请记住这一点。
于 2012-01-09T16:35:29.953 回答
1

不确定非专有是否真的意味着开源。如果非专有是指您不依赖特定供应商来部署您的解决方案,那么您将希望使用像 VoiceXML 这样的 W3C 开放标准。使用此标准,您可以开发一个语音/电话应用程序,该应用程序可以使用与开发 Web 应用程序类似的技术在多个不同的 IVR 平台上运行。

Voxeo 提供了一个出色的 IVR 平台,您可以在云中托管或在您的设施中运行基于前提的解决方案,或两者兼而有之。它完全符合 VoiceXML 标准,易于使用,您可以在其平台上免费开发和测试您的应用程序。只有当您决定在生产环境中部署应用程序时,您才需要付费。他们甚至会在开发过程中免费提供出色的支持。

主要缺陷是低估了用户体验 (UX) 和语音用户界面 (VUI) 设计。有许多设计不佳的 IVR 应用程序人们根本不会使用,这完全破坏了投资这些自助服务应用程序的理由。有太多不好的,以至于它导致了像 GetHuman.com 这样的网站的创建,它为用户提供了如何绕过各种 IVR 系统并尽快找到一个人的提示。如果用户绕过您的自助服务应用程序,那么您就浪费了在它上面的投资。如果您没有内部经验,我会聘请具有 VUI 设计经验的人来帮助您完成第一个应用程序。

于 2012-01-10T17:18:54.580 回答
1

大约 20 年来,我一直在为临床试验开发 IVR 系统。有一些非常好的用于 IVR 编码的 3rd 方库,可与 Visual Basic 和 C# 一起使用。Pronexus 有软件,您可以在http://pronexus.com/上免费下载和试用。我用得最多的是 Syntellect 的 CT ADE 软件。 http://www.syntellect.com/pages/products/ct_ade_eng.aspx 他们几年前以 VisualVoice 起家,然后经历了多次收购和收购。这些公司中的任何一家都销售可与 Visual Basic 和 C#(也包括 C++)一起使用的软件。优点是使用您在编程中可能更熟悉的东西。有许多开源解决方案,但文档、支持和培训却不尽如人意。CT ADE 有这样的语法。. .

ADXVoice1.PlayFile("C:\project\MainMenu.WAV", SOUNDFILE_TYPE_WavePCM22K, "+")
ADXVoice1.ClearDigits()

choice = ADXVoice1.GetDigits(24, 15, 15, "#")

这会将文件 MainMenu.WAV 播放给呼叫者,清除数字缓冲区,然后等待最多 24 秒,让呼叫者进入菜单选项。调用者输入的选项存储在字符串“choice”中。非常简单明了。我设置了这样的系统,它们也连接到 SQL 数据库来存储和检索我们需要的数据。

要自己托管这样的系统,您首先需要设置一个 IVR 服务器。您可以将普通电话线与 Dialogic 卡一起使用。您可以获得许多不同的对话卡。我建议您先购买一张 4 线卡。他们还根据您的需要制作 8、12、16 和 T1 卡。这些卡具有板载处理器,可以为您处理同时呼叫。

因此,当您开发 VB 或 C# 应用程序时,程序会“启动”到卡上的行。这些线路也应该设置在“搜索组”中,以便您可以将一个数字(免费电话)指向第一行。如果那很忙,那么它会“寻找”组中的空闲线路。

这是电话系统多年来一直工作的旧方式。较新的方法是使用 IP 语音 (VoIP) 通过 Internet。它有它自己的一系列问题。使用 Dialogic 硬件和实际电话线的主要优点是更容易调试。您可以在办公室托管 IVR 服务器并完全控制系统。

于 2012-01-22T17:24:34.420 回答