使用UCMA配置Skype for Business代理

时间:2018-04-13 07:21:28

标签: delegates skype-for-business ucma

我一直在努力以编程方式向用户添加委托(老板/管理员方案)。

在老板sfb客户端运行我的测试代码之后,管理员显示为代理人,但是在管理员的sfb客户端中,老板不会出现在&#34部分下面;我管理的人员是" 。我在rtc前端数据库中验证了配置委派,但是管理员订阅记录没有列出老板。以下是我用来实现此目的的代码。

为什么管理员sfb客户端没有收到新委托通知的任何想法?

谢谢,

西蒙

1)添加委托管理

public void SendAddDelegate()
{
    string body = string.Format($"<setDelegates xmlns=\"http://schemas.microsoft.com/2007/09/sip/delegate-management\" version=\"1\"><delegate uri=\"sip:admin@example.com\" action=\"add\"/></setDelegates>");
    byte[] encBody = Encoding.UTF8.GetBytes(body);
    RealTimeAddress rta = new RealTimeAddress("sip:boss@example.com");
    System.Net.Mime.ContentType contentType = new System.Net.Mime.ContentType("application/msrtc-setdelegate+xml")
endpoint.InnerEndpoint.BeginSendMessage(MessageType.Service, rta, contentType, encBody, SendAddDelegateManagementMessageComplete, null);
}

private void SendAddDelegateManagementMessageComplete(IAsyncResult result)
{
    try
    {
        SipResponseData srd = endpoint.InnerEndpoint.EndSendMessage(result);
        logger.Debug($"srd.ResponseCode - {srd.ResponseCode}");
    }
    catch (Exception exc)
    {
        logger.Error("Exception SendMessageComplete with message - {0}", exc.Message);
    }
}

2)发布在场

public void PublishRoutingCategory(string delegateUri)
{
    //routes not created here for sample brevity
    routes.DelegateRingEnabled = true;
    routes.Delegates.Add(delegateUri);
    routes.SimultaneousRingEnabled = true;
    routes.SimultaneousRing.Add(delegateUri);
    routes.SkipPrimaryEnabled = true;
    routes.ForwardAudioAppInvitesEnabled = true;
    try                
    {                    
        userEndpoint.LocalOwnerPresence.BeginPublishPresence(new PresenceCategory[] { routes }, PublishComplete, null);
    }
    catch (Exception exc)
    {
        logger.Error("Unknown error - {0}", exc.Message);
    }
}

private void PublishComplete(IAsyncResult result)
{
    try
    {
        endpoint.LocalOwnerPresence.EndPublishPresence(result);
    }
    catch (Exception exc)
    {
        logger.Error("Error Publish Complete- {0}", exc.Message);
    }
}

0 个答案:

没有答案