2010-10-21 5 views
2

Je travaille sur une version de site Web utilisant ASP.NET et C# pour l'intranet de mon entreprise. Il est donc possible d'intégrer Microsoft Office Communicator 2007 dans la page ASP.NET. c'est-à-dire que le site devrait être capable de fournir l'état actuel (avalable, occupé, hors ligne) de tous les contacts et lorsqu'un utilisateur clique sur le nom d'utilisateur, la fenêtre de discussion devrait s'ouvrir.Intégration de Microsoft Office Communicator 2007 dans ASP.NET Page

Répondre

5

En supposant que la machine cliente est Communicator en cours d'exécution, Office et Internet Explorer, de loin le moyen le plus simple est d'utiliser le NameCtrl dans le script côté client - l'exemple ci-dessous devrait donne les concepts de base. Cela vous donnera également le meilleur rapport qualité-prix en termes de fonctionnalité. Passez la souris sur le texte "Votre contact" pour afficher le menu contextuel. Pour une solution réelle, il suffit d'implémenter une image qui change en fonction de l'état de présence renvoyé (une bulle de présence à afficher à côté de chaque nom d'utilisateur) et une collection d'urs d'images. , pour vous assurer que vous pouvez mapper un changement d'état entrant à l'image pertinente. Il est bon de garder à l'esprit que la solution Ajax/CWA mentionnée dans l'autre réponse ne fonctionnera probablement pas avec Lync Server (je crois que Communicator Web Access n'est plus), donc vous devrez changer la solution si votre entreprise mises à niveau de Lync. J'ai testé la solution ci-dessous, et cela fonctionne avec Lync Server RC.

<script> 

var sipUri = "[email protected]"; 

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> 
+0

Excellente solution, j'adore ça! –

+0

@Paul Nearney Salut, Excellente solution. Mais j'ai un problème ici. si je veux afficher tous les utilisateurs dans un tableau et leur statut, est-ce possible via javascript? Ici, dans cet exemple, il est affiché pour un seul utilisateur. Je veux montrer tous les utilisateurs. Est-ce possible via javascript? –

+0

Oui, le deuxième paramètre dans GetStatus est un ID. Si vous vous assurez que cela est unique pour chaque utilisateur que vous enregistrez via GetStatus, il vous sera renvoyé en tant que paramètre ID dans OnStatusChange. Vous pourriez utiliser ceci pour, par exemple, rechercher l'utilisateur concerné dans un tableau, ou trouver la div correspondant à l'utilisateur dont le statut vient de changer –

Questions connexes