有关 MS Windows 的 TAPI 组件的建议
谁能推荐一个在 MS Windows 环境中与 C++ 一起使用的 TAPI 组件? 我尝试过 TAPI 2 和 3 的标准 MS 实现,但都遇到了问题。 主要是从调制解调器关闭或失去连接中恢复。
最新的问题是 TAPI 设备在完美工作几天后消失 - 但仅限于某些计算机。
我在支付组件费用方面没有任何问题 - 我只想要一个能用的组件!
我们还没有解决两个问题:
1) 如果我们在使用调制解调器时关闭它,则在重新启动计算机之前我们无法再次使用它
2)我们收到回调“CTapiLine::OnCallStateChange(hCall, dwState, dwStateDetail, dwPrivilage);”,其中dwState = LINECALLSTATE_DISCONNECTED; 和 建立连接后立即 dwStateDetail=LINEDISCONNECTMODE_NODIALTONE,但我们已经在调制解调器属性中关闭了“等待拨号音”。 使用不同的计算机连接到同一目的地工作正常,因此我们认为这不是目的地的问题。
can anyone recommend a TAPI component for use with C++ in the MS Windows environment?
I have tried the standard MS implementations of TAPI 2 and 3 and had problems with both. Mainly recovery from modems been switched off or losing connections.
The latest problem is the TAPI device disappearing after a couple of days of working perfectly - but only on some computers.
I don't have a problem paying for a component - I just want one that works!
Two problems we haven't figured out yet:
1) if the modem is switched off while we are using it, we can't use it again until we reboot the computer
2) we receive a callback "CTapiLine::OnCallStateChange (hCall, dwState, dwStateDetail, dwPrivilage);", where dwState = LINECALLSTATE_DISCONNECTED; and
dwStateDetail=LINEDISCONNECTMODE_NODIALTONE staight after making a connection, but we have already switched off the "wait for dial tone" in the modem properties. Connecting to the same destination with a different computer works fine, so we don't think it is the destination's problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您愿意用 C++ 编写 COM 代码,则可以使用任何 TAPI OCX 控件。 上次使用 TAPI 时(几年前),我使用了 Exceletel TeleTools OCX。 它运作良好,并且(恕我直言)是当时最好的选择。 如果您环顾四周,您可以找到一些具有类似功能的免费和共享软件 OCX 控件。 但是,如果您使用 C++,则最好直接调用 TAPI,而不是使用 OCX 增加复杂性。
你没有说你正在使用什么 TAPI 设备,但我猜它是一个语音调制解调器。 如果是这样,您的问题可能不在于 Microsoft 的 TAPI 实现(大多数第三方 TAPI 组件将使用它来与语音调制解调器通信),而在于语音调制解调器硬件或 Unimodem TSP。 Exceletel 的支持页面对使用语音调制解调器进行电话工作所涉及的问题进行了精彩的描述< /a>. 如果可能的话,如果您希望应用程序具有任何可靠性,则应使用专用语音电话设备而不是语音调制解调器。
If you have the stomach for writing COM code in C++, you can use any of the TAPI OCX controls. The last time I worked with TAPI (years ago), I used the Exceletel TeleTools OCX. It worked well, and was (IMHO) the best option back in the day. If you look around, you can find some free and shareware OCX controls that have similar functionality. However, if you're using C++, you're better off just calling TAPI directly instead of adding complexity by using an OCX.
You don't say what TAPI device you're using, but I would guess that it's a voicemodem. If so, your problems probably aren't with Microsoft's TAPI implementation (which most third party TAPI components will use to talk to the voicemodem), but with the voicemodem hardware or the Unimodem TSP. Exceletel's support page has an excellent description of the problems involved with using voicemodems for telephony work. If at all possible, you should use a dedicated voice telephony device instead of a voicemodem if you expect to have any kind of reliability for your application.
我们正在放弃 TAPI - 无论我们如何编码,测试部门总能找到一种方法来破坏它(通常是在某个关键点关闭调制解调器),因此唯一的解决方案就是重新启动 PC。
所以又回到了通过串行端口直接调制解调器控制。
我们越早让客户摆脱对 ADSL 和 3G 调制解调器的依赖就越好...
We are giving up on TAPI - no matter how we coded it, the test dept could always find a way to break it (usually by turning the modem off at some critical point), so that the only solution was a reboot of the PC.
So it's back to direct modem control via the serial port.
The sooner we can wean our customers on to ADSL and 3G modems the better...