0

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

对于我正在编写的报告程序,我想监视tapi 可用的所有设备以进行呼叫。现在,当我启动程序时,它运行良好,尽管我怀疑 dll 是为了修改单个扩展上的调用而编写的,用很少的代码我可以完美地看到所有活动。

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

我尝试时的异常:

值不在预期范围内。

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

目前我已经做了一个测试,它为每条线路创建一个单独的 Tapiclass,并为监控 Tapiobject 事件创建一个 Tapiclass,但这占用了我们公司配置(20 部手机)内存的 10 倍,所以我什至不想测试这个在目标站点(+300 电话)。另一种选择(我能想到的)是处理“旧”tapiclass并在之后创建一个新的,但是我有点担心在多个用户登录/ out(使用我的程序创建课程需要几秒钟)

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

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

对于新可用的线路。

一些背景知识:) -我对 C# 相当陌生,对 COM-interop 完全陌生,而且我知道 C++ 的原理,但我从未在其中写过任何东西。

任何帮助将不胜感激。(还有关于互操作等的任何评论)

4

1 回答 1

0

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

于 2012-12-24T10:07:51.257 回答