从asp.net启动Office Communicator

时间:2011-07-27 15:28:05

标签: asp.net integration instant-messaging office-communicator

在我正在构建的Intranet上,需要进行即时消息传递。客户端已使用Office Communicator应用程序,因此我希望尽可能使用它。

Intranet将有一个员工目录,我希望在每个员工旁边都有一个“呼叫”按钮,它将启动Communicator应用程序。我不知道客户端是否具有Communicator Web Access组件,我们可能根本无法安装它。我应该如何进行这种整合?

3 个答案:

答案 0 :(得分:3)

不应该安装Web Access。您可以使用现有的NameCtrl角色菜单在客户端执行所有操作 - 这是在将鼠标悬停在用户状态图标上时,在SharePoint(以及其他基于Web的应用程序,如Dynamics CRM)中显示的弹出菜单。此菜单允许您呼叫用户,开始新的对话等。您需要在正在运行的计算机上安装Office才能使用。

例如,在运行Office 2007/2010和IE的任何客户端计算机上尝试此操作。将鼠标悬停在“您的联系人”文本上以查看角色菜单(您的站点需要添加到“受信任的站点”或“Intranet”区域):

<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 :(得分:0)

基于服务器的Web应用程序不适合启动客户端可执行文件。可能有一些使用ActiveX控件的方法,但在IE本身必须明确启用。

答案 2 :(得分:0)

在此方案中,您可能必须使用Microsoft Office Communicator Server为需要扩展功能和协作工具的组织提供的UCM API(统一通信管理API)。有一组用于ASP.NET Web应用程序的工具,请查看:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23780并提供示例