3

I have a client company with a simple web application (Python Flask) and I need to add a phone notification functionality to it.

The main requirement is that the app should call users, play a certain sound file and accept some tone input ("Hello! This is an automated message from your WebApp account. You have a meeting with $John today at $5pm. Please press 1 to confirm"). The other requirement is that the solution should be relatively cheap and fast to market.

I have done some research already and it seems that there are a few consequent steps to achieve that:

  1. Set up an Asterisk or a FreeSwitch server;
  2. Set up a SIP account;
  3. Write some business logic for the Asterisk server which allows to make calls and play sounds via a SIP account;
  4. Write an API at the Asterisk server and expose it to the Python Flask web app.

Do I miss something here? Can any of the steps be omitted anyhow? Can I do it simpler?

4

3 回答 3

7

让它工作的最快方法是使用带有语音合成器的云语音服务之一。这是一个简短的清单:

  • 特维利奥
  • 特罗波
  • 普利沃

这里我列出了一些细节。

这些服务每分钟向您收费,另外您可能需要支付一些月费。

如果您想运行独立且独立的服务,我会推荐 FreeSWITCH 而不是 Asterisk。它有到达集成的可能性和 API。您需要阅读 FreeSWITCH 这本书,以了解它是如何工作的以及如何构建您的服务。

于 2013-02-26T04:36:18.337 回答
1

我同意 Stanislav Sinyagin 对基于云的解决方案的看法,但我想再补充一个,Voxeo Prophecy。Tropo 来自 Voxeo,但他们提供 Prophecy 作为解决方案的时间更长,它支持开放标准CCXMLVoiceXML。CCXML 对于出站通知应用程序的优势是您可以更好地控制通知过程。

Prophecy 平台具有出色的通话进度分析(CPA) 这将允许您确定是机器还是人应答并相应地处理呼叫。例如,要求机器“...按一个确认”是没有意义的。相反,您可能希望留下一条消息,提供一个回叫号码,供用户在收听语音消息后进行确认。CPA 可用于在正确的时间(当问候留言停止时)在机器上留言,这样您就不会在语音邮件中收到剪辑的消息。CPA 还允许您提供关于谁收到通知的详细报告,对于那些没有收到通知的人,它可以告诉您它是错误号码(收到 SIT 音)、调制解调器或传真应答,还是响铃无应答(漂亮这些天很少见)。这些类型的详细信息可能会影响您对失败通知的重试过程。

使用 Prophecy 和开放标准的另一个优势是,如果您想迁移,您的应用程序将可移植到与 VoiceXML/CCXML 兼容的其他IVR系统。Tropo、Twilio 和 Plivo 都使用专有 API,不允许您将应用程序移动到其他服务。Prophecy 也可作为软件解决方案使用,因此如果您想将其从云中取出,您可以在本地运行它。您可以免费获得两个端口版本来试用。

Voxeo 的开发者网站上有关于开发出站通知系统的优秀文档。查看 F 部分中关于外拨的CCXML 文档

不确定您熟悉哪些开发语言,但如果您习惯于 ASP.NET MVC,那么有一个名为 VoiceModel 的开源项目可以更轻松地开发 VoiceXML 应用程序。VoiceModel 的另一个优点是您只需开发一次应用程序,它就可以在任何与 VoiceXML 兼容的平台和 Tropo 上运行。他们目前正致力于在这个项目中添加出站通知支持,这将适用于 Tropo 和 VoiceXML。

于 2013-03-04T14:36:16.483 回答
0

列出的第三方解决方案是您轻松的选择。运行自己的星号也适合您想做的事情,但我认为从操作的角度来看,仅此而已。

在星号中,您可以使用(基本身份验证的)HTTP 请求发起具有您需要的 2 个变量的调用。您还需要一些设置和一个小的拨号方案。设置 SIP 帐户更容易或更困难,具体取决于提供商提供的文档。他们中的大多数都有配置星号的详细文档(对于freeswitch来说没有那么多)。让这该死的东西活着就是你要得到的:)

于 2013-03-03T17:41:02.007 回答