我是否可以使用 Lync API Microsoft与 Communicator 2007/2007 R2 通信

本文关键字:2007 Communicator R2 通信 Microsoft 可以使 是否 Lync API | 更新日期: 2023-09-27 18:34:51

我正在将IM Presence信息编码到我公司的一个silverlight应用程序中。到目前为止,我找到的唯一解决方案是CodePlex(Silverlight.OCS(上的一个。这是"好的",但它非常过时。

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

所以,我很好奇 Lync SDK 是否包含与 Office Communicator 通信的方法?

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

我是否可以使用 Lync API Microsoft与 Communicator 2007/2007 R2 通信

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

SDK的前身是Office Communicator Automation API(OCAA(。它是一个基于 COM 的 API,将针对 Communication 2007 和 2007 R2 工作。它仍然受支持...现在!

您可以在此处下载 API。MSDN 登录页面在这里。

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

获取联系人记录:

    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 接口定义一个属性状态,其中包含多个 MISTATUS 值之一。