代码之家  ›  专栏  ›  技术社区  ›  Karlheinz Reinhardt

MachineState/EndpointState的用途是什么?

  •  0
  • Karlheinz Reinhardt  · 技术社区  · 7 年前

    我目前正在编写一个可信的UCMA 5.0应用程序,它将改变不同用户的存在。

    为UserEndpoint发布状态时,可以发布多种不同类型的状态,例如:
    用户状态:可用、忙、脱机。。。
    电话状态:用户当前是否在通话或会议中
    还有一些包括EndpointState/MachineState。

    // ... init collaboration platform (trusted application) and create the UserEndpoint 
    var presenceCategs = new PresenceCategory[]
    {
        PresenceState.UserBusy,
        new Note("Will be back in 10 minutes"),
        PresenceState.EndpointAway
    };
    
    _userEndpoint.LocalOwnerPresence.BeginPublishPresence(presenceCategs, PublishPresenceCompleted, true);
    
    // ...     
    private void PublishPresenceCompleted(IAsyncResult ar)
    {
        _userEndpoint.LocalOwnerPresence.EndPublishPresence(ar);
        Console.WriteLine("Publish Presence Complete");
    }
    

    代码可以工作,但问题是我不确定何时/如何正确使用EndpointState。
    我找到的关于EndpointState/MachineState的唯一文档没有进一步帮助我:

    此特定终结点的终结点所有者的可用性。

    https://msdn.microsoft.com/en-us/library/dn466019(v=office.16).aspx

    到目前为止,我无法观察到任何不同或奇怪的行为时,改变或遗漏端点状态(例如。 PresenceState.EndpointAway 当用户联机时)

    所以我的主要问题是:

    • EndpointState的目的是什么,它将用于什么 S4B中使用的信息?

    •     var presenceCategs = new PresenceCategory[]
               {
                      PresenceState.UserBusy,
               };
          _userEndpoint.LocalOwnerPresence.BeginPublishPresence(presenceCategs, PublishPresenceCompleted, true);
      
    • 更改EndpointState时应用哪些“规则”/约定?
    1 回复  |  直到 7 年前
        1
  •  1
  •   Shane Powell    7 年前

    我发现在场是SfB中一个非常令人困惑的话题。据我所知,每个SIP端点都可以有自己的存在状态。

    因此,每个“用户”都有多层状态。每个注册的SIP端点都有自己的状态,用户的联系人卡有自己的状态,每个日历事件都有自己的状态。还有一个“聚合”存在状态,我相信它是所有存在状态的总和,这是任何其他人在任何时候看到的。

    鉴于此,你所指的页面上写着:

    EndpointState此服务器中端点所有者的可用性

    意味着您正在将当前SIP端点(在您的情况下是UserEndpoint)的状态设置为busy。因此,用户忙碌的“状态”将持续到您的UserEndpoint处于活动状态,并且任何其他SIP端点登录时,该用户都不会更改状态。

    UserState终结点所有者的可用性首选项。

    如果您想设置用户状态而不是让UserEndpoint实例死亡,那么UserState选项是很好的。因此,它只能在设置用户状态的时间内生存。