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

 

clip_image001

2. Etendre la procédure stockée ==> Faire défiler jusqu’à dbo.DiagShowPublisherPresence ==> Click droit ==> Choisir “Execute Stored Procedure”

clip_image001[10]

 

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

clip_image001[12]

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:

clip_image002

5. Comment interpreter les données de cette colonne?

clip_image002[7]

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”

clip_image001[14]

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 :)