我有配置文件漫遊在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
方法。
那麼任何解決方案?有小費嗎?我錯過了什麼?
@Rev你確定實際調用'_rtcProvisioning.DisableProfile(_rtcProfile);'完成了嗎? – 2012-03-03 06:30:45
@Rev它已經有一段時間了,因爲我做了COM互操作,所以我的數組映射可能關閉,但是配置文件[1]真的是檢查狀態的正確元素,如果計數> 0,不是配置文件[0]? – 2012-03-03 06:44:57
首先是,cuz'_rtcProfile state'在這行之後改變,第二:我這麼認爲。配置文件[1]僅在if條件中使用,而_rtcProfile是在服務器上註冊的同一對象,此對象用於禁用方法。 – Rev 2012-03-03 06:55:51