我正在将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#代码。谢谢!
答案 0 :(得分:2)
您不能将Lync 2010 SDK用于Office Communicator,只能使用Lync 2010。
SDK的先前版本是Office Communicator Automation API(OCAA)。它是基于COM的API,可用于Communication 2007和2007 R2。它现在仍然受到支持!
至于获取状态信息......好吧,希望这可能会对你有所帮助(有一个免责声明,我太年轻,无法完成任何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界面定义了一个属性Status,其中包含多个MISTATUS值中的一个。