Интеграция Microsoft Office Communicator 2007 в страницу ASP.NET

Я работаю над созданием веб-сайта с использованием ASP.NET и C# для внутренней сети моей компании. Так что возможно интегрировать Microsoft Office Communicator 2007 в ASP.NET Page. то есть сайт должен иметь возможность предоставлять текущий статус (доступен, занят, оффлайн) всех контактов, и когда пользователь нажимает на имя пользователя, должно открываться окно чата.

2 ответа

Решение

Предполагая, что на клиентском компьютере запущены Communicator, Office и IE, самым простым способом является использование NameCtrl в сценарии на стороне клиента - приведенный ниже пример должен дать основные понятия. Это также даст вам максимальную отдачу с точки зрения функциональности. Наведите курсор на текст "Ваш контакт", чтобы увидеть всплывающее меню персонажа.

Для решения реального мира вам просто нужно реализовать изображение, которое меняется в зависимости от возвращаемого состояния присутствия (то есть пузырь присутствия, отображаемый рядом с именем каждого пользователя), и коллекцию sip uris для изображений, чтобы обеспечить вас может сопоставить входящее изменение статуса с соответствующим изображением.

Следует иметь в виду, что решение Ajax/CWA, упомянутое в другом ответе, скорее всего, не будет работать с Lync Server (я полагаю, что веб-клиента Communicator больше нет), поэтому вам придется изменить решение, если ваша компания перейдет на 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>
Другие вопросы по тегам