Java SIP替代TAPI?
我们在基于java的客户端中使用TAPI技术连接到PBX硬件,以使用CTI操作(启动呼叫、处理接听呼叫等)。 要连接到TAPI,我们使用gjtapi项目。我们从客户端gui启动一个调用,我们可以监视事件,并在连接到客户端的电话设备上看到事件Java SIP替代TAPI?,java,sip,telephony,pbx,tapi,Java,Sip,Telephony,Pbx,Tapi,我们在基于java的客户端中使用TAPI技术连接到PBX硬件,以使用CTI操作(启动呼叫、处理接听呼叫等)。 要连接到TAPI,我们使用gjtapi项目。我们从客户端gui启动一个调用,我们可以监视事件,并在连接到客户端的电话设备上看到事件 作为替代方案,我尝试了SIP协议,我们也可以开始通话,但是当我们使用SIP协议连接时,电话设备被绕过,我们在设备上看不到任何东西。例如,当使用TAPI时,我们接到一个电话,我们会在手机和gui上看到来电,它们是同步工作的。但是,当我使用SIP连接并接收呼叫时
作为替代方案,我尝试了SIP协议,我们也可以开始通话,但是当我们使用SIP协议连接时,电话设备被绕过,我们在设备上看不到任何东西。例如,当使用TAPI时,我们接到一个电话,我们会在手机和gui上看到来电,它们是同步工作的。但是,当我使用SIP连接并接收呼叫时,电话设备上什么也没有发生。这是一个错误的设置/实现还是SIP的行为,它提供了某种软电话?TAPI是一种第三方技术:意味着你的应用程序不做“工作”,它向PBX发送命令,代表你做“工作” 在SIP中,你必须自己做每件事:你可以打电话到某个地方,但你在告诉其他事情该做什么方面非常有限 您可以从SIP获得与TAPI类似的功能,但它涉及的内容要多得多。你需要把自己定位为“中间人”。例如,您希望从设备呼叫外部:
- 首先(从应用程序)呼叫设备
- 然后(从你的应用程序)打电话给外部用户
- 第三,连接两端
- 长号呼叫(音频通过应用程序)
- 使用媒体旁路(音频在两方之间传输),但您保留信号
我建议你不要低估让这样的东西正常工作所需要的工作量。还有其他替代方案,如CSTA和许多PBX支持自己的专有接口,用于此类控制。但在我看来,对于第三方呼叫控制来说,TAPI可能是更好的选择(特别是如果您想支持超过一家PBX供应商)您可以将SIP和TAPI结合起来,而不必更改任何代码。例如,您可以像现在这样为您的PBX使用TSP(电话服务提供商),并且很可能处理您需要的一切。但是,您也可以通过SIP连接到PBX。控制通话的方式在技术上有所不同,但最终结果基本相同。您还可以绕过PBX,使用任何SIP中继或PBX暴露的SIP中继。要使用SIP,您可以使用类似于我们的SIP通信服务器软件的东西,它是TAPI和SIP之间的桥梁。这是一个允许您使用所有现有TAPI代码来处理SIP的选项。免责声明:我为制造和销售TAPI/SIP组件和解决方案的ExceleTel工作。使用SIP将始终绕过您的设备,因为它将尝试使用网卡上的IP堆栈连接到另一方。要使用您的硬件,您应该具有一些特定的绑定(用于Windows TAPI的gjtapi或一些专有的绑定)。SIP能够管理呼叫会话并促进IP/RTP信道的SDP协商,但不知道硬件设备(调制解调器、CTI卡),因此将绕过它们