EasyUC pour Cisco
Presence Sync : fonctionnement et architecture
Quels états sont transférés dans quel sens, comment se déroule une exécution de synchronisation et où les données sont stockées.
Dans EasyUC : Presence Sync → Presence profiles
À quoi cela sert
Presence Sync synchronise l'état de présence entre Microsoft Teams et la téléphonie Cisco. Le cas le plus fréquent : un collaborateur est en communication sur le téléphone de bureau Cisco. Sans synchronisation, Teams l'affiche toujours comme disponible, des collègues l'appellent ou lui écrivent et interrompent la communication. Avec Presence Sync, il est affiché comme « In a call » dans Teams tant que l'appel est établi.
Ce chapitre explique la fonction avant toute configuration : quelle variante correspond à quel client Cisco, quel état est transféré dans quel sens, comment se déroule une exécution de synchronisation, quelles interfaces et autorisations sont concernées et ce qui est transmis à Microsoft. La configuration elle-même est décrite dans les chapitres suivants.
Presence Sync est un module à part entière, avec son propre espace de travail et son propre service d'arrière-plan. Il ne nécessite ni le Teams SBC ni l'ACD. Un profil de présence n'a ni port SIP, ni nom d'hôte, ni certificat.
Prérequis
- Aucune autorisation n'est nécessaire pour lire ce chapitre. Pour la configuration, les rôles indiqués dans le chapitre sur le profil de présence s'appliquent.
- Vous savez avec quel client Cisco les utilisateurs travaillent : téléphones de bureau et Jabber avec Cisco IM and Presence, ou l'application Webex. La variante en dépend.
- Vous avez accès à Microsoft Entra pour créer un enregistrement d'application et accorder le consentement administrateur.
- Pour la variante Jabber : un CUCM dont la supervision des appels est configurée dans EasyUC et, pour l'état Jabber, un Cisco IM and Presence avec un service web de présence joignable.
Pas à pas : comment procéder
Champs et options : les variantes en un coup d'œil
| Champ / action | Signification et utilisation |
|---|---|
| CUCM-Anrufstatus → Teams | La source est constituée des appels établis issus de la supervision des appels de la connexion CUCM (JTAPI). Un appel établi sur le téléphone ou le softphone Cisco place l'utilisateur Teams associé sur « In a call ». La sonnerie seule ne définit aucun état. Ce sens ne nécessite pas IM and Presence. |
| Cisco Jabber → Teams | EasyUC lit l'état Jabber via le service web de présence de Cisco IM and Presence et publie « Available » et « Away » dans Teams. |
| Teams → Cisco Jabber | EasyUC lit l'état Teams via Microsoft Graph et le publie dans Jabber via le service web de présence : disponible, absent, occupé ainsi que les appels et les réunions. |
| Cisco Webex (intégration native) | Avec l'application Webex, l'état se trouve dans le cloud Webex. La synchronisation avec Teams est assurée par Cisco grâce à « Cisco Call for Microsoft Teams ». EasyUC ne publie rien lui-même dans ce cas. Il peut lire et définir le commutateur de l'intégration à l'échelle de l'organisation et observe les changements d'état des deux côtés. |
| Plusieurs sens à la fois | Les trois sens Jabber peuvent être activés individuellement et combinés. Microsoft Graph autorise une session par utilisateur pour chaque application. EasyUC fusionne donc l'état Jabber et les appels CUCM en une seule source. |
| Association des utilisateurs | EasyUC reconnaît la même personne grâce à un identifiant qui porte la même valeur dans les deux systèmes, par exemple l'adresse e-mail ou le numéro de téléphone. L'aperçu affiche Eindeutig (unique), Nicht gefunden (introuvable) ou Mehrdeutig (ambigu) pour chaque utilisateur. Seules les correspondances uniques et les associations manuelles participent à la synchronisation. |
| Intervalle | Le service d'arrière-plan fonctionne avec une cadence de base de 5 secondes. Pour chaque profil, vous définissez 5 à 60 secondes, 10 par défaut. |
| Dry run | Calcule entièrement une exécution de synchronisation et affiche les modifications prévues. Aucun état n'est publié et aucun événement n'est écrit. |
| Presence Live | Journal par profil : chaque publication, renouvellement, suppression, omission et chaque erreur avec l'heure, l'utilisateur, le sens, l'état source avant et après, l'état cible, le résultat et le motif. |
Tableau d'états : Cisco → Teams
| Champ / action | Signification et utilisation |
|---|---|
| Appel établi sur l'appareil Cisco | Teams : disponibilité « Busy » avec l'activité « In a call ». La seule source est un appel confirmé par la supervision des appels. Lorsqu'il se termine, EasyUC supprime sa session et Teams affiche de nouveau l'état propre de l'utilisateur. |
| Sonnerie, numérotation | Aucun changement dans Teams. |
| Jabber : disponible | Teams : « Available ». |
| Jabber : absent | Teams : « Away ». |
| Jabber : occupé, en réunion | Omis et consigné : "Microsoft Graph unterstützt diesen Status nicht als sichere App-Session." Cela signifie : Microsoft Graph ne prend pas en charge cet état comme session d'application sûre. |
| Jabber : ne pas déranger | Omis et consigné. EasyUC n'écrase pas un état Teams que l'utilisateur a défini personnellement. |
| Jabber : hors ligne | EasyUC supprime sa propre session dans Teams. Il ne signale pas artificiellement l'utilisateur comme hors ligne. |
| État inconnu ou source injoignable | Le dernier état publié est conservé jusqu'à son expiration. Une défaillance de la source ne signifie jamais « disponible ». |
| État qu'EasyUC a lui-même défini dans Jabber | Non renvoyé vers Teams : "Die eigene EasyUC-PWS-Quelle wird nicht zurück nach Teams gespiegelt." Cela signifie : la source PWS propre à EasyUC n'est pas renvoyée vers Teams. |
Tableau d'états : Teams → Cisco Jabber
| Champ / action | Signification et utilisation |
|---|---|
| Teams : Available | Jabber : disponible. |
| Teams : Away, Be right back | Jabber : absent. |
| Teams : Busy | Jabber : occupé. |
| Teams : In a call | Jabber : occupé avec un indicateur d'appel (« On a call »). |
| Teams : In a conference call | Jabber : comme pour « On a call ». |
| Teams : In a meeting | Jabber : occupé. |
| Teams : Do not disturb, Presenting | Omis et consigné : "Ein persönlicher Cisco-DND-Override wird nicht überschrieben." Cela signifie : un override DND Cisco personnel n'est pas écrasé. Pour « Do not disturb », Cisco exige un override global, qu'EasyUC ne définit pas. |
| Teams : Offline | EasyUC supprime sa propre source dans Jabber. |
| État inconnu | La source existante dans Jabber est conservée. |
| État qu'EasyUC a lui-même défini dans Teams | Non renvoyé vers Cisco : "Der von EasyUC in Teams gesetzte Status wird nicht zurück nach Cisco gespiegelt." Cela signifie : l'état défini dans Teams par EasyUC n'est pas renvoyé vers Cisco. Cela évite une boucle de rétroaction. |
Déroulement d'une exécution de synchronisation
Flux de données et emplacements de stockage
| Champ / action | Signification et utilisation |
|---|---|
| Ce qui est transmis à Microsoft | Pour chaque utilisateur associé, l'état de présence sous forme de paire disponibilité et activité, par exemple « Busy / In a call ». Les numéros de téléphone, les interlocuteurs, la durée ou le contenu des appels ne sont pas transmis. |
| Ce qu'EasyUC lit auprès de Microsoft | Les utilisateurs du tenant avec l'identifiant sélectionné pour l'association et, lorsque le sens inverse est activé, leur état de présence. |
| Ce qui est transmis à Cisco IM and Presence | L'état lu dans Teams, sous forme de présence enrichie (rich presence) pour l'adresse Jabber de l'utilisateur. |
| Ce qui est stocké sur l'appliance | Les profils, les identifiants de connexion, l'association des utilisateurs, le dernier état observé par utilisateur et le journal Presence Live. Tout se trouve dans la base de données de votre appliance. |
| Contenu du journal | Heure en UTC avec millisecondes, profil, utilisateur, client, sens, état précédent, état source et état cible, action, résultat et motif. Les identifiants de connexion, les clés de session et les jetons n'y figurent pas. |
| Service d'arrière-plan | Un service distinct sur l'appliance, avec une seule instance. Le Manager affiche son état, ses journaux et une commande de redémarrage séparément des autres services. |
| Délais d'expiration chez l'éditeur | Une session définie par EasyUC dans Microsoft Graph expire au bout de dix minutes, une source dans Cisco IM and Presence au bout d'une heure. EasyUC renouvelle les états actifs avant cette échéance. Si EasyUC tombe en panne, les états qu'il a définis disparaissent au plus tard à l'échéance de ce délai d'expiration. |
Interfaces et autorisations
| Champ / action | Signification et utilisation |
|---|---|
| Microsoft Graph | Enregistrement d'application dans Microsoft Entra avec ID client et secret client. Autorisations d'application avec consentement administrateur : User.Read.All (lire les utilisateurs), Presence.Read.All (lire l'état) et Presence.ReadWrite.All (publier l'état). En mode Webex, les deux autorisations de lecture suffisent. |
| CUCM : supervision des appels | La connexion CUCM dans EasyUC supervise les appels actifs sur tous les appareils (JTAPI via le CTI Manager). Presence Sync partage cette supervision. |
| CUCM : annuaire des utilisateurs | Accès AXL en lecture pour associer les lignes à leurs utilisateurs et à leurs adresses Jabber. Vous utilisez une connexion CUCM existante ou saisissez un accès AXL distinct. |
| Cisco IM and Presence | Service web de présence via HTTPS. Un utilisateur d'application ayant le rôle Admin-3rd Party API publie. Pour lire l'état Jabber, EasyUC a en plus besoin d'un utilisateur final dédié comme observateur. Le certificat est toujours vérifié. |
| Webex | Une intégration Webex avec ID client, secret client et jeton d'actualisation, ainsi que l'ID de l'organisation. Autorisations de lecture pour les personnes et pour les paramètres de téléphonie ; pour commuter l'intégration, en plus l'autorisation d'écriture et un rôle d'administrateur approprié. |
| Rôles dans EasyUC | Autorisations distinctes pour afficher les profils, modifier les profils, afficher la synchronisation et modifier la synchronisation. Les détails figurent dans le chapitre sur le profil de présence. |
Limites
- « Do not disturb » n'est transféré dans aucun des deux sens. Les deux éditeurs traitent cet état comme une décision personnelle de l'utilisateur, qu'EasyUC n'écrase pas.
- « Presenting » ne peut pas être déduit de façon fiable de l'état Jabber et n'est pas transféré.
- Depuis Jabber, seuls « Available » et « Away » parviennent à Teams. Un état d'appel provient exclusivement de la supervision des appels du CUCM.
- Les lignes CUCM partagées (shared lines) ne sont pas attribuées à un utilisateur unique et ne définissent aucun état d'appel.
- Un seul profil de présence peut publier par application Entra. Un seul profil peut écrire dans Jabber par utilisateur d'application dans IM and Presence.
- La synchronisation interroge les éditeurs de façon cyclique. Les états qui durent moins longtemps que l'intervalle peuvent passer inaperçus.
- En mode Webex, Beobachtet (observé) signifie qu'EasyUC a lu un état source. Cela ne confirme pas un transfert individuel par Cisco.
- La façon dont Jabber affiche un état défini de l'extérieur et le fusionne avec ses propres sources dépend de la version d'IM and Presence et de Jabber. Vérifiez ce point avec vos versions lors de la recette.
Vérifier le résultat et circonscrire les erreurs
- Vous avez compris la fonction lorsque vous pouvez prédire, pour un utilisateur de test, ce que Teams affiche pendant un appel sur le téléphone Cisco et ce qui n'est pas transféré.
- Si l'attente ne correspond pas au comportement, ouvrez Presence Live et lisez l'entrée de l'utilisateur. Le résultat et le motif indiquent ce qu'EasyUC a fait ou omis.
- Si un utilisateur n'apparaît pas du tout dans le journal, il n'est pas associé de façon unique. Vérifiez l'association dans le profil avec Zuordnung prüfen (vérifier l'association).
- Les différents messages, avec leur signification et leur remède, figurent dans le chapitre sur les cas d'erreur.