在ASP.NET页面中集成Microsoft Office Communicator 2007

时间:2010-10-21 05:21:07

标签: c# asp.net office-communicator

我正在使用ASP.NET和C#为我公司的Intranet构建网站。因此可以在ASP.NET页面中集成Microsoft Office Communicator 2007。即网站应该能够提供所有联系人的当前状态(可用,忙碌,离线),当用户点击用户名时,聊天窗口应该打开。

2 个答案:

答案 0 :(得分:5)

假设客户端计算机正在运行Communicator,Office和IE,到目前为止最简单的方法是在客户端脚本中使用NameCtrl - 下面的示例应该给出基本概念。这也将在功能方面为您带来最大的收益。将鼠标悬停在“您的联系人”文本上,即可弹出角色菜单。

对于真实世界的解决方案,您只需要根据返回的状态(即每个用户名旁边显示的状态气泡)实现更改的图像,以及对图像进行啜饮的集合,确保您可以将传入的状态更改映射到相关图像。

值得注意的是,其他答案中提到的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>

答案 1 :(得分:3)