【问题标题】:SIP alternative to TAPI?SIP 替代 TAPI?
【发布时间】:2017-04-24 09:22:05
【问题描述】:

我们在基于 java 的客户端中使用 TAPI 技术 连接到 PBX 硬件 以使用 CTI 操作(开始呼叫、处理接收呼叫等)。 要连接到 TAPI,我们使用 gjtapi 项目。我们从客户端 gui 开始调用,我们可以监控事件并在连接到客户端的电话设备上看到事件。

作为替代方案,我尝试了 SIP 协议,我们也可以开始通话,但是当我们使用 SIP 协议连接时,电话设备被绕过,我们在设备上看不到任何内容。例如,当使用 TAPI 并且我们接到一个电话时,我们会在电话和我们的 gui 上看到来电,它们是同步的。但是当我使用 SIP 连接并接听电话时,电话设备上没有任何反应。这是错误的设置/实现还是 SIP 的行为,它提供了某种软电话?

【问题讨论】:

  • 使用 SIP 将始终绕过您的设备,因为它会尝试使用您网卡上的 IP 堆栈连接到对方。要使用您的硬件,您应该有一些特定的绑定(用于 Windows TAPI 的 gjtapi 或专有的)。 SIP 能够管理呼叫会话并促进 IP/RTP 通道的 SDP 协商,但不知道硬件设备(调制解调器、CTI 卡),因此它将绕过它们

标签: java sip telephony pbx tapi


【解决方案1】:

TAPI 是第 3 方技术:意味着您的应用程序不执行“工作”,它向 PBX 发送命令以代表您执行“工作”。

在 SIP 中,您必须自己做所有事情:您可以设置呼叫到某个地方,但您在告诉其他事情要做什么方面非常有限。

您可以从 SIP 获得与 TAPI 类似的功能,但它涉及的内容要多得多。你需要把自己当作“中间人”。例如,您想从设备呼叫外部:

  • 首先(从您的应用)向设备拨打电话
  • 第二次(从您的应用)向外部方拨打电话
  • 第三个连接两端

但是,如果您想要在此之后进行类似 TAPI 的控制,则需要让您的应用程序“处于循环中”。 SIP 只能控制您直接参与的内容。这意味着您需要:

  • 长号呼叫(音频通过您的应用)
  • 使用媒体旁路(音频在 2 方之间传输),但您保留信号

这也可能很危险,因为这意味着您的应用“介于”所有调用之间:这意味着如果它崩溃,所有调用都会丢失!

我建议您不要低估使此类设备正常工作所需的工作量。还有其他替代方案,如 CSTA 和许多 PBX 支持他们自己的专有接口来进行这种控制。但在我看来,TAPI 可能是第 3 方呼叫控制的更好选择(特别是如果您想支持超过 1 个 PBX 供应商)

【讨论】:

    【解决方案2】:

    您可以结合使用 SIP 和 TAPI,而无需更改任何代码。例如,您可以像现在一样为您的 PBX 使用 TSP(电话服务提供商),并且很可能处理您需要的一切。但是,您也可以通过 SIP 连接到 PBX。调用的控制方式存在技术差异,但最终结果基本相同。您还可以绕过 PBX 并使用任何 SIP 中继或 PBX 公开的 SIP 中继。要使用 SIP,您可以使用我们的 SIP 通信服务器软件,它是 TAPI 和 SIP 之间的桥梁。这是允许您使用所有现有 TAPI 代码与 SIP 一起使用的选项。免责声明:我为制造和销售 TAPI/SIP 组件和解决方案的 ExceleTel 工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多