我正在开发一个 VB.NET Windows 服务,该服务花费大量时间检查 BMS 数据库中的新警报并拨打电话以远程警告操作员。我目前正在使用 .NET TAPI 包装器和 SAPI 5.3 互操作程序集,我通过电话交谈的步骤是:
- 初始化TAPI接口;
- 拨打接线员号码;
- 取语音调制解调器 waveOut 设备 id
- 将语音输出设置为该设备 ID;
- 让 SAPI 发挥作用。
如果我将代码编译为 Windows 控制台或表单应用程序,这一切都可以正常工作,但是一旦我将其编译并作为 Windows 服务运行,步骤 5 就永远不会发生 - 语音调制解调器调用但保持沉默;其他一切正常,甚至数字监控。现在我知道 Windows 服务不应该与桌面交互,所以 UI 元素和播放声音之类的东西是不可以的,但我正在努力寻找不涉及使用 wave API 并且可以开发的替代方案在合理的时间范围内。有任何想法吗?