我正在编写一个包含嵌入式Lync客户端的Windows窗体应用程序。我正在使用Lync UCWA api,我希望能够在正在运行的Windows窗体应用程序的2个实例之间发送消息。当我尝试从Windows窗体应用程序发送消息时,本机Lync客户端总是弹出来接收它。我无法弄清楚如何绕过本机Lync客户端并强制该消息出现在Windows窗体应用程序中。
我已经了解了在UISuppressed模式下运行Lync,但我不想这样做,因为用户可能需要使用它(这是一个内部应用程序)。
答案 0 :(得分:2)
你无法真正控制或阻止这种情况。标准Lync客户端和UCWA应用程序都是该用户的活动注册(用户)端点。 这在Lync术语MPOP中被调用:多个存在点。 这与例如您在两台不同的计算机上或PC和电话上为同一用户登录Lync的情况相同。 会话邀请(" toast")自动创建,其中发送给用户的第一消息(其发起会话)被传递到所有端点(端点的本地存在状态可能影响)。 它依赖于不同的客户端,如何处理,并且会话中的后续消息将仅传递给已接受该会话的端点。
所以,我不认为你有办法阻止标准客户在谈话开始时举杯祝酒。
希望本文能为您提供有关MPOP和IM的更多信息和示例: http://blogs.technet.com/b/11/archive/2014/01/31/lync-2013-explained-instant-message-delivery-in-spop-amp-mpop-scenarios.aspx
答案 1 :(得分:-1)
如果您知道端点的GRUU(您可能会这样做,因为它是您自己的应用程序),您可以专门向该uri发送消息,而不仅仅是用户的“主要”sip uri。
基本上每个端点都有一个特定的GRUU(一个唯一的地址),向它发送消息意味着它专门去那里而不是通知用户拥有的每个活动端点。当您拥有LocalEndpoint
实例时,可以在EndpointUri
属性上找到GRUU。