La Présence dans OCS/Lync Server
Comment la présence est-elle déterminée par le serveur OCS/Lync?
Il y a 4 types d'état que le serveur OCS/Lync doit agréger pour déterminer la véritable "présence" à montrer dans le communicateur (ou dans Outlook).
Ces différents types d'état sont:
- Etat de l'utilisateur ( Action manuelle effectuée par l'utilisateur )
- Etat de la machine ( Action récente faite sur Ordinateur, Phone, ..)
- Etat du téléphone ( En ligne, en conférence, ...)
- Etat du calendrier ( Ce qui est planifié dans le calendrier à ce moment là)
L’agrégation de l’état de la présence est un interval de valeurs comme cela est mentionné dans la figure suivante:
Etat de présence agrégé Description
3000 --- 4499 Available
4500 --- 5999 Available – Idle
6000 --- 7499 Busy
7500 --- 8999 Busy – Idle
9000 --- 11999 Do Not Disturb
12000 --- 14999 Be Right Back
15000 --- 17999 Away
18000+ Offline
En plus des ces états mentionnés ci-dessus, on peut eventuellement créer d’autres états en utilisant l’interface IUccCategoryInstance ( microsoft.office.interop.uccapi.dll ).
Pour plus de détails, vous pouvez accéder à la page suivante du MSDN: https://msdn.microsoft.com/en-us/library/bb878933.aspx
Où est enregistrée cette valeur agrégée?
Cette valeur est enregistrée dans la base de données OCS RTC.
Dans cette base de données, on retrouve les données suivantes: ACLs, Contacts, Pool, Scheduled Conferences,…
Comment retrouver l’information relative à la présence rélle d’un utilisateur particulier?
La procédure stockée DiagShowPublisherPresence se trouvant dans la base de données RTC peut-être utilisée pour retrouver cette information. Comment y procéder?
Il faut avoir des droits suffisants au niveau de l’instance SQL serveur pour pouvoir éxecuter les étapes suivantes:
1. Lancer le “SQL Management Studio” ==> Databases ==> RTC ==> Programmability ==> Stored Procedures
2. Etendre la procédure stockée ==> Faire défiler jusqu’à dbo.DiagShowPublisherPresence ==> Click droit ==> Choisir “Execute Stored Procedure”
3. Une boite de dialogue va apparaître. Dans le champ “Value” taper l’adresse SIP de l’utilisateur dont vous voulez voir la présence et valider en cliquant sur OK
4. La requête retournera un certain de colonnes de résultats. La colonne “Data” est celle qui nous intéresse dans ce cas précis:
5. Comment interpreter les données de cette colonne?
La borne XML “userState” availability est positionnée à la valeur 15500 et cet état veut dire tout simplement que la présence de l’utilisateur Yannis est “Away”
Le champ ( ou la borne XLM) “machineState” est positionné à la valeur 3500 . Cette valeur comme mentionné précedemment veut dire que l’utilisateur Yannis est: Available
En revanche, si on regarde la borne XML “userstate”, on voit qu’elle est positionnée à la valeur booléenne: TRUE ( manual=”true”)
Conclusion:
L’utilisateur Yannis a délibérémment postionné ( ou changé) son état de présence réel. Et ce n’est pas un vérouillage de la station de travail.
Donc, Un administrateur OCS et/ou Bases de données peut détecter la présence réelle d’un utilisateur :)