【问题标题】:Can I use the Microsoft Lync API to communicate with Communicator 2007/2007 R2?我可以使用 Microsoft Lync API 与 Communicator 2007/2007 R2 进行通信吗?
【发布时间】:2012-05-26 14:52:59
【问题描述】:

我正在将 IM Presence 信息编码到我公司的一个 Silverlight 应用程序中。到目前为止,我发现的唯一解决方案是 CodePlex (Silverlight.OCS) 上的解决方案。它“还可以”,但它已经过时了。

Lync SDK 让在 silverlight 中获取 Presence 信息变得非常容易。不幸的是,我们网络上 99% 的用户仍在使用 Office Communicator (R2),因此无法使用开箱即用的 Lync 方法(xaml 中的控件:PresenceIndicator...)。

那么,我很好奇 Lync SDK 是否包含与 Office Communicator 通信的方式?

如果是这样,我将如何 a) 检查正在运行的客户端,然后 b) 连接到该客户端 - 无论是 Lync 还是 Communicator。很感谢任何形式的帮助!最后但并非最不重要 - 如果可能的话,我正在寻找 C# 代码。谢谢!

【问题讨论】:

  • 看看NameCtrl ActiveX 控件。你可以从中获得存在感。

标签: c# lync office-communicator


【解决方案1】:

您不能针对 Office Communicator 使用 Lync 2010 SDK,只能针对 Lync 2010。

SDK 的前身是 Office Communicator 自动化 API (OCAA)。它是基于 COM 的 API,适用于 Communication 2007 和 2007 R2。它仍然受支持...暂时!

您可以下载 API here。 MSDN 登陆页面是here。

至于获取状态信息...嗯,希望这可能对您有所帮助(声明我太年轻,无法完成任何 OCS API 工作;)

Getting a contact record:

    private IMessengerContact FindContact(string userID)
{
    IMessengerContact contact = null;
    // Try the local contact list first
    try
    {
        contact = (IMessengerContact)communicator.GetContact(userID, "");
    }
    catch
    {
        contact = null;
    }

    // For a nonlocal contact, try the SIP Provider of Communicator
    if (contact == null || contact.Status == MISTATUS.MISTATUS_UNKNOWN)
    {
        try
        {
            contact =
                (IMessengerContact)communicator.GetContact(userID,
                communicator.MyServiceId);
            return contact;
        }
        catch
        {
            contact = null;
            return contact;
        }
    }
    else
    {
        return contact;
    }
}

返回联系人的状态:

IMessengerContact 接口定义了一个属性Status,它包含多个MISTATUS 值之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2015-05-27
    相关资源
    最近更新 更多