使用RTC禁用服务器上的配置文件
本文关键字:配置文件 服务器 RTC 使用 | 更新日期: 2023-09-27 18:26:26
我在RTC中漫游配置文件时遇到问题。让我描述一下我的程序,以便更好地理解它。
我编写了基于sip协议的软电话,为了使用sip,我决定使用RTC库进行通信。这款软手机完美地实现了这些功能,如保持、重定向、应答、挂断等。我使用C#和Interop.RTCCORELib dll
作为RTC。经过太多时间使用这个电话与任何类型的PBX服务器,如(星号,星号窗口和Elestisk),我在我的软电话面临神秘的问题。
问题:当操作员登录并使用电话时,我创建IRTCProfile2 Propety
在服务器上注册此配置文件。话务员用手机完成工作后,话务员关闭手机。此时此刻,我运行方法来禁用服务器上的配置文件。我检查了配置文件,配置文件状态更改为"未注册"但是sip用户仍然登录服务器。我查了msdn,找到了这篇文章。
在本文中,描述了如何在服务器上禁用配置文件。我也这么做。这是我的代码:
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
方法。
那么有什么解决方案吗?有什么建议吗?我错过什么了吗?
是的,我认为您错过了具有实际DisablePresence()调用的IRClientPresence2。
来自文档;
IRTCClientPresence2接口源自于界面它增加了漫游和分组功能对象。此接口可通过调用IRTCClientPresence接口上的QueryInterface。
编辑:您还在调用DisableProfile(以及添加后的DisablePresence)后立即调用RTCClient::Shutdown(),Shutdown的文档中指出;
让SIP堆栈有机会从注册者和取消订阅的观察者,客户端应致电异步方法PrepareForShutdown,然后调用Shutdown。