MÉMOIRE
Présenté à
En vue de l’obtention du
par
J e profite de ce moment pour exprimer ma profonde gratitude envers tous ceux qui ont été
toujours, et le sont encore, à mes côtés :
A ucune dédicace très chère maman, ne pourrait exprimer la profondeur des sentiments que
j’éprouve pour vous, vos sacrifices et votre dévouement firent pour moi un encouragement.
Vous m’avez aidé et soutenu pendant de nombreuses années avec à chaque fois une attention
renouvelée. Puisse Dieu, tout puissant vous combler de santé, de bonheur et vous procurer une
longue vie.
T out l’encre du monde ne pourrait suffire pour exprimer mes sentiments envers un être très
cher. Vous avez toujours été mon école de patience, de confiance et surtout d’espoir et d’amour.
J’implore Dieu, tout puissant, de vous accorder une bonne santé, une longue vie et beaucoup de
bonheur.
A mes chères sœurs Hayfa et Nada et À mes chers frères Rayen , Zied et Fares
P our toute la complicité et l’affection qui nous unissent, je vous dédie ce travail comme
témoin de ma gratitude et mes remerciements pour tous vos sacrifices, votre aide et votre
générosité, je prie Le tout Puissant qu’il vous garde et veille sur vous à jamais
C’est avec grande gratitude que je veux consacrer cette page de remerciements à tous ceux
qui ont participé, de près ou loin à la réalisation de ce projet.
Je tiens à remercier Mme. Donia BEN HALIMA ABID, Maître assistante à l’Ecole Nationale
d’Ingénieurs de Sfax, d’avoir accepté d’examiner mon travail.
Mes vifs remerciements sont adressés à Messieurs M. Adel BEN MERTEH et Mme.
Najeh AKROUTI à l’entreprise d’accueil Softifi pour leur encouragement, leur conseils, leur
aide et leur soutien qu’ils m’ont apporté pour la réalisation de ce projet. J’ai apprécié leur
précieuse disponibilité et leur discrétion.
J’adresse également mes remerciements à toute l’équipe de Softifi pour le soutien et l’ambiance
amicale qu’ils m’ont réservés.
J’adresse l’expression de toutes ma gratitude à mes enseignants à l’ENIS pour leur contribution
efficace à ma formation.
INTRODUCTION GÉNÉRALE 1
CONCLUSION GÉNÉRALE 66
BIBLIOGRAPHIE 66
IP Internet Protocol
Parmi ces outils, nous trouvons les systèmes intégrés de gestion tels que les ERP qui
sont des outils de gestion et d’analyse permettant d’optimiser la diffusion des informations
en interne, d’améliorer les processus de gestion et d’automatiser les taches ce qui augmente
énormément la réactivité des entreprises et leurs agilités.
Dans ce cadre, s’inscrit notre projet de fin d’études proposé par la société Softifi intitulé
«Mise en place d’une solution VoIP sur ERP Odoo pour un centre d’appel».
Odoo est un ERP open source, le plus utilisé au monde grâce à ses applications répondant
à tous les besoins des entreprises et son esprit évolutif.
Le projet consiste a proposé une solution VoIP intégré au progiciel ERP-Odoo, nous allons
implémenté, après une étude théorique, un module nommé «Softifi Call Center» avec intégration
de CRM permettant d’avoir des enregistrement et de réaliser des rapports et statistiques sur
toutes les communications entrantes ou sortantes, soit par mail soit par téléphone ceci permettra
au centre de numériser la plus grande partie de ses activités, d’optimiser et améliorer son
rendement.
• Le premier chapitre «Cadre général du projet» est un chapitre introductif qui décrit brèvement
les activités de l’entreprise d’accueil, le cadre et la description du projet.
• Le deuxième chapitre «Méthodologie de travail et solution ERP Odoo» donne une prise
de connaissance ainsi qu’une présentation du projet et la méthodologie utilisée.
Enfin, une conclusion générale fera rappel et un résumé de tout ce qui a été fait autour de
ce projet.
1
Cadre général du projet
Sommaire
1.1 Présentation et activité de la société Softifi . . . . . . . . . . . 4
1.1.1 Produits et services fournis . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Cadre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Description du projet . . . . . . . . . . . . . . . . . . . . . . . 5
Softifi est une société privé étrangère, opérant selon la loi 72, qui propose une gamme de
services informatiques conçus pour répondre aux besoins logiciels de ses clients (entreprises).
De la création de systèmes ERP, à l’externalisation, aux solutions de commerce électronique,
en passant par la fourniture d’une expertise pour ses client de classe internationaux grâce à des
services de marketing numérique complets.
La figure 1.1 présente le logo de la société Softifi.
Le siège social de Softifi est au Parc d’Activités Economiques Zarzis Smart Center.
Contact Softifi : +216 21 787 771
Adresse mail : info@softifi.com
Softifi offre à ses clients la possibilité de transformer leurs idées créatives en solutions
numériques pratiques, fournit des solutions Web et mobiles spécifiques et des services de marketing
électronique complets pour accompagner la transformation numérique de ses clients.
L’objectif initial de Softifi est de fournir une suite complète de solutions informatiques satisfaire
les besoins de ses clients.
Elle opére avec des entreprises de différente tailles et fournit des services personnalisés en
fonction des objectifs et des spécifications de chaque entreprise.
1.1.2 Organisation
La réalisation de ce projet s’inscrit dans le cadre d’un projet de fin d’études en vue de
l’obtention du diplôme national d’ingénieurs en génie Électrique. Il s’agit de concevoir et
développer une solution téléphonie VoIP pour un centre d’appel au profit de la société Softifi.
Consciente de tout cela, Softifi a décidé de développer une application «centre d’appel»,
intégrant une stratégie de gestion des relations clients CRM, comme une solution pour atteindre
ses objectifs d’augmenter d’un côté la productivité des agents et accroître leurs performances,
et d’un autre côté d’assurer la satisfaction du client et de comprendre leurs attentes et besoins.
Le développement de cette application est composé de deux parties :
La première partie représente l’implémentation de l’application «centre d’appel» sur le système
ERP Odoo et la deuxième consiste à intégrer la stratégie CRM (Customer Relationship Management).
Un centre d’appel ou Call Center est une plateforme regroupant un ensemble de moyens pour
traiter les appels téléphoniques entrants et sortants mais également les mails, les SMS, les
courriers ou toute autre moyen de communication entre une société et ses clients [1].
Ces moyens comportent aussi bien les moyens humain (téléopérateurs, téléconseillers, superviseurs,
responsables de productions..), les moyens techniques (ordinateurs, serveurs, casques, téléphones,
connexions internet. . . ) et les moyens mobiliers.
Les activités d’un centre d’appels se divisent en quatre catégories, l’émission d’appels, la
réception d’appels, le mailing et enfin le tchat. Ces quatre grandes activités nécessitent l’application
de norme de qualité, une bonne organisation et un personnel bien formé.
• Émission d’appels
Il s’agit du l’activité la plus connue. Dans cet activité, c’est l’entreprise qui se charge de réaliser
les appels depuis le standard téléphonique. Généralement, il est utilisé dans le but de réaliser
tout type d’enquêtes, de vendre, de programmer des entretiens ou des réunions, ou simplement
de faire de la publicité pour une entreprise en particulier.
• Réception d’appels
Il s’agit du contraire au activité précédente. Dans ce cas, c’est le client qui réalise les appels.
Les opérateurs se chargent d’y répondre et de fournir des informations à propos des produits et
services offerts par l’entreprise. De même, cela leur permet d’obtenir de nouveaux clients.
• Le mailing et tchat
Il est aussi connu sous le nom de Contact Center. C’est l’un des activités les plus novateurs
aujourd’hui puisqu’il ne fonctionne que via internet. Il s’agit d’une plateforme qui permet de
réaliser des appels à travers le web avec des fonctions intelligentes qui apportent de l’efficacité
au système. Il permet d’utiliser le mailing ou tchat interne qui facilite le passage d’information
entre les employés en temps réel depuis le site internet de l’entreprise.
— Définition de CRM
• Identification des appels : Lorsque la solution de téléphonie est reliée au CRM, l’entreprise
saura toujours d’où viennent les appels. Les agents offriront donc une attention plus rapide et
efficace.
• Stockage de toute l’information : La fusion du CRM permet à l’entrprise d’enregistrer toute
l’information de ses clients au même endroit. Les ventes réalisées et les incidents résolus grâce
au CRM, ainsi que le nombre d’appels et le taux d’abandon, seront recueillis dans les statistiques
d’appels.
• Collaboration entre départements : Grâce à l’unification des informations fournies par
l’intégration du logiciel du standard téléphonique virtuel et du call center avec le CRM, tous les
Chapitre
2
Méthodologie de travail et solution ERP
Odoo
Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Présentation des ERP . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Types des ERP . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3 Fonctionnalités et modularités d’un ERP . . . . . . . . . . . . . 13
2.2.4 Avantages d’un ERP . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.5 Inconvénients d’un ERP . . . . . . . . . . . . . . . . . . . . . . 14
2.2.6 Objectifs du projet . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.7 Critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.8 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Méthodologie du travail . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 Approche classique . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2 Approche Agile . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 Choix de la méthodologie . . . . . . . . . . . . . . . . . . . . . 16
2.3.4 Principales spécifications de la méthode Scrum . . . . . . . . . 17
2.4 Choix de l’ERP Odoo . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Comparaison entre ERP Odoo et d’autres ERP progiciel . . . . 18
2.5 Logiciel de gestion Odoo . . . . . . . . . . . . . . . . . . . . . . 20
2.5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.2 Solutions Odoo . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.3 Fonctionnalités d’Odoo . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.4 Architecture d’Odoo . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.5 Odoo en chiffres . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6 Solution téléphonie IP pour Odoo . . . . . . . . . . . . . . . . 28
2.6.1 Définition de la VoIP . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.2 Processus du traitement de la VoIP . . . . . . . . . . . . . . . . 29
2.6.3 Protocoles utilisés par la VoIP . . . . . . . . . . . . . . . . . . 30
2.6.4 Avantages de la VoIP Odoo . . . . . . . . . . . . . . . . . . . . 31
2.1 Introduction
Cette section est réservée à la présentation du cadre général de notre projet, en précisant les
différents objectifs visés.
Nous allons mener une étude critique des applications existantes afin d’identifier les différentes
limites de ces dernières puis proposer notre solution. Pour bien comprendre et clarifier nos
besoins, il est trés important de comprendre le cadre général du projet. Cette partie est dédiée à
présenter la notion des ERP.
2.2.1 Définition
Les outils ERP sont, pour la plupart, capables de couvrir un périmètre important de fonctions,
nous citons à titre d’exemple :
• La gestion des ressources humaines (la paie, RH, recrutement, note de frais , formation, etc.).
• La gestion commerciale (gestion d’achat et de ventes, CRM, etc.).
• La gestion comptable et financière : comptabilité générale, comptabilité analytique, budget,
contrôle de gestion, trésorerie, etc.
• La gestion des stocks WMS : logistique, transport, entrepôt, etc.
• La gestion de production GPAO.
• La gestion des affaire.
• La gestion des services après-ventes, etc.
• BI (outil du business intelligence, reporting et statistiques), etc.
Toutes ses fonctions sont centralisées sur un outil unique, actualisées en temps réel, et accessibles
souvent sur plusieurs supports, ce qui permet une vision claire sur tout ce qui se passe au sein
ou autour de l’entreprise.
Mettre en place un outil ERP au sein d’une entreprise apporte plusieurs avantages, la
première étant le fait d’avoir sur un seul logiciel une vision globale de toutes les fonctions
On peut s’en douter, une solution qui regroupe toutes les activités d’une entreprise en un
seul point va aussi comporter des inconvénients.
Les plus importants sont :
• Mise en place lourde, toujours longue.
• Problème du choix des ERPs (changement ou sortie difficile).
• Impact sur l’organisation (il faut s’adapter à l’ERP).
• Dépendance d’un éditeur, de sa capacité de suivi, de sa vision de la gestion.
L’objectif principal du projet est de concevoir et développer une application web pour
centraliser les données enregistrées des appels des clients en permettant des échanges d’appels
et gérer la relation client.
En effet, notre application doit être flexible à toutes éventuelle amélioration et évolutions et doit
être sécurisée. Le code développé doit être performant, visible et claire.
Suite à l’étude de l’existant et pour résoudre tous les problèmes précédents, nous avons
adopté pour l’implémentation d’une nouvelle application appelée « Softifi Call Center ».
Cette application présente de nouvelles fonctionnalités pour améliorer la performance de CRM
et être plus sécurisé. Cette solution consiste à intégré un module « VoIP » dans le logiciel «
Odoo » avec ces fonctionnalités :
- Lancement d’un appel directement depuis la fiche du contact.
- Ouverture automatique de la fiche contact lors d’un appel entrant.
- Echange d’appel avec des applications externes.
- Enregistrer l’appel sous format audio.
- Conservation de l’historique des appels.
- Centralisation des données.
Toute démarche de développement nécessite une étape de modélisation qui doit aboutir aux
résultats attendus et dans les meilleurs délais.
En effet, le choix d’une méthode pour la réalisation du projet constitue une étape importante.
Nous allons consacrer cette partie à présenter la méthode de développement classique et la
méthode agile en faisant une étude comparative pour pouvoir choisir la plus appropriée à notre
projet.
Les méthodes classiques sont depuis toujours les plus utilisées pour le fondement des
projets. On commence par identifier les besoins et les bien définir. Parmi ces méthodes, nous
pouvons citer le modèle en cascade utilisé souvent dans certains projets dont les besoins sont
clairs et bien définis, le modèle en V utilisé pour le développement des applications mobiles.
Suite aux limites de l’utilisation de la méthode classique dans certains projets construits
avec des méthodes classiques, de nouvelles méthodologies ont été mises en œuvre afin de
remédier aux défaillances de ces processus.
Parmi ces méthodes, on cite les méthodes agiles telles que, l’eXtrême Programming (XP),
Scrum, Lean Software Development, etc..
Ces méthodes utilisent un principe itératif qui consiste à découper le projet en plusieurs sous
projets qu’on appelle des itérations dans lesquels le développeur détaille les fonctionnalités qui
seront exécutées selon leur priorité.
Pour la gestion de ce projet, chaque tâche doit être testée avant de passer à la suivante, car
elles sont reliées entre elles, d’où l’adoption de la méthode Agile permet donc de satisfaire cette
contrainte.
Compte-tenu de ces circonstances, parmi les méthodes agile, on cite Scrum et kanban.
Scrum est une méthode qui se concentre sur la gestion de projet collaborative et un cycle de
— Itération : on travaille sur une courte période de durée fixe (entre une semaine et un mois)
jalonnée par une série d’activités conclue par une livraison.
— Inspection : elle doit être régulière pour suivre l’écart entre les objectifs fixés et le travail
effectif réalisé.
Kanban est une approche en perpétuelle adaptation au besoin client, dont l’objectif est le suivant :
limiter la surproduction, et réduire les délais et les coûts. On restreint la surcharge pour créer la
disponibilité. Une autre particularité de la méthode Kanban, c’est la visualisation de l’avancement
des tâches. L’approche Kanban permet de représenter le flux de travail dans une optique d’amélioration
continue.
En se basant sur ces caractéristiques de Scrum, nous avons choisi d’adopter cette méthode
pour la gestion de notre projet.
L’amélioration de la performance du travail est l’un des défis actuels majeurs pour les
entreprises. Pour cela nous cherchons toujours l’application la plus adéquate, en faisant une
comparaison entre les principaux solutions existantes.
Pour réaliser cette comparaison, nous avons utilisé «Google Trends», cet outil nous permettra
de connaître la fréquence des recherches de un des termes sur le moteur de recherche Google.
Les résultats obtenus nous donne une idée générale sur les ERP les plus utilisés.
Parmi les progiciel existants sur le marché, nous trouvons :
a- Dolibarr ERP/CRM : est un progiciel de gestion intégré (PGI, ERP en anglais) avec gestion
de la relation client (GRC, CRM en anglais) open source adopté des entreprises de différentes
tailles, allant de petites moyennes entreprises (PME) au grand entreprise mais aussi pour les
indépendants, auto-entrepreneurs ou les associations
b-Tryton : est une plateforme d’application informatique constitué de trois niveaux comprenant
le client Tryton, le serveur Tryton et le système de gestion de base de données (principalement
PostgreSQL), à usage général, sur laquelle est construite une solution d’entreprise ERP (Enterprise
Resource Planning) via un ensemble de modules Tryton.
c-ERP5 : est un progiciel de gestion intégré (ERP) libre basé sur la plateforme Zope et le
langage Python.
d-Compiere : est un progiciel de gestion intégré (PGI) et de gestion de la relation client (GRC)
open source adopté aux petites et moyennes entreprises (PME) opérant dans le secteur de la
distribution et le service. L’application est fournie sous double licence GPL (General Public
License) et propriétaire. Les sources peuvent être adaptées aux besoins du client. L’assistance
technique et la documentation sont payantes.
e-ERP Odoo : est un progiciel open source et gratuit qui propose la solution de gestion d’entreprise,
disposant d’une interface intuitive, il remplit toutes les fonctions d’un ERP, de la gestion des
ventes à la relation client, en passant par la gestion des ressources humaines, la comptabilité et
la finance.
La société d’accueil «Softifi» utilise le progiciel Odoo qui se base sur la technologie ERP
Open Source pour le développement de ses produits. Ci-après, nous allons présenter le progicel
Odoo.
2.5.1 Définition
Odoo est l’acronyme de "On Demand Open Object", anciennement connu sous le nom
d’OpenERP, est l’un de 10 meilleurs progiciels ERP en 2021 selon Konekt agency, est un
éditeur de logiciels open source fondé en 2004 par Fabien Pinckaers qui propose une suite
complète de modules de gestion d’entreprise entièrement intégrés [6]. Odoo est le programme
de gestion d’entreprise le plus évolutif et le plus installé au monde grâce à ses applications
répondant à tous les besoins d’une entreprise. Il comporte l’ensemble des applications nécessaires
pour centraliser la gestion de l’Enterprise dans une seule base de données commune à tous les
services de l’entreprise et gère l’ensemble de ses processus [7].
C’est la première fois qu’un éditeur de logiciels parvient à atteindre un tel niveau de fonctionnalités.
Odoo a pour mission d’offrir aux entreprises de toutes tailles et secteurs une solution professionnelle
et facile d’utilisation pour tous ses utilisateurs.
Odoo a été spécifiquement conçu pour aider les entreprises à améliorer leurs performances.
Sa couverture fonctionnelle s’étend à tous types de domaines différents.Parmi ses fonctionnalités,
on cite :
• La gestion des ressources humaines.
• La gestion de relation clients CRM.
• La gestion des ventes.
• La gestion de projets.
• La gestion de productions.
• La gestion des stocks.
• La gestion des achats, etc.
L’aspect libre du logiciel a permis le développement de nombreux modules tiers créés par sa
communauté de développeurs. Ces applications sont pour certaines officiellement validées par
l’éditeur tandis que d’autres ne sont destinées qu’à des versions spécifiques [6].
L’architecture du système Odoo est composée de 3 tiers principaux qui communiquent entre
eux par les protocoles XML-RPC et NET-RPC :
• Un serveur de base de données PostgreSql, odoo utilise PostgreSQL comme système de
gestion de base de données. Postgres est un système de gestion de base de données relationnelle
objet (ORDBMS). Bien que les requêtes SQL directes puissent être exécutées à partir de modules,
odoo utilise une couche ORM «ObjectRelational Mapping» pour la persistance de ses objets
métier et la gestion des la base de données.
• Un serveur d’application (contenant les objets de gestion, le moteur de workflow, le générateur
d’édition, etc.).
• Un serveur de présentation qui permet à l’utilisateur de se connecter à Odoo avec n’importe
quel navigateur internet( Google chrome, firefox, ...).
Le Framework technique d’odoo est basé sur le modèle de conception MVC (Modèle Vue
Contrôler) qui consiste à décomposer l’architecture du programme en trois partie complémentaires
et dépendantes :
• Modèle : qui contient toutes les objets odoo déclarés, les tables de données : La partie base de
données est géré par le SGBD PostgreSQL.
• Vue : c’est les différentes vues et interfaces utilisés par l’utilisateur (Vue Formulaire, kanban
view, Calendar, ....) , cette partie est gérée principalement par XML.
• Contrôleur : C’est la partie contrôle qui consiste aux codes python exécutés pour assurer le
contrôle, la synchronisation et la gestion des événements.
Odoo repose principalement sur une structure modulaire. Les modules étant indépendants les
uns aux autres permettant ainsi à la fois d’améliorer régulièrement les modules existants, et
d’autre part, avoir une souplesse de modification ou de suppression des modules qu’on ne veut
pas utiliser, sans avoir à toucher tout le système.
Par défaut, il contient plusieurs modules prêt à être déployés tel quels. On peut aussi les personnaliser
selon les besoins.
Les modules sont contenu dans un répertoire nommé/addons. Il est possible d’y installer des
propres modules. La figure 2.9 présente la structure des dossiers Odoo.
Un module sous odoo est représenté comme un répertoire, contenant des sous-répertoires et
des fichiers avec une convention bien définie. Pour pouvoir créer et développer ses propres
modules odoo, il va falloir comprendre la signification des fichiers et répertoire d’un module
odoo, composant l’architecture technique d’un module :
(a) src
css : contient tous les fichiers css de conception
img : contient tous les fichiers images
js : contient tous les fichiers javascript
xml : contient tous les fichiers .xml utilisé dans les view/qweb templates
(b) description : contient un fichier html nommé "Index.html" qui permet une démonstration
et présentation sur le module, contenant des aperçus et des imprimes écrans des
fonctionnalités du module. Il contient aussi le fichier icon.png qui sera utilisé comme
l’icône du module.
8. wizard : C’est un répertoire qui va contenir les classes de transitions nécessaire à l’affichage
des assistants et des fenêtres qui servent à aider l’utilisateur à introduire les données
nécessaires pour l’obtention des résultats souhaités (états de sorties, calcul, ...). Ces modèles
seront automatiquement supprimés après utilisation.
9. Report :C’est le répertoire qui va contenir les descriptions qweb et xml, des apports de
sortie (en pdf) du module.
10. security : Répertoire contenant les fichiers de base définissant les règles de sécurités, les
droits d’accès, les groupes, etc.
(a) Le fichier csv des droits d’accès (ir.model.access.csv) : Pour assigner les droits de
lecture et d’écriture, à un utilisateur d’un groupe.
(b) security.xml : qui va contenir la création des groupes et les autres règles d’accés
aux enregistrements.
11. controller : Ce répertoire va contenir les fichiers nécessaires des requêtes http et leurs
réponses à partir d’un navigateur internet, il concerne la pratie développement web qui
permet d’étendre ou personnaliser le module de base website proposé par Odoo.
12. i18n : Il comprend la traduction du module dans les différents langues. Principalement, il
contient le fichier template de traduction (.pot) et le fichier .po qui contient la traduction
actuelle du module.
13. Doc : C’est un répertoire qui va contenir la partie documentation concernant le module
(les fonctionnalités, les explications et demos, ...)
14. Test : C’est un répertoire qui va contenir les fichiers .py (python) de test.
Odoo permet intégrer un module de gestion téléphonique VoIP. Parmi ses fonctionnalités,
les CRM, les ventes, les achats ainsi que de nombreux éléments de communication comme
l’expérience de site e-commerce ou de site web. Intégrer cette solution à votre entreprise vous
permettra de vous simplifier les choses, notamment sur le volet VoIP. Cette solution téléphonique
IP donnera une grande mobilité ainsi que beaucoup de liberté. Idéale, cette solution VoIP évitera
de nombreux frais de maintenance et servira de centrale téléphonique afin de réduire le coût de
vos factures finales.
La VoIP (Voice over Internet Protocol), également appelée téléphonie IP, est une technologie
de communication dont l’une des principales applications est la téléphonie IP. Le principe
fondamental de la VoIP est la transmission de données parlées via un réseau IP (Internet
protocol). Concrètement, une conversation téléphonique VoIP ne passe plus par des fils de
cuivre du réseau téléphonique traditionnel analogique. Elle circule sur un réseau de données
numériques en passant par les câbles Ethernet de l’émetteur jusqu’au récepteur. Pour dire les
choses simplement, une conversation téléphonique VoIP passe par Internet [10].
Lorsqu’un utilisateur veut entrer en communication avec un autre, une connexion est alors
établie entre les deux terminaux. L’utilisateur peut alors émettre un son par le biais d’un micro
(signal analogique) qui est ensuite numérisé et compressé par la machine (signal par synthèse).
Une fois les données encapsulées dans un paquet, ce dernier est envoyé au destinataire qui
procédera aux opérations inverses assurant ainsi la mise en forme d’un message audible [11].
L’acquisition : C’est la première étape qui consiste à détecter la voix via un périphérique
(téléphone . . . ).
La numérisation : La bande voix qui est un signal électrique analogique utilisant une bande de
fréquence de 300 à 3400 Hz. Ce signal doit d’abord être converti sous forme numérique suivant
le format PCM (Pulse Code Modulation) ou G.711 à 64 Kbps.
La compression : Cette opération consiste à réduire la taille physique de blocs d’informations
numériques en utilisant un algorithme de compression.
L’habillage des entêtes : Le signal numérisé et compressé va être après découpé, en ajoutant
des entêtes, il faut prendre en compte l’ordre du réassemblage du paquet, le type du trafic de
synchronisation.
L’émission et transport : C’est l’acheminement jusqu’au destinataire dans des paquets IP en
utilisant les protocoles du routage.
La réception : La réception des informations émis pendant la transaction.
La conversion numérique/analogique : C’est l’étape inverse de la numérisation.
La restitution : Résultat finale, c’est l’écoute de la voix.
Un protocole est un langage commun utilisé par l’ensemble des acteurs de la communication
pour échanger des données. Nous allons présenter les protocoles de transport de la voix et des
protocoles de la signalisation [12].
Les Protocoles de transport de la voix :
• Le protocole RTP (Real-time Transport) : assure la gestion des flux multimédia en mode
UDP(User Datagram Protocol est un modèle standard du protocole de communication dans
des réseaux IP). Il permet aussi la transmission en temps réel des données audio et vidéo
sur des réseaux IP et il est utilisé dans les appels téléphoniques simples, les audio ou les
visioconférences.
Intégré à RTP, RTCP (Real Time Transport Control Protocol) permet d’avoir des informations
sur la qualité des données.
Nous avons choisi de configurer le serveur Asterisk (serveur open source) avec Odoo, pour
assurer le bon fonctionnement de cette solution VoIP Odoo.
En effet, Asterisk est compatible avec la majorité des protocoles et codecs présents sur le
Marché.
Les différents modèles d’installation proposés (service ou distribution) ont pour avantages de
faciliter une intégration rapide dans un réseau existant. La configuration du PABX et de ses
modules est centralisée et accessible depuis de nombreuses interfaces d’administration (Web,
Wizard, CLI, File Editor ...).
Par le biais de nos tests, nous avons validé le bon rapport qualité/prix proposé par cette solution,
grâce notamment à la faible consommation de ressources nécessaires au bon fonctionnement du
service de téléphonie.
En conclusion, la facilité d’intégration, l’évolutivité, et la professionnalisation de ce système en
font une solution concurrente pour les constructeurs du Marché (Alcatel, Matra, Cisco).
2.6.5 Asterisk
Asterisk est connu comme la plate-forme de solution logicielle PBX (Private Branch Exchange)
gratuite et ouverte. Il prend en charge la VoIP et le RTPC (réseau téléphonique public à commutation).
Il est utilisé par de nombreux particuliers et entreprises pour leurs besoins de communication.
Les terminaux connectés à Asterisk peuvent communiquer entre eux et se connecter à d’autres
services téléphoniques, tels que le réseau téléphonique public commuté (RTPC) et les services
de voix sur IP (VOIP). Ce dernier implémente les protocoles H.323 et SIP ainsi qu’un protocole
spécifique nommé IAX. Il permet la communication entre client et serveur ainsi qu’entre deux
serveurs [13].
2.7 Conclusion
Dans ce chapitre, nous avons donné des détails sur les éléments de base, ainsi que les
différentes technologies et concepts intégrés dans le système du gestion téléphonique développé
sur le module VoIP Odoo.
Cette étude constitue le support de base de la spécification des besoins fonctionnels et non
fonctionnels pour bien mener l’intégration d’une solution VoIP sur un système ERP Odoo que
nous allons l’entamer dans le chapitre suivant.
3
Spécifications des besoins et conception
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Choix du langage de modélisation . . . . . . . . . . . . . . . . 35
3.3 Analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 Identifications des acteurs . . . . . . . . . . . . . . . . . . . . . 36
3.3.2 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.3 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . 37
3.4 Spécification des besoins . . . . . . . . . . . . . . . . . . . . . . 38
3.4.1 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . 38
3.5 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.1 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.2 Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . 46
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.1 Introduction
Parmi les langages les plus utilises en modélisation de logiciel informatique, qui est une
étape préliminaire, on trouve Merise et UML.
UML permet de représenter un système selon différentes vues complémentaires : les diagrammes.
En se basant sur ces caractéristiques d’UML, nous avons choisi de l’utiliser pour la modélisation
et la conception de notre projet.
Pour modéliser les besoins de développement du projet, nous avons utilisé des diagrammes
tels que le diagramme de cas d’utilisation, le diagramme de séquence et le diagramme de
classes.
D’après le langage UML, un acteur représente un rôle joué par une entité externe (humain
ou système) qui interagit directement avec le système. Pour notre application, nous avons
identifier les acteurs suivants :
— Utilisateur : Utilisateur Odoo : C’est lui qui gère ces opérations qui suivent : la gestion
des contacts et la gestion des appels.
Les besoins fonctionnels sont les fonctionnalités que le système doit fournir à ses utilisateurs.
L’outil n’est considéré opérationnel que s’il garantit la disponibilité de ses fonctionnalités. Dans
ce qui suit, nous repérons les besoins fonctionnels que notre application doit satisfaire :
- Échange d’appels.
- Enregistrement d’appel.
- Intégration CRM.
- Rapports et statistiques.
Les besoins non fonctionnels sont l’ensemble des besoins qui caractérisent le système. Ils
jouent un rôle très important dans le but de garantir la qualité logicielle de notre système.
En fait, ce sont l’ensemble de besoins qui permettent d’identifier les contraintes internes et
externes de notre système.
Dans notre application, les besoins non fonctionnels se résument dans les points suivants :
- Sécurité : L’application doit garantir la sécurité des données qu’elle gère. Le mécanisme
d’authentification doit permettre d’assurer l’authenticité de l’utilisateur connecté et de vérifier
et valider les autorisations. De plus, les échanges entre le back end et le front end doivent être
protégés.
- Ergonomie : Notre application doit donc offrir une interface conviviale et qui facilite l’exploitation
des fonctionnalités offertes aux utilisateurs.
- Compatibilité : Dans un contexte d’application web, il est important de s’assurer du bon
fonctionnement de l’application sur différents types et versions de navigateurs web.
- Évolutivité : Le développement des applications informatiques doit se faire en considérant
Nous présentons, dans cette partie, les fonctionnalités principales proposées, en utilisant les
diagrammes UML, et nous décrivons en détails chaque cas d’utilisation. Cette description est
utile pour délimiter le projet et pour planifier son déroulement.
Les cas d’utilisation permettent de structurer les besoins des utilisateurs et les objectifs
correspondants d’un système. Ils centrent l’expression des exigences du système sur ses utilisateurs.
Ils partent du principe que les objectifs du système sont tous motivés.
La détermination et la compréhension des besoins sont souvent difficiles car les intervenants
reçoivent une trop grandes quantités d’informations : il faut donc clarifier et organiser les
besoins des clients (les modéliser).
Pour cela, les cas d’utilisation identifient les utilisateurs du système et leurs interactions avec le
système.
Nous introduisons dans cette partie les diagrammes du cas d’utilisation Administrateur et Utilisateur
qui se présentent dans le deux figures suivantes :
Les détails des diagrammes de cas d’utilisation sont représentés par la suite.
Dans cette partie, nous allons détailler les cas d’utilisations ,en expliquant le but de chacun
et les pré-conditions nécessaires.
Ajouter un utilisateur :
Acteur Administrateur
Accéder à la configuration
Accéder à la gestion des droits d’accès
Scénario Sélectionner un utilisateur
Appuyer sur le bouton modifier
Valider
Modifier un utilisateur
Acteur Administrateur
Accéder à la configuration
Accéder à la gestion des droits d’accès
Scénario Sélectionner un utilisateur.
Appuyer sur le bouton modifier
Valider
Supprimer un utilisateur
Acteur Administrateur
Accéder à la configuration
Accéder à la gestion des droits d’accès
Scénario Sélectionner un utilisateur.
Appuyer sur le bouton supprimer
Valider
Ajouter un contact
Après son authentification, l’utilisateur est autorisé à ajouter un nouveau contact. Comme le
décrit le tableau 4.
Acteur Utilisateur
Modifier un contact
Après son authentification, l’utilisateur est autorisé à modifier un contact. Comme le décrit le
tableau 5.
Acteur Utilisateur
Supprimer un contact
Après son authentification, l’utilisateur est autorisé à supprimer un contact. Comme le décrit le
tableau 6.
Acteur Utilisateur
Acteur Utilisateur
Consulter l’historique
Acteur Utilisateur
Émettre un appel
Acteur Utilisateur
Recevoir un appel
L’utilisateur peut recevoir un appel d’un contact. Comme le montre le tableau 10.
Acteur Utilisateur
Enregistrer un appel
Lors de la réception ou l’émission d’un appel par un utilisateur, cet appel sera enregistré
automatiquement. Comme le montre le tableau 11.
Acteur Utilisateur
3.5 Conception
Cette section est consacrée à la conception de notre application. Nous commençons par l’aspect
statique qui englobe le diagramme de classes, puis, nous envisageons l’aspect dynamique de
notre solution représenté par le diagramme de séquence.
(Un softphone est un système de téléphonie via VoIP. C’est un logiciel de téléphonie spécialisé
pour les appels téléphoniques en temps réel, sur Internet et les réseaux d’entreprises.)
- Le contact répond à l’appel.
- Communication entre l’utilisateur et le partenaire.
Les détails de l’émission d’un appel sont décrites dans le diagramme de séquence de la figure
suivante :
3.6 Conclusion
La modélisation et l’analyse des besoins sont deux étapes préliminaires pour établir la liste des
objectifs à atteindre et fixer les attentes de manière à affiner notre projet.
Ce chapitre a été consacré à l’analyse des besoins fonctionnels et non fonctionnels et leur
modélisation à travers des diagrammes de cas d’utilisation ainsi que la conception de diagramme
de classe et des séquences, pour assurer une meilleure visibilité des fonctionnalités.
Dans le chapitre suivant, nous présenterons la partie réalisation.
4
Implémentation de la solution
proposée
Sommaire
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . 50
4.2.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . 50
4.2.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 Architecture modulaire de la solution . . . . . . . . . . . . . . . 54
4.3.2 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.1 Introduction
Dans cette partie, nous mettons en évidence notre environnement de travail matériel et logiciel
et nous justifions les différents choix technologiques.
Nous nous intéressons à présenter l’environnement matériel et logiciel de travail , qui nous
a permis de mettre en œuvre notre projet, ainsi que la justification du choix de langage du
développement utilisés.
Durant le projet, le travail a été réalisé sur un ordinateur qui présente les caractéristiques
suivantes :
• Marque : Msi Gaming
• Processeur : i7 9th Gen
• Mémoire RAM : 32Go
• Disque Dur : 1 To
• Système d’exploitation : Ubuntu 18.04
Nous présentons dans cette partie les outils logiciels et les langages qui nous ont permis de
réaliser et de développer notre solution.
— PyCharm
— Odoo
Odoo est une solution open source polyvalente permettant la gestion des entreprises . Comme
la version entreprise assure plus des fonctionnalités et est recommandé pour le développement
professionnel, nous l’avons intégré au niveau de notre projet [15].
Par conséquence, nous avons utilisé la version entreprise d’Odoo13 (Entreprise Edition).
— PostgreSQL
PostgreSQL est publié sous la licence PostgreSQL, une licence logicielle permissive gratuite et
open source, développée par le PGDG (PostgreSQL Global Development Group), un groupe de
bénévoles individuels et d’entreprises [16].
La partie de base de données de «Softifi Call Center» est gérée par le SGBD PostgreSQL, il
supporte la version réseau 11.2.1. La figure 4.2 montre le logo de PostgreSQL.
— PgAdmin
4.2.2.2 Langages
— Python
typage dynamique fort, d’une gestion automatique de la mémoire par ramasse-miettes et d’un
système de gestion d’exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl
[18].
Selon IEEE (Institute of Electrical and Electronics Engineers), python est élu le meilleur
langage de programmation en 2020.
Notre application «Softifi Call Center» utilise la version 3.6 de python.
— XML
XML (entendez eXtensible Markup Language) est traduisé langage à balises étendu, ou langage
à balises extensible et en quelque sorte un langage HTML amélioré permettant de définir
de nouvelles balises. Il s’agit effectivement d’un langage permettant de mettre en forme des
documents grâce à des balises (markup) [19].
La partie vue de «Softifi Call Center» est gérée par XML.
4.3 Réalisation
Dans cette partie nous exposons le travail réalisé lors du stage. Nous commençons par présenter
l’architecture modulaire de notre application. Ensuite, nous montrons la phase de l’installation
de l’application et les différentes interfaces pour chaque groupe d’utilisateurs. Nous terminons
par exposer, à travers un enchaînement d’interfaces, un scénario donnant un aperçu général sur
les différentes fonctionnalités de notre application.
Dans le chapitre 2 de ce rapport, nous avons présenté la structure modulaire générale d’un
module Odoo.
Chaque développeur Odoo doit respecter la convention pour pouvoir créer et développer ses
propres modules odoo et améliorer la qualité du code. En effet, un code approprié améliore
la lisibilité, facilite la maintenance, facilite le débogage, réduit la complexité et favorise la
fiabilité. Ces directives doivent être appliquées à chaque nouveau module et à tout nouveau
développement.
4.3.2 Authentification
Dans notre application, nous nous intéressons à deux acteurs principaux. La page
d’authentification présente dans la figure 4.8 joue un rôle très important dans le but de diriger
chaque acteur à son espace privé selon son rôle.
Suite à la connexion de l’utilisateur, Odoo se charge de lui ouvrir une session selon son
rôle. Ainsi, l’administrateur est connecté avec tous les privilèges déjà définis dans le système.
L’utilisateur Odoo est connecté mais avec des limites.
4.3.3 Implémentation
Avant d’installer le module, il faut vérifier que le répertoire de notre projet existe dans le
dossier «addons» du répertoire «softifi_center». Puis nous installons notre module à partir du
gestionnaire de taches en cliquant sur «install».
F IGURE 4.9: Le module «Softifi Call Center» dans la liste des applications installées
Après être installé, le module «Softifi Call Center» sera ajouté à la liste des éléments de menu
(Figure 4.11).
Notre application est organisée en six grands menus, comme nous constatons dans la figure
4.12.
a) Menu Dial
Deuxieme cas : en cliquant sur le menu Dial, on aura des sous menus :
-Liste de contacts figure 4.14.
-Clavier pour composer un nouveau numéro figure 4.15.
b) Menu configuration
Le menu configuration présent dans la figure 4.16 comprend les différents activités que le centre
offre à ses clients et la possibilité d’ajouter une eventuelle activité supplémentaire.
F IGURE 4.16: Les différentes activités offerte par «Softifi Call Center»
c) Menu Employees
Le menu employés présent dans la figure 4.17 comprend la liste de tous les employés du Softifi
Call Center .
Cette liste n’est pas fermée et elle pourra comporter des eventuels employés dans le futur .
1-Contacts est le premier sous menu qui comprend la liste des contacts susceptibles d’être
ajoutés ou retirés(figure 4.18).
2-logged calls comprend le formulaire à remplir pour les prospects ou clients (figure 4.19) et
les statuts de leurs fiches.
F IGURE 4.19: Données du client rempli par l’employé de «Softifi Call Center»
e) Menu My pipline
Le menu my pipline présent dans la figure 4.20 comprend un rapport récapitulant la totalité de
l’activité et interventions de tous les employés du centre, afin d’assurer la gestion de la relation
avec les clients «CRM».
f) Menu Dashboard
Le menu Dashboard présent dans les figures 4.21 et 4.22 est une représentation visuelle
des informations importantes sur un même écran, rassemblant différentes données permettant
notamment une analyse approfondie.
Le dashboard affiche tous les éléments qui permettent d’évaluer la situation dans laquelle se
trouve l’entreprise. Il permet d’avoir une vue générale du système, car il résume toutes les
informations en quelques indicateurs essentiels. Il aide ainsi à prendre les bonnes décisions.
Notre solution offre à la direction du center d’exporter ces rapports dans des fichiers Excel.
-L’employé 1062 peut organiser une éventuel activité avec le contact 1061.
-L’employé 1062 peut prévoir une prochaine communication avec le même contact 1061 pour
suivi.
-l’employé peut planifer une réunion avec le contact 1061, en cas de besoin.
Rapport d’activité de l’employé 1062 (rapport peut être journalier ou selon le besoin de la
direction)
- A la fin de la communication un email sera envoyé au contact 1061 pour lui informer si
l’opportunité est accepter ou non et un fichier PDF qui résume les données du client est crée.
Modèle d’un email pour une opportunité acceptée (figure 4.33).
Modèle d’un email pour une opportunité perdue (figure 4.34).
Fichier PDF résumant les données du contact 1061 (figure 4.35).
F IGURE 4.33: Mail d’une opportunité F IGURE 4.34: Mail d’une opportunité
acceptée perdue
4.4 Conclusion
Dans ce dernier chapitre, nous avons présenté l’environnement de travail et les outils de
développement. Nous avons bien détaillé les différentes interfaces que nous avons développées
tout au long de ce projet.
Notre projet de fin d’étude a été réalisé au sein de l’entreprise «Softifi». Il se situe dans le
monde des progiciels de gestion intégrée ERP.
Dans ce cadre nous avons implémenté un module de gestion téléphonique pour un centre
d’appel, nous avons réalisé une solution qui permet de numériser et automatiser presque toutes
les taches d’un centre d’appel intitulé «Softifi Call Center».
Pour assurer un développement d’une solution flexible et répondant aux besoins, nous sommes
partis d’une présentation de contexte général du projet avant de décrire et de comprendre les
principaux concepts des ERP et particulièrement le progiciel libre Odoo.
Ce travail nous a permis de mettre en valeur nos connaissances acquises tout au long du
parcours académique de la formation d’ingénieur, il s’agit du premier pas vers l’insertion dans
l’environnement de la vie professionnelle effective. Par ailleurs, nous avons eu l’opportunité
d’intégrer et de prendre connaissance de l’ERP Odoo, ainsi que les avantages du langages
Python et XML, ce qui nous a permit de bien renforcer d’une part les connaissances théoriques
et de les valider en pratique.
Nous avons travaillé en équipe, nous avons aussi eu l’occasion d’apprendre comment présenter
un travail ou un projet devant des ingénieurs et les personnels de la société aussi comment
organiser et assister des réunions.
Nous avons aussi appris comment effectuer un travail bien organisé, rigoureux et méthodique
dans la gestion de tous les probleme et tache dans une société.
Enfin, ce projet a été bénéfique surtout avec l’aide et l’intégration dans l’équipe de la société
Softifi que je remercie encore tous ses membres.
[2] Définition CRM : «Apport des applications de CRM comprises dans les progiciels de
gestion intégrés aux TPE et PME.» Toussaint, Marius
[5] Scrum : «Le Guide Scrum - Le guide de Référence de Scrum : Les règles du jeu»
Ken Schwaber Jeff Sutherland (Novembre 2020)
[10] VoIP : «La Voix sur IP (VoIP) : une opportunité pour la sécurité ?» Nicolas Dubée
[16] PostgreSql : Tout ce que vous devez savoir sur PostgreSQL. Disponible sur :
https ://www.oracle.com/fr/database/definition-postgresql.html.
[19] XML (Extensible Markup Language) : définition et description simple. Disponible sur :
https ://www.journaldunet.fr/web-tech/dictionnaire-du-webmastering/1203615-xml-extensible-
markup-language-definition-traduction/.
Résumé :
Le présent rapport a été rédigé dans le cadre d’un projet de fin d’études en vue de l’obtention du
diplôme national d’ingénieur en génie Electrique. Ce projet a été effectué au sein de l’entreprise
Softifi dont l’objectif est de développer une solution pour l’implémentation d’un produit pour
un centre d’appel. Cette solution inclut une partie CRM, une partie supervision du personnel et
enfin une section des rapports et des statistiques.
Mots clés :Odoo , Python , XML, Asterisk, VoIP.
Abstract : This report is a segment of a graduation project for the national diploma of electrical
engineer. it was carried out within the company Softifi, whose ojective is to develop a solution
for the implementation of Call Centers product. This solution iclude a CRM, a staff supervision
and a reports ans statistics section.
Key-words :Odoo , Python , XML, Asterisk, VoIP.