有关MS Windows的TAPI组件的建议

时间:2009-01-28 13:47:15

标签: c++ tapi

任何人都可以在MS Windows环境中推荐使用TAPI组件与C ++一起使用吗? 我已经尝试过TAPI 2和3的标准MS实现,并且两者都有问题。主要是从调制解调器恢复关闭或丢失连接 最新的问题是TAPI设备在完美工作几天后消失了 - 但仅限于某些计算机上。
我支付一个组件没有问题 - 我只想要一个有效的方法!

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

2 个答案:

答案 0 :(得分:1)

如果您有在C ++中编写COM代码的习惯,可以使用任何TAPI OCX控件。我最近一次与TAPI合作(多年前),我使用了Exceletel TeleTools OCX。它运作良好,并且(恕我直言)是当天的最佳选择。如果您环顾四周,您可以找到一些具有类似功能的免费和共享软件OCX控件。但是,如果您使用的是C ++,最好直接调用TAPI,而不是通过使用OCX来增加复杂性。

你没有说你正在使用什么TAPI设备,但我猜它是一种语音模式。如果是这样,您的问题可能不是微软的TAPI实现(大多数第三方TAPI组件将用于与语音模式通信),而是使用语音模式硬件或Unimodem TSP。 Exceletel的支持页面对problems involved with using voicemodems for telephony work有很好的描述。如果您希望为您的应用提供任何可靠性,如果可能的话,您应该使用专用的语音电话设备而不是语音模式。

答案 1 :(得分:1)

我们放弃了TAPI - 无论我们如何编码,测试部门总能找到一种方法来打破它(通常是通过在某个关键点关闭调制解调器),所以唯一的解决方案是重新启动电脑。 所以它回到通过串口直接调制解调器控制。 我们越早将客户放到ADSL和3G调制解调器上就越好......