Réalisation d`un couplage Téléphonie-Informatique

Transcription

Réalisation d`un couplage Téléphonie-Informatique
Réalisation d’un couplage téléphonie-informatique pour la
suite Novanet
Edouard SIMON – D.U.T Informatique
31 Mars 2008 – 20 Juin 2008
Tuteur en entreprise : M. Julien ROMBOUTS
Tuteur universitaire : M. Jérôme HENNEBERT
2
Remerciements
Je tiens à remercier la société L.E.A.D.E.R Informatique et plus particulièrement Joël
BAUDE pour m’avoir accueilli en tant que stagiaire durant ces 12 semaines.
Je voudrais également remercier l’équipe de développement Novanet et plus
particulièrement Julien ROMBOUTS (tuteur de stage) pour leur accueil et leurs encadrement
tout au long de ma période en entreprise.
Merci également à toute l’équipe pédagogique de l’I.U.T A pour leur enseignement de
qualité durant ces deux années de D.U.T.
Pour finir, je souhaiterais remercier Marie-Claude DELECOUR pour son aide dans les
démarches de recherches et les démarches administratives qui m’ont permis de trouver ce
stage.
3
Résumé
J’ai effectué mes 11 semaines de stages au sein de la société L.E.A.D.E.R
Informatique dans le pôle de développement Novanet : logiciel de gestion de cabinet
d’assurances.
Ma mission dans ce service était d’intégrer à Novanet des outils de téléphonie :
premièrement un outil permettant de déclencher un appel lors d’un clic sur un numéro de
téléphone d’une fiche client. Le second outil était un système de remontée de fiche permettant
aux utilisateurs de Novanet de pouvoir ouvrir facilement la fiche d’un client avec qui il est en
communication.
Ce sujet très intéressant et l’équipe de développement jeune et dynamique m’ont
permis de m’immerger rapidement et efficacement dans le monde de l’entreprise.
La pluridisciplinarité de mon sujet de stage m’a permit de mettre en pratique les
connaissances que j’ai pu acquérir durant mes deux années d’enseignement dans de
nombreuses disciplines telles que le système, le réseau et bien sur le développement JAVA.
4
Abstract
I spend my 11 weeks of internship at LEADER Informatique in the Novanet
developement departement : management softwares for insurance firms.
My mission was to integrate phoning tools to Novanet : first a tool to trigger a call at a click
on a phone number on a client sheet. The second tool was a feedback system that allows users
to easily open a client sheet when a call is incoming.
This very interesting mission and the young and dynamic development team allowed me to
immerse myself quickly and effectively in the business world.
The multidisciplinary subject of my internship allowed me to put into practice the knowledge
I gained during my two years of teaching in many disciplines such as system, network and
JAVA developing.
5
Table des matières
Introduction........................................................................................................................................7
1.
2.
3.
Présentation de l’entreprise ........................................................................................................8
1.1.
Domaine d’activité ..............................................................................................................8
1.2.
Organisation ...................................................................................................................... 10
1.3.
La suite Novanet ................................................................................................................ 11
Présentation du projet .............................................................................................................. 14
2.1.
Présentation du sujet ........................................................................................................ 14
2.2.
Outils utilisés ..................................................................................................................... 14
2.2.1.
Asterisk et son manager ............................................................................................. 14
2.2.2.
La librairie Asterisk-Java ............................................................................................. 16
2.2.3.
Infrastructure utilisées ............................................................................................... 16
Réalisation du projet ................................................................................................................. 17
3.1.
3.1.1.
Les classes SIPCall.java et appelerClient.jsp ................................................................ 17
3.1.2.
Les modifications de Novanet .................................................................................... 18
3.2.
La remontée de fiche ......................................................................................................... 20
3.2.1.
Mise en place d’un serveur « proxy » ......................................................................... 20
3.2.2.
Fonctionnement dans Novanet .................................................................................. 21
3.3.
4.
L’outil « Click-To-Dial » ...................................................................................................... 17
Améliorations et autres outils intégrables. ......................................................................... 23
Bilan.......................................................................................................................................... 24
4.1.
Bilan personnel.................................................................................................................. 24
4.2.
Bilan professionnel ............................................................................................................ 24
Conclusion ........................................................................................................................................ 25
Annexe ............................................................................................................................................. 26
Bibliographie .................................................................................................................................... 28
Glossaire........................................................................................................................................... 29
6
Introduction
J’ai commencé mon travail au sein de la société L.E.A.D.E.R Informatique le 31 Mars
2008 dans le cadre d’un stage de développement d’une durée de douze semaines. Ce stage
avait pour but de finaliser ma formation de D.U.T Informatique en mettant en pratique les
différentes connaissances et compétences que j’ai pu acquérir durant ces deux années de
formation.
J’ai donc intégré l’équipe de développement travaillant sur la suite progiciel Novanet.
Mon projet au sein de cette équipe constituait à développer et intégrer des outils liés à la
téléphonie dans le logiciel Novanet. Le premier de ces outils permettant d’effectuer un appel
simplement en cliquant sur un numéro de téléphone sur la fiche client, le suivant permettant
d’ouvrir la fiche client d’un client avec lequel l’utilisateur est en ligne.
Ce rapport présente le travail que j’ai effectué durant mes 11 semaines avec une
approche technique mais également personnel des choses auxquelles j’ai été confronté en
entreprise.
7
1. Présentation de l’entreprise
La société L.E.A.D.E.R Informatique est une SAS créée en 1986 par M. Joël BAUDE,
diplômé d’une formation d’ingénieur en Informatique.
En 1991 le groupe Lyonnais PROVAL rachète la société de M.BAUDE qui la rachètera en
1995 en achetant l’ensemble des actions de celle-ci.
1.1. Domaine d’activité
Le domaine d’activité de L.E.A.D.E.R Informatique est
l’assurance, plus
particulièrement la conception et la mise en place de logiciel de gestion d’assurances
destinées aux courtiers et aux compagnies d’assurances.
Aujourd’hui la société possède presque 500 clients sur trois continents ; une clientèle
constitué essentiellement de courtiers en assurance.
La société travaille également pour des grands comptes dans le monde des compagnies
d’assurance :
-La MAMDA (Mutuelle Agricole Marocaine d’Assurances)
-MONCEAU IARD
-La Loyale Assurances à Abidjan
-QBE France
-Groupama (gestion des flottes automobiles)
-Crédit Agricole : Bancassurances en Grèce et Italie (ANTENIA)
Mais également des sociétés de courtage :
-APRIL International (Espagne, Italie)
-DE CLARENS
-CAMCA : filiale courtage de Crédit Agricole (ANTENIA)
-EISL (Londres)
-EDF Assurances
-FINB (Bruxelles)
-CAGIB (Bruxelles)
-IBS (Luxembourg)
8
Voici une carte représentant les principaux emplacements géographique des clients de
L.E.A.D.E.R Informatique.
9
1.2. Organisation
Aujourd’hui la société compte une vingtaine de salariés organisés comme suit :
10
1.3. La suite Novanet
La suite progicielle Novanet permet la gestion d’intermédiaire d’assurance via
Internet. Elle est en constante évolution grâce à une équipe de 5 développeurs travaillant en
permanence sur les fonctions de celle-ci.
Novanet fut créée en 2001 par deux stagiaires lors de leur stage de fin d’étude de
D.U.T Informatique. Le but du projet Novanet était de porter sur internet le logiciel de
gestion d’assurance Nov’Assur. Depuis sa création, Novanet est en constante évolution et est
de plus en plus utilisée avec aujourd’hui presque 500 clients en France, au Maroc, en Côte
d’Ivoire, en Italie, en Grèce et en Belgique.
Le logiciel est entièrement développé en Java avec une interface graphique en HTML,
il est compatible avec des serveurs Windows ou Linux et il est indépendant de la base de
données qui peut être : SQL Server, DB2, ORACLE, MySQL ou autre.
L’avantage de ce genre de logiciel est que les postes clients ont besoin d’un minimum
de ressources, ce qui permet de minimiser les couts de mise en place de ce progiciel : en effet
un simple PC équipé de Windows et d’Internet Explorer est suffisant !
Le logiciel se divise en plusieurs modules :
Le module Clients/Polices permet l’accès aux données de chaque client des
courtiers et la gestion de la relation client. Il est constitué d’un écran
entièrement paramétrable possédant des fonctions de recherches perfectionnées
mais également d’un écran police regroupant l’ensemble des données
nécessaires pour les gérer.
Le module comptabilité permet la gestion complète des comptes de l’assureur
ainsi que des comptes clients (quittances, relances, prélèvements…)
Le module de gestion des sinistres permet de gérer les sinistres sur les plans
administratif, commercial et comptable, ce module permet entre autres la saisie
de nouveaux sinistres, la génération de courriers types ou encore la gestion des
échanges IDA (Indemnisation Directe de l’Assuré).
11
Le module « Novanet WS » est un véritable WorkFlow, il met en œuvre des
solutions d’optimisation des flux d’information : documents, procédures et
messages. En résumé, Novanet WS :
-
Est un Workflow dédié à la gestion des sinistres
-
Inclut la publication par l’extranet de la synthèse d’un dossier
-
Permet l’accès aux sinistres
-
Intègre l’expertise à distance
Le module de G.E.D (Gestion Electronique des Documents) permet
l’archivage de tous types de documents afin de les rendre exploitables par des
logiciels tiers tel que la suite Office.
Le module requêtes permet d’effectuer des requêtes personnalisées sur tous les
champs de toutes les tables sans avoir de connaissances en langages de bases
de données. Les résultats de ces requêtes peuvent êtres visualisé sous forme de
fichier tableur Excel.
La suite Novanet inclus également un outil de gestion des tarifications : WebAction.
WebAction est une application à part entière permettant aux assureurs ainsi qu’aux courtiers
de gérer leurs tarifications.
Voici les services proposé par WebAction :
-
Tarification sur écran unique avec édition et stockage des devis
-
Téléchargement des documents
-
Consultation des polices
-
Gestion des « News »
12
Il existe bien plus de modules que ceux cités précédemment, voici un schéma de l’ensemble
des possibilités de la suite Novanet et des autres produits de L.E.A.D.E.R Informatique.
13
2. Présentation du projet
2.1. Présentation du sujet
Depuis quelques années, l’informatisation des systèmes de téléphonie se développe à
grand pas notamment grâce à la téléphonie sur IP 1. Cette évolution permet une intégration des
outils de téléphonie afin de faciliter l’utilisation des différents outils, ce que l’on appel C.T.I
ou Couplage Téléphonie-Informatique.
La suite Novanet permettant de gérer les clients des assureurs et courtiers, elle possède
des fiches clients dans lesquelles ont peut retrouver leurs coordonnées comprenant donc leur
numéro de téléphone.
Mon projet au sein de la société était de développer des outils permettant d’intégrer la
téléphonie au système Novanet. Le premier de ces outils était une application dite de « Clickto-dial », c'est-à-dire donner la possibilité à l’utilisateur de déclencher un appel téléphonique
en cliquant sur le numéro de téléphone de son correspondant.
Le deuxième outil que j’ai du développer était un système de remontée de fiche, plus
communément appelé « Call Pop-up », cet outil affiche à l’écran de l’utilisateur l’arrivée d’un
appel et lui propose d’ouvrir la fiche client.
2.2. Outils utilisés
2.2.1. Asterisk et son manager
Asterisk est un logiciel libre pour système LINUX édité par Digium permettant de
transformer un ordinateur en PABX (Private Automatic Branch eXchange) ou Multiplexeur
Téléphonique Privé c’est à dire une solution matérielle ou logiciel permettant de gérer un
réseau téléphonique privé.
Asterisk est un logiciel permettant, une fois installé sur un serveur de transformer celuici en un PABX afin gérer un système téléphonique, dans notre cas nous parlerons plutôt
d’IPBX car les communications sont transmises numériquement grâce à la téléphonie IP.
14
Asterisk permet de gérer un réseau téléphonique interne et de faire la liaison entre celui-ci et
le réseau externe.
Une multitude de fonctions sont intégrés à Asterisk tel que la conférence téléphonique,
l’envoi de SMS, le transfert d’appel, la messagerie vocale ou encore la réception et l’émission
de FAX.
Schéma d'un réseau IPBX
Asterisk inclus un « Manager » qui permet de se connecter au serveur afin de lui
envoyer des commandes pour réaliser tout type d’opérations ou encore de surveiller l’activité
de celui-ci. Il sera un élément clé dans la réalisation de mon projet, car c’est grâce à lui qu’un
appel pourra être démarré ou encore que l’on pourra surveiller l’arrivée d’un appel.
15
2.2.2. La librairie Asterisk-Java
Afin de faciliter la conception de mes applications, j’ai choisi d’utiliser la librairie
Java Asterisk-Java. Cette librairie sous licence Apache permet d’interagir avec le manager
d’Asterisk depuis un programme Java grâce à une API2 très complète permettant le contrôle
de nombreuses fonctions du serveur Asterisk.
J’ai choisi cette librairie car c’est un moyen simple et efficace de gérer les différents
événements d’Asterisk mais aussi car il me fallait une solution technique facilement
intégrable à la suite Novanet qui est développer en Java.
2.2.3. Infrastructure utilisées
Afin de réaliser mon projet sans troubler le bon fonctionnement du système Novanet
ni le système de téléphonie il m’a fallu installer mon propre système de téléphonie.
J’ai donc dû installer un serveur Linux, en l’occurrence la redistribution OpenSUSE,
puis installer et paramétrer celui-ci afin de le préparer à l’installation de Asterisk.
Le travail d’installation et de configuration d’Asterisk n’est pas des plus aisés, surtout
pour un néophyte comme moi. Il m’a tout d’abord fallu comprendre le principe de
fonctionnement d’un PABX, puis je me suis plongé dans des documentations pendant
plusieurs jours avant de réussir à configurer mon propre serveur de téléphonie.
16
3. Réalisation du projet
Avant de développer mes outils de C.T.I il m’a fallu analyser la structure matérielle et
logicielle du réseau pour trouver la solution la plus efficace afin de ne pas utiliser trop de
ressources.
3.1. L’outil « Click-To-Dial »
Pour la réalisation de l’outil d’appel sur clique il m’a fallu apporter des
modifications à Novanet ainsi qu’à sa base de données. Pour la réalisation de cet outil
j’ai choisi de développer une classe Java : SIPCall appelée par un programme JSP lui
même appelé depuis la fiche client de Novanet.
3.1.1. Les classes SIPCall.java et appelerClient.jsp
La classe Java SIPCall a pour rôle de demander au serveur Asterisk de
mettre en relation l’utilisateur de Novanet avec le client qu’il souhaite joindre.
Pour cela on créer une instance d’objet SIPCall qui prend en paramètre le
numéro de l’appelant et de l’appeler, ensuite la classe va cherche dans la base
de données les différentes informations liées a la configuration du serveur
Asterisk afin de pouvoir s’y connecter.
Pour cela, la classe fait appel à la librairie Asterisk-Java, grâce à celle-ci
j’ai pu implémenter un programmer qui joue un rôle de « client » sur le serveur
Asterisk.
Le programme JSP « «appelerClient » quant à lui fait la liaison entre
Novanet et la classe SIPCall. C’est lui qui est appelé directement depuis la
fiche client.
17
3.1.2. Les modifications de Novanet
La suite Novanet n’ayant aucun outils concernant la téléphonie, il ma
fallu ajouter certaines informations indispensables telle que le numéro d’appel.
Pour cela il m’a fallu modifier certains fichiers JSP et surtout rajouté
cette information dans la base de données.
Dans le paramétrage des comptes utilisateurs j’ai donc rajouté un
champ représentant le numéro d’appel interne de l’utilisateur :
Ajout d'un paramètre utilisateur
Afin d’enregistrer les données de ce formulaire j’ai également du
rajouté le champ adéquat à la base de données ce qui m’a permit d’apprendre la
technologie Hibernate, permettant de gérer plus facilement les requêtes avec la
base de données depuis un programme JAVA.
Afin d’effectué la connexion avec la connexion avec le serveur
Asterisk la classe SIPCall à besoin des informations relatives à celui-ci : son
adresse IP ainsi que les identifiants de connexion ou encore le préfixe
téléphonique pour les appels vers l’extérieur; c’est pourquoi j’ai également
rajouté une table dans la base de données contenant ces paramètres.
18
Exemple de fonctionnement de l’outil Click-To-Dial.
1. L’utilisateur effectue un double clique sur le numéro de téléphone :
2. Après confirmation :
3. Son téléphone sonne, une fois celui-ci décroché, le numéro du destinataire est composé
automatiquement.
19
3.2. La remontée de fiche
L’outil de remontée de fiche m’a demandé un long travail d’analyse car il
demande une « surveillance » permanente du serveur de téléphonie ce qui nécessite
une utilisation permanente des ressources du serveur Novanet.
J’ai donc du trouvé la solution la plus efficace et la moins « gourmande » pour
Novanet. Après discussion avec les développeurs et le responsable d’exploitation,
l’utilisation d’un serveur proxy s’est avérée être la solution correspondant à mes
besoins.
3.2.1. Mise en place d’un serveur « proxy »
Afin de minimiser l’utilisation de ressources sur les serveurs de
production Asterisk et Novanet, j’ai donc installé un serveur dit « mandataire »,
plus communément appelé serveur proxy sous système UNIX (OpenSuSE). Le
rôle de ce serveur est de sondé le serveur Asterisk en attendant l’arrivée d’un
appel ; si un appel entre sur le serveur Asterisk, le serveur proxy ouvre une
URL qui exécutera un programme sur le serveur Novanet.
Pour effectuer son rôle, un script est exécuter en permanence sur le
serveur proxy, ce script est connecté au Manager d’Asterisk via une connexion
Telnet et scrute les événements se déroulant sur celui-ci ; si il voit un appel
entrant alors il fait appel à une URL sur le serveur Novanet.
20
3.2.2. Fonctionnement dans Novanet
Lorsqu’un appel arrive, le serveur proxy le détecte grâce à sa connexion
permanente avec le serveur Asterisk. Une fois détecté, le serveur proxy fait
appel à une page nommée « appelEntrant.jsp » en lui donnant en paramètre le
numéro de l’appelant ainsi que le numéro de l’appelé.
Cette page est exécutée sur le serveur Novanet et va modifier des
variables propres à la session de l’utilisateur vers qui se dirige l’appel. Ces
variables sont au nombre de deux : appelEntrant et numeroEntrant.
appelEntrant est à 0 par défaut et prend la valeur de 1 si un appel entre.
numeroEntrant prend la valeur du numéro entrant si un appel entre.
La variable appelEntrant est scrutée régulièrement (toutes les 5
secondes) par Novanet, ainsi si la JSP remarque que sa valeur est de 1 alors
elle ira lire le numéro entrant.
21
Voici la fenêtre « pop-up » qui apparait lorsqu’un appel arrive :
22
3.3. Améliorations et autres outils intégrables.
Les deux outils que j’ai développé durant mon stage ont permit d’intégrer
certaines informations indispensables aux développements d’applications liées à la
téléphonie.
Cependant certaines options sont désormais facilement intégrable à Novanet,
on peut citer par exemple le fait de rendre les champs de type téléphone intégrés au
workflow cliquable tout comme ceux de la fiche client.
Lorsque M.BAUDE m’a donné mon sujet sa première idée était d’intégrer des
outils de téléphonie compatible avec n’importe quel PABX, ce qui s’est avéré très
compliqué, c’est pourquoi après discussion avec différentes personnes j’ai uniquement
développé un CTI pour Asterisk.
Cependant la façon de laquelle j’ai développé les outils de C.T.I permettent de
les adaptés assez facilement à d’autres PABX, notamment grâce à l’accès par URL.
23
4. Bilan
4.1. Bilan personnel
Ces 11 semaines dans la société L.E.A.D.E.R Informatique m’on permit de
mieux connaitre le monde de l’entreprise, et surtout d’acquérir certaines notions
indispensables à la vie en entreprise.
Le fait d’avoir eu un projet à mener a terme sur une longue période m’a permit
de m’immerger complètement dans le monde du travail et d’en connaitre les avantages
et les inconvénients.
4.2. Bilan professionnel
Ce stage m’a apporté beaucoup grâce à un projet très intéressant et surtout
pluridisciplinaire. J’ai ainsi pu mettre en pratique mes connaissances et compétences
acquises durant mes deux années d’études supérieures et ce dans différents domaines,
notamment le système et réseau mais surtout le développement Java.
J’ai pu apprendre à travers ce stage des technologies très intéressantes telles
que Hibernate, qui permet la gestion des requêtes aux bases de données plus
efficacement.
La taille du projet Novanet ainsi que le nombres de développeurs travaillant sur
cette application m’ont obligés à organiser mon travail pour qu’il soit facilement
intégrable et afin de le rendre compréhensible par tout le monde.
24
Conclusion
Pendant la période de mon stage, j’ai eu l’opportunité de travailler avec une équipe
jeune et dynamique. Le travail que j’ai réalisé durant mes 11 semaines de stages c’est avéré
très enrichissant sur un point de vue professionnel mais également humain. Le fait de
travailler sur le même projet que toute une équipe de développement m’a permis d’avoir une
expérience de travail en équipe très intéressante.
Le sujet de stage qui m’a été attribué ainsi que l’infrastructure dans laquelle j’ai
travaillé m’ont permit d’apporter mes connaissances et compétences et surtout de les enrichir
grâce à l’équipe de développeurs qui m’encadrée et qui pouvait me venir en aide facilement.
J’ai ainsi pu découvrir le domaine de la téléphonie couplée à l’informatique, domaine
qui m’été presque inconnu avant mon arrivé à L.E.A.D.E.R Informatique. Ce sujet fut très
intéressant car il ma permit de diversifier mon domaine de compétence avec l’utilisation et la
configuration d’un réseau d’entreprise.
Le fait d’avoir eu à m’intégrer dans un groupe de travail et de travailler sur une
application existante m’a donc réellement permit de m’intégrer dans le monde professionnel
et de voir réellement en quoi consiste le métier de développeur.
25
Annexe
EXEMPLE DE MAPPING HIBERNATE :
public class ConfigSIPValue
{
private int id;
private String ipServer;
private String login;
private String pwd;
private String context;
private String prefixe;
public String getPrefixe() {
return prefixe;
}
public void setPrefixe(String prefixe) {
this.prefixe = prefixe;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getIpServer() {
return ipServer;
}
public void setIpServer(String ipServer) {
this.ipServer = ipServer;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
}
26
FICHIER XML CORRESPONDANT :
<?xml version="1.0" ?>
<!DOCTYPE hibernate-mapping (View Source for full doctype...)>
- <hibernate-mapping package="com.leaderinfo.novanet.sip" default-cascade="none"
default-access="property" default-lazy="true" auto-import="true">
- <class name="ConfigSIPValue" table="configSIP" mutable="true"
polymorphism="implicit" dynamic-update="false" dynamic-insert="false" selectbefore-update="false" optimistic-lock="version">
- <id name="id" type="integer" column="id">
<generator class="native" />
</id>
<property name="ipServer" column="ipServer" type="string" unique="false" optimisticlock="true" lazy="false" generated="never" />
<property name="login" column="login" type="string" unique="false" optimisticlock="true" lazy="false" generated="never" />
<property name="pwd" column="pwd" type="string" unique="false" optimisticlock="true" lazy="false" generated="never" />
<property name="context" column="context" type="string" unique="false" optimisticlock="true" lazy="false" generated="never" />
<property name="prefixe" column="prefixe" type="string" unique="false" optimisticlock="true" lazy="false" generated="never" />
</class>
</hibernate-mapping>
27
Bibliographie
Portail de la téléphonie IP :
http://voip-info.org
Communauté française Asterisk :
http://www.asterisk-france.net/
Site officiel de la librairie Asterisk-Java :
http://asterisk-java.org/
Site officiel d’Asterisk
http://www.asterisk.org/
Le forum des développeurs
http://www.developpez.net/forums/
28
Glossaire
1
La téléphonie sur réseau IP, ou « ToIP » pour Telephony over Internet Protocol, est une technique qui permet
de communiquer par téléphone via l'Internet.
2
API pour « Application programming interface », en français : interface de programmation, permet de définir
la manière dont un composant informatique peut communiquer avec un autre.
29

Documents pareils