C# 使用RTC禁用服务器上的配置文件?
我在RTC中有配置文件漫游问题。因此,让我描述一下我的程序,以便更好地理解它 我编写了基于sip协议的软电话,为了使用sip,我决定使用RTC库进行通信。这部软电话可以完美地实现这些功能,如保持、重定向、应答、挂断等。我使用C#和C# 使用RTC禁用服务器上的配置文件?,c#,voip,sip,C#,Voip,Sip,我在RTC中有配置文件漫游问题。因此,让我描述一下我的程序,以便更好地理解它 我编写了基于sip协议的软电话,为了使用sip,我决定使用RTC库进行通信。这部软电话可以完美地实现这些功能,如保持、重定向、应答、挂断等。我使用C#和Interop.RTCCORELib dll来实现RTC。在与任何类型的PBX服务器(如asterisk、asterisk windows和Elestisk)一起使用了太多时间后,我在我的软电话中面临着神秘的问题 问题: 当操作员登录并使用电话时,我会创建IRTCPro
Interop.RTCCORELib dll
来实现RTC。在与任何类型的PBX服务器(如asterisk、asterisk windows和Elestisk)一起使用了太多时间后,我在我的软电话中面临着神秘的问题
问题:
当操作员登录并使用电话时,我会创建IRTCProfile2属性
在服务器上注册此配置文件。操作员使用手机完成工作后,请关闭手机。此时,我运行方法来禁用服务器上的配置文件。我检查了配置文件,配置文件状态变为“未注册”但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();
}
}
在本文中,还要说callirtcclientpresence 2.DisablePresence
方法
有什么解决办法吗?有什么建议吗?我错过什么了吗
是的,我想你错过了真正的电话
从文件中
IRTCClientPresence 2接口源自IRTCClientPresence
接口。它增加了漫游和分组功能以显示状态
对象到客户端。此接口可以通过调用
IRTCClientPresence接口上的QueryInterface
编辑:在调用DisableProfile(以及添加DisablePresence时的DisablePresence)之后,您还将立即调用RTCClient::Shutdown(),不过:
给SIP堆栈一个从中优雅地注销的机会
注册者和退订观察者,客户应致电
调用Shutdown之前的异步方法PrepareForShutdown
@Rev您确定实际调用
\u rtcProvisioning.DisableProfile(\u rtcProfile)代码>完成了吗?@Rev我已经有一段时间没有进行COM互操作了,所以我的数组映射可能已关闭,但是如果计数大于0,配置文件[1]是否真的是检查状态的正确元素,而不是配置文件[0]?首先是,因为在这一行之后,配置文件状态发生了变化,第二:我认为是这样。配置文件[1]仅在条件下使用,并且\u rtcProfile
是服务器上注册的同一对象,此对象用于禁用方法。@Rev在答案中添加了一些额外的信息。@Rev不确定您取消投票的原因,但未对PrepareForShutton信息没有帮助的原因进行注释。它完全解决了你所说的问题。