我在RTC中使用配置文件漫游有问题。所以,让我描述一下我的程序,以便更好地理解它。
我基于sip协议编写Soft-Phone,使用Sip我决定使用RTC Library进行通信。这款Soft-Phone完美地完成了保持,重定向,应答,挂断等功能。我使用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
方法。
那么任何解决方案?有小费吗?我错过了什么吗?
答案 0 :(得分:1)
是的,我认为您错过了 IRTCClientPresence2实际DisablePresence()来电。
来自文档;
IRTCClientPresence2接口来自IRTCClientPresence 接口。它为存在增加了漫游和分组功能 客户端的对象。该接口可以通过调用获得 IRTCClientPresence接口上的QueryInterface。
编辑:您在调用DisableProfile后立即调用RTCClient :: Shutdown(),并在添加时调用DisablePresence,但the documentation for ShutDown()表示;
为SIP堆栈提供从中正常取消注册的机会 注册商和取消订阅观察者,客户应致电 异步方法PrepareForShutdown在调用Shutdown之前。