2012-12-21 47 views
0

我有一些麻煩的interop.tapi3lib.dll(可以是DL在這裏:dllLink)添加新線Tapi3Lib在運行時

對於報告程序我寫信,我要監控所有的tapi爲他們的呼叫提供的設備。現在,當我啓動程序時,這很好用,儘管我懷疑這個dll是爲了修改一個擴展中的調用而編寫的,只需很少的代碼就可以完美地看到所有的活動。

當用戶註銷(或在)電話(我正在使用這個用於cisco Callmanager)時,問題出現。那時我可以捕獲tapi_object,它又可以用來確定刪除和添加哪條線(舊號碼和新號碼),但我無法註冊發送事件的新地址。

當我嘗試例外:

值不在預期的範圍內。

  • 因爲tapiclass創建此地址可用我懷疑之前。

目前,我做了一個測試,會爲每個行個人和1個tapiclass監測tapiobject事件的單個tapiclass,但這是吃10倍的內存對我們公司的配置(20個手機),所以我甚至不想在目標站點(+300電話)測試。另一種選擇(我可以想到)是處理舊的tapiclass,然後創建一個新的tapiclass,但是我有點擔心要麼丟失事件,要在多個用戶登錄/出(創建類需要幾秒鐘,我的程序)

所以,我真的想是選項

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

爲新的可用線。

回答問題的背景:) -I是C#的新手,完全是COM-interop的新手,我知道C++的原理,但是從未寫過任何東西。

任何幫助將大大appriciated。 (也有關於互操作等的意見)

回答

0

嗯,原來我錯了。添加通知行是可能的,不會拋出異常。我認爲我沒有刪除舊的行,然後在我的舊樣本中添加新行。