2012-03-03 54 views
1

我有配置文件漫遊在RTC的問題。所以讓我描述一下我的程序,以便更好地理解它。使用RTC禁用服務器上的配置文件?

我用SIP協議編寫Soft-Phone,使用Sip我決定使用RTC庫進行通信。這個軟電話完成這些功能,如保持,重定向,回答,掛斷等。我使用C#和Interop.RTCCORELib dll RTC。經過太多時間使用這種手機與任何類型的PBX服務器(如星號,星號窗口和Elestisk),我在我的軟電話面臨神祕的問題。

問題: 當操作員登錄和使用手機,我創建IRTCProfile2 Propety註冊服務器上此配置文件。操作員在電話上工作後,操作員關閉電話。在這一刻我運行方法來禁用服務器上的配置文件。我檢查了配置文件,配置文件狀態更改爲「未註冊」。 但是sip用戶仍然在服務器上登錄。我檢查msdn並找到這個article

本文介紹如何禁用服務器上的配置文件。我也這樣做。這裏是我的代碼:

public void unregisterProfile() 
    { 
     if (_rtcProvisioning.Profiles.Count > 0 && 
      ((IRTCProfile)_rtcProvisioning.Profiles[1]).State == RTC_REGISTRATION_STATE.RTCRS_REGISTERED) 
     { 
      _rtcProvisioning.DisableProfile(_rtcProfile); 
      _rtcPresence.DisablePresence(); 
      _rtcClient.PrepareForShutdown(); 
      Thread.Sleep(2000); 
      _rtcClient.Shutdown(); 
     } 
    } 

也在這篇文章中說打電話IRTCClientPresence2.DisablePresence方法。

那麼任何解決方案?有小費嗎?我錯過了什麼?

回答

1

是的,我想你錯過了 IRTCClientPresence2其中有實際DisablePresence()電話。

來自文檔;

IRTCClientPresence2接口派生自IRTCClientPresence 接口。它增加了漫遊和分組功能,爲客戶提供存在 對象。該接口可通過在IRTCClientPresence接口上調用 QueryInterface獲得。

編輯:你還呼籲RTCClient ::關機()調用DisableProfile(和DisablePresence被添加時),the documentation for ShutDown()狀態雖然後;

爲了給SIP協議棧有機會正常從 註冊和取消看守取消註冊,客戶端應該調用shutdown前致電 異步方法PrepareForShutdown。

+0

@Rev你確定實際調用'_rtcProvisioning.DisableProfile(_rtcProfile);'完成了嗎? – 2012-03-03 06:30:45

+0

@Rev它已經有一段時間了,因爲我做了COM互操作,所以我的數組映射可能關閉,但是配置文件[1]真的是檢查狀態的正確元素,如果計數> 0,不是配置文件[0]? – 2012-03-03 06:44:57

+0

首先是,cuz'_rtcProfile state'在這行之後改變,第二:我這麼認爲。配置文件[1]僅在if條件中使用,而_rtcProfile是在服務器上註冊的同一對象,此對象用於禁用方法。 – Rev 2012-03-03 06:55:51

相關問題