2

会社のイントラネット用にASP.NETとC#を使用してWebサイトを構築しています。そのため、Microsoft OfficeCommunicator2007をASP.NETページに統合することは可能です。つまり、サイトはすべての連絡先の現在のステータス(利用可能、ビジー、オフライン)を提供できる必要があり、ユーザーがユーザー名をクリックすると、チャットウィンドウが開きます。

4

1 に答える 1

5

クライアントマシンがCommunicator、Office、およびIEを実行していると仮定すると、最も簡単な方法は、クライアント側のスクリプトでNameCtrlを使用することです。以下の例で基本的な概念を説明します。これはまた、機能性の面であなたに最も価値のあるものを与えるでしょう。「連絡先」テキストにカーソルを合わせると、ペルソナメニューがポップアップ表示されます。

実際のソリューションでは、返されるプレゼンス状態に応じて変化する画像(つまり、各ユーザー名の横に表示されるプレゼンスバブル)と、画像へのsipurisのコレクションを実装する必要があります。着信ステータスの変更を関連する画像にマッピングできます。

他の回答で言及されているAjax/CWAソリューションはLyncServerでは機能しない可能性が高いため(Communicator Web Accessは機能しなくなったと思います)、会社をLyncにアップグレードする場合はソリューションを変更する必要があることに注意してください。以下のソリューションをテストしましたが、LyncServerRCで動作します。

<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 に答える