25

这是一个非常新手的问题。

我想知道如何创建一个网络应用程序来拨打电话,最有可能使用 VOIP 协议。

我必须学习哪些编程语言,包括客户端和服务器端?

4

4 回答 4

21

您需要回答的主要问题是您是在寻找计算机到计算机的通话还是希望您的应用程序拨打电话号码?

由于您指定您希望您的“网络应用程序拨打电话”,我怀疑您正在寻找一种向用户电话发出自动呼叫的方法。如果是这种情况,您有几个选择。

安装像 Asterisk 或 Freeswitch 这样的 VoIP 服务器并编写代码让您的 Web 应用程序与之交互。对于 Asterisk,Adhearsion 项目可以帮助您在 Ruby 中编写 Asterisk 集成。http://adhearsion.com/

或者,您可以使用 Cloudvox 或 Tropo http://tropo.com等云电话服务(披露,我为 Tropo 背后的公司 Voxeo 工作)。这些服务允许您使用网络编程语言和网络服务与电话系统对话。您无需了解有关 Voip 的任何信息即可实现。一个示例 Tropo 脚本...

<?php
answer();
say('Yes, it really is this easy.');
hangup();
?>

云服务的一个附带好处是它们中的许多允许您的应用程序在其他通信渠道上运行(Tropo 也支持 IM 和 SMS)。

第三种选择是研究 VoiceXML,这是一种用于创建语音应用程序的 W3C 标准。Voxeo 在http://vxml.org/上提供了详细的文档和 VoiceXML 教程。使用 VoiceXML(有时称为 VXML)应用程序,您可以安装 VoiceXML 服务器和相关的 VoIP 位,或者您可以使用 VoiceXML 托管服务提供商。Voxeo 提供可下载的服务器和托管(两者都对开发人员免费),或者搜索 VoiceXML 托管将显示大量选项。

于 2010-03-20T15:36:48.187 回答
8

你的问题的答案真的取决于你想用它做什么。以下是我如何处理的 2 个示例:

我为 Go2Call.Com(现在由Deltathree拥有)开发了该软件,它用于 PC 到电话的通话。在 Go2Call 的例子中,它是一个用于拨号器前端的 Java 小程序,它调用了一个用 C++ 编写的 Windows DLL。从那里,它使用专有协议与服务器交谈,服务器又将呼叫发送到常规固定电话。

几年后,我编写了一个基于 Web 的(ActiveX 控件),它允许 PC 到 PC 或 PC 到电话呼叫,它使用标准H.323协议。

我建议首先弄清楚你的最终目标是什么,然后查找必要的协议和技术来实现它。

对于 PC 到 PC,如果两个人都使用您的软件,您可以做任何您想做的事情。在这种情况下,您可以了解 VOIP 的工作原理(包括压缩编解码器等)并根据需要实现它。

对于 PC 到电话或当您想呼叫其他人的软件时,我推荐SIP,因为它可能是最流行的协议。H.323 仍然很流行,但 SIP 似乎正在接管。

抱歉,这可能无法告诉您所有内容,但其中包含很多内容。希望这将使您朝着正确的方向开始。

更新:既然你提到了 PC 到 PC,Packetizer有一个标准列表和我在做很多 VoIP 编程时使用的相当多的信息。

就书籍而言,到目前为止我所看到的书籍与编程无关,更多的是关于使用 VoIP 软件和安装 VoIP 网络。

于 2010-03-18T17:09:42.720 回答
1

Gizmo5 有一个在浏览器中运行的 Flash 软件电话:GizmoCall 在服务器端,您可能会将它与任何语言的 SIP 解决方案链接起来。 Asterisk 浮现在我的脑海中,尽管它可能有点矫枉过正,这取决于您是否真的想要一个成熟的 SIP 解决方案。

于 2010-03-14T02:16:56.707 回答
1

您可能希望购买一个组件,该组件允许您将 SIP 功能添加到您的网页,(其中大多数是基于 ActiveX 的):

http://www.conaito.com/
http://www.vaxvoip.com/
http://www.pcbest.net/

至于你必须学习的语言,那么你已经学过哪些语言?您使用哪些语言开发 Web 应用程序?这决定了您选择的语言。使用上面列出的那些组件需要一些繁琐的工作,但仍然可能需要 vbscript 或 javascript 编码客户端,而那些 activeX 只能在 Internet Explorer 网络浏览器上工作。如果您没有经验,那么您需要认真考虑您正在尝试做什么,为什么,您可以并且愿意投入多少时间和精力。

于 2010-03-14T02:07:34.660 回答