Tapi3Lib在运行时添加新行

时间:2012-12-21 20:35:33

标签: c# com-interop tapi

我在使用interop.tapi3lib.dll时遇到了一些问题(在这里可以是DL:dllLink

对于我正在编写的报告程序,我想要监控tapi可用于其呼叫的所有设备。现在,当我启动程序时这很好用,虽然我怀疑dll是为了修改单个扩展名上的调用而编写的,只需很少的代码就可以完美地看到所有活动。

当用户注销(或进入)手机时(我将其用于cisco Callmanager),问题就出现了。那时我能够捕获tapi_object,而tapi_object又可用于确定删除和添加哪一行(旧号码和新号码)但我无法注册新地址以发送事件。

我尝试的例外:

  

价值不在预期范围内。

  • 因为在怀疑这个地址可用之前创建了tapiclass。

目前我已经完成了一项测试,为每个线路个人和1个tapiclass创建了一个tapiclass用于监控tapiobject事件,但这是我们公司的配置(20部电话)的10倍内存,所以我甚至不想要在目标站点测试这个(+300电话)。另一个选项(我可以想到)是处置'旧'tapiclass并创建一个新的tapiclass,但是我有点担心丢失之间的事件,当多个用户登录时获得双重事件和pingpong / out(用我的程序创建类需要几秒钟)

所以,我真正想要的是选择

tapi.RegisterCallNotifications(ad, true, true, TAPI3Lib.TapiConstants.TAPIMEDIATYPE_AUDIO, 2);

用于新的可用线路。

答案的背景:) - 我是C#的新手,完全是COM-interop的新手,我知道C ++的原理,但我从未写过任何内容。

任何帮助都会受到极大的关注。 (还有关于互操作等的任何评论)

1 个答案:

答案 0 :(得分:0)

嗯,原来我错了。添加通知行是可能的,不会抛出异常。我想在我的旧样本中添加新内容之前我没有删除旧行。