我正在为我公司的 Intranet 使用 ASP.NET 和 C# 构建网站。因此,是否可以将 Microsoft Office Communicator 2007 集成到 ASP.NET 页面中。即该站点应该能够提供所有联系人的当前状态(可用、忙碌、离线),并且当用户单击用户名时,应该打开聊天窗口。
问问题
5908 次
1 回答
5
假设客户端机器运行 Communicator、Office 和 IE,到目前为止,最简单的方法是在客户端脚本中使用NameCtrl - 下面的示例应该给出基本概念。就功能而言,这也将为您带来最大的收益。将鼠标悬停在“您的联系人”文本上以查看角色菜单弹出。
对于现实世界的解决方案,您只需要实现一个图像,该图像会根据返回的存在状态(即在每个用户名称旁边显示的存在气泡)和图像的 sip uris 集合来实现更改,以确保您可以将传入的状态更改映射到相关图像。
值得牢记的是,另一个答案中提到的 Ajax/CWA 解决方案很可能不适用于 Lync Server(我相信 Communicator Web Access 已不复存在),因此如果您的公司升级到 Lync,您需要更改解决方案。我已经测试了下面的解决方案,它适用于 Lync Server RC。
<script>
var sipUri = "your.contact@your.domain.com";
var nameCtrl = new ActiveXObject('Name.NameCtrl.1');
if (nameCtrl.PresenceEnabled)
{
nameCtrl.OnStatusChange = onStatusChange;
nameCtrl.GetStatus(sipUri, "1");
}
function onStatusChange(name, status, id)
{
// This function is fired when the contacts presence status changes.
// In a real world solution, you would want to update an image to reflect the users presence
alert(name + ", " + status + ", " + id);
}
function ShowOOUI()
{
nameCtrl.ShowOOUI(sipUri, 0, 15, 15);
}
function HideOOUI()
{
nameCtrl.HideOOUI();
}
</script>
<span onmouseover="ShowOOUI()" onmouseout="HideOOUI()" style="border-style:solid">Your Contact</span>
于 2010-10-25T14:33:11.770 回答