Lync Ucwa 绕过 Lync 客户端

Posted

技术标签:

【中文标题】Lync Ucwa 绕过 Lync 客户端【英文标题】:Lync Ucwa bypass Lync client 【发布时间】:2015-05-12 17:24:52 【问题描述】:

我正在编写一个包含嵌入式 Lync 客户端的 Windows 窗体应用程序。我正在使用 Lync UCWA api,我希望能够在正在运行的 Windows 窗体应用程序的 2 个实例之间发送消息。当我尝试从 Windows 窗体应用程序发送消息时,本机 Lync 客户端总是弹出来接收它。我不知道如何绕过本机 Lync 客户端并强制消息显示在 Windows 窗体应用程序中。

我读过关于在 UISuppressed 模式下运行 Lync 的文章,但我不想这样做,因为用户可能需要使用它(这是一个内部应用程序)。

【问题讨论】:

【参考方案1】:

你无法真正控制或阻止它。标准 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

【讨论】:

【参考方案2】:

如果您知道端点的GRUU(您可能知道,因为它是您自己的应用程序),您可以专门向该 uri 发送消息,而不仅仅是用户的“主要”sip uri。

基本上每个端点都有一个特定的 GRUU(唯一地址),向它发送消息意味着它专门去那里,而不是通知用户拥有的每个活动端点。如果您有 LocalEndpoint 实例,则可以在 EndpointUri 属性上找到 GRUU。

【讨论】:

那可能是针对 UCMA 而不是针对 UCWA 即使在 MPOP 情况下,您仍然应该能够定位特定端点。这毕竟是 GRUU 存在的原因:处理具有多个端点的单个 sip 地址。假设 UCWA 允许您使用 GRUU 并且不强制只使用简单的 sip 地址,这应该可以工作。

以上是关于Lync Ucwa 绕过 Lync 客户端的主要内容,如果未能解决你的问题,请参考以下文章

努力使用 Lync 创建无客户端 IM

Lync 服务器客户端较少的音频视频

如何访问 Lync Online (Office 365) 的 UCWA 终结点?

Lync 2013 Web API (UCWA) 位置

用于获取 Lync 状态的 UCWA 集成

我们可以用 UCWA API (Lync) 做啥?以及我们不能用 UCWA API 做啥?