EasyUC
4.8.7

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.

EasyUC · Version 4.8.7

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

  1. Déterminez la variante à l'aide du tableau Les variantes en un coup d'œil.
  2. Lisez les tableaux d'états et clarifiez avec le service métier quels sens sont nécessaires. Souvent, CUCM-Anrufstatus → Teams (état d'appel du CUCM) suffit.
  3. À l'aide du tableau Interfaces et autorisations, vérifiez quels comptes et quelles validations vous devez préparer.
  4. Lisez la section Limites afin que les attentes concernant « Do not disturb » et « Presenting » soient justes.
  5. Configurez ensuite Presence Sync avec la liste de contrôle de bout en bout.

Champs et options : les variantes en un coup d'œil

Champs et options : les variantes en un coup d'œil
Champ / actionSignification et utilisation
CUCM-Anrufstatus → TeamsLa 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 → TeamsEasyUC 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 JabberEasyUC 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 foisLes 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 utilisateursEasyUC 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.
IntervalleLe 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 runCalcule 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 LiveJournal 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

Tableau d'états : Cisco → Teams
Champ / actionSignification et utilisation
Appel établi sur l'appareil CiscoTeams : 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érotationAucun changement dans Teams.
Jabber : disponibleTeams : « Available ».
Jabber : absentTeams : « Away ».
Jabber : occupé, en réunionOmis 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érangerOmis et consigné. EasyUC n'écrase pas un état Teams que l'utilisateur a défini personnellement.
Jabber : hors ligneEasyUC supprime sa propre session dans Teams. Il ne signale pas artificiellement l'utilisateur comme hors ligne.
État inconnu ou source injoignableLe 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 JabberNon 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

Tableau d'états : Teams → Cisco Jabber
Champ / actionSignification et utilisation
Teams : AvailableJabber : disponible.
Teams : Away, Be right backJabber : absent.
Teams : BusyJabber : occupé.
Teams : In a callJabber : occupé avec un indicateur d'appel (« On a call »).
Teams : In a conference callJabber : comme pour « On a call ».
Teams : In a meetingJabber : occupé.
Teams : Do not disturb, PresentingOmis 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 : OfflineEasyUC supprime sa propre source dans Jabber.
État inconnuLa source existante dans Jabber est conservée.
État qu'EasyUC a lui-même défini dans TeamsNon 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

  1. Toutes les 5 secondes, le service de présence vérifie pour quels profils l'intervalle configuré est écoulé. Un verrou dans la base de données empêche deux exécutions de publier en même temps pour le même profil.
  2. Il charge l'association des utilisateurs du profil. Les correspondances ambiguës sont exclues et comptent comme conflits.
  3. Il lit les sources des sens activés : appels établis de la connexion CUCM, état Jabber depuis le service web de présence, état Teams depuis Microsoft Graph.
  4. Pour chaque utilisateur, il compare l'état lu avec le dernier état observé. Seul un changement crée une entrée dans Presence Live. Les interrogations sans changement n'écrivent rien.
  5. Il détermine l'état cible selon les tableaux d'états. Les états qui ne peuvent pas être transférés sont consignés comme ignorés avec un motif.
  6. Il publie les nouveaux états, renouvelle les états existants avant leur expiration et supprime les états dont la source a pris fin.
  7. Il enregistre l'état, le message et l'heure de l'exécution sur le profil. L'interface affiche ces valeurs sous Last check.
  8. Si la synchronisation est désactivée ou si le module est arrêté, le service supprime uniquement les états définis par EasyUC. Les paramètres du profil sont conservés.

Flux de données et emplacements de stockage

Flux de données et emplacements de stockage
Champ / actionSignification et utilisation
Ce qui est transmis à MicrosoftPour 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 MicrosoftLes 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 PresenceL'é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'applianceLes 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 journalHeure 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-planUn 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'éditeurUne 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

Interfaces et autorisations
Champ / actionSignification et utilisation
Microsoft GraphEnregistrement 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 appelsLa 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 utilisateursAccè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 PresenceService 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é.
WebexUne 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 EasyUCAutorisations 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.

Chapitres associés