使用RTC禁用服务器上的配置文件?

时间:2012-03-03 05:56:25

标签: c# voip sip

我在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方法。

  

那么任何解决方案?有小费吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

是的,我认为您错过了 IRTCClientPresence2实际DisablePresence()来电。

来自文档;

  

IRTCClientPresence2接口来自IRTCClientPresence   接口。它为存在增加了漫游和分组功能   客户端的对象。该接口可以通过调用获得   IRTCClientPresence接口上的QueryInterface。

编辑:您在调用DisableProfile后立即调用RTCClient :: Shutdown(),并在添加时调用DisablePresence,但the documentation for ShutDown()表示;

  

为SIP堆栈提供从中正常取消注册的机会   注册商和取消订阅观察者,客户应致电   异步方法PrepareForShutdown在调用Shutdown之前。