0

谁能推荐一个在 MS Windows 环境中与 C++ 一起使用的 TAPI 组件?我已经尝试过 TAPI 2 和 3 的标准 MS 实现,但两者都有问题。主要是从调制解调器被关闭或失去连接中恢复。
最新的问题是 TAPI 设备在完美运行几天后消失了——但仅在某些计算机上。
为组件付费没有问题 - 我只想要一个有效的!

两个我们还没有弄清楚的问题:
1)如果调制解调器在我们使用它时被关闭,我们将无法再次使用它,直到我们重新启动计算机
2)我们收到一个回调“CTapiLine::OnCallStateChange (hCall, dwState, dwStateDetail, dwPrivilage);", 其中 dwState = LINECALLSTATE_DISCONNECTED; 和 dwStateDetail=LINEDISCONNECTMODE_NODIALTONE 建立连接后,但我们已经关闭了调制解调器属性中的“等待拨号音”。使用不同的计算机连接到同一个目的地可以正常工作,因此我们认为这不是目的地的问题。

4

2 回答 2

1

如果您愿意用 C++ 编写 COM 代码,则可以使用任何 TAPI OCX 控件。上一次使用 TAPI 时(几年前),我使用了Exceletel TeleTools OCX。它运作良好,并且是(恕我直言)当时的最佳选择。如果您环顾四周,您会发现一些具有类似功能的免费和共享软件 OCX 控件。但是,如果您使用的是 C++,最好直接调用 TAPI,而不是使用 OCX 来增加复杂性。

你没有说你使用的是什么 TAPI 设备,但我猜它是一个语音调制解调器。如果是这样,您的问题可能不在于 Microsoft 的 TAPI 实现(大多数第三方 TAPI 组件将使用它与语音调制解调器通信),而在于语音调制解调器硬件或 Unimodem TSP。Exceletel 的支持页面对使用语音调制解调器进行电话工作所涉及的问题进行了很好的描述。如果可能的话,如果您希望您的应用程序具有任何可靠性,那么您应该使用专用的语音电话设备而不是语音调制解调器。

于 2009-04-18T01:49:07.053 回答
1

我们正在放弃 TAPI——无论我们如何编码,测试部门总能找到破解它的方法(通常是在某个关键点关闭调制解调器),因此唯一的解决方案是重新启动 PC。所以它又回到了通过串口直接控制调制解调器。我们越早让客户放弃使用 ADSL 和 3G 调制解调器就越好……

于 2009-06-09T05:45:33.337 回答