PROCEDE ET DISPOSITIF DE GESTION DE COMMUNICATIONS MULTIMEDIA
La présente invention concerne un procédé et un dispositif de gestion de communications multimédias. Elle s'applique en particulier à un centre d'appels virtuel multimédia, en particulier pour la gestion de communications téléphoniques et de transferts de données.
Il existe des centres d'appels informatisés. Cependant, aucun d'entre eux ne possède de caractère effectivement virtuel, c'est-à-dire applicable à un ensemble de systèmes informatiques répartis sur plusieurs sites distants. Ainsi, la société Dialogic (marque déposée) distribue des kits de cartes électroniques enfichables dans des ordinateurs personnels, reliées entre elles par un bus réseau interne propriétaire. Ces kits permettent de mettre en place des centres d'appels multi-machines mais sur un seul site, la longueur maximal du bus étant limitée à une quinzaine de mètres.
Les architectures actuellement mises en oeuvre sont toutes organisées autour de la fonction de téléphonie, et, matériellement, par l'autocommutateur téléphonique privé d'entreprise (connu sous le nom de PABX pour "Private Automatic Branch eXchange"). En outre, toutes les données sont gérées par une base de données centralisée. En conséquence, ces architectures présentent de nombreux inconvénients : les coûts d'acquisition et de mise en oeuvre sont très élevés, les coûts d'exploitation, basés sur le transfert d'appels téléphoniques, sont aussi très élevés, ces architectures manquent de souplesse et d'ouverture car tous les autocommutateurs doivent provenir du même constructeur ; les fonctionnalités et applications ne peuvent évoluer au rythme des progrès de l'informatique parce qu'elles doivent être supportées par les autocommutateurs, - les appels téléphoniques sur Internet ne sont pas systématiquement pris en compte,
- toute la sécurité de l'ensemble des sites du centre d'appels dépend de celle de l'autocommutateur et du système centralisé de gestion des données ; si plusieurs serveurs CTI (dispositifs de Couplage Téléphonie et informatique ou, en anglais "Computer Telephony Intégration") peuvent être connectés à l'autocommutateur, ils ne coopèrent pas mais sont simplement juxtaposés et gèrent chacun un ensemble prédéterminé de ressources téléphoniques et de postes agents. Dans une solution sans autocommutateur, la commutation des appels est effectuée par un dispositif à base d'un serveur de type PC (personal computer pour ordinateur personnel) équipé de cartes de communication et de logiciels offrant des fonctionnalités de commutation. Ce dispositif est appelé PCBX, concaténation des acronymes PC et PABX. Dans une telle solution, un dispositif de CTI gère les appels, entrants ou sortants. Cette solution présente une fiabilité, une sécurité et une évolutivité limitées, ne permet pas de réalisations multi-sites coopératifs et ne fait que juxtaposer des médias.
On connaît le document GB 2342 529 qui présente un centre d'appels comportant plusieurs groupes de travail, chacun avec un contrôleur de route qui détermine le poste de travail le plus adapté à recevoir un appel entrant dans ce groupe de travail. Chaque contrôleur de route conserve une table de routage et les différents contrôleurs de route échangent leurs tables de routage pour que chaque groupe de travail soit à même de déterminer le groupe de travail le plus adapté à gérer un appel entrant.
Ce système n'offre qu'une tolérance partielle aux pannes et présente de nombreux inconvénients :
- il est fondé sur une redondance simple de groupes de travail disjoints, fédérés par l'échange des tables de routage entre les différents contrôleurs de route constitutifs du centre d'appels et par un aiguillage amont des appels entrants. L'aiguillage amont des appels entrants est réalisé par des services particuliers du réseau de l'opérateur que sont SSP (Service Switching point) et WebSCP (Web Service Control Point) et dont la mise en œuvre nécessite une interconnexion du centre d'appels avec le réseau téléphonique traditionnel d'une part, et avec un réseau IP d'autre part (Internet, Intranet ou tout autre réseau basé sur le protocole IP). Les services réseau opérateur particuliers SSP et WebSCP sont indispensables à la mise en œuvre de l'aiguillage amont particulier des appels entrants que nécessite le système, et cet aiguillage est lui-même indispensable au bon fonctionnement du système, ce qui spécialise le contexte de mise en œuvre du système et interdit par exemple sa mise en œuvre en interconnectant le centre d'appels avec le réseau téléphonique traditionnel uniquement (accès analogiques et/ou numériques) ; et
- l'aiguillage d'un appel vers un groupe de travail est tout d'abord effectué en amont au niveau du réseau de l'opérateur, puis, le contrôleur de route du groupe de travail consulté recherche le couple "groupe de travail / poste de travail" le plus adapté pour traiter l'appel dans les tables de routage dont il dispose à l'instant où se présente la demande de prise en compte d'un appel, si bien qu'en cas de nécessité de solliciter un autre groupe de travail, le contrôleur de route local procède dans les faits à une demande de transfert aveugle, c'est à dire sans aucune garantie d'aboutissement, puisque du fait même de la non coopération avec les autres contrôleurs de route et du temps de propagation des mises à jour des différentes tables de routage, il n'est pas à même d'une part, de réquisitionner la ressource (poste de travail) distante qu'il a sélectionnée pour traiter l'appel afin d'en assurer le traitement, et d'autre part, de s'assurer que dans le même temps où il sélectionne la ressource distante destinée à traiter l'appel, cette dernière ne soit pas affectée par son contrôleur de route local au traitement d'un autre appel, ce qui interdit au système la faculté de se prémunir contre certains cas de collisions voire de verrous mortels et limite grandement son efficacité réelle.
La présente invention entend remédier aux inconvénients exposés ci-dessus. La présente invention vise, en particulier, une méthode de constitution d'un centre d'appels multimédia, multi-sites coopératifs, sécurisé, hautement disponible, ouvert, indépendant de tout
système d'exploitation, doté d'une forte capacité d'accueil et fonctionnant indifféremment avec ou sans PABX.
Selon un premier aspect, la présente invention vise un dispositif de communication multimédia comportant au moins deux serveurs reliés entre eux, chaque serveur étant relié à au moins un poste agent et au moins un serveur étant relié à un réseau de télécommunication, chaque poste agent étant muni d'une interface de navigateur Internet, caractérisé en ce que chaque serveur : comporte un module de distribution automatique des appels vers ou depuis chaque poste agent auquel il est relié, - comporte un module de distribution automatique des appels vers ou depuis chaque autre serveur auquel il est relié, conserve une base de données comportant une table d'état représentative de l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent, chaque serveur étant adapté à mettre à jour chaque table d'état en fonction de l'activité de chaque poste agent relié ou non audit serveur, de telle manière que toutes les tables d'état soient alignées en temps réel, et communique avec chaque autre serveur conformément au protocole IP (Internet
Protocol), en particulier pour véhiculer la voix, et en ce que chaque poste agent communique avec le serveur auquel il est relié conformément au protocole IP (Internet Protocol), en particulier pour véhiculer la voix.
Selon un deuxième aspect, la présente invention vise un procédé de communication multimédia sur un réseau comportant au moins deux serveurs reliés entre eux, chaque serveur conservant une base de données étant relié à au moins un poste agent et au moins un serveur étant relié à un réseau de télécommunication, chaque poste agent étant muni d'une interface de navigateur Internet, caractérisé en ce que ledit procédé comporte, pour chaque serveur : une opération de distribution automatique des appels vers ou depuis chaque poste agent auquel il est relié, une opération de distribution automatique des appels vers ou depuis chaque autre serveur auquel il est relié, une opération de mise à jour d'une table d'état d'une base de données, ladite table d'état étant représentative de l'activité de chaque poste agent relié à un serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent, de telle manière que toutes les tables d'état soient alignées en temps réel, - une opération de communication avec chaque autre serveur conformément au protocole
IP (Internet Protocol), en particulier pour véhiculer la voix, et en ce que ledit procédé comporte, pour chaque poste agent, une opération de communication avec le serveur auquel il est relié conformément au protocole IP (Internet Protocol), en particulier pour véhiculer la voix.
Selon un troisième aspect, la présente invention vise un procédé de gestion de communication multimédia caractérisé en ce qu'il comporte une opération de distribution automatique d'appels entre au moins deux serveurs reliés entre eux, chaque serveur étant relié à au moins un poste agent et comportant une base de données représentative d'attributs de chaque poste agent relié à un serveur et une table d'état représentative de l'activité de chaque poste agent relié à un serveur et de rupture de connexion entre deux serveurs ou entre un serveur et un poste agent, et en ce que chaque serveur effectue une opération de mise à jour d'une base de données représentative d'attributs de chaque poste agent relié à un serveur, de telle manière que toutes les bases de données soient alignées, et une opération de mise à jour de chaque table d'état, de telle manière que toutes les tables d'état soient alignées en temps réel.
Ce dispositif et ces procédés présentent, en particulier, les avantages suivants : le client peut utiliser tout média à sa convenance pour communiquer avec le centre d'appels, - l'opérateur du centre d'appels peut distribuer son centre d'appels, la gestion du centre d'appels et les téléopérateurs sur plusieurs sites, éventuellement dans différents pays, sans avoir à tenir compte, en amont, de contrainte de compétence ou de localisation, tout en pouvant gérer en temps réel les différences de langue, de fuseaux horaire ou de compétences, - l'opérateur fait évoluer la capacité de traitement et d'accueil du centre d'appels en ajoutant des postes et/ou des serveurs, sans avoir de limitation jusqu'à 128 serveurs et jusqu'à plusieurs milliers de postes agent, l'opérateur bénéficie d'une haute disponibilité, l'opérateur bénéficie d'une tolérance de panne liée à la nature distribuée des fonctions de gestion d'appels, le fonctionnement du système est totalement indépendant de la présence d'un autocommutateur et des systèmes d'exploitation des postes ou des serveurs, l'opérateur du centre d'appels bénéficie de l'évolution rapide et constante des applications informatiques, des ordinateurs et des moyens et services Internet, - la formation des agents est simplifiée et allégée car ils utilisent une interface bien connue du grand public, le navigateur Internet, les serveurs coopèrent entre eux pour que chaque serveur puisse gérer l'ensemble des postes agent en cas de besoin, chaque module de distribution automatique des appels de chaque serveur est adapté à distribuer les appels vers ou depuis chaque autre serveur auquel il est relié, ce qui rend le système très tolérant aux pannes et très souple d'utilisation, puisque chaque serveur peut gérer individuellement l'ensemble des postes agent du système et non seulement ceux qui lui sont directement reliés,
chaque serveur conserve une base de données comportant une table d'état représentative de l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent, chaque serveur étant adapté à mettre à jour chaque table d'état en fonction de l'activité de chaque poste agent relié ou non audit serveur, si bien que le système est nullement centralisé et peut fonctionner avec tous ses postes agents dès lors que l'un des serveurs n'est pas en panne, et l'utilisation d'attributs affectés à des postes agent permet de gérer intelligemment chaque paramètre des ressources de ce poste agent. Selon un quatrième aspect, la présente invention vise un dispositif de communication multimédia comportant au moins deux serveurs reliés entre eux, chaque serveur étant relié à au moins un poste agent et au moins un serveur étant relié à un réseau de télécommunication, caractérisé en ce que chaque serveur : comporte un module de distribution automatique des appels vers ou depuis chaque poste agent auquel il est relié, comporte un module de distribution automatique des appels vers ou depuis chaque autre serveur auquel il est relié, comporte un module de distribution à chaque autre serveur d'une trace de chaque appel lui parvenant, ladite trace comportant un identifiant du poste agent ayant servi l'appel et un identifiant de l'appelant, et conserve une base de données comportant une trace de chaque appel sur chaque serveur ; chaque poste agent étant adapté, en cas de rupture de connexion avec un desdits serveurs, à se connecter à un autre desdits serveurs. Grâce à ces dispositions, en cas de panne d'un serveur, les postes qui y sont liés cherchent automatiquement à se connecter à un autre serveur, le nouveau serveur auquel ils se relient sachant quel poste correspond au traitement de chaque appel récent, donc une panne d'un serveur n'empêche pas la poursuite voire la continuité (par rappel téléphonique) de la discussion entre le poste agent et l'appelant. Selon des caractéristiques particulières, chaque serveur conserve une base de données représentative d'attributs de chaque poste agent relié à un serveur, chaque serveur étant adapté à mettre à jour ladite base de données en fonction de l'évolution de chaque attribut de poste agent relié à un serveur, de telle manière que toutes les bases de données soient alignées.
On observe que les attributs peuvent, par exemple, concerner des compétences, par exemple professionnelles, des langues de communication, des heures de disponibilité, des logiciels et données disponibles sur le poste agent ou accessibles au poste agent, des coûts de communication ou de traitement de l'appel ...
Selon des caractéristiques particulières, chaque serveur effectue une opération de partage dynamique des ressources (postes agents disponibles pour une communication) entre serveurs, en fonction de sa propre activité et de l'activité des autres serveurs.
Selon des caractéristiques particulières, la distribution automatique des appels est effectuée en fonction de la charge ou de la disponibilité des postes-agents et/ou des serveurs, d'attributs de compétence affectés à chaque poste agent ou à chaque serveur, des coûts de transmission d'information liés à chaque chemin possible pour les appels, des coûts de traitement estimé de l'appel, de la qualité de service et/ou de ressources accessibles au poste agent. Selon des caractéristiques particulières, en cas de rupture de connexion entre un serveur et un poste agent, ledit poste agent se connecte automatiquement à un autre serveur et retrouve son contexte courant à l'instant où s'est produite la rupture de connexion avec le serveur défaillant.
Selon des caractéristiques particulières, chaque base de données comporte, en outre, une mémoire adaptée à conserver une trace de chaque appel sur chaque serveur, trace comportant un identifiant du poste agent ayant servi ledit appel.
Selon des caractéristiques particulières, ladite trace de chaque appel comporte un identifiant de l'appelant.
Grâce à chacune de ces dispositions, en cas de panne d'un serveur, les postes qui y sont liés peuvent automatiquement chercher à se connecter à un autre serveur, le nouveau serveur auquel ils se relient sachant quel poste correspond à un appel récent donc une panne d'un serveur n'empêche pas la continuité (par rappel téléphonique) de la discussion entre poste et appelant. En effet, les données d'appel sont répliquées sur tous les serveurs, en temps réel, jusqu'à la panne. Selon des caractéristiques particulières, chaque serveur est adapté à connecter un appel au poste agent avec lequel une trace d'appel indique que l'appelant a déjà été connecté, si ledit poste agent est disponible.
Selon des caractéristiques particulières, chaque serveur est adapté, lorsqu'un poste agent s'y connecte, à rappeler l'appelant avec lequel le poste agent était en communication. Grâce aux dispositions succinctement exposées ci-dessus, la présente invention permet la mise en oeuvre d'une architecture distribuée dynamique et coopérative, native pouvant être implantée sur plusieurs sites.
D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite dans un but explicatif et nullement limitatif en regard des dessins annexés dans lesquels : la figure 1 représente une architecture de centre d'appels multimédia connue de l'art antérieur ; la figure 2 représente un exemple d'architecture de centre d'appels conforme à la présente invention ;
- la figure 3 représente un exemple d'architecture de centre d'appels conforme à la présente invention ; la figure 4 représente un exemple de centre d'appels multimédia sécurisé, mono-site, avec autocommutateur PABX, conforme à la présente invention ; - la figure 5 représente un exemple de centre d'appels multimédia sécurisé, mono-site, avec un PCBX, conforme à la présente invention ; la figure 6 représente un exemple de centre d'appels multimédia sécurisé, multi-sites, avec un PCBX et un seul point d'entrée de réseau téléphonique, conforme à la présente invention ; - la figure 7 représente un exemple de centre d'appels virtuel multimédia sécurisé, multi- sites mixtes (avec autocommutateur PABX et PCBX), avec un point d'entrée de réseau téléphonique sur chaque site, conforme à la présente invention ; la figure 8 représente des exemple de modules logiciels mis en oeuvre dans un exemple de centre d'appels conforme à la présente invention ; - la figure 9 représente les opérations mises en oeuvre par les modules logiciels illustrés en figure 8, au cours du traitement d'un appel, conformément à la présente invention ; les figures 10 à 14 représentent un exemple de réalisation de modules logiciels de chaque serveur d'un exemple de centre d'appels, conforme à la présente invention ; la figure 15 représente un autre mode de réalisation de la présente invention ; et - la figure 16 représente un organigramme partiel de fonctionnement d'un poste agent.
Avant de décrire les figures, on rappelle ici les fondements de la présente invention. L'objet de la présente invention assure une haute disponibilité et une continuité de fonctionnement globale (téléphonie et informatique) du centre d'appels : la solution objet de la présente invention est constituée d'un ensemble de serveurs autonomes et coopératifs si bien que le dysfonctionnement ou l'arrêt d'un serveur ne provoque plus l'interruption de l'activité du centre d'appels.
L'objet de la présente invention permet un déploiement multi-sites coopératifs, centre d'appels virtuel qui peut se déployer sur plusieurs sites hétérogènes qui collaboreront comme étant un centre d'appels unique en installant sur les matériels standards requis une solution logicielle implementant la présente invention. La mise en oeuvre de la présente invention offre une capacité d'accueil très élevée : l'évolution de la capacité d'accueil se résume à un simple ajout de plate(s)-forme(s) implementant la présente invention. Il est à noter que l'ajout se réalise dynamiquement sans même interrompre la production et ce, qu'il s'agisse d'un ajout de plateforme^) supplémentaire^) sur le même site ou sur un site distant. Par opposition à un système traditionnel mono-machine (mono-site), le concept à la base de la présente invention concerne une architecture informatique multi-machines coopératives (architecture informatique distribuée sur plusieurs machines et/ou sites) totalement ouverte, indépendante de tout système d'exploitation, de tout matériel (ordinateurs, dispositifs de communication, dispositifs de téléphonie, ...) ou encore de tout logiciel tiers (systèmes de
gestion de bases de données, ...) et permettant le support de différentes fonctionnalités de téléphonie, informatique et multimédia évoluées : médiaconvergence, téléphonie, couplage téléphonie-informatique (CTI), routage multimédia orienté compétences, ... , l'ensemble étant supervisé simultanément depuis une ou plusieurs machines (ou sites). Un centre d'appels virtuel multimédia conforme à la présente invention est constitué de plusieurs sites coopératifs mettant en commun leurs ressources. Il s'agit, généralement, de téléopérateurs, et par voie de conséquence des ressources téléphoniques et informatiques qui supportent, entre autres, les services de médias et de prise de décision. Les sites sont interconnectés via des liens IP permettant le transport de la voix (communications reroutées) et , des données nécessaires à la bonne marche du centre d'appels virtuel multimédia ainsi constitué.
Les principaux avantages d'un centre d'appels virtuel conforme à la présente invention sont d'une part, le fonctionnement en partage dynamique de la charge et des ressources, et d'autre part, la tolérance aux différents cas de panne logicielle et/ou matérielle avec un minimum de conséquences.
La présente invention permet ainsi la répartition dynamique d'appels entrants et sortants sur plusieurs sites distants en fonction de critères tels que :
- la charge ou disponibilité de chaque site ;
- la compétence particulière de chaque conseiller ; - le moindre coût d'appel ;
- les logiciels disponibles sur chaque poste agent ;
- les logiciels accessibles à chaque poste agent ;
- les données disponibles sur chaque poste agent ;
- les données accessibles à chaque poste agent ; - le moindre coût de traitement de l'appel (accès à une base de données, vitesse de travail de l'opérateur, coût horaire de l'opérateur) ;
- la meilleure qualité de service (lenteur d'accès à des bases de données distantes, qualité de télécommunication, ...) ;
- les heures de disponibilité de chaque poste agent ... et par conséquent d'exploiter au mieux les ressources d'un ensemble de centres d'appels fédérés au sein d'une seule et même entité et ce, sans devoir recourir à une centralisation (humaine, téléphonique et/ou informatique) qui limiterait fortement et par construction, le niveau de disponibilité et la tolérance aux pannes et aux interruptions de service du centre d'appels virtuel ainsi constitué. - La solution offerte par la présente invention est avantageusement fondée sur des composants matériels et logiciels strictement standards et elle est en outre entièrement basée sur l'informatique, le logiciel et les communications en protocole Internet (IP).
Fonctionnellement, les principaux avantages résultant de la mise en oeuvre du meilleur mode de réalisation de la présente invention sont :
• fonctionnement coopératif en architecture hétérogène distribuée (partage dynamique de la charge et des ressources) ;
• continuité de fonctionnement pouvant être assurée ;
• capacité d'accueil très importante, évolutive dynamiquement (sans même interrompre la production) ;
• couplage intelligent de la téléphonie, de l'informatique (CTI) et du multimédia ;
• gestion intelligente de l'ensemble des médias et messagerie unifiée ;
• solutions techniques totalement fédérées par les technologies et standards de l'Internet ;
• indépendance vis à vis des systèmes d'exploitation, des logiciels tiers et des matériels ; • fonctionnement indifférent avec ou sans autocommutateur téléphonique (pour le CTI).
Côté usager de centre d'appels, la mise en oeuvre de la présente invention permet d'affranchir ce dernier des limites d'espace, de média et de temps. Côté centre de contacts, la présente invention gère des téléopérateurs qui ne sont plus attachés ni à une position géographique spécifique ni à une fonction précise, permettant au centre de contacts d'envisager aisément un déploiement sur un ou plusieurs sites coopératifs, de prendre en compte un ou plusieurs fuseaux horaires ou langues, et lui offre par construction des possibilités d'évolution en matière de capacité et de puissance, mais surtout des garanties en matière de haute disponibilité, et ce, à moindre coût et en architecture mono ou multi-site(s), avec ou sans autocommutateur téléphonique (PABX). La mise en oeuvre de certains modes de réalisation de la présente invention assure : l'indépendance vis à vis des plates-formes matérielles (serveurs et postes agents) : côté serveur CTI, la plate-forme peut être indifféremment de type PC ou Mini ; côté poste agent l'ordinateur de type PC n'est plus incontournable puisque, avec l'implémentation de la présente invention, n'importe quel « terminal intelligent » supportant un navigateur Internet convient désormais parfaitement (PC, Macintosh,
Network Computer, ...). Qu'il s'agisse des serveurs CTI ou des postes agents, cette indépendance est fondamentale pour garantir à toute solution basée sur la présente invention la possibilité de bénéficier automatiquement de l'augmentation régulière de la puissance des machines ainsi que de la baisse des prix. - l'indépendance vis à vis des systèmes d'exploitation : par définition, une application est indépendante du système d'exploitation si elle ne fait appel à aucune ressource inhabituelle dont on ne puisse pas garantir qu'elle ait une contrepartie dans d'autres systèmes d'exploitation. Ainsi, l'« indépendance » annoncée pour bon nombre de solutions actuelles, résulte dans les faits de portages successifs qui posent des problèmes d'efficacité, de maintien et d'évolution homogène des produits ainsi obtenus.
Contrairement à cette catégorie de produits, le caractère « indépendant » d'une implémentation de la présente invention résulte, d'une part, d'une conception et d'une implémentation « OS indépendantes » du noyau de la plate-forme, notamment à
travers l'implantation de mécanismes de communication-synchronisation inter-tâches indépendants du système d'exploitation ; et d'autre part de l'utilisation intensive du langage JAVA dont le slogan est « Write once, run anywhere » (pour "écrit une fois, fonctionne partout"). Cette indépendance vis à vis du système d'exploitation est native c'est à dire qu'elle ne requiert aucun produit intermédiaire de portage, garantissant ainsi la stabilité et le niveau de performances dans les différents environnements, l'indépendance vis à vis des autocommutateurs PABX : exploitation optimale de CSTA (pour Computer Supported Télécommunication Applications ou applications de télécommunication supportées par ordinateur) permettant d'obtenir une richesse fonctionnelle maximale indépendamment du PABX utilisé. l'indépendance vis à vis des constructeurs des cartes de communication qui sont à la base des architectures PCBX : l'implémentation de la présente invention peut s'affranchir du constructeur soit en exploitant, si elles existent et sont conformes à la norme JTAPI (Java Telephony API), les APIs (Application Programming Interfaces ou interfaces programmatiques d'applications) fournies avec les cartes, soit le cas échéant, en s'appuyant sur une couche JAVA intermédiaire de bas niveau, émulant strictement JTAPI et masquant les APIs propriétaires du constructeur, l'indépendance vis à vis de la présence ou non d'un PABX au sein de l'architecture : là encore, et particulièrement grâce à l'utilisation de normes telles que CSTA et JTAPI, des modes de réalisation de la présente invention s'affranchissent de la présence ou non d'un PABX au sein de l'architecture, en s'appuyant sur une couche JAVA intermédiaire de bas niveau, émulant strictement JTAPI et masquant l'interaction avec un PABX via CSTA, ou la mise en œuvre de cartes de communication. Ainsi, qu'il s'agisse d'exploiter des cartes de communication ou d'interagir avec un PABX, l'ensemble des couches hautes de ces modes de réalisation s'adressent invariablement aux couches de communication avec une seule et même « visibilité » : JTAPI. Le noyau de modes de réalisation préférentiels de la présente invention fonctionne en architecture multi-machines dynamique (mono ou multi-site(s)), sans s'appuyer sur les services d'un OS temps réel réparti ni d'un moteur base de données répartie. Cette approche originale leur confère la capacité d'absorber et de s'adapter aux modifications de configuration voulues ou accidentelles, en temps réel et sans arrêt de l'exploitation (ajout ou retrait de machine(s) sur le réseau local ou virtuel; rupture d'un lien ou dysfonctionnement d'une plate-forme, nécessitant une reconfiguration dynamique du groupe actif; ...). Chaque machine peut fonctionner de façon autonome ou faire partie d'un groupe de machines coopérantes constituant le centre de contacts virtuel multimédia mono/multi-site(s). L'ensemble des machines coopérantes constitue un seul et même système virtuel homogène et cohérent dont la puissance et la capacité résultent directement de la « somme » des capacité et puissance de chaque machine appartenant au groupe défini.
Conformément à certains aspects de la présente invention, chaque serveur procède à un « alignement temps réel » des données dupliquées et exploitées par l'ensemble des serveurs et postes agents constitutifs de l'architecture du centre d'appels.
Les mécanismes de réplication et de synchronisation des données sont préférentiellement sécurisés (check point, rollback, ...), afin de garantir l'intégrité des données, et s'appuyent sur des technologies de bases de données standards du marché (par exemple de marques déposées MySql, SQL-Server, Oracle, ou Access...).
Dans la description qui va suivre, le terme "relié" désigne tout type de liens, aussi bien physiques que logiques. Les liens peuvent être, par exemple, sur un réseau local, Intranet ou Internet, ou sur un réseau téléphonique, éventuellement sans fil.
En figure 1 sont représentés, dans une architecture de centre d'appels multimédia, un autocommutateur privé d'entreprise (PABX) 100, relié, par un lien de couplage téléphonie et informatique (CTI) 110 à un serveur de couplage téléphonie et informatique CT1 120, d'une part, par l'intermédiaire d'un réseau téléphonique 130, à des téléphones 140, d'autre part, et, par l'intermédiaire d'un réseau téléphonique interne 150, à des téléphones d'entreprise 160 et à un serveur vocal interactif (SVI) 170, encore d'autre part. Le serveur CT1 120 est, par ailleurs relié, par l'intermédiaire d'un réseau local 180, à des postes de travail ou poste agent 190 et à des serveurs informatiques 191 à 198.
L'autocommutateur PABX 100 est de type connu. Il reçoit et envoie les appels sur le réseau téléphonique 130, qui peut être, par exemple, le réseau téléphonique commuté (RTC) ou un réseau numérique à intégration de services (RNIS). La fonction principale de l'autocommutateur PABX 100 est l'aiguillage des appels entrants vers les postes téléphoniques d'entreprise 160. La procédure d'aiguillage est automatique, grâce à une fonction de sélection directe à l'arrivée (SDA). L'autocommutateur PABX 100 assure également la circulation interne des appels dans l'entreprise.
Le serveur CT1 120 qui est relié à l'autocommutateur PABX peut comporter un logiciel de distribution automatique d'appels (DAA ou ACD) 122. Le logiciel ACD est intégré à l'autocommutateur PABX si le serveur CTI ne dispose pas d'ACD. Le rôle principal du distributeur automatique d'appels 122 est le routage et l'optimisation des files d'attente des appels entrants, particulièrement dans le cas où l'ensemble ou certains des postes téléphoniques d'entreprise 160 seraient occupés. Dans le contexte des centres d'appels évolués (dotés de CTI), le distributeur automatique d'appels 122 tient compte de stratégies plus ou moins sophistiquées de distribution d'appels (distribution automatique par groupes de compétence, performance des téléopérateurs actifs, groupes de débordement, dissuasion, ...). Le serveur vocal interactif SV1 170 est principalement utilisé en secours, lorsque le nombre d'appels est supérieur à la capacité de traitement du centre d'appels, en particulier pendant les heures de fermeture. Les appels sont routés par l'ACD 122 vers le serveur SV1 170 qui engage un dialogue avec l'appelant. Le serveur SV1 170 possède quatre fonctions principales : l'accueil automatique (ou standard automatique), la diffusion d'informations, la messagerie
vocale et la transaction (par exemple la qualification de la demande de l'appelant). Par exemple, le serveur SVI 170 est un ordinateur de type PC équipé d'un logiciel serveur vocal et d'une ou plusieurs cartes vocales reliées à l'autocommutateur PABX 100 par des lignes téléphoniques. Le lien CTI 110 met en oeuvre un protocole de communication qui permet de connecter l'autocommutateur PABX 100 et le serveur CT1 120. Le serveur CTI 120 permet de connecter l'autocommutateur PABX 100 et le système informatique de l'entreprise (serveurs 191 à 198). Le serveur CTI 120 établit aussi le lien logique entre un poste agent ou poste de travail 190 et le téléphone d'entreprise 160 correspondant, le lien logique correspondant à une proximité physique de l'écran du poste agent et du combiné téléphonique. Dans l'état de l'art, le lien CTI répond au protocole standard CSTA. Le lien CT1 110 permet au serveur CTI 120 d'agir sur l'autocommutateur PABX 100 pour contrôler les appels, en particulier pour établir une connexion, déconnexion, renvoi d'appel, mise en conférence, surveiller les téléphones d'entreprise 160 et les autres périphériques connectés à l'autocommutateur 100, et router les appels.
Le serveur CT1 120 communique en mode client-serveur et de façon bidirectionnelle avec l'autocommutateur PABX 100, par l'intermédiaire du lien CTI 110. Le serveur CTI 120 pilote les fonctions de contrôle des appels, telles que le décrochage d'une ligne, la composition d'un numéro, le transfert et le renvoi d'appels, la conférence ou la gestion de la sonnerie d'un téléphone d'entreprise 160. Le serveur CT1 120 récupère des informations de prise de ligne par l'agent appelé, le numéro de l'appelant ou la durée d'une communication. Le serveur CTI 120 interagit aussi avec les fonctions de l'autocommutateur PABX 100, telles que l'annuaire, afin de les enrichir et de les exploiter. Enfin, le serveur CT1 120 est une plaque tournante vers différents médias, tels que le web, le minitel, le serveur SV1 170 ou un serveur de télécopies. Le serveur CT1 120 comporte un automate d'appel 124, logiciel qui génère automatiquement des appels sortants, en appelant des numéros préalablement enregistrés dans une base de données (non représentée).
Les serveurs informatiques et multimédias 191 à 198 comportent, par exemple, un serveur d'information ou serveur de bases de données 194, un serveur web 192, un serveur minitel 195, un serveur de messagerie 196, un serveur de télécopie 197, un serveur bureautique 193, un serveur d'impression (non représenté) et un serveur d'applications 191 effectuant, par exemple, la gestion de la relation client, d'agendas, des applications spécifiques à l'entreprise, des logiciels métiers (logiciels standards ou applications spécifiques représentant le coeur de métier de l'entreprise, comme, par exemple, le télémarketing, le télésecrétariat, le service après- vente).
En architecture CTI, l'outil de travail du téléopérateur est constitué de deux éléments, le téléphone d'entreprise 160 qui peut prendre la forme d'un micro-casque et un poste de travail 190. Les postes de travail sont reliés par un réseau local, par exemple de type Ethernet TCP/IP (pour Transport Control Protocol in Internet Protocol, protocole de contrôle de transport des données sur le réseau Internet).
On observe que la supervision, l'administration et le télétravail peuvent être effectués avec n'importe quel terminal intelligent, par exemple un ordinateur multimédia, supportant un navigateur Internet et doté d'une carte réseau. Aucun logiciel client n'est nécessaire pour ces différents types de travaux, seul le navigateur Internet étant indispensable. On observe aussi que le centre d'appels peut encore comporter un enregistreur, un moyen de taxation multi-opérateurs la vidéo conférence (non représentés).
Pour donner un exemple de fonctionnement du centre d'appels illustré en figure 1 , on suppose que le centre d'appels à une mission de service après-vente. Lorsqu'un utilisateur appelle le centre d'appels, par l'intermédiaire de son téléphone 140 et du réseau téléphonique 130, son appel aboutit d'abord à l'autocommutateur 100. Les informations concernant l'appel
(numéro appelé et numéro appelant, si ce dernier a été véhiculé par le réseau téléphonique 130) sont transmises immédiatement par l'autocommutateur 100 au serveur CT1 120, par l'intermédiaire du lien CTI 110. L'ACD 122 détermine vers quel poste agent 190 et téléphone d'entreprise 160, l'appel doit être routé, en fonction des informations reçues, des compétences requises pour traiter l'appel, des règles prédéfinies d'éligibilité des agents, de la disponibilité des agents, ...
La distribution automatique intelligente orientée compétences (« Skill Based Routing »), traite indifféremment les appels téléphoniques traditionnels et les messages de toute nature (E- mail, fax, demande de dialogue Internet en mode « Chat », Visio, ...), y compris en architecture distribuée.
Dès que la détermination est effectuée, le serveur CT1 120 transmet l'ordre de commutation à l'autocommutateur 100 qui route alors l'appel. Parallèlement, si le numéro de l'appelant a été transmis au serveur CTI 120, celui-ci recherche la fiche correspondant à l'appelant dans la base de données. Une fois la fiche client retrouvée, le serveur CTI 120 la transmet au poste de travail 190 qui correspond au téléphone d'entreprise 160 auquel a été transmis l'appel. L'appel et la fiche sont présentés de manière synchronisée à l'agent qui va traiter l'appel. Si le numéro d'appelant n'est pas reconnu, l'ACD 122 ordonne à l'autocommutateur de commuter (ou router) l'appel vers le serveur SV1 170 qui demande à l'appelant de saisir son numéro de client, par le biais des touches de son téléphone avant que l'appel et la fiche soient transférées à l'agent. En fin de session de communication entre l'appelant et serveur SV1 170, l'information transmise par le client est récoltée par le serveur CTI 120. Une fois la communication entre l'appelant et l'agent achevée, la fiche client actualisée en fonction des données de l'appel et des éventuelles données saisies par l'agent, est mise en mémoire dans la base de données. En figure 2 sont représentés un réseau central 200, auquel sont reliés trois sites 210,
220 et 230 comportant respectivement des unités serveur 212, 222 et 232 reliées au réseau téléphonique 240 et des unités opérationnelles 214, 224 et 234. Chaque unité opérationnelle comporte des postes agents munis, chacun, d'une interface de navigateur Internet. Chaque unité serveur comporte une unité serveur de données (respectivement 216, 226 et 236), une unité de
prise de décision (respectivement 218, 228 et 238) et un serveur SVI (respectivement 219, 229 et 239). Chaque unité serveur de données conserve une base de données représentative d'attributs de chaque poste agent relié à un serveur (compétences, langue, heures de disponibilité) et une table d'état représentative de l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent. Les unités serveurs 210, 220 et 230 synchronisent (ou alignent) leurs bases de données (respectivement 216, 226 et 236) en permanence. Chaque unité opérationnelle (respectivement 214, 224 et 234) regroupe les éléments 150 à 198 illustrés en figure 1 et, en particulier, les postes agent 190 et les téléphones d'entreprise 160 du site considéré. Chaque unité opérationnelle (respectivement 214, 224 et 234) est reliée à une unité serveur (respectivement 210, 220 et 230) et peut changer d'unité serveur sans interruption de service. L'unité de prise de décision (respectivement 218, 228 et 238) comporte un serveur CTI et un autocommutateur PABX ou un PCBX sans autocommutateur.
Le réseau central 200 sert à transporter aussi bien les flux informatiques purs que les flux vocaux numériques (voix sur IP) des communications reroutées. Les liens avec le réseau téléphonique 240 servent exclusivement les flux échangés avec l'extérieur (les appelants du centre d'appels ou les appelés par le centre d'appels). En régime normal (lorsque les charges sont équilibrées), les unités opérationnelles dialoguent prioritairement avec les unités serveurs du même site. Sur besoin de compétence non disponible au niveau de l'unité opérationnelle locale ou en cas de dysfonctionnement des unités serveurs du site local, les unités opérationnelles dialoguent avec les unités serveurs des autres sites. En débordement de l'unité opérationnelle locale, une unité serveur utilise les ressources d'unités opérationnelles d'autres sites en reroutant les appels entrants.
En figure 3 sont représentés un réseau central 300, auquel sont reliés trois sites 310, 320 et 330 comportant respectivement des unités serveur 312, 322 et 331 et 332 (le site 330 possède les deux unités serveur 331 et 332) reliées au réseau téléphonique 340 et des unités opérationnelles 314, 323 à 325, 334 et 345 (le site 320 possède trois unités opérationnelles 323, 324 et 325 et l'unité opérationnelle 345 n'est reliée à aucune unité serveur de manière privilégiée). Ainsi, le site 310 comporte l'unité serveur 312 reliée au réseau téléphonique 340 et l'unité opérationnelle 314. Le site 320 est un site virtuel qui comporte l'unité serveur 322 reliée au réseau téléphonique 340 et les unités opérationnelles 323, 324 et 325. L'unité opérationnelle 323 est reliée au réseau central 300 et, par son intermédiaire, à l'unité serveur 322. L'unité opérationnelle 324 est directement reliée à l'unité serveur 322. Le site 330 est sécurisé parce qu'il comporte deux unités serveurs coopératives 332 et 331 , chaque unité serveur assurant la relève en cas de panne de l'autre unité serveur. Le site 330 comporte aussi l'unité opérationnelle 334, reliée de manière symétrique aux deux unités serveurs 331 et 332. L'unité opérationnelle 345 est directement reliée au réseau central 300.
Chaque unité opérationnelle comporte des postes agents munis, chacun, d'une interface de navigateur Internet. Chaque unité serveur comporte une unité serveur de données
(respectivement 316, 326, 335 et 336), une unité de prise de décision (respectivement 318, 328, 337 et 338) et un serveur SVI (respectivement 319, 329 et 339). Chaque unité serveur de données conserve une base de données représentative d'attributs de chaque poste agent relié à un serveur (compétences, langue, heures de disponibilité) et une table d'état représentative de l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent.
Les unités serveurs 310, 320 et 330 synchronisent (ou alignent) leurs bases de données (respectivement 316, 326, 335 et 336) en permanence. Chaque unité opérationnelle (respectivement 314, 323 à 325 et 334) regroupe les éléments 150 à 198 illustrés en figure 1 et, en particulier, les postes agent 190 et les téléphones d'entreprise 160 du site considéré. Chaque unité opérationnelle (respectivement 314, 323 à 325 et 334) peut changer d'unité serveur sans interruption de service. L'unité de prise de décision (respectivement 318, 328, 337 et 338) comporte un serveur CTI avec ou sans autocommutateur. L'unité opérationnelle 325 ne traite que des communications reroutées depuis d'autres unités serveurs. Dans les modes de réalisation illustrés en figure 2 et en figure 3, les liens à l'intérieur d'un site sont des réseaux locaux et les liens entre les sites sont de type WAN (pour Wide Area Network ou réseau de large couverture). Les flux numériques mis en oeuvre conformément à la présente invention sont de différentes natures. Les flux numériques intra-site sont internes à chaque site et sont le support de réalisation des fonctions en ce qui concerne les ressources locales.
Les flux inter-sites comportent plusieurs types de flux. Chaque unité serveur reçoit au moment de la connexion d'une autre unité serveur une copie intégrale de la table d'état conservée dans la base de données de ladite autre unité serveur et met à jour sa propre table d'état en ce qui concerne les postes-agent du site de ladite autre unité serveur. Ensuite, à chaque modification de la table d'état de l'une des unités serveur relative au site auquel elle appartient, ou de manière périodique, ladite unité serveur transmet aux autres unités serveur l'information modifiée dans sa table d'état. Les prises de décisions effectuées par les unités de prise de décision dépendent de la table d'état conservée par la base de données du site correspondant. Les flux de voix sur IP sont comprimés et le délai de transmission est inférieur à 100 ms. de manière à rester insensible.
Dans des modes de réalisation exemplaires, chaque table d'état comporte une information représentative de l'état de chaque ligne reliée à un poste agent, une information représentative de la présence d'un agent audit poste agent, et une information représentative de la présence d'information sur le client connecté sur l'écran dudit poste agent. L'ACD de chaque site ne peut contrôler directement les voies du site distant, pour des raisons de sécurité. Pour les campagnes (ensemble d'appels sortants), la répartition des tâches est effectuée par marquage en base de données avant même le lancement de la campagne, et le lancement d'une itération du moteur d'appel par site. Ainsi, en cas de rupture de lien informatique entre des unités serveurs, chaque site reste capable de continuer son travail
indépendamment des autres sites. De plus, lorsque les liens sont opérationnels et qu'un site traite ses appels plus vite que les autres sites, ce site renégocie automatiquement avec les autres sites la prise en charge d'une nouvelle partie de la campagne. C'est pourquoi le système selon la présente invention est dit "coopératif : chaque site possède une autonomie de fonctionnement et une grande sécurité mais les ressources sont mises en commun pour maximiser la qualité du service offert aux clients.
L'ACD prend préférentiellement les décisions en mode multi-critères, avec une pondération variable pour chaque critère, pour donner un degré d'éligibilité à chaque agent selon l'appel qui se présente et choisir le meilleur degré. Les agents non élus voient leur degré d'éligibilité augmenter par rapport à celui qui est finalement retenu afin de répartir les charges de travail entre les agents. Pour les autres services démarrant sur appel entrant, la prise de décision de sélection des agents (libres), s'appliquant sur un ou plusieurs des critères suivants, dans un ordre défini par l'administrateur : o niveau de l'agent dans le groupe (sélection par ordre croissant ou décroissant) OU compétences (=> groupe de niveau ou groupe de compétences) o localisation de l'agent : locale ou distante o l'agent ayant le plus grand temps d'attente depuis sa connexion o l'agent ayant le plus grand temps d'attente depuis son dernier appel traité o l'agent ayant traité le moins d'appels o l'agent ayant le moins grand temps de communication (temps passé dans les états pré-travail, poste travail et en communication) Ainsi, conformément à des modes de réalisation exemplaires de la présente invention, la plate-forme logicielle qui met en oeuvre le procédé et le dispositif visé par la présente invention possède une architecture distribuée native du noyau, le module ACD est conçu pour fonctionner en mode concurrent sur une architecture réseau, le routage des appels inter-machines s'adapte à l'implantation du centre d'appels (mono ou multi-sites) ainsi qu'à son architecture technique (présence ou non d'autocommutateur PABX ou PCBX sur chacun des sites), le mode voix sur IP est combiné au service de l'éventuel autocommutateur et les bases de données sont dupliquées. Les reroutages inter-machines et inter-sites sont réalisés en mode voix sur IP multiplexe, sur des liaisons informatiques locales ou inter-sites disposant de facilités de réseau privé virtuel (VPN) et de qualité de service (QoS) maîtrisés. L'architecture multi-sites en réseau comporte un agent SNMP (Simple Network Management Protocol pour protocol de gestion de réseau simple) sur chaque noeud du réseau.
Les fonctionnalités du centre d'appels objet de la présente invention comportent les groupes suivants :
1/ Administration : établit les liens entre téléphonie, informatique et ressources humaines. configuration des postes ; préparation et gestion des campagnes d'appel en émission et réception ; gestion des agents, des groupes, des compétences, des campagnes, ...
configuration des fonctions de distribution automatique des appels (dont l'acronyme est
DAA et correspond à l'acronyme anglais ACD, utilisé ci-dessous et signifiant "Automatic
Call Distribution" : définition des stratégies d'émission et de réception d'appels (en réception, pour chaque numéro, gérer la possibilité de fixer le pré-décroché, gérer les files d'attente, les groupes de compétences, le type de traitement de l'appel en cas de débordement, ...) ; gestion des plages horaires ; génération de scripts d'entretiens ; génération de scénarii de serveur vocal interactif ("SVI") assurant la synthèse et la reconnaissance de voix ; gestion de bases de données ; gestion de résultats et de statistiques ; least cost routing (routage au moindre coût) : il s'agit d'une utilisation intelligente des services de plusieurs opérateurs en télécommunications, en fonction de paramètres divers tels que la destination de l'appel, l'heure d'appel, la qualité de service désirée, pour optimiser les coûts de télécommunication ; outil de taxation ou de facturation en fonction du service rendu.
2/ Supervision : permet la supervision globale en temps réel du centre d'appels. personnalisation des grilles de supervision ; - visualisation du trafic tous médias confondus ; visualisation de tous les ratios de production ; état de chaque poste (pause, en communication, ...) ; agents, groupes, campagnes, agents multi-groupes, ... ; alertes (nombres d'appels insuffisants, temps de communication trop longs, ...) ; - écoute discrète en ligne ;
"soufflage au téléconseiller" et visualisation du script déroulé (fonction communément appelée "mirroring" avec le poste agent) ; enregistrement des communications.
3/ Télé-opérateur : - login, logoff, pause, en communication, travail en arrière-plan, ... ; montée de fiche à l'écran d'un poste sur appel entrée/sortie abouti ; gestion des appels sur l'écran d'un poste (composition, transfert, ...) ; demande d'assistance au superviseur ; visualisation de ses propres performances, celle du groupe, du centre d'appels, ... 4/ Réception d'appels : sur serveur vocal interactif (SVI), y compris prédécroché, qualification de l'appel, standard automatique ; - qualification codes DTMF ("Dual Tone Multi-Frequency" pour fréquences vocales) ; messageries vocales ;
reconnaissance de numéros appelants et appelés ; gestion de plages horaires ; standard automatique ; accueil sur film sonore personnalisé ; - diffusion du temps d'attente estimé ; rappel automatique en cas d'attente prolongée ; gestion des files d'attente, y compris films sonores multi-niveaux ; distribution automatique des appels (ACD), par groupe, par compétence, en débordement, en dissuasion, ... ; - traitement prioritaire d'un appel resté précédemment sans réponse ; escalade d'appel (transfert de la communication et des données à un autre agent) ; - transferts internes et externes ; conférence ; montée de fiche à l'écran d'un poste. 5/ Emission d'appels : preview dialing (appel prévisualisé): le système présente la fiche au téléacteur ou agent et ne compose le numéro de téléphone qu'après validation de l'agent (ce qui permet une personnalisation de l'argumentaire avant d'entrer en entretien) ; progressive dialing (appel progressif) : le système gère le fichier d'appels, numérote dès qu'un agent est libre et lui transmet l'appel avec la fiche du client qui est en ligne ; prédictive dialing (appel prédictif) : le système anticipe la numérotation et génère plus d'appels qu'il n'y a d'agents), supprime les appels inutiles (répondeur automatique, fax, faux-numéro, correspondant absent, correspondant occupé, ...) et passe la communication valide à un agent ; - relance : gestion automatique des appels planifiés à date et heure prévues.
6/ Call blending (que l'on peut traduire par "gestion simultanée d'appels entrants et sortants") : à cheval sur la gestion des appels entrants et sortants, le call blending permet d'affecter automatiquement les agents à des campagnes en émission quand le trafic le permet et, inversement, d'orienter les appels en réception vers des agents affectés en émission, lors de pointes de trafic entrant.
Il Application métier : télémarketing ; télésecrétariat ; agenda ; - interface pour intégration de logiciels métiers développés spécifiquement ou d'applicatifs existants ; interface pour intégration de logiciels métier du marché, help desk, télémarketing, télésecrétariat, études et sondages, customer care (attention du consommateur) ;
interface pour intégration de logiciels métiers fonctionnant en environnement mini ou mainframe, éventuellement par l'intermédiaire d'émulateurs.
8/ Plurimédia. gestion de l'ensemble des médias : vocal (avec intégration des technologies de synthèse et de reconnaissance vocale), Internet, télécopie, visioconférence ; synthèse et reconnaissance vocale (SVI) ; serveur de télécopie en entrée et en sortie, avec routage des télécopies entrantes sur un numéro attribuée (sélection directe à l'arrivée ou SDA) ; serveur web ; - serveur vidéotex ; messagerie dite "unifiée" (courrier électronique, minitel, messagerie vocale, télécopie, voix véhiculée sur internet, ...) ; exploitation vocale des messages (courrier électronique, minitel, télécopie) via des modules de synthèse vocale et de reconnaissance automatique de caractères (OCR pour "optical character récognition").
9/ Atelier de développement : outil de développement d'applications centre d'appels ; outils de développement de fonctions spécifiques ;
API ("Application Program Interface" pour interface de programme applicatif) et composants logiciels pour intégration de logiciels métier ;
Générateur d'applications (scénarii SVI, scripts d'entretien).
La figure 4 représente un centre d'appels multimédia sécurisé, mono-site, avec autocommutateur PABX. On reconnaît en figure 4 de nombreux éléments de la figure 1 , qui, pour des raisons de clarté, portent les mêmes numéros qu'en figure 1 : l'autocommutateur PABX 100, le réseau téléphonique 130, les téléphones 140, le lien CTI 110, le réseau téléphonique interne 150, les téléphones d'entreprise 160, le réseau local 180 et les postes de travail ou poste agent 190 qui sont, chacun, muni d'une interface de navigateur Internet. Le serveur CTI 120 est remplacé, en figure 4 par un ensemble 400 de serveurs 401 à 432, reliés entre eux par un réseau 440 mettant en oeuvre le protocole TCP/IP, un lien voix 445 reliant l'autocommutateur PABX 100 à l'ensemble de serveurs 400 via au moins un des serveurs de cet ensemble. Sont aussi représentés en figure 4 un poste de télétravail 450 relié, par l'intermédiaire du réseau téléphonique 130, à l'autocommutateur PABX 100, et un réseau Internet 455, relié à des postes de travail 460 et, par l'intermédiaire d'un coupe-feu (firewall) 465 à l'ensemble de serveurs 400.
L'ensemble de serveurs 400 réalise un serveur CTI multimédia sécurisé multi-machine coopérantes (qui effectue un partage dynamique de charges et de ressources). Ce serveur CTI 400 effectue une distribution automatique d'appels via l'ACD multimédia distribué qui effectue un routage intelligent des appels, des e-mails, des télécopies. Ce serveur CTI 400 assure aussi les fonctions d'automate d'appels distribué (y compris le prédictive dialing), de serveur vocal interactif SVI, de gestion mixte de la téléphonie interne (c'est-à-dire par l'intermédiaire du lien CTI
110 et de l'autocommutateur 100 et par l'intermédiaire de la voix sur IP par l'intermédiaire du réseau local), de passerelle entre Internet et la téléphonie (voix sur IP), de serveur de médias, web, vocal, télécopie, pageur, vidéo d'administration et de supervision temps réel centralisées accessibles de tout poste, y compris à distance, de base de données distribuée et 5. sécurisée et d'ouverture pour les logiciels métiers tiers. On observe qu'en plus des postes agent
190, un poste de travail multimédia autonome 191 est relié au réseau local 180 et ne correspond pas nécessairement à un téléphone d'entreprise 160. Ce poste de travail ou poste agent 191 est destiné à un téléopérateur dont toutes les communications passent par l'intermédiaire du poste
191. Par exemple, des communications sur Internet, par télécopie, sur minitel et la téléphonie 0 passent par le poste 191.
Chaque serveur 401 à 432 comporte une unité serveur de données 470, une unité de prise de décision 475 et un serveur vocal interactif SV1 170. Chaque unité serveur de données 470 conserve une base de données représentative d'attributs de chaque poste agent relié à un serveur (compétences, langue, heures de disponibilité) et une table d'état représentative de 5 l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent.
Les serveurs 401 à 432 synchronisent (ou alignent) leurs bases de données en permanence. Chaque unité de prise de décision 475 comporte un serveur CTI et l'autocommutateur PABX 100. 0 La figure 5 représente un centre d'appels multimédia sécurisé, mono-site, avec PCBX.
On reconnaît en figure 5 de nombreux éléments de la figure 1 , qui, pour des raisons de clarté, portent les mêmes numéros qu'en figure 1 : le réseau téléphonique 130, les téléphones 140, le réseau téléphonique interne 150, les téléphones d'entreprise 160, le réseau local 180 et les postes de travail ou poste agent 190 qui sont, chacun, muni d'une interface de navigateur 5 Internet. Par comparaison avec la figure 1 , le serveur CT1 120 et l'autocommutateur PABX 100 sont remplacés en figure 5 par un ensemble 500 de serveurs 501 à 532, reliés entre eux par le réseau local 180 mettant en oeuvre le protocole TCP/IP et tous reliés au réseau téléphonique interne 150. En figure 5 sont aussi représentés un poste de télétravail 550 relié, par l'intermédiaire du réseau téléphonique 130, à l'ensemble de serveurs 500, et un réseau Internet 0' 555, relié à des postes de travail 560 et, par l'intermédiaire d'un coupe-feu (firewall) 565 à l'ensemble de serveurs 500.
L'ensemble de serveurs 500 réalise un PCBX multimédia sécurisé multi-machine coopérantes (qui effectue un partage dynamique de charges et de ressources). Ce PCBX 500 effectue une distribution automatique d'appels via l'ACD multimédia distribué qui effectue un 5 routage intelligent des appels, des e-mails, des télécopies. Ce PCBX 500 assure aussi les fonctions d'automate d'appels distribué (y compris le prédictive dialing), de serveur vocal interactif SVI, de gestion de la téléphonie interne, de passerelle entre Internet et la téléphonie (voix sur IP), de serveur de médias, web, vocal, télécopie, pageur, vidéo, ..., d'administration et
de supervision temps réel centralisées accessibles de tout poste, y compris à distance, de base de données distribuée et sécurisée et d'ouverture pour les logiciels métiers tiers.
On observe qu'en plus des postes agent 190, un poste de travail multimédia autonome 191 est relié au réseau local 180 et ne correspond pas nécessairement à un téléphone d'entreprise 160. Ce poste de travail ou poste agent 191 est destiné à un téléopérateur dont toutes les communications passent par l'intermédiaire du poste 191. Par exemple, des communications sur Internet, par télécopie, sur minitel et la téléphonie passent par le poste 191. En outre, un poste d'administration 192 est relié au réseau local 180 et est destiné à administrer les fonctions du système du centre d'appels. - Chaque serveur 501 à 532 comporte une unité serveur de données 570, une unité de prise de décision 575 et un serveur vocal interactif SV1 170. Chaque unité serveur de données 570 conserve une base de données représentative d'attributs de chaque poste agent relié à un serveur (compétences, langue, heures de disponibilité) et une table d'état représentative de l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent. Les serveurs 501 à 532 synchronisent (ou alignent) leurs bases de données en permanence. Chaque unité de prise de décision 575 comporte un PCBX sans autocommutateur.
La figure 6 représente un centre d'appels multimédia sécurisé, multi-sites, avec PCBX et un seul point d'entrée de réseau téléphonique. On retrouve, en haut de la figure 6 les éléments illustrés en figure 5, ces éléments correspondant à un premier site du centre d'appels objet de la présente invention. Un réseau intranet ou extranet 695 relie le premier site à un deuxième site, distant du premier site. Le deuxième site comporte un réseau téléphonique interne 650, des téléphones d'entreprise 660, un réseau local 680, des postes de travail ou poste agent 690 qui sont, chacun, muni d'une interface de navigateur Internet, un ensemble 600 de serveurs 601 à 632, reliés entre eux par le réseau local 680 mettant en oeuvre le protocole TCP/IP. Le réseau 695 est, par exemple, un réseau privé virtuel qui véhicule voix et données selon le protocole IP (Internet Protocol).
L'ensemble de serveurs 600 réalise un PCBX multimédia sécurisé multi-machine coopérantes (qui effectue un partage dynamique de charges et de ressources entre les serveurs 601 à 632 et avec les serveurs 501 à 532). Ce PCBX 600 effectue une distribution automatique d'appels via l'ACD multimédia distribué qui effectue un routage intelligent des appels, des e- mails, des télécopies. Ce PCBX 600 assure aussi les fonctions d'automate d'appels distribué (y compris le prédictive dialing), de serveur vocal interactif SVI, de gestion de la téléphonie interne, de passerelle entre Internet et la téléphonie (voix sur IP), de serveur de médias, web, vocal, ' télécopie, pageur, vidéo d'administration et de supervision temps réel centralisées accessibles de tout poste, y compris à distance, de base de données distribuée et sécurisée et d'ouverture pour les logiciels métiers tiers.
On observe qu'en plus des postes agent 690, un poste de travail multimédia autonome 691 est relié au réseau local 680 et ne correspond pas nécessairement à un téléphone
d'entreprise 660. Ce poste de travail ou poste agent 691 est destiné à un téléopérateur dont toutes les communications passent par l'intermédiaire du poste 691. Par exemple, des communications sur Internet, par télécopie, sur minitel et la téléphonie passent par le poste 691. En outre, le poste 691 est destiné à administrer les fonctions du système du centre d'appels. Chaque serveur des ensembles de serveurs 500 et 600 comporte une unité serveur de données 670, une unité de prise de décision 675 et un serveur vocal interactif SVI 170. Chaque unité serveur de données 670 conserve une base de données représentative d'attributs de chaque poste agent relié à un serveur (compétences, langue, heures de disponibilité) et une table d'état représentative de l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent. Les ensembles de serveurs 500 et 600 synchronisent (ou alignent) leurs bases de données en permanence. Chaque unité de prise de décision 675 comporte un PCBX sans autocommutateur.
La figure 7 représente un centre d'appels virtuel multimédia sécurisé, multi-sites mixtes (avec autocommutateur PABX et PCBX), avec un point d'entrée de réseau téléphonique sur chaque site. On retrouve, en haut de la figure 7, pour un site A, les éléments de la figure 4 et, en bas de la figure 7, pour un site B, les éléments de la figure 5. Les réseaux locaux 180 des deux sites sont reliés par un réseau 795, par exemple, un réseau privé virtuel qui véhicule voix et données selon le protocole IP (Internet Protocol).
Chaque serveur des ensembles de serveurs 400 et 500 comporte une unité serveur de données 770, une unité de prise de décision 775 et un serveur vocal interactif SVI 170. Chaque unité serveur de données 770 conserve une base de données représentative d'attributs de chaque poste agent relié à un serveur (compétences, langue, heures de disponibilité) et une table d'état représentative de l'occupation de chaque poste agent relié à chaque serveur et de rupture de connexion entre serveurs ou entre un serveur et un poste agent. Les ensembles de serveurs 400 et 500 synchronisent (ou alignent) leurs bases de données en permanence. Chaque unité de prise de décision 775 comporte un serveur CTI et l'autocommutateur PABX ou un PCBX sans autocommutateur.
Dans les modes de réalisation de l'invention illustrés en figures 2 à 7, la gestion et la mise à jour des bases de données et tables d'état sont effectuées selon les principes suivants : - tous les serveurs ont le même niveau de responsabilité face à la gestion de la réplication et de la concurrence (multi-master ou multi-maître), uniquement les mises-à-jour sont transférées (log-transfer, par opposition au transfert de l'intégralité des enregistrements) et sont diffusés en mode multipoint (multicast), mode qui permet d'envoyer des paquets vers plusieurs destinataires situés sur n'importe quel réseau IP. Dans ce mode, on ne s'adresse plus à un couple numéro de port/adresse IP comme en mode unipoint (unicast) mais à une adresse de groupe de machines. Ainsi, au lieu d'envoyer autant de paquets qu'il y a de destinataires, on envoie un seul paquet à une adresse multicast et ce sont les routeurs du réseau qui dupliquent et distribuent le
message aux machines du groupe. Ici, tous les serveurs correspondent à la même adresse multicast, la diffusion de l'information est immédiate (push-based), sans mécanisme de verrouillage ni d'acquittement d'opération, - chaque transaction (modification d'une donnée de la base de données ou de la table d'états) est estampillée avec horodatage (date, heure, numéro d'opération et numéro de serveur local) pour garantir qu'elle ne sera pas prise en compte deux fois et que les transactions seront traitées dans l'ordre, chaque serveur est autonome pour gérer les éventuels conflits liés à la concurrence des accès o la gestion des conflits est basée sur les estampilles des transactions et sur le numéro de l'enregistrement concerné, o les conflits de mises-à-jour lecture/écriture (lorsque une lecture est en cours (la fiche est en consultation) et une mise à jour de ces données arrive et est traitée; il y a inscription dans le journal des conflits et un avertissement est envoyé à l'application qui effectue la lecture pour l'informer qu'une modification à eu lieu sur cet enregistrement, o les conflits de mises-à-jour écriture/écriture (une mise-à-jour arrive avec un horodatage antérieur à la dernière opération effectuée sur l'enregistrement); le conflit est traité automatiquement (pour détecter si au moins un champ est modifié par deux transactions considérées et traiter le cas où il n'y a pas de tel champ comme si les transactions étaient arrivées dans l'ordre) et inscrit dans le journal des conflits pour une gestion humaine ultérieure. Le lecteur pourra se reporter à la description des figures 10 et suivantes pour un mode de réalisation exemplaire de la gestion des bases de données.
Selon un autre aspect, la présente invention concerne aussi une méthode de constitution d'une architecture informatique multi-machines coopératives (architecture informatique distribuée sur plusieurs machines et/ou sites) totalement ouverte, indépendante de tout système d'exploitation, de tout matériel (ordinateurs, dispositifs de communication, dispositifs de téléphonie, ...) ou encore de tout logiciel tiers (systèmes de gestion de bases de données, ...) et permettant le support de fonctionnalités de communications multimédias, de médiaconvergence et de Couplage Téléphonie-Informatique (CTI), l'ensemble étant supervisé simultanément depuis une ou plusieurs machines (ou sites).
Il s'agit ici d'un concept concernant les éléments propres à un système multi-machines coopératives (et/ou multi-sites coopératifs) par opposition à un système traditionnel monomachine (ou mono-site).
Chaque machine peut fonctionner de façon autonome et/ou isolée, ou faire partie d'un groupe de machines coopérantes réalisant ainsi et par construction un système virtuel multimédia mono/multi-site(s). L'ensemble des machines coopérantes constitue un seul et même
système virtuel homogène et cohérent dont la puissance et la capacité résultent directement de la « somme » des capacité et puissance intrinsèques de chaque machine appartenant au groupe défini.
Le système est indépendant de toute architecture logicielle et/ou matérielle au niveau de chaque machine destinée potentiellement à coopérer avec d'autres machines afin de constituer un groupe. De ce fait, les machines constitutives du groupe de machines coopérantes peuvent être totalement hétérogènes et ce, tant au niveau matériel qu'au niveau logiciel.
Le système présente les avantages suivants :
• le fonctionnement coopératif multi-machines et/ou multi-sites en partage dynamique de charge et de ressources (informatiques, téléphoniques et humaines) ;
• la continuité de fonctionnement du système ainsi réalisé en optimisant la défense aux pannes afin d'atteindre un taux de disponibilité global (informatique, téléphonie et gestion des différents médias) du meilleur niveau ;
• l'adaptation dynamique et automatique aux « évolutions » volontaires et/ou accidentelles de l'architecture ainsi réalisée;
• l'augmentation aisée et simplifiée de la capacité d'accueil (ressources informatiques, téléphoniques et humaines) du système ainsi réalisé ;
• l'ouverture, l'évolutivité et la pérennité du système ainsi réalisé. La mise en oeuvre de la présente invention permet la création de : • Solution intégrée pour centre d'appels virtuel multimédia mono et/ou multi-sites coopératifs de nouvelle génération, ouverte, couplant la téléphonie et l'informatique (CTI), mais aussi le multimédia (internet, email, wap, Visio, vidéo, fax, ...) et la médiaconvergence (convergence de tous les médias sur IP), indépendante de tout système d'exploitation et fonctionnant indifféremment avec ou sans autocommutateur téléphonique (PABX) ;
• Solution de péri-téléphonie : Système intelligent de routage multimédia orienté compétences (skills based routing), ouvert, autonome, distribué et coopératif, traitant indifféremment appels téléphoniques traditionnels et messages de toute nature (e-mail, chat, fax, vidéo, ...), et capable de s'intégrer à la nouvelle «infrastructure informatique de télécommunications» de l'entreprise multi-sites. Dans le cadre d'une infrastructure purement téléphonique traditionnelle, ce système permet de fédérer la distribution intelligente d'appels au sein d'un réseau de PABX hétérogènes implantés en architecture mono ou multi-site(s);
• Solution de gestion du Système d'Information de l'entreprise multi-sites (étendue) : système autonome de gestion de la réplication / synchronisation de bases de données strictement standards, distribuées en architecture multi-machines coopératives (et/ou multi-sites coopératifs). Ce système offre à l'entreprise multi-sites une même «visibilité transversale», intègre et cohérente de son système d'information, sans pour autant avoir
recours à une dangereuse centralisation des données, ou encore à un Système de Gestion de Bases de Données Réparties surdimensionné et coûteux. En figure 8 sont représentés, pour chaque serveur (ici, deux serveurs sont représentés par les couches logicielles mises en oeuvre) du centre d'appels : un noyau 800, un moteur de prise de décisions 810, un gestionnaire de duplication et de mise à jour de bases de données 820, un contrôleur de messages 830, un CTI 840, un système d'exploitation 850, un moteur de base de données 860, un périphérique CTI 870, des applications logicielles 880 et un module de transport de données conformément au protocole IP (Internet Protocol) 890. Le noyau 800 :
• a le rôle de pivot entre les différents modules logiciels et les applications. • gère et maintient tous les modules logiciels et toutes les applications.
• décode et interprète les requêtes ou événements venant des modules logiciels, des applications, du logiciel de CTI (Couplage Téléphonie Informatique) 840, des autres applications du serveur, ou du système d'exploitation (OS) 850.
• demande la marche à suivre au moteur de prise de décision 810. • agit en fonction de la réponse du moteur de prise de décision 810 et dirige les requêtes et les événements vers le module ou l'application approprié.
• envoie les requêtes relatives aux bases de données au gestionnaire de la duplication et de la synchronisation des bases de données 820, récupère les résultats des requêtes et les transmet au module ou application concerné. • envoie les messages et certaines données au contrôleur de message 830 pour que ces informations soient diffusées aux autres serveurs.
• reçoit les messages et certaines données des autres serveurs par l'intermédiaire du contrôleur de message et les transmet aux modules concernés.
Le moteur de prise de décision et de partage dynamique de la charge et des ressources 810 :
• décide du traitement à effectuer en fonction du type de l'événement, du type de média et de l'état général du système.
• maintient une connaissance générale du système la plus à jour possible (quasi temps- réel). • informe et est informé par l'intermédiaire du noyau 800 des altérations survenant localement et sur les autres serveurs.
• reçoit des demandes de prise de décision du noyau 800 concernant un événement ou une requête et détermine le meilleur traitement à effectuer selon le type d'événement, le type de média, le type de requête et en fonction de l'état général instantané du système. • retourne la démarche à suivre au noyau 800.
Le gestionnaire de la duplication et de la synchronisation des bases de données 820 :
• accède aux différentes bases de données de l'entité en lecture comme en écriture en s'adressant à un moteur de bases de données 860 fonctionnant de manière non répartie.
• reçoit du noyau 800 ou du contrôleur de message 830 les demandes d'accès aux bases de données.
• renvoie le résultat des accès effectués sur la base de données au noyau 800 qui les transmet au module ou à l'application approprié. • demande au noyau 800 ou au contrôleur de message 830 la diffusion vers les autres serveurs des accès locaux en écriture.
• gère les possibles conflits liés aux accès concurrents aux mêmes données de manière à conserver la convergence des copies des données sur tous les serveurs (cohérence du système). • avertit le noyau 800 lorsqu'un conflit est détecté.
• tient à jour un journal des conflits pour une éventuelle correction humaine ultérieure.
• Synchronise les bases de données avec leurs homologues des autres serveurs constitutifs du système.
Le Contrôleur de messages 830 : • établit et maintient le dialogue et les communications entre les différents serveurs.
• s'assure de la bonne communication entre le serveur et les autres serveurs (vérification de l'intégrité des messages reçus, du fonctionnement du réseau, demande de réémission si message perdu, ...).
• Diffuse en mode multipoint (multicast) aux autres serveurs les messages et données concernant les bases de données et l'état local du serveurs (sa charge de travail, et ses ressources) qui lui sont transmis par le noyau 800.
• reçoit des autres serveurs les messages et données concernant les bases de données et l'état (charge de travail et ressources) des autres serveurs composant le système.
• transmet les informations pertinentes reçues au noyau 800. Au cours du fonctionnement illustré en figure 9, sont effectuées les opérations suivantes :
• Au cours d'une opération 905, un appel téléphonique arrive, il transite à travers le périphérique CTI téléphone 870 et le CTI 840 jusqu'à arriver au noyau 800 qui demande alors au moteur de prise de décision 810 ce qu'il doit faire de cet appel.
• Au cours d'une opération 910, le moteur de prise de décision 810 estime que cet appel nécessite l'utilisation d'une ressource lointaine et en informe le noyau 800 qui, par l'intermédiaire du module contrôleur de message 830 lance un message à la plate-forme distincte pour qu'elle prenne en charge cet appel.
• Au cours d'une opération 915, le serveur lointain reçoit le message et le transmet par l'intermédiaire du module contrôleur de message 830 au noyau 800 qui va chercher l'appel téléphonique à travers le CTI 840 et les périphériques du CTI 870.
• Au cours d'une opération 920, l'appel téléphonique remonte à travers le CTI 840 jusqu'au noyau 800 qui demande au moteur de prise de décision 810 ce qu'il doit en faire.
• Au cours d'une opération 925, le moteur de prise de décision 810 rend son "verdict" (sa décision) au noyau 800 qui dirige alors l'appel vers l'application adéquate 880 (connexion avec un télé-opérateur).
• Au cours d'une opération 930, l'application 880 a besoin de consulter les informations sur le client appelant (remontée de fiche) et fait une requête à la base de données client
860 par l'intermédiaire du noyau 800 et du gestionnaire de base de données 820 qui s'adresse à la base de données 860, récupère le résultat et le donne à l'application 880 (toujours par l'intermédiaire du noyau 800). L'application utilise une interface de navigateur Internet pour communiquer avec l'agent qui traite l'appel. • Au cours d'une opération 935, l'application 880 s'est déroulée correctement et se termine en faisant une modification des données du client dans la base 860 : requête en écriture à la base de données 860 client par l'intermédiaire du noyau 800 et du gestionnaire de base de données 820.
• Au cours d'une opération 940, le gestionnaire de base de données 820 effectue la requête en écriture et demande la propagation de cette mise-à-jour sur tous les autres serveurs (c'est-à-dire sur la figure 9, sur la base de données du serveur représenté à gauche). Cette propagation est effectuée à travers le noyau 800 et les modules contrôleurs de messages 830 et transport 890.
La figure 10 représente un exemple de cinq modules logiciels de gestion de bases de données conformes à un aspect de la présente invention. Un module 1030 d'interface avec les autres modules du serveur et un module 1040 de gestion des messages relient les modules de gestion de base de données aux autres modules et applications mises en oeuvre comme exposé ci-dessus. Le module 1030 d'interface avec les autres modules du serveur a pour fonctions de : - dialoguer avec les autres applications mises en oeuvre par le serveur, envoyer les opérations de lecture et d'écriture (opérations 1010) au module de diffusion et de réception des transactions 1050, et recevoir et transmettre le résultat des requêtes en lecture, et les avertissements de conflits (opérations 1019) du système de contrôle de la concurrence et de la duplication 1070.
Le module 1040 de gestion des messages a pour fonctions de : diffuser les transactions locales en écriture (opération 1011) transmises par le module de diffusion et de réception des transactions 1050 aux autres serveurs en mode multipoint
(multicast), - réceptionner les transactions d'écriture des autres serveurs en vérifiant leur validité
(intégrité et estampille) (opérations 1012), envoyer à un autre serveur les requêtes demandant le renvoi d'une transaction non encore reçue, et
transmettre les requêtes demandant le renvoi d'une transaction non encore reçue au module de diffusion et de réception des transactions 1050.
Le module de diffusion et de réception des transactions 1050 a pour fonctions de : envoyer les transactions locales en écriture (opération 1011) au module de gestion de messages 1040, recevoir les transactions lointaines (venant d'autres serveurs) d'écriture (opération 1012) du module de gestion de messages 1040, vérifier pour chaque transaction reçue qu'elle n'a pas déjà été traitée, mettre à jour un tableau 1090 qui conserve pour chaque base de données, l'estampille de la dernière transaction de chaque serveur sur cette base, et transmettre les transactions à exécuter (opération 1016) au système de contrôle de la concurrence et de la duplication 1070.
Le lecteur pourra se reporter à la figure 12 pour un exemple de réalisation du module
1050. Un module de synchronisation des bases de données 1060 a pour fonctions de : recevoir périodiquement les tableaux 1090 (opération 1014) des autres serveurs par l'intermédiaire du module de gestion de messages 1040, envoyer périodiquement le tableau 1090 du serveur local (opération 1013) aux autres serveurs par l'intermédiaire du module de gestion de messages 1040, vérifier périodiquement et lors d'un démarrage à chaud (en cours d'exploitation) que les bases de données du serveur sont bien synchronisées avec les bases de données des autres serveurs en effectuant une comparaison entre le tableau 1090 du serveur local et les tableaux 1090 des autres serveurs, lancer une synchronisation sur une base de données en cas de désynchronisation de la base de données (opération 1013), lors d'une synchronisation, envoyer des requêtes de demande des transactions non reçues aux serveurs concernés (opération 1013), recevoir les requêtes de demande de transactions (opération 1014) des autres serveurs et y répondre en leur envoyant les transactions ou les enregistrements demandés (opération 1015).
Le lecteur pourra se reporter à la figure 13 pour un mode de réalisation du module 1060.
Un module de contrôle de la concurrence et de la duplication 1070 a pour fonctions de : dialoguer avec un moteur standard de base de données 1080 pour lui envoyer des requêtes en lecture et en écriture (opération 1017) et récupérer les résultats (opération 1018), envoyer au module interface avec les autres modules du serveur 1030, les résultats des requêtes en lecture (opération 1019), maintenir à jour une liste des enregistrements en cours de consultation,
si une mise à jour est effectuée sur un enregistrement en consultation, envoyer un avertissement (opération 1019) au module interface avec les autres modules du serveur 1030 et inscrire le conflit dans le journal des conflits en lecture, maintenir à jour pour chaque champs de chaque enregistrement l'estampille de la dernière opération l'ayant modifié si l'estampille de la transaction à effectuer sur l'enregistrement est antérieure à l'estampille de la dernière transaction qui a été exécutée sur cet enregistrement, et s'il y a au moins un champ affecté par chacune des transactions considérées, écriture de ce conflit dans le journal des conflits et transformation de la transaction à effectuer : pour chaque champ impliqué dans le nouvel enregistrement, on ne répercute la modification que si l'estampille du champ (récupérée dans le tableau 1100) est antérieure à la transaction à effectuer. Le lecteur pourra se reporter à la figure 11 pour un exemple de mise en oeuvre du module 1070. Pour récapituler, les opérations mises en oeuvre entre les modules sont les suivantes : opérations 1010 : opérations en lecture ou en écriture sur la base de données, opérations 1011 : propagation des mises-à-jour, opérations 1012 : récupération des mises-à-jour des autres serveurs, opérations 1013 : envoi du tableau 1090 et requêtes de transactions, - opérations 1014 : récupération des tableaux 1090 et des requêtes des autres serveurs, opérations 1015 : demande d'envoi de transactions aux autres serveurs, opérations 1016 : envoi des transactions à traiter, opérations 1017 : requête de lecture de base de données, opérations 1018 : résultats des requêtes de lecture de base de données, et - opérations 1019 : résultat de requête et avertissements.
Les interactions entre les modules 1030 à 1080 sont illustrées en figure 14. Une opération est composée : du mode de l'opération : lecture, consultation, fin de consultation ou écriture, du numéro de l'agent concerné, - du nom ou du numéro de la base de données concernée, du nom ou du numéro de la table concernée, de la clef système de l'enregistrement concerné, du nom ou numéro de l'application qui traite l'enregistrement, et de la lecture ou de la mise-à-jour à effectuer (la requête à la base de données). Une transaction est composée d'une estampille (horodatage date et heure, numéro de transaction et numéro IP) et d'une suite d'opérations. L'estampille d'une opération est composée de l'estampille de la transaction concaténée au numéro du rang de l'opération dans la transaction.
On observe que :
La liste des transactions locales est ordonnée dans l'ordre d'estampille des transactions. La liste des transactions locales sert aussi à répondre aux requêtes (demande de transactions pour synchronisation) des autres plates-formes. La file d'attente des transactions à exécuter : en attendant d'être traitées, les transactions sont stockées dans une file d'attente et sont rangées dans l'ordre de leurs estampilles. Les transactions sont placées dans la file d'attente uniquement si elles n'ont pas déjà été reçues. C'est la transaction la plus ancienne qui est en tête, et est retirée en premier (et par conséquent exécutée si les conditions le permettent). Le journal des consultations : lorsque l'opération est une consultation, on conserve l'information attenante à cette consultation afin de prévenir l'utilisateur ou l'application si une modification (mise-à-jour) d'une autre plate-forme survient sur cet enregistrement, et afin d'avoir la possibilité de lui offrir le service d'actualiser les données qu'il (utilisateur ou application) consulte. Selon une variante, on gère des verrouillages et des déverrouillages, et on résout des conflits de verrous grâce à l'estampille du verrou avec avertissement du rejet d'un des verrous. Dans ce cas, le journal des consultations est persistant en mémoire afin que lors d'un démarrage à chaud, il puisse déverrouiller tous les enregistrements qui étaient verrouillés par ce site avant la panne. Le tableau 1100 appelé "Tableau des estampilles des champs des enregistrements" (ou en anglais RFT : Record Fields Timestamps Table) conserve pour chaque champ de chaque enregistrement, l'estampille de la dernière opération l'ayant modifié. Ce tableau permet d'affiner la détection des conflits liés à la concurrence (deux enregistrements peuvent être modifiés à des endroits différents sans générer de conflit) et de résoudre le conflit de manière automatique tel que cela est explicité dans le fonctionnement du module de contrôle de la concurrence et de la duplication 1070. Ce tableau n'est opérationnelle que lors d'une rupture de liaison avec d'autres sites. Le tableau 1090 appelé EDOPS pour "Estampille de la Dernière Opération Par Site" pour la base de données ou, en anglais TLOBS pour "Timestamp of the last opération by site for a given database" : chaque plate-forme gère pour chaque base de données un tableau qui contient l'estampille de la dernière opération effectuée sur cette base .
On observe, en figure 15, un réseau téléphonique commuté (analogique et/ou numérique) matérialisé par deux icônes 1500 et 1501 par simple souci de clarté du dessin, un réseau Internet 1502, deux réseaux téléphoniques internes 1503 et 1504, trois réseaux locaux
TCP/IP 1505, 1506 et 1542, et un réseau IP privé 1507. Le réseau téléphonique 1500 et 1501 achemine les communications en provenance de téléphones fixes 1510, de télécopieurs 1511 et de téléphones mobiles 1512. Le réseau Internet 1502 achemine des communications de type Chat 1513, des courriers électroniques 1514, des messages vocaux 1515, permet la mise en œuvre de co-navigation 1516 et de transferts d'images 1517 comme par exemple de vidéoconférence, et achemine des communications de type voix sur IP 1518.
Un PABX 1520 est relié au réseau téléphonique 1500, au réseau téléphonique interne 1503, au réseau local TCP/IP 1505 et au serveur de Couplage Téléphonie Informatique 1523 par des liens voix 1527 qui peuvent être de type analogique. et/ou numériques. Les postes téléphoniques 1522 sont reliés au réseau téléphonique interne 1503. Les serveurs de Couplage Téléphonie Informatique 1523 et 1524 sont reliés au réseau local TCP/IP 1505. Le réseau local TCP/IP 1505 est relié au réseau IP privé 1507. Le lien CTI 1521 est un lien logique permettant aux serveurs de Couplage Téléphonie Informatique 1523 et 1524 de gérer l'ensemble des ressources : le PABX 1520, les terminaux informatiques 1525 et postes téléphoniques 1522 logiquement associés, les terminaux informatiques multimédias 1526 dotés de fonctions téléphoniques, et toutes autres ressources de même type accessibles à travers le réseau IP privé 1507.
Le réseau téléphonique 1501 (qui achemine les mêmes types de communications que le réseau téléphonique 1500 mais qui ne sont pas tous représentés par souci de clarté du dessin) est relié au serveur PCBX/IP 1531 lui-même relié au réseau local TCP/IP 1506. Les serveurs PCBX/IP 1530, 1531 et 1532 sont reliés au réseau local TCP/IP 1506 lui-même relié au réseau IP privé 1507 ainsi qu'à des terminaux informatiques 1534 sans fonctions téléphoniques et à des terminaux informatiques multimédias 1535 dotés de fonctions téléphoniques. Les serveurs PCBX/IP 1530 et 1531 sont reliés au réseau téléphonique interne 1504, lui même relié à des postes téléphoniques 1536 proches des terminaux informatiques 1534 auxquels ils sont associés logiquement.
Le réseau IP privé 1507 est relié à des terminaux informatiques multimédias isolés 1540 dotés fonctions téléphoniques, et au réseau local TCP/IP 1542, lui-même relié à des terminaux informatiques multimédias 1541 dotés de fonctions téléphoniques, situés sur un site distant. Le réseau Internet 1502 est relié au réseau local TCP/IP 1505 ainsi qu'au réseau local TCP/IP 1506. On observe que les terminaux informatiques, hormis les terminaux isolés 1540, sont ainsi répartis entre trois sites interconnectés à travers le réseau IP privé 1507, le site A correspondant au réseau local TCP/IP 1505, le site B correspondant au réseau local TCP/IP 1506 et le site C correspondant au réseau local TCP/IP 1542. On observe par ailleurs que le système 1550, comportant le PABX 1520 et les serveurs
1523, 1524, 1530, 1531 et 1532, est le système centre virtuel de contacts multimédias réalisé par la présente invention, et que l'ensemble 1551 constitué des différents terminaux informatiques et postes téléphoniques est le groupe virtuel de positions de travail et de compétences gérées par le système virtuel 1550 réalisé conformément à la présente invention.
La mise en oeuvre de la présente invention assure nativement en architecture PCBX (site B) : les fonctionnalités de CTI multimédia et de Médiaconvergence, le déploiement multi-sites coopératifs (plusieurs dizaines de sites interconnectés), - la haute disponibilité globale (téléphonie ET informatique), la capacité d'accueil évolutive dynamiquement : de quelques agents à plusieurs milliers d'agents concentrés sur 1 site ou répartis sur plusieurs sites, et la gestion intelligente de l'ensemble des médias (concept de file d'attente universelle). Pour la Gestion du lien CTI derrière PABX (site A), la mise en oeuvre de la présente invention obéit aux deux règles suivantes : le périmètre fonctionnel des services de téléphonie offerts par la présente invention résulte d'une mise en œuvre stricte de services définis dans CSTA ; l'exploitation des services du PABX est systématiquement implémentée avec une « visibilité JTAPI ». Ainsi, l'implémentation et le fonctionnement sont réellement indépendants vis à vis du
PABX qui peut être remplacé partout autre PABX offrant un lien CTI conforme à CSTA.
Pour répondre aux besoins des centres de contacts virtuels multimédias, l'ACD est conçu pour :
- fonctionner en environnement concurrent distribué sur une architecture réseau ; - mixer tous les médias, en réalisant de la distribution automatique intelligente orientée compétences (« Skill Based Routing »), traitant indifféremment appels téléphoniques traditionnels, communications en mode voix sur IP et messages de toute nature (e- mail, fax, vidéo, demande de dialogue Internet en mode « Chat », ...) ; gérer l'ensemble des médias (concept de file d'attente universelle). Pour offrir la dimension multimédia nécessaire aux centres de contacts de nouvelle génération, la mise en oeuvre de la présente invention intègre nativement les fonctionnalités de serveur de médias : Vocal (avec intégration des technologies de synthèse et de reconnaissance vocale), Internet, E-mail, Chat, Fax, vidéo, visioconférence, ...
Toutes les interfaces homme-machine (IHM) (outils et applications) sont réalisées en langage HTML (pour HyperText Markup Language). Ce choix technique présente entre autres avantages induits intéressants, l'indépendance vis à vis du système d'exploitation sous-jacent, mais aussi la possibilité d'exploiter à distance via un navigateur Internet standard, les mêmes outils de supervision et d'administration, et les mêmes applicatifs.
Les postes agents 1525, 1526, 1534, 1535, 1540 et 1541 ne requièrent l'installation d'aucun logiciel client particulier pour être opérationnel, excepté un Navigateur Internet. Ainsi, l'ordinateur de type PC n'est plus incontournable puisque avec cette approche, n'importe quel « terminal intelligent » supportant un navigateur Internet convient désormais parfaitement (PC, Macintosh, Network Computer, ...). Par ailleurs, l'ajout d'une nouvelle position agent devient une opération simple et rapide, se traduisant par la mise à jour d'une table de correspondances
« adresse IP / n° de ligne téléphonique », ou simplement du DNS (Serveur de Noms de Domaines) en cas d'architecture « tout IP ».
Le lecteur pourra se reporter à la description des figures 1 à 14 pour connaître les caractéristiques techniques des éléments illustrés en figure 15, pour la mise en oeuvre de la présente invention, dans son mode de réalisation illustré en figure 15. En outre, on décrit ci-après plusieurs caractéristiques de fonctionnement :
A/ Déploiement multi-sites coopératifs
Cette « faculté » résulte du fait que la solution apportée par la présente invention est constituée d'un ensemble de serveurs autonomes et coopératifs et de l'élimination de toute centralisation quelle qu'elle soit (matérielle, logicielle et fonctionnelle).
B/ Continuité de fonctionnement globale (téléphonie ET informatique) native Cette « faculté » résulte du fait que la solution apportée par la présente invention est constituée d'un ensemble de serveurs autonomes et coopératifs et de l'élimination de toute centralisation quelle qu'elle soit (matérielle, logicielle et fonctionnelle). De ce fait, chaque machine peut fonctionner de façon autonome et/ou isolée, ou faire partie d'un groupe de machines coopérantes réalisant ainsi et par construction un seul et même système virtuel multimédia mono.multi-site(s) hautement disponible et pourtant ouvert. Le dysfonctionnement ou l'arrêt d'un serveur ne provoque pas l'interruption de l'activité du centre d'appels.
On observe que le remplacement et/ou l'ajout d'un ou plusieurs serveurs implementant la présente invention se réalise dynamiquement sans même interrompre la production et ce, qu'il s'agisse d'une « intervention » effectuée sur le même site ou sur un site distant. 5. En cas de panne d'un serveur, les postes qui y sont liés vont automatiquement chercher à se connecter à un autre serveur (voir figure 16), et le nouveau serveur auquel ils se connectent sait quel poste correspond à chaque traitement récent d'appel, donc une panne d'un serveur n'empêche pas la poursuite voire même la continuité à l'état courant au moment où s'est produite la panne (en cas de rappel téléphonique du client) de la discussion entre poste agent et 0 appelant. En effet, les données sont répliquées et synchronisées sur tous les serveurs en temps réel jusqu'à la panne.
L'organigramme de la fonctionnalité de reconnexion automatique est présenté en figure 16.
A la suite de l'initialisation du poste agent, au cours d'une étape 1601 , un navigateur 5 internet est lancé. Ensuite, au cours d'une étape 1602, on détermine s'il s'agit d'une première connexion du poste agent au centre d'appel virtuel. Si oui, au cours d'une étape 1603, l'agent qui utilise le poste agent spécifie l'adresse d'un serveur du centre d'appels virtuel et une applet (en français "appliquette") JAVA est téléchargée depuis cette adresse et un raccourci créé dans les « favoris » du navigateur. Si le résultat du test 1602 est négatif, au cours d'une étape 1604, 0 l'agent sélectionne, dans les favoris, l'adresse qui s'y trouve. A la suite de l'une ou l'autre des étapes 1603 ou 1604, au cours d'une étape 1605, le poste agent recherche un serveur implementant la présente invention (serveur coopératif, ACD multimédia distribué et coopératif, réplication et synchronisation temps réel des bases de données, ...), de préférence local au site de l'agent, et acceptant la connexion (en fonction des consignes de répartition de la charge). 5 Puis, au cours d'une étape 1606, le poste agent effectue la connexion sur le serveur trouvé au cours de l'étape 1605. Ensuite, au cours d'une étape 1607, on détermine s'il s'agit d'une reconnexion automatique. Si oui, au cours d'une étape 1608, on restaure la « session » de l'agent. Si l'agent avait un appel en cours, il est marqué comme prioritaire pour recevoir l'appel si la personne concernée par cet appel vient à rappeler. Si le résultat du test 1607 est négatif ou à 0 la suite de l'étape 1608, au cours d'une étape 1609, l'agent travaille et l'applet JAVA surveille la bonne connexion au serveur. Au cours d'une étape 1610, on détermine si le serveur répond correctement. Si oui, l'étape 1609 se poursuit. Si non, l'étape 1605 est réitérée, ce qui implique que le résultat du test 1607 soit positif.
Pour mettre en oeuvre l'organigramme illustré en figure 16, chaque base de données comporte une mémoire adaptée à conserver une trace de chaque appel sur chaque serveur, trace comportant un identifiant du poste agent ayant servi ledit appel. Préférentiellement ladite trace de chaque appel comporte un identifiant de l'appelant. Selon des variantes, chaque serveur est adapté, lorsqu'un poste agent s'y connecte, à rappeler l'appelant avec lequel le poste agent était en communication.
Généralement, chaque serveur est adapté à connecter un appel au poste agent avec lequel une trace d'appel indique que l'appelant a déjà été connecté, si ledit poste agent est disponible.
En ce qui concerne la coopération entre les serveurs, lorsqu'un nouveau serveur intègre le groupe coopératif, la charge est rééquilibrée en prenant en compte ce nouveau serveur, chaque serveur décidant de son propre chef du nombre d'agents qu'il devra déconnecter. Par exemple, 3 serveurs nommés S1 , S2 et S3 sont en fonctionnement coopératif avec respectivement 10, 10 et 11 agents connectés (la charge est équilibrée). Un quatrième serveur S4 intègre le centre d'appels. Il y a maintenant 31 agents à répartir sur 4 serveurs : 3 serveurs auront 8 agents et 1 serveur 7. Pour minimiser les déconnexions, c'est le nouveau serveur qui aura 7 agents. Et donc, S1 et S2 vont décider de déconnecter 2 agents, S3 va en déconnecter 3. A l'aide du mécanisme de reconnexion automatique, les agents seront de fait reconnectés sur le nouveau serveur, qui est le moins chargé.