通过Web应用程序连接两个呼叫

时间:2009-11-24 07:29:07

标签: java web-applications telephony

我需要在基于java的Web应用程序中添加一项功能,允许用户点击链接,应用程序将自动呼叫用户和另一方并通过电话联系他们。

有人知道这会带来什么?

由于

5 个答案:

答案 0 :(得分:5)

可以使用Twilio及其新的简单会议API来完成。相信我,这真的很简单。另一种选择可能是CloudVox,但我还没有(正式)尝试过他们的服务。

答案 1 :(得分:3)

万维网联盟有一套完整的语音互动标准,您会发现它们很有趣。有一种叫做VoiceXML的标记语言类似于HTML,因为Web应用程序会生成它。它与HTML的不同之处在于它专门用于基于时间的语音交互而不是视觉交互。因此,您不必看屏幕,而是听取音频提示和计算机生成的语音。你可以说回来,而不是输入和鼠标,你说的是由语音识别器处理或记录的。

有许多公司使用VoiceXML来自动化语音应答系统,他们每年处理数十亿次呼叫。你可能已经多次与他们交谈而没有意识到这一点。这个领域最好的公司之一是Voxeo,他们有http://evolution.voxeo.com/的开发者网站,您可以玩。 Evolution允许您通过普通电话(或Skype)呼叫您的Web应用程序。您实际上是在与基于VoiceXML的Web浏览器交谈,该浏览器将从您的Java应用程序服务器获取VoiceXML页面,“播放”给您,听取您的意见,然后通过表单提交将其报告给您的应用程序,获取下一页要呈现给你,等等。

另一个相关标准是CCXML或Call Control XML。您可以使用它来创建可能包含或不包含语音响应应用程序的电话会议。

因此,在您的情况下,您希望标准Web应用程序与CCXML服务器通信并要求它为Web用户和客户服务线建立呼叫支路。我知道Voxeo Evolution也提供CCXML。

这个领域还有其他好公司。我想到的是TellMe,这是微软在一两年前购买的。这两家公司(以及其他公司)也提供专业服务。

答案 2 :(得分:2)

尝试FreeSWITCH。我之前做过这个。它很直接。当你需要记录通话记账和所有这些东西时,可能有点毛茸茸。我希望能够为您提供一些指导和代码示例,让我先回家。欢呼声。

使用FreeSWITCH的好处是,您将能够处理多个呼叫,以及相当多的呼叫。您将来可能需要这样做。

注意:您必须使用某种VoIP提供商才能这样做。我当时正在使用Gizmo5而且非常好。

抱歉伙计,丢失了某处的servlet代码。但不用担心这是一个简单的servlet。幸运的是,我已将我的XML-RPC示例Java代码添加到FreeSWITCH wiki中,实际上这就是我的servlet正在调用的代码。以下是摘录。

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
 XmlRpcClient client = new XmlRpcClient();
 try {
   config.setServerURL(new URL("http://localhost:8080/RPC2"));
   config.setBasicUserName("freeswitch");
   config.setBasicPassword("works");

   client.setConfig(config);           
   // For external phone calls using VoIP. We will use something like below.
   // new Object[]{"originate", "sofia/gateway/gizmo1/6098989898 &bridge(sofia/gateway/gizmo9/0116054545454)"} 
   // gizmo1, and gizmo9 are the accounts configured under freeswitch gateway configuration.
   client.execute("freeswitch.api", new Object[]{"originate", "sofia/internal/1001 &park()"});

 } catch (Exception ex) {
   ex.printStackTrace();
 }

此外,在执行此操作之前,您需要配置一些内容。您需要使用VoIP提供商设置来设置网关。

对于FreeSWITCH相关的帮助,请查看此SO Thread

答案 3 :(得分:2)

所以我想把它写成上面评论的答案。 Skype API为COM,Java和Python中的电话提供了许多选项:

他们提供了一个用于Skype的通信和命令协议层,有关API的更多信息:

https://developer.skype.com/Docs/ApiDoc/Overview_of_the_Skype_API

每个平台都有所不同,Linux版本基于DBus或X11。

答案 4 :(得分:0)

我知道2个API提供商可以满足您的需求:

1)twilio - 可以使用TwiML(他们的标记)连接到2个或更多方。 example

2)Hoiio - 非常容易使用1行RESTful api调用。 example