代码之家  ›  专栏  ›  技术社区  ›  Aditya Singh

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

  •  2
  • Aditya Singh  · 技术社区  · 14 年前

    我正在使用ASP.NET和C为我公司的内部网构建一个网站。是否可以在ASP.NET页面中集成Microsoft Office Communicator 2007。即,网站应能提供所有联系人的当前状态(可用、忙、脱机),当用户点击用户名时,聊天窗口应打开。

    2 回复  |  直到 11 年前
        2
  •  5
  •   Paul Nearney    14 年前

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

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

    值得注意的是,另一个答案中提到的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>
    
    推荐文章