Année universitaire: 2013– 2014
SUJET : MISE EN PLACE D’UNE PLATEFORME DE PRISE DE
RENDEZ-VOUS AUTONOME SOUS ASTERISK
MEMOIRE DE FIN DE CYCLE
Pour l’obtention du :
DIPLOME UNIVERSITAIRE DE TECHNOLOGIE(D.U.T)
Lieu de stage : EmC2-Group Durée de stage : 45 jours
ECOLE SUPERIEURE POLYTECHNIQUE
DEPARTEMENT GENIE INFORMATIQUE
TELECOMS-RESEAUX
Centre de Dakar
REPUBLIQUE DU SENEGAL
UNIVERSITE CHEIKH ANTA DIOP DE DAKAR
Présenté et soutenu par : Serigne Fallou NDIAYE
Professeur encadreur : Mr. Ibrahima GAYE
Maître de stage: Mr. Thierno KANE
UCAD/ESP/DGI Serigne Fallou NDIAYE
2
TABLE DES MATIERES
Table des figures ..................................................................................................................................................... 4
Dédicaces ................................................................................................................................................................ 5
Remerciements....................................................................................................................................................... 6
Avant-propos .......................................................................................................................................................... 7
Abstract................................................................................................................................................................... 8
Introduction ............................................................................................................................................................ 9
Chapitre I : Présentation Générale........................................................................................................................ 10
1. Présentation d’EmC2-Group.................................................................................................................... 11
1.1 Le département informatique................................................................................................................ 12
1.2 Le département Télécommunication ..................................................................................................... 12
1.3 Le département Electronique................................................................................................................. 14
1.4 Le département Energie......................................................................................................................... 14
2. Présentation du sujet............................................................................................................................... 14
2.1 Problématique........................................................................................................................................ 14
2.2 Objectifs ................................................................................................................................................. 15
Chapitre II : Analyse de l’existant et étude prealable........................................................................................... 16
1. Analyse de l'existant ..................................................................................................................................... 17
2. Critique de l'existant..................................................................................................................................... 17
3. Solutions proposées...................................................................................................................................... 17
Chapitre III : Etude globale de la téléphonie sur IP .............................................................................................. 19
I. Présentation de la ToIP.................................................................................................................................. 20
1. La téléphonie par circuit et par parquet................................................................................................... 20
2. La problématique de base de la téléphonie sur IP ................................................................................... 21
3. Avantage de la ToIP.................................................................................................................................. 22
4 .Les différentes solutions de ToIP open source......................................................................................... 23
5. Conclusion ................................................................................................................................................ 23
II. La plateforme Asterisk.................................................................................................................................. 23
1. Architecture.............................................................................................................................................. 24
2. Caractéristiques........................................................................................................................................ 25
3. Fonctionnalités......................................................................................................................................... 26
4. Avantages et inconvénients ..................................................................................................................... 27
III. Etude sur les serveurs vocaux interactifs..................................................................................................... 27
1. Introduction.............................................................................................................................................. 27
2. Définition.................................................................................................................................................. 28
UCAD/ESP/DGI Serigne Fallou NDIAYE
3
3. Rôle d’un SVI............................................................................................................................................. 28
4. Les types de base d’un SVI ....................................................................................................................... 29
5. Fonctionnement d’un SVI......................................................................................................................... 30
6. L’interaction Clients-SVI / SVI-Clients....................................................................................................... 31
7. La synthèse vocale................................................................................................................................... 35
8. Conclusion ................................................................................................................................................ 36
Chapitre IV : Description et mise en place de la plateforme................................................................................ 37
I. Description..................................................................................................................................................... 38
1. Les acteurs de la plateforme .................................................................................................................... 38
2. Les fonctionnalités de la plateforme ............................................................................................................ 38
II. Réalisation de la plateforme......................................................................................................................... 39
1. Architecture de la plateforme .................................................................................................................. 39
2. Prérequis et outils nécessaires :............................................................................................................... 40
3. Mise en place du serveur vocal interactif................................................................................................. 40
3.3 Mise en place de la passerelle GSM avec chan_mobile ......................................................................... 45
3.4 Mise en place d’une passerelle SMS avec chan_dongle ........................................................................ 48
3.5 Mise en oeuvre du Serveur Vocal Interactif........................................................................................... 52
3.6 Création des fichiers sons....................................................................................................................... 55
4. INTERFACE DE TEST...................................................................................................................................... 59
5. Déploiement en ligne.................................................................................................................................... 60
Conclusion générale et perspectives .................................................................................................................... 60
Bibliographie ET Webographie.............................................................................................................................. 62
glossaire ................................................................................................................................................................ 63
Annexes................................................................................................................................................................. 65
UCAD/ESP/DGI Serigne Fallou NDIAYE
4
TABLE DES FIGURES
Figure 1: organigrammes de l'entreprise ............................................................................................................... 11
Figure 2: Technique de transfert de paquets ......................................................................................................... 20
Figure 3: Un flot de paquets téléphoniques........................................................................................................... 21
Figure 4: Architecture d’Asterisk.......................................................................................................................... 25
Figure 5: Carte vocale Digium.............................................................................................................................. 25
Figure 6: Les API d’Asterisk ................................................................................................................................ 26
Figure 7: Couplage Téléphonie Informatique ....................................................................................................... 30
Figure 8: Fonctionnement d’un SVI ..................................................................................................................... 31
Figure 9: Tableau récapitulatif des différentes fréquences du standard DTMF .................................................... 32
Figure 10: Processus de la reconnaissance vocale ................................................................................................ 33
Figure 11:Processus de la synthèse vocale............................................................................................................ 35
Figure 12: Architecture de la plateforme .............................................................................................................. 39
UCAD/ESP/DGI Serigne Fallou NDIAYE
5
JE DEDIE LE FRUIT DE CE TRAVAIL
À mes parents
À qui
Je dois ce que je suis aujourd’hui.
Que la paix du Tout Miséricordieux
Et Sa Bénédictions les accompagnent.
Que le Bon Dieu accorde une longue vie à ma mère NDEYE KANDJI
Et le paradis à mon père El Hadj CHEIKH NDIAYE (paix à son âme).
À ma famille et surtout à mes amis
Pour leurs soutiens et encouragements continus.
Que Dieu les protège.
À mes professeurs
Du collège, du lycée et de l’université
Qui m’ont toujours soutenue et encouragé.
DEDICACES
UCAD/ESP/DGI Serigne Fallou NDIAYE
6
C’est avec un grand plaisir que je réserve ces lignes en signe de gratitude et de reconnaissance
à tous ceux qui ont contribué de près ou de loin à l’élaboration de ce travail.
Je tiens tout d’abord à remercier Allah le Tout Puissant, Son Prophète Mouhamed (PSL)
et notre vénéré guide Cheikh Ahmadou Bamba qui nous a montré le droit chemin.
J’exprime ma reconnaissance à mon mentor Kalidou SY. Une personne généreuse à qui sa
disponibilité, ses conseils et son aide sont autant d’éléments qui ont permis la réalisation de ce
travail.
La qualité de ce projet fut enrichie par l’apport de mon cher ami et promotionnaire
Bassirou Ngom. Qu’il reçoive également toute ma gratitude pour les suggestions et
conseils qu’il a pu me prodiguer.
Mes remerciements vont également à l’endroit de l’entreprise EmC2-Group qui m’a offert
l’opportunité de réaliser ce projet dans de bonnes conditions ; à Monsieur Elimane KANE pour
son soutien et ses conseils ; à mon maitre de stage Monsieur Thierno KANE qui m’a soutenu
tout le long de ce travail et à tout le personnel de l’entreprise.
J’exprime ma gratitude à mon encadreur Monsieur IBRAHIMA GAYE, pour l’effort fourni, les
conseils prodigués et pour son soutien sans condition.
Mes plus tendres pensées iront vers ma famille (mes frères, mes sœurs, mes cousins, mes
cousines, mes tantes et tontons), et surtout à mes parents, ma mère, mon père (paix à son âme)
Ces remerciements ne seraient pas complets sans une pensée pour mes meilleurs amis
et amies de longue date. Merci de m’avoir aidé et encouragé, et d’être présent quand j’en ai
besoin.
REMERCIEMENTS
UCAD/ESP/DGI Serigne Fallou NDIAYE
7
L’école supérieure polytechnique (E.S.P) forme en deux années d’études des techniciens
supérieurs, et en cinq ans des ingénieurs dans plusieurs spécialités. Dans le cadre de leur
formation les étudiants de fin de chaque cycle sont tenus d’effectuer un stage pratique au sein
d’une entreprise.
Ce stage en entreprise est un moment privilégié de mise en pratique des enseignements
reçus. Il permet tout d’abord à l’étudiant de faire une application réelle des connaissances
théoriques. Ensuite, il emmène l’étudiant à transformer les acquis pédagogiques en savoir-
faire et savoir être, lui permettant de se positionner dans le milieu professionnel ainsi, de
s’impliquer comme un acteur véritable dans le processus de l’entreprise. En outre, il doit
permettre à l’étudiant de mettre en évidence, son niveau de maturité, son autonomie et sa
capacité à s’évaluer en dehors du milieu scolaire, dans le strict respect des règles du monde du
travail.
A la fin de ce stage, l’étudiant doit produire un mémoire et le soutenir devant un jury. Ce
document décrit les activités effectuées au sein de la structure d’accueil en rapport avec un
sujet ou projet qui lui a été confié. C’est dans ce cadre que nous venons à présenter ce
document.
AVANT-PROPOS
UCAD/ESP/DGI Serigne Fallou NDIAYE
8
My training course was held at the company EMC2-GROUP.
This is a Senegalese company founded by young engineers and scientists of many nationalities,
which aims to make available to customers the latest technologies.
Service provider, the company is involved in Telecommunications, Electronics, Computer and
Energy.
My project was to create a platform for making appointments under asterisk.
This platform enables service agencies, individuals and offices to plan their calendar
appointments and manage the allocation of appointments independently. Indeed, customers call
a dedicated number and the server offers them a choice on appointments available.
The implementation of this platform lasted six weeks and allowed me to gain a lot of experience
on the VoIP technology and development of web application. The basis of this platform is
essentially and primarily on IVR with asterisk.
ABSTRACT
UCAD/ESP/DGI Serigne Fallou NDIAYE
9
Avec l’émergence de la téléphonie IP, le secteur des services, informatiques et télécoms, à
valeur ajoutée connaît de nos jour un progrès sans précédent. L’avènement du serveur vocal
interactif en est un des plus beaux exemples. Le SVI (Serveur Vocal Interactif) qui fut l’apanage
des grandes entreprises devient accessible aux plus petites. Il fonctionne souvent avec des
messages préenregistrés qu'il diffuse, mais peut aussi utiliser un synthétiseur vocal pour
générer son discours. Le SVI constitue une aide appréciée par toutes les PME qui veulent
optimiser la qualité de leurs services clients, en permettant notamment une accessibilité
24h/24 et une liaison personnalisée avec les bases de données de l'entreprise. A cet effet,
il convient de se poser la question de savoir : Quelles genres de plateformes et services mettre
en place pour concevoir et développer des applications permettant à tout un chacun de
bien s’approprier les merveilles de ces technologies?
A ce titre, il s’avère raisonnable de disposer d'une solution efficace et moins coûteuse.
Pour répondre à ce besoin, il existe des logiciels sur le marché, à l'instar d’Asterisk qui est un
logiciel libre.
Asterisk est un IPBX, c'est à dire un commutateur téléphonique qui fonctionne aussi bien sur
le réseau téléphonique traditionnel que sur les nouveaux réseaux Internet (IP). Il est
généralement utilisé sur un système d'exploitation à base d'Unix (Linux, BSD, Unix).
Ainsi la recherche à mener dans ce projet doit améliorer la communication entre un
système d’informations et ses utilisateurs au travers de l’analyse et de la conception de
l’interface homme-machine.
C'est dans cette optique que le projet de « Mise en place d’une plateforme de prise de
Rendez-vous autonome sous asterisk » nous a été confié.
Après avoir présenté le sujet, on fera une théorique sur la téléphonie IP. Ensuite nous faisons
une description détaillée des technologies utilisées. Enfin nous allons mettre en place la
plateforme de prise de rendez-vous sous asterisk.
INTRODUCTION
UCAD/ESP/DGI Serigne Fallou NDIAYE
10
CHAPITRE I : PRESENTATION GENERALE
UCAD/ESP/DGI Serigne Fallou NDIAYE
11
1. PRESENTATION D’EMC2-GROUP
Créé en 2010 par de jeunes ingénieurs et chercheurs de plusieurs nationalités, EmC2 est une
entreprise spécialisée dans les TIC. Fournisseur et prestataire de services, l’entreprise
intervient dans les domaines de l’Electronique, l’Energie, l’Informatique et les
Télécommunications. Sa devise est de fournir aux clients les technologies de dernière
génération. Ainsi, EmC2 est spécialisée dans le développement logiciel, les ventes de biens
électroniques et informatiques (routeurs, modems, caméras IP,…), les technologies de paiement
mobile, les énergies renouvelables, etc.
Composée d’une équipe dynamique et expérimentée, son capital humain montre une valeur
extraordinaire à travers son savoir-faire et sa qualité de service. L'encadrement de son
personnel est assuré grâce à des formations régulières sur les nouvelles technologies. En
fonction de ses différents départements, l’entreprise EmC2 offre à ses clients une diversité de
services d’installation et de maintenance des réseaux télécom, informatiques, et électriques, de
développement logiciel et de fournitures de biens et d’équipements.
 Les locaux de l’entreprise se situent à l’adresse suivante :
4, Cité Comico II, VDN-Dakar
 Les contacts :
contact@emc2-group.com
Tel: +221 30 114 16 24 / +221 33 867 19 67
Site : www.emc2-group.com
 Distinction :
EmC2 a été primée par le Comité « Business Iniative and Directions » (www.bid-org.com) les
26 & 27 Octobre 2013 à Paris au titre de :
« INTERNATIONAL GOLD STAR FOR QUALITY ».
Figure 1: organigrammes de l'entreprise
UCAD/ESP/DGI Serigne Fallou NDIAYE
12
1.1 LE DEPARTEMENT INFORMATIQUE
Depuis sa création, EmC2 a développé dans le cadre de ses activités, une connaissance
éprouvée dans les technologies Java/J2EE et PHP5 qui constituent aujourd’hui ses domaines
d’expertise ; ce qui lui permet aujourd’hui de gagner la confiance de ses clients qui attendent
des solutions simples et adaptées à leurs besoins.
EmC2 mise sur les technologies open source. De nombreux logiciels libres atteignent
ou dépassent la qualité des solutions propriétaires et ont en plus, l’avantage de donner
une indépendance vis-à-vis d’un éditeur. Aujourd’hui l’open source connaît de plus en
plus de notoriété.
Ainsi, les principaux services fournis par ce département sont :
● La Monétique : avec notre système de paiement par carte et sur internet
● Contrôle d’accès par cartes
● La conception de sites web
● Le développement de solutions Open Source
● Le développement de technologies Web et mobile, spécifiques aux besoins de chaque client.
● L’audit et les conseils informatiques
Les principales réalisations au sein de ce département sont les suivantes:
 Plateforme de Géolocalisation qui donne la vitesse et la position des véhicules grâce
aux balises GPS ou aux téléphones portables, en temps réel.
 Système de paiement par cartes électroniques rechargeables et jetables
(Restaurants, Supers Marchés, Bus, Banques, Ecoles, Universités, Station d’essence,
etc.).
 Système de pointage horaire par badges électroniques
 Système de Recouvrement des recettes municipales par téléphones mobiles
 Système de collecte de données à partir de formulaires embarqués dans les
Smartphones. Pour des campagnes de recensement, d’enquête, sondage, étude de
marché, etc.
 Le site www.jevousoffre.com
 Le site www.osez-vert.com
 Le site www.senfive.com
 Le site www.avenuemarchand.com
 Le site www.harmattan-senegal.com
 Le site www.agenceculturelleafricaine.ch
 Le site www.emc2-group.com
 Etc.
1.2 LE DEPARTEMENT TELECOMMUNICATION
Les opérateurs télécoms disposent d’un vaste réseau aussi bien mobile que fixe.
L’exploitation de ce réseau et son extension représentent un enjeu considérable pour ces
UCAD/ESP/DGI Serigne Fallou NDIAYE
13
derniers. EmC2 dispose de solutions adaptées pour aider les opérateurs à garantir à leurs
clients des services de qualité.
EmC2 installe également les éléments du réseau comme les stations de base BTS/NODEB, les
BSC/RNC, …, gère les intégrations d’antennes RF MW, la recherche et négociation des sites,
l’ingénierie design APD et AS-built. Aussi, l’entreprise se propose-t-elle d’accompagner
chaque partenaire, dans la mise en place des réseaux électriques, LAN et téléphonie
d’entreprise. De plus, elle offre un service d’audit des réseaux télécoms ainsi qu’un contrôle
sur toutes les étapes de la progression de l’installation des réseaux.
Ce département fournit les services suivants :
 La construction de sites GSM, CDMA, Node B, BSC, RNC
 Le survey des sites GSM, FH et confection des APD : Avant-Projet Détaillé
 L’entretien et la construction des pylônes de toutes sortes (haubanés ou auto stables)
 L’installation et la mise en service des baies d’énergie
 La configuration ou upgrade des sites BTS pour optimisation réseau
 Le commissioning et l’acceptance des sites GSM (MBI, MBO, CBO)
 La maintenance et la mesure corrective de VSWR, ROS sur des installations GSM
 L’assemblage des shelters de toutes sortes (Alga, Zeppelin, ZDMI, How Stone) et de
pylônes
 L’audit des installations pour l’amélioration de service
 Le développement et l’installation de solutions en Réseau et Informatique
 Le câblage des réseaux IP
 L’interconnexion des sites par VPN
 Les services relatifs aux solutions WIFI (déploiement, Itinérance, Sécurité…)
 Le développement de solutions VoIP/ToIP
Nos solutions de téléphonie sur IP permettent de réduire considérablement les coûts de
communication des entreprises, particuliers et organisations. Elles présentent les avantages
suivants :
 une communication gratuite au sein de toute une entreprise (PC, Smart Phone,
appareil fixe)
 le paiement d’un montant forfaitaire pour des communications vers une centaine de
pays étrangers 24h/7j.
 la mise en place d’un centre d’appel
 la gestion de files d’attentes
 l’utilisation de la fonction Transfert d’appels (transfert d’appels lors de non réponse,
sur occupation de poste,...)
 la possibilité de planifier et/ou d’initier des conférences téléphoniques (Salles de
conférence, recherche d’extensions/utilisateurs)
 les appels vidéo, le chat la mise en place d’un Serveur Vocal,
 etc.
UCAD/ESP/DGI Serigne Fallou NDIAYE
14
1.3 LE DEPARTEMENT ELECTRONIQUE
Dans ce département, des ingénieurs en électronique programmable et
électrotechniciens s’occupent essentiellement de la programmation des microcontrôleurs et
interfaces GSM, ainsi que de toute activité relative à ce domaine. Les principales activités au
sein de ce département sont citées comme suit :
● La vente de consommables:
 Routeur 3G/WIFI compatible avec les clés Expresso, Orange et Tigo
 Caméra IP (Visibilité diurne et nocturne), motorisée
 Antennes Omnidirectionnelles de 1Km de rayon
 Routeur avec OS Linux modifiable pour les développeurs
● La mise en place de système de géolocalisation permettant :
 La gestion centralisée en temps réel d’un parc automobile
 L’immobilisation de véhicule en cas de vol par un code SMS.
● La mise en place de systèmes de vidéo surveillance
● La mise en place de systèmes en domotique
1.4 LE DEPARTEMENT ENERGIE
Ce département regroupe des ingénieurs et des techniciens en électricité. Il propose les
services suivants :
 La fourniture et l’installation de systèmes de secours électrique (Backup Batterie)
 L’installation solaire
 La fourniture et l’installation de compteurs électriques spéciaux, gérés grâce à
des microcontrôleurs embarqués et connectés à des téléphones mobiles
embarqués pour envoyer la consommation journalière du client, et être en
mesure d’effectuer une coupure et un rétablissement à distance par SMS.
2. PRESENTATION DU SUJET
2.1 PROBLEMATIQUE
Ce projet a été mis sur pied dans le souci d’aider les agences de service, les
cabinets de consultation et les entreprises à gérer de façon efficiente leur agenda d’attribution
de rendez-vous pour leurs clients et leurs patients.
En effet, au Sénégal, le constat est que la prise de rendez-vous au niveau des agences de service,
des centres médicaux, des entreprises, peut être une opération fastidieuse pour la population.
Très souvent, pour prendre un rendez-vous on est obligé de se pointer dans les locaux de la
structure sans pour autant être sûre de la disponibilité de leur agenda. Cela peut s’avérer très
couteux en termes de temps et d’argent.
UCAD/ESP/DGI Serigne Fallou NDIAYE
15
Cependant, le développement des nouvelles technologies notamment dans le domaine des
télécommunications offre des solutions simples pour pallier ce problème.
Voilà, en résumé, le contexte qui justifie l’intérêt de ce sujet de stage portant exclusivement sur
la gestion à distance des Rendez-Vous.
2.2 OBJECTIFS
EmC2-Group, en tant que prestataire de services, s’intéresse beaucoup à
l’automatisation des tâches récurrentes qui sont effectuées dans les entreprises ; et la gestion
des rendez-vous entre dans ce cadre.
Donc son objectif est de proposer un service unique et irréprochable dans ce domaine, c’est
dans cet ordre d’idée que nous nous proposons de réaliser ce travail aussi passionnant
qu’il soit de mettre en place un système basé sur la ToIP qui soit capable de dialoguer avec les
clients et le système d’information de la structure afin de gérer avec autonomie le calendrier
des rendez-vous.
En principe, il s’agit d’une part, d’un serveur vocal interactif qui va permettre aux appelants de
faire un choix parmi les différentes structures qui sont présentes dans le système afin de prendre
un rendez-vous avec l’une d’elle. En fonction du choix fait, le système va exécuter des scripts
qui vont interroger la base de données et renvoyer les dates de rendez-vous disponibles. Ensuite,
le serveur se chargera d’annoncer la date et l’heure du rendez-vous qu’il a fixé à l’appelant.
Cette notification se fera vocalement via l’IVR mais aussi par sms
D’autre part, il sera question de concevoir une plateforme web qui va permettre aux différentes
structures de planifier leur agenda, de visualiser les rendez-vous attribués par le système,
d’annuler ou de reporter des rendez-vous, de contacter l’administrateur (EmC2-Group) et les
autres structures qui sont abonné au système. Et enfin une interface d’administration destinée à
EmC2-Group.
Pour arriver à mettre en place cette application nous utiliserons le Serveur PABX « Open
source » Asterisk qui constituera le noyau du projet.
UCAD/ESP/DGI Serigne Fallou NDIAYE
16
CHAPITRE II : ANALYSE DE L’EXISTANT ET
ETUDE PREALABLE
UCAD/ESP/DGI Serigne Fallou NDIAYE
17
Ce chapitre est destiné à décrire ce qui existait dans l’entreprise et relatif au projet avant
sa mise en place.
1. ANALYSE DE L'EXISTANT
EmC2-Group est un prestataire de service reconnu dans le domaine de l’informatique et
des télécommunications notamment dans les services de VoIP.
En effet, l’entreprise dispose déjà d’un serveur Asterisk en ligne. En d’autres termes, elle est un
fournisseur de ToIP. En effet, toute personne qui dispose d’un compte utilisateurs au niveau de
l’entreprise peut s’enregistrer auprès du serveur et bénéficier des services n’importe où dès lors
qu’il a accès à internet.
Ce serveur est déployé sur un Cloud avec une adresse IP publique et un nom de domaine
spécifique. Les fonctionnalités de ce serveur sont entre autre :
 Emission et réception d’appel
 SVI de redirection d’appel
 Messagerie vocale
2. CRITIQUE DE L'EXISTANT
Les critiques vont porter principalement sur les services offerts par le serveur Asterisk
de l’entreprise déployé en ligne.
Si on revient sur l’analyse de l’existant, on remarque que les fonctionnalités mentionnées dans
cette partie sont bien intéressantes mais insuffisantes et à la limite même trop standards.
En effet, les fonctionnalités déployées sont des fonctionnalités standards d’un serveur Asterisk ;
il s’agit juste de quelques configurations de base à la portée de tout technicien avec quelques
notions sur Asterisk. Certes l’essentiel est là mais on ne trouve aucun service original qui
pourrait rendre attractif le serveur et le différencier des autres.
De plus, aucun dispositif pouvant servir de passerelle avec le monde GSM ou RTC n’est mis
en place.
Par ailleurs, l’entreprise ne dispose pas d’une application web qui permettrait d’administrer
avec facilité ce serveur en ligne. En effet, pour créer des comptes utilisateurs, on est obligé
d’éditer plusieurs fichiers de configuration et ensuite redémarrer le serveur avec des lignes de
commande. Cela exige donc la présence d’une personne maitrisant les configurations dans
Asterisk.
Comme l’entreprise se veut être leader dans les services de VoIP au Sénégal et qu’elle est
consciente qu’un opérateur sans services et un opérateur voué à la disparition, elle a pris les
devants en proposant des solutions uniques et originales dans ce domaine. Ce projet que nous
comptons réaliser en est la parfaite illustration.
3. SOLUTIONS PROPOSEES
Tous d’abord nous avons décidé de travailler en local pour raisons techniques liés à
l’utilisation de certains dispositifs physiques que nous allons employer pour la réalisation du
projet.
UCAD/ESP/DGI Serigne Fallou NDIAYE
18
Donc voici comment on a décidé de procéder :
- Mettre en place un serveur Asterisk en local
- Configurer ce serveur avec les services de base identiques à ceux qu’on a dans le serveur
en ligne
- Mettre en place le service de prise de rendez-vous dans ce serveur
- Mettre en place une interface web pour l’administration de ce serveur à savoir la création
des comptes utilisateurs et d’abonnement, la visualisation de l’historique des appels…
- Faire un Trunk entre ce serveur local et celui qui est en ligne
- Faire une redirection de port au niveau du routeur pour que le serveur soit accessible à
travers le net.
UCAD/ESP/DGI Serigne Fallou NDIAYE
19
CHAPITRE III : ETUDE GLOBALE DE LA
TELEPHONIE SUR IP
UCAD/ESP/DGI Serigne Fallou NDIAYE
20
I. PRESENTATION DE LA TOIP
1. LA TELEPHONIE PAR CIRCUIT ET PAR PARQUET
Dans la communication à transfert de paquets, toutes les informations à transporter sont
découpées en paquets pour être acheminées d’une extrémité à une autre du réseau. Cette
technique est illustrée à la figure 1 ci-dessous. L’équipement terminal A souhaite envoyer un
message à B. Le message est découpé en trois paquets, qui sont émis de l’équipement terminal
vers le premier nœud du réseau, lequel les envoie à un deuxième nœud, et ainsi de suite, jusqu’à
ce qu’ils arrivent à l’équipement terminal B. Dans l’équipement terminal les paquets rassemblés
reconstituent le message de départ. Le paquet peut en fait provenir de différents médias. Sur la
figure, nous supposons que la source est un message composé de données, comme une page de
texte préparée au moyen d’un traitement de texte. Le terme message est cependant beaucoup
plus vaste et recoupe toutes les formes sous lesquelles de l’information peut se présenter. Cela
va d’une page Web à un flot de parole téléphonique représentant une conversation. Dans la
parole téléphonique, l’information est regroupée pour être placée dans un paquet, comme
illustré à la figure 2. Le combiné téléphonique produit des octets, provenant de la numérisation
de la parole, c’est-à-dire le passage d’un signal analogique à un signal sous forme de 0 et de 1,
qui remplissent petit à petit le paquet. Dès que celui-ci est plein, il est émis vers le destinataire.
Une fois le paquet arrivé à la station terminale, le processus inverse s’effectue, restituant les
éléments binaires régulièrement à partir du paquet pour reconstituer la parole téléphonique.
Le réseau de transfert est lui-même composé de nœuds, appelés nœuds de transfert, reliés entre
eux par des lignes de communication, sur lesquelles sont émis les éléments binaires constituant
les paquets. Le travail d’un nœud de transfert consiste à recevoir des paquets et à déterminer
vers quel nœud suivant ces derniers doivent être acheminés.
Figure 2: Technique de transfert de paquets
UCAD/ESP/DGI Serigne Fallou NDIAYE
21
Figure 3: Un flot de paquets téléphoniques
2. LA PROBLEMATIQUE DE BASE DE LA TELEPHONIE SUR IP
La voix sur IP adresse deux types d’applications : celles qui, comme la téléphonie,
mettent en jeu une interaction humaine, laquelle implique un temps de transit très court, et
celles qui transportent des paroles unidirectionnelles, qui n’exigent pas de temps réel. Cette
dernière catégorie rassemble essentiellement des transferts de fichiers contenant de la parole.
La téléphonie transportée par paquets, et plus particulièrement par paquet IP, permet d’intégrer
dans un même réseau les services de données et la téléphonie. Les entreprises sont de plus en
plus nombreuses à intégrer leur environnement téléphonique dans leur réseau à transfert de
paquets. Les avantages de cette intégration sont, bien sûr, la baisse des frais de communication,
mais aussi la simplification de la maintenance de leurs réseaux, qui passent de deux (téléphonie
et données) à un seul (données).
La difficulté de la téléphonie par paquets réside dans la très forte contrainte temporelle due à
l’interaction entre individus. Le temps de latence doit être inférieur à 300 ms si l’on veut garder
une interaction humaine acceptable. Si l’on souhaite une bonne qualité de la conversation, la
latence ne doit pas dépasser 150 ms. Un cas encore plus complexe se produit lorsqu’il y a un
écho, c’est-à-dire un signal qui revient dans l’oreille de l’émetteur. L’écho se produit lorsque
le signal rencontre un obstacle, comme l’arrivée sur le combiné téléphonique. L’écho qui repart
en sens inverse est numérisé par un codec (codeur-décodeur) et traverse sans problème un
réseau numérique. La valeur normalisée de la latence de l’écho étant de 56 ms, pour que l’écho
ne soit pas gênant à l’oreille, il faut que le temps aller ne dépasse pas 28 ms, en supposant un
réseau symétrique prenant le même temps de transit à l’aller qu’au retour. Il faut donc que, dans
les équipements terminaux, les logiciels extrémité soient capables de gérer les retards et de
resynchroniser les octets qui arrivent. Les équipements modernes, comme les terminaux GSM,
possèdent des suppresseurs d’écho évitant cette contrainte temporelle forte. Une autre
caractéristique essentielle de la téléphonie provient du besoin d’avertir par une sonnerie la
personne qui est appelée. La communication téléphonique est pour cela décomposée en deux
phases : une première permettant d’avertir le destinataire, et une seconde correspondant au
transport de la parole proprement dite. Il existe en réalité une troisième phase, qui consiste en
UCAD/ESP/DGI Serigne Fallou NDIAYE
22
la finalisation de la communication lorsqu’un des deux terminaux raccroche. Cette phase utilise
le même type de protocole que la première : un protocole de signalisation.
3. AVANTAGE DE LA TOIP
La téléphonie n’a jamais été une application simple. Les contraintes temps réel et de
synchronisation pèsent lourdement sur sa mise en œuvre, et la téléphonie par paquet ne fait que
compliquer le transport.
Cependant, plusieurs raisons expliquent le succès de la téléphonie par paquet, et plus
spécifiquement de la téléphonie sur IP :
 Convergence
Quel que soit le type de données véhiculées, le réseau est unique : les flux de voix, de
vidéo, de textes et d’applicatifs transitent sur le même réseau. Les communications
deviennent plus riches, et sans avoir besoin de multiplier les canaux de transport.
 Optimisation des ressources.
Le réseau IP utilisant un transfert de paquets, l’utilisation des ressources est optimisée en
comparaison des solutions de type commutation de circuits. Dans le réseau RTC, qui est à
commutation de circuits, des ressources sont dédiées pour toute la durée de la communication,
qu’elles soient utilisées ou non. Or les très nombreux silences d’une conversation téléphonique
rendent le dimensionnement du canal réservé systématiquement trop grand. Pour que la voix
supporte simultanément la superposition des deux paroles correspondant aux deux intervenants
d’une communication téléphonique (full-duplex), les réseaux RTC doivent allouer pour chaque
intervenant des canaux différents, l’un en émission, l’autre en réception. Dans la pratique, lors
d’une conversation téléphonique, une seule personne parle en même temps. Les ressources sont
donc globalement gaspillées. C’est pourquoi la réservation effectuée dans les réseaux RTC
représente un coût nettement supérieur à celui des réseaux IP.
 Coût de transport quasiment nul.
Grâce à l’intégration de la téléphonie parmi de nombreuses autres applications, le coût du
transport devient pratiquement nul. Le réseau permettant d’effectuer le transport est le réseau
cœur des opérateurs, celui qui effectue tous les transports de données. Ces opérateurs, qui
étaient auparavant obligés de maintenir au moins deux réseaux, celui de téléphonie et celui de
données, n’en ont plus qu’un seul à maintenir. L’intégration supplémentaire de la télévision
dans le réseau de données fait également chuter les coûts de transport de cette application.
 Services exclusifs.
Certains services sont propres aux réseaux IP. Par exemple, le service de présence, consistant à
détecter si un utilisateur est connecté au réseau ou non, ne nécessite aucune réservation de
ressources dans un réseau IP, à la différence du réseau RTC. De façon analogue, pour le
nomadisme des utilisateurs, il est plus simple de passer, partout dans le monde, par le réseau IP
plutôt que par le réseau RTC.
UCAD/ESP/DGI Serigne Fallou NDIAYE
23
 Disparition des commutateurs locaux.
Liée à la précédente, cette nouvelle donne résulte de la possibilité de gérer les téléphones depuis
le réseau de l’opérateur (système Centrex). Des solutions intermédiaires, comme les PBX-IP,
permettent de passer petit à petit des circuits numériques aux liaisons paquet IP.
4 .LES DIFFERENTES SOLUTIONS DE TOIP OPEN SOURCE
Il existe aujourd’hui plusieurs solutions de téléphonie sur IP. Globalement elles utilisent
les mêmes principes de bases mais les fonctionnalités peuvent être différentes. Parmi celles-ci
on peut citer :
 FreeSWITCH
FreeSWITCH est un PBX IP open source créé en 2006. Il offre quasiment tout ce qu’un PBX
IP de renom comme asterisk dispose. Il implémente les différents types de signalisation à savoir
SIP, H323, MGCP ….
 Asterisk
Asterisk est un autocommutateur téléphonique privé (PABX) open source et propriétaire
(publié sous licence GPL et licence propriétaire) pour systèmes GNU/Linux. Asterisk
implémente les protocoles H.320, H.323 et SIP, ainsi qu'un protocole spécifique nommé IAX
(Inter-Asterisk eXchange). Ce protocole IAX permet la communication entre deux serveurs
Asterisk ainsi qu'entre client et serveur Asterisk. Asterisk peut également jouer le rôle de
registrar et passerelle avec les réseaux publics (RTC, GSM, etc.) Asterisk est extensible par
des scripts ou des modules en langage Perl, C, Python, PHP, et Ruby.
5. CONCLUSION
La téléphonie reste une des applications dominantes du monde des réseaux, et ce pour
encore de nombreuses années, en raison notamment de l’émergence de nouveaux et immenses
marchés, comme celui de la Chine. La VoIP reste aujourd’hui majoritairement prise en charge
par les réseaux à commutation de circuits, mais une forte concurrence s’exerce avec les réseaux
à transfert de paquets. Le passage vers le tout-IP téléphonique, permettant d’intégrer les services
de données et la téléphonie dans un même réseau, paraît inéluctable.
Cependant, parmi la panoplie de choix qui s’offre à nous, on a préféré travailler avec l’IPBX
Asterisk grâce notamment à sa facilité de mise en œuvre et les innombrables avantages qu’il
met à notre disposition.
II. LA PLATEFORME ASTERISK
Asterisk est un commutateur téléphonique privé à part entière mais d'implémentation
logicielle, compatible avec Linux et qui s'interconnecte avec quasiment tous les
équipements de téléphonie de base. Il rassemble plus de 100 ans de connaissance sur la
téléphonie dans une robuste suite d’applications de télécommunication fortement intégrées.
C’est probablement l’un des outils les plus puissants, les plus flexibles et les plus extensibles
fournissant tous les services de télécommunications qui soient.
Il a été développé par Mark Spencer à l'origine de l'entreprise Digium, et qui continue, grâce à
de nombreux contributeurs, à évoluer régulièrement. Ce logiciel a été conçu pour une
UCAD/ESP/DGI Serigne Fallou NDIAYE
24
flexibilité maximale et reste un système ouvert à de nouvelles applications. Asterisk
fournit toutes les fonctionnalités attendues d'un PABX mais aussi la voix sur IP et n'a
besoin d'aucun matériel supplémentaire pour l'assurer. Dans l'interconnexion avec les
équipements de téléphonie numériques et analogiques, Asterisk reconnaît une large gamme
de dispositifs matériels, et notamment ceux fabriqués par ses sponsors, tels que digium, ou
encore Quicknet. Asterisk offre des services tels que la conférence téléphonique, le répondeur
interactif, la mise en attente d'appels, la messagerie vocale, la musique d'attente, les
enregistrements d'appels pour l'intégration avec des systèmes de facturation, etc... Asterisk crée
un environnement unique qui peut être façonné pour s’adapter à n’importe quel cas
d’utilisation notamment en tant que serveur vocal interactif. Asterisk est conçu pour
s’interfacer avec n’importe quel dispositif logiciel ou matériel de télécommunication de
manière cohérente et progressive. Asterisk est un logiciel assez complexe, dont la
configuration peut être ardue. Il propose des options avancées de configuration et
d’ouverture parmi lesquelles nous avons une base de données interne et un système de
communication avec des applications externes : AGI.
AGI (Asterisk Gateway Interface) est une interface permettant de faire communiquer le plan
de numérotation (extensions.conf) avec des programmes extérieurs à Asterisk, écrits avec
des langages de programmation aussi divers que PHP, Perl, Python, C, Shell Linux.
AGI est matérialisé par l'écriture de scripts qui sont exécutés dans le plan de
numérotation. A chaque lancement d'un script AGI, Asterisk envoie au script un ensemble
de variables avec leurs valeurs. Les fonctionnalités des scripts AGI sont aussi diverses que le
langage de programmation choisi ne permet de possibilités. Il est entre autres possible de :
 Faire des requêtes dans une base de données (et ainsi lier un serveur Asterisk à une
application)
 Modifier les informations à l'affichage
 Améliorer les manipulations dans le plan de numérotation
 Améliorer le traitement des appels
 Créer un historique personnalisé
 Etc.
A cela s’ajoute la possibilité d'utiliser les autres applications de type AGI. A savoir :
 EAGI (): Permet de lire le canal son.
 DeadAGI (): Permet de contrôler les canaux désactivés (hangup/raccroché).
 FastAGI (): Permet au script d'être utilisé sur un serveur Asterisk distant.
1. ARCHITECTURE
Asterisk a une architecture très simple. Il se comporte comme un middleware
connectant les applications et les technologies de téléphonie. Il a tout d’abord été
développé sur GNU/LINUX pour x/86. Mais il a été soigneusement conçu pour une
flexibilité maximale. Ainsi les APIS spécifiques sont définies autour d'un système PBX
central. Ce noyau avancé manipule l’interconnexion interne du PBX proprement soustrait
des protocoles spécifiques, des codecs et des interfaces matérielles des applications de
téléphonie. Cela permet à Asterisk d'utiliser n'importe quel matériel approprié et
UCAD/ESP/DGI Serigne Fallou NDIAYE
25
technologie disponible (maintenant ou à l'avenir) pour exécuter ces fonctions essentielles,
en connectant le matériel et les applications.
Figure 4: Architecture d’Asterisk
 Equipement d’interconnexion
Il est à noter que pour un usage en interne, Asterisk ne nécessite aucun matériel
supplémentaire mais nécessite une ou plusieurs cartes pour atteindre le réseau téléphonique
commuté.
Exemple :
Figure 5: Carte vocale Digium
2. CARACTERISTIQUES
Les solutions de commutations téléphoniques d’Asterisk offrent un assortiment à
caractères riches et flexibles. Asterisk offre les fonctionnalités du PBX classique ainsi
que des caractéristiques avancées et fonctionne avec les systèmes traditionnels de
commutations téléphoniques à base standard et aussi avec les systèmes Voix sur IP. Asterisk
fournit toutes les caractéristiques souhaitables d’un large système PBX. Asterisk prend en
charge de nombreux protocoles MRT (Multi-Threaded Routing Toolkit) pour le traitement
et la transmission de la voix par les interfaces de téléphonie traditionnelle. Asterisk est
compatible avec les types de signalisations standards américaines et européennes utilisés
dans les systèmes téléphoniques d’affaire standard ; il établit un pont entre la prochaine
génération de réseaux d'intégration voix-données et les infrastructures déjà en place.
UCAD/ESP/DGI Serigne Fallou NDIAYE
26
Non seulement Asterisk est compatible avec les équipements de téléphonie traditionnels,
mais il étend leurs capacités techniques. Asterisk est muni d'un noyau de commutation, de
quatre API pour effectuer le chargement modulaire des applications de téléphonie, gérer les
interfaces d'équipement, les différents formats de fichiers et des codecs (voir figure ci-dessous).
Figure 6: Les API d’Asterisk
La commutation entre les différentes interfaces qui sont prises en charge s'effectue de façon
transparente, c'est pourquoi il peut intégrer tellement de systèmes de téléphonies différents en
un seul réseau de commutation. Asterisk pour fonctionner, a besoin d'une configuration
matérielle et logicielle minimale:
 Processeur : Pentium III 900Mhz ou supérieur
 Mémoire : mini 256Mo de RAM
3. FONCTIONNALITES
Asterisk propose toutes les fonctionnalités d’un standard téléphonique de niveau
professionnel, des plus élémentaires aux plus complexes. Non seulement, il permet de
gérer le routage des appels au sein du réseau, mais en plus il supporte une large gamme de
services :
 Authentification des utilisateurs appelants.
 Serveur vocal, ou standard d’accueil téléphonique automatisé, aussi appelé IVR
(Interactive Voice Response). Cette fonction permet de demander à l’appelant le service
qu’il souhaite utiliser et d’effectuer le routage correspondant.
 Numérotation abrégée pour définir des raccourcis.
 Transfert d’appel.
 Filtrage des appels.
 Messagerie vocale (répondeur automatique).
 Notification et écoute par e-mail des messages laissés sur son répondeur (voicemail).
 Gestion des conférences etc.
UCAD/ESP/DGI Serigne Fallou NDIAYE
27
4. AVANTAGES ET INCONVENIENTS
4.1 AVANTAGES
Asterisk est très flexible et on peut construire des réseaux de taille variable qui vont du
PBX connectant un seul téléphone analogique ou IP aux grands systèmes connectant plusieurs
téléphones analogiques et IP Asterisk fusionne de façon transparente le trafic de la voix et des
données sur des réseaux disparates au moyen du protocole voix sur IP IAX (Inter-Asterisk
eXchange). Il est possible, au moyen de paquets de données vocales, de transmettre des
données, telles que les adresses URL et des images, alignées au trafic de la voix. C'est ce qui
permet l'intégration évoluée des données Asterisk permet la réduction des coûts car étant
un logiciel Open Source et ne nécessitant pas de dispositif très important pour sa mise en
œuvre. Évolutif, car les programmeurs Open Source participent au codage. Ainsi Asterisk
grossit rapidement avec de nouvelles fonctionnalités supplémentaires qui sont fréquemment
ajoutées.
4.2 INCONVENIENTS
La liaison doit être de bonne qualité car aussi bien la voix que les données passent par
le même réseau. Ainsi ce réseau se doit d’être de bonne qualité, sinon plusieurs appels
entre terminaux ou entre les terminaux et le serveur peuvent être rejetés ou ne peuvent pas
aboutir.
Dépendant du réseau électrique, car le serveur et certains des terminaux sont liés non pas au
réseau téléphonique commuté (RTC), mais au réseau informatique. Donc, dès qu’il y a
coupure d’électricité, le serveur devient indisponible, ce qui constitue d’ailleurs l’un des
principaux inconvénients de cette solution.
III. ETUDE SUR LES SERVEURS VOCAUX INTERACTIFS
1. INTRODUCTION
La numérisation et l’informatique sont de nos jours en grand essor, ce qui a conduit
à une importante évolution au niveau des réseaux téléphoniques. Nous assistons à une
mise en place d’applications logicielles pour une meilleure gestion du flux des appels
entrants et sortants. Le premier essai d'application des SVI a été réalisé par IBM en 1972 pour
le compte de la Banque Bred. L'introduction des SVI dans les entreprises s'est généralisée
dans le milieu des années 1980. Depuis 1991, les serveurs vocaux ne sont plus seulement
présents dans les grandes entreprises, mais aussi dans les petites et moyennes entreprises
qui s’activent dans les domaines de l’artisanat et des services fournis aux particuliers.
Le SVI a constitué une étape historique de l'évolution des technologies informatiques et
des télécommunications, au sens où c'était la première fois que l'intégration des technologies
informatiques et vocales, et celle des technologies téléphoniques au sein d'un unique
équipement débouchaient sur un véritable marché d'équipements de télécommunication. Le
serveur vocal interactif constitue la première étape dans l'évolution du Couplage Téléphonie-
UCAD/ESP/DGI Serigne Fallou NDIAYE
28
Informatique (CTI).
2. DEFINITION
Un serveur vocal interactif (SVI) est un système informatique qui prend en charge
les appels entrants à l’aide de messages vocaux enregistrés ou de synthèse vocale. En
d’autres termes, c’est une plateforme, un ensemble logiciel et/ou matériel, qui sert de
répondeur vocal contrôlé par l'ensemble des touches du téléphone ou des technologies de
reconnaissance vocale, permettant d'échanger de manière automatique des informations
divers (messages, fax, etc.). Le système est interactif dès lors qu'une réponse à une
question posée par l'appelant entraîne un traitement particulier de la part
du serveur, car, l’appelant est appelé à interagir avec le serveur par la voix ou par
l’utilisation des touches de son téléphone fixe, mobile ou d’un softphone 24h sur 24 et 7 jours
sur 7 pour certaines applications. Le serveur vocal interactif peut orienter l’utilisateur
vers un opérateur humain ou traiter entièrement la demande. L’accès à cette application se fait
par un simple numéro de téléphone ou par un numéro spécialisé dont la demande s'effectue
auprès d'un opérateur téléphonique. Plus précisément, un SVI est chargé de la délivrance
d'informations courtes et simples. Il permet également d'identifier les appelants, de les
aiguiller vers des services automatiques ou des téléopérateurs compétents. Le SVI permet aussi
d’interroger une base de données dans le Système d’Information (SI).
Les SVI sont adaptés à une large gamme de services et fonctions. Les applications classiques
du serveur vocal sont les services de transaction (réservation, télépaiement, etc) et les
services de consultation (horaires, comptes bancaires, etc.).
3. ROLE D’UN SVI
Autre fois, le SVI avait, que, pour rôle la gestion intelligente du temps d'attente. A
présent, nous assistons à une variation du rôle des serveurs vocaux, grâce notamment à la
synthèse vocale qui a profondément modifié le fonctionnement de la messagerie et de
l'accueil. En même temps, le couplage téléphonie-informatique a révolutionné les centres
d'appels en donnant un nouveau rôle aux serveurs vocaux interactifs. Les réseaux
téléphoniques acceptant la numérotation en fréquence vocale, celle qui permet d'envoyer
les signaux
DTMF (Dual Tone Multi Frequency) avec les touches du combiné, ont offert la possibilité de
communiquer à distance avec les serveurs interactifs.
Etant donné qu’aujourd'hui, le téléphone s'affirme comme le centre névralgique d'une
entreprise, qu'elle soit une TPE, une PME ou une grande compagnie, un simple combiné et un
répondeur classique ne suffisent plus pour répondre au mieux à des nombreuses demandes
des clients. De ce fait, la téléphonie, à travers les SVI, apparait comme indispensable
pour le développement d’une entreprise. Plus le nombre d’appels reçus par l’entreprise
croît et plus celle-ci doit assurer un meilleur accueil à ses clients potentiels. Pour ce faire,
l’entreprise doit administrer au mieux les files d’attente. Dans les années 1990, la prise de
conscience que l'image d'une entreprise dépend de la qualité de son accueil téléphonique
va engendrer une multitude d'investissements. Ainsi, l'acquisition d'un serveur vocal qui
répond immédiatement aux appels et limite le nombre d'appels non aboutis, vise à
améliorer l'image de l'entreprise dans un premier temps, puis le contact client/entreprise.
Concrètement, la fonction première d'un SVI consiste à répondre aux appels reçus avec
un niveau de qualité optimale, en s'appuyant sur les atouts intrinsèques de l'automate. Avec
UCAD/ESP/DGI Serigne Fallou NDIAYE
29
un serveur vocal interactif, fini les longues attentes dans les périodes d'encombrement du
standard, une voix vous guide et vous permet d'accéder directement au service correspondant à
votre demande.
Le SVI permet de traiter une partie des demandes et de suppléer aux centres d’appels
pendant les heures de fermeture. Le SVI est aussi en mesure de faire une sélection d'appels en
limitant les appels polluants.
En résumé, un SVI offre une solution pour le traitement des appels entrants qui se résume à la
devise : « être disponible lorsque les clients appellent, traiter au mieux chaque appel de vos
clients et rester efficace, précis quand le téléphone sonne sans cesse ».
Avec le développement de l’Internet et l’émergence de nouveaux médias notamment les
téléphones mobiles, le SVI connaît un regain d’intérêt et ouvre de nouveaux champs
d’application qui permettent l’accès en base de données.
4. LES TYPES DE BASE D’UN SVI
Avec un serveur vocal interactif, on peut mettre en place plusieurs fonctionnalités telles
que la mise à disposition d’informations spécifiques sous forme vocale, un standard
automatique à partir d’une certaine heure avec possibilité d’aiguillage automatique, la
diffusion d’alertes, l’interrogation de bases de données. De ce fait les SVI se regroupent en trois
types d'utilisation standards: la borne d'informations, le standard téléphonique et l'utilisation
d'un SVI en liaison avec une base de données ou CTI (Couplage Téléphonie Informatique).
4.1 LA BORNE D’INFORMATION
Le fonctionnement en borne d’information est le service le plus basique que
puisse rendre un SVI. Ce dernier diffuse des messages répétitifs, plus précisément des
informations pratiques, sans aucune intervention humaine. Cette fonction permet à
l’appelant d’être guidé dans une arborescence afin de trouver les informations qu’il
cherche. Il passe d’un menu à l’autre par simple choix.
Les SVI bornes d'informations sont quelques fois utilisées en cas de "débordement
d'appels" c'est à dire quand le service de réception assuré par du personnel est saturé.
Les appels entrants sont redirigés vers des SVI fonctionnant en débordement d’appel.
4.2 LE STANDARD TELEPHONIQUE
Le standard téléphonique, encore appelé standard pré-décroché, est un
commutateur, c'est-à-dire un appareil assurant automatiquement les connexions téléphoniques
entre appelé et appelant (à l'intérieur de l'entreprise comme vers l'extérieur). Il se charge de
l’accueil de l’appelant et lui propose par des choix dans des menus vocaux d’accéder à son
correspondant. Les choix s’effectuent par fréquence vocale sur le clavier téléphonique de
l’appelant ou parfois par reconnaissance vocale. Le standard téléphonique permet de
transférer les appels, les guider vers les différents services et correspondants, les filtrer en
cas de besoin. Le SVI doit alors faire suivre l'appel, et pour cela il doit commander le PABX
(Private Automatic Branch eXchange) qui à son tour peut conduire des appels sans
interposition manuelle en se basant entièrement sur le numéro composé, c’est un outil très
puissant et très flexible en terme de mécanisme de routage.
UCAD/ESP/DGI Serigne Fallou NDIAYE
30
4.3 LE COUPLAGE TELEPHONIE INFORMATIQUE
Figure 7: Couplage Téléphonie Informatique
La notion de CTI est la réunion et l'intégration des mondes de la téléphonie et de
l'informatique sur une plateforme commune. Le CTI donne la possibilité d’interroger une
base de données, d’y stocker des informations saisies par l’appelant, mais aussi de lui diffuser
des informations qui lui sont propres. Pour parvenir à cela, il faut intégrer la base de données
dans le logiciel de gestion du SVI. Ce qui différencie ces SVI des autres ne se situe pas au
niveau matériel, mais plutôt au niveau logiciel. Le logiciel employé n'est plus un logiciel
aux fonctions limitées mais un progiciel. Ce sont par exemple les SVI de type prise de
commandes, consultations de comptes bancaires, etc.
En effet, le couplage téléphonie informatique (CTI) permet notamment l’utilisation de
bases de données qui contiennent les traces des appels (nombre, durée, qualité, agent, etc) et
facilitent une approche statistique pour aider à la décision. Les fonctions du CTI permettent
d’effectuer le chargement de la fiche du demandeur sur l’applicatif métier lors de la
présentation de l’appel à l’opérateur. Grâce au CTI les messages vocaux sont des fichiers
informatiques que l’on peut à souhait placer dans des scénarii où naviguent les interlocuteurs.
De plus le couplage téléphonie informatique permet une gestion plus aisée en associant par
exemple le numéro de téléphone de l’appelant ou un code émis par l’appelant, avec une fiche
personnalisée.
5. FONCTIONNEMENT D’UN SVI
Un serveur vocal interactif fonctionne en se basant le plus souvent sur cinq modules : la
reconnaissance de la parole, l’analyseur sémantique, le gestionnaire du dialogue, la
gestionnaire de réponse et la synthèse de parole.
UCAD/ESP/DGI Serigne Fallou NDIAYE
31
Figure 8: Fonctionnement d’un SVI
 La reconnaissance de la parole : c’est une technique informatique qui permet
d'analyser la parole cap0tée au moyen d'un microphone pour la transcrire sous la forme
d'un texte exploitable par une machine. Elle vise à transformer le signal acoustique
produit par l'interlocutoire en une chaine textuelle équivalente.
 Analyseur sémantique: L’objectif de la compréhension est de dégager les
intentions de l’usager et d’identifier les actes de langage employés. Il s’agit de
donner du sens à la ou aux phrases reconnues. C’est aussi une phase de l’analyse qui
en établit la signification en utilisant le sens des éléments (mots) du texte, par opposition
aux analyses lexicales ou grammaticales qui décomposent le message à l'aide d'un
lexique ou d'une grammaire.
 Gestionnaire de parole: Véritable chef d’orchestre du système, le contrôleur de
dialogue est chargé d’interagir avec le système d’information, de gérer l’interaction
(choix de la réponse à apporter).
 Gestionnaire de réponse: Pour la génération, deux étapes peuvent être
distinguées. La première est la génération profonde. Elle correspond à la question quoi
dire ? c’est-à-dire qu'elle vise à déterminer le contenu sémantique de la réponse
à l’utilisateur. La deuxième phase, dite génération de surface, permet de choisir les
mots pour exprimer la réponse à l’utilisateur. Elle correspond à la question
comment le dire ?
 La synthèse de la parole : Dernière composante du système, c’est une technique
informatique de synthèse sonore qui permet de créer de la parole artificielle à partir de
n'importe quel texte. La synthèse vocale restitue de manière orale le message
généré par la chaine de traitement.
6. L’INTERACTION CLIENTS-SVI / SVI-CLIENTS
Les SVI se sont imposés aujourd’hui comme un outil stratégique pour les relations clients
entreprises. Typiquement, pour un standard automatisé. L’appelant est guidé à travers une
arborescence vocale et fait des choix au fur et à mesure soit à l’aide du clavier téléphonique
avec les touches DTMF, soit grâce à la reconnaissance vocale par mots-clés. Ce sont
les interactions Clients-SVI. Cette interaction client à SVI est obligatoire pour pouvoir s'orienter
UCAD/ESP/DGI Serigne Fallou NDIAYE
32
dans la série de menus vocaux proposés par la plate-forme vocale. Ainsi, au fil des menus, la
précision de la demande s'accentue. Cette interaction est effectuée de 2 façons différentes :
 L’utilisation des touches DTMF du téléphone
 L'utilisation de la reconnaissance vocale
Le SVI doit aussi transmettre les différentes possibilités à l’appelant. Ces possibilités lui sont
transmises vocalement : ce sont les interactions SVI-Clients.
6.1 INTERACTION CLIENTS-SVI
6.1.1 LES TOUCHES DTMF
Un code DTMF (Dual Tone Multi Frequency) est une combinaison de fréquences
utilisée pour la téléphonie moderne. Ces codes sont utilisés pour la composition des numéros
de téléphones (en opposition aux téléphones dits à impulsions), et ils ont permis la création des
premiers serveurs vocaux interactifs. Techniquement, chaque touche d'un téléphone
correspond à un couple de deux fréquences audibles qui sont jouées simultanément. De cette
façon, huit fréquences bien distinctes permettent de coder seize touches. Ces fréquences
peuvent être reconnues par des dispositifs électroniques et sont utilisées pour réaliser des
serveurs vocaux. Dans le tableau suivant figurent des touches « A » à « D » : celles-ci étaient
utilisées par l'armée américaine pour représenter la priorité d'une communication. Ce système
moderne a été développé par la firme américaine Bell. Le but recherché était de définir un
système de numérotation rapide pouvant être utilisé par les appareils numériques
(ordinateurs, centraux numériques). La signalisation DTMF est employée pour permettre à
l’utilisateur de transmettre des ordres au SVI. Avec cette technique, les touches du clavier
téléphonique sont identifiées par leur fréquence en mode DTMF qui permet l’émission de
tonalités multifréquences destinées à la signalisation sur le réseau analogique. Chaque chiffre
ou digit correspond à un signal sonore. Le signal est constitué de l'addition de deux sons (Dual
Tone), dont les fréquences caractérisent un digit (Multi Frequency). Le signal ainsi envoyé
correspond à l'émission de deux fréquences précise qu'un bruit intempestif sur la ligne ne
peut perturber. Les digits définis par le DTMF sont les mêmes que pour le système à
impulsions (de 0 à 9) avec en plus 6 nouveaux digits (#, *, A, B, C et D). Cependant, on ne
trouve généralement que les deux nouveaux digits # et * sur les claviers de téléphone. Un
digit est défini par la somme de signaux sinusoïdaux de fréquences différentes. Les fréquences
utilisées sont caractéristiques et leurs valeurs sont regroupées ci-contre. Un 5 sera, par exemple,
généré en additionnant deux signaux de fréquences 770Hz et 1336Hz.
Les avantages de ce système sont multiples, les numéros de téléphone peuvent être
composés très rapidement et peuvent être générés par des systèmes informatiques.
Figure 9: Tableau récapitulatif des différentes fréquences du standard DTMF
UCAD/ESP/DGI Serigne Fallou NDIAYE
33
Cependant la signalisation DTMF est remplacée dans certaines plateformes par la
reconnaissance vocale qui se trouve être plus facile à utiliser. Avec le DTMF, le système
donne des ordres à l'utilisateur, avec la reconnaissance vocale, c'est l'inverse. L’inconvénient
majeur du DTMF est que certains postes téléphoniques n’y ont pas accès, il concerne les postes
émettant des sons à la numérotation. De plus, en termes purement fonctionnels le DTMF
est limité car il ne peut pas être utilisé par un SVI qui propose un nombre de choix qui
dépasse le nombre de touches du clavier téléphonique.
6.1.2 LA RECONNAISSANCE VOCALE
Figure 10: Processus de la reconnaissance vocale
La reconnaissance vocale est l’une des tâches pionnières de l’Intelligence Artificielle
(IA) consistant à reproduire la capacité d’un être humain à extraire des informations de
la parole produite par un autre être humain. Cette tâche, trop complexe pour être
reproduite par un système informatique unique, a été subdivisée en plusieurs sous
problèmes en fonction du type d’informations à extraire et à reconnaître. Les
problématiques les plus étudiées sont la reconnaissance du locuteur, de son état
émotionnel, de la langue employée et du langage parlé. Les recherches sur la résolution de ces
tâches ont donné lieu, depuis une vingtaine d’années, à des dizaines de milliers de publications,
des centaines de bases de données de parole, des dizaines de campagnes internationales
d’évaluation. Les progrès ont été importants et ont permis le développement d’applications
importantes en communication homme-machine comme la dictée vocale ou les systèmes
de dialogues finalisés des serveurs vocaux interactifs (SVI). Cependant de nombreuses
recherches restent indispensables en raison de l’ampleur du problème et de sa variabilité :
7 milliards de locuteurs, plus de 500 noms d’émotions, près de 7000 langues et quelques
centaines de milliers de mots par langue.
D’autres types d’information restent pour l’instant pratiquement inexploités comme
l’accent, l’état physiologique, le niveau de stress ou de fatigue. Pour les utilisateurs, la
reconnaissance vocale est plus souple d’utilisation que les touches DTMF. Cette fonction
permet de rendre les applications plus interactives. La reconnaissance automatique de la
parole en langage naturel s'effectue par repérage des mots clés. Cette technologie permet de
remplacer les interfaces DTMF. Avec la reconnaissance vocale, c’est l’utilisateur qui impose
UCAD/ESP/DGI Serigne Fallou NDIAYE
34
ses choix de navigation au système. La reconnaissance vocale permet une plus grande souplesse
pour l'utilisateur mais implique un coût plus élevé pour la configuration du serveur vocal
: mémoire, applications, espaces disques, processeurs, etc. Un module de reconnaissance de
mots ou de phrases d'un système nécessite des quantités importantes de connaissances
acoustiques et linguistiques. Les connaissances acoustiques permettent au système de
reconnaître les sons, alors que les connaissances linguistiques permettent de retrouver les
mots et de valider leur enchaînement. Pour obtenir des performances suffisantes, il est
indispensable de disposer de corpus enregistrés dans des conditions aussi proches que
possible de celles des applications visées. Deux approches, l'une plus globale, l'autre plus
analytique permettent d'appréhender la reconnaissance des mots.
Dans l'approche globale, l'unité de base sera le plus souvent le mot considéré comme
une entité globale, c'est-à-dire non décomposée. L'idée de cette méthode est de donner
au système une image acoustique de chacun des mots qu'il devra identifier par la suite. Cette
opération est faite lors de la phase d'apprentissage, où chacun des mots est prononcé une ou
plusieurs fois. Cette méthode a pour avantage d'éviter les effets de coarticulation, c'est à dire
l'influence réciproque des sons à l'intérieur des mots. Elle est cependant limitée aux
petits vocabulaires prononcés par un nombre restreint de locuteurs.
L’approche analytique, qui tire parti de la structure linguistique des mots tente de détecter
et d’identifier les composantes élémentaires (phonèmes, syllabes). Celles-ci sont les unités
de base à reconnaître. Cette approche a un caractère plus général que la précédente : pour
reconnaître de grands vocabulaires, il suffit d’enregistrer dans la mémoire de la machine
les principales caractéristiques des unités de base. Actuellement, bien que la reconnaissance
vocale soit encore loin d’être parfaite, les échecs de cette technique sont le plus souvent
causés par une mauvaise compréhension notamment pour les mots hors vocabulaire, un modèle
de dialogue inadapté ou encore par le comportement et les attitudes de l‘utilisateur mal
modélisés. Ce dernier n’agissant pas comme prévu, le système comprend mal ses attitudes et la
stratégie de dialogue peut alors devenir déroutante pour l’usager.
6.2 INTERACTIONS SVI-CLIENTS
Le SVI guide l’utilisateur à travers l’arborescence vocale par le biais d’annonces
vocales.
On distingue les annonces avec un fond sonore et les annonces classiques.
6.2.1 ANNONCE AVEC UN FOND SONORE
Un fond sonore est ajouté au message vocal pour améliorer l’interface vocale.
Cette opération est réalisée par un enregistrement ou suivant la technique d’encodage MIC, le
message est numérisé à 64 kbps. Il peut être compressé pour prendre moins d’espace disque
sur le SVI.
6.2.2 ANNONCES CLASSIQUES
Dans le cas d’un message composé de texte sans fond sonore (annonce classique),
on peut soit enregistrer directement l’annonce sous forme de fichier sonore, soit utiliser la
technique de la synthèse vocale. Dans le premier cas, l’espace disque nécessaire pour
stocker l’annonce est plus important que dans le second. Pour cela, on préfère donc la technique
de la synthèse vocale.
UCAD/ESP/DGI Serigne Fallou NDIAYE
35
7. LA SYNTHESE VOCALE
Figure 11:Processus de la synthèse vocale
La synthèse de la parole à partir du texte est la passerelle-clé entre le monde de l'écrit et celui
de l'oral. La synthèse vocale est une technologie qui produit « des sons de parole à partir
d’une représentation phonétique du message ». Cette technologie ne doit pas être confondue
avec la restitution d’un message préenregistré dans laquelle le texte est fixe puisque la synthèse
à partir du texte est utilisée à la place de la restitution de messages préenregistrés, dès que la
fréquence (et donc le coût) de mise à jour de ces messages devient trop importante.
Le principe est extrêmement simple, tout texte écrit peut être traduit en message vocal grâce
à une simple carte de synthèse vocale.
Deux grandes familles de synthèse vocale sont à distinguer :
 Les systèmes qui utilisent la concaténation de mots entiers qui ont un vocabulaire
limité et qui offrent une qualité de parole excellente. Ces systèmes ne nécessitent pas
d’analyse linguistique.
 Les systèmes dits de synthèse à partir du texte qui dans une première étape
convertissent un texte en une chaîne de phonèmes marqués par des informations
prosodiques (ensemble des phénomènes d’intonation d’une langue), et dans une seconde
étape qui transforment cette chaîne en un ensemble de données acoustiques à
transmettre à un synthétiseur.
Le synthétiseur vocal permet de créer une voix artificielle semblable à celle de l'homme. Il
convertit le texte codé au moyen d’un lecteur sonore d’écran et le transmet à la carte son, afin
d’obtenir une reproduction orale en appliquant au signal les caractéristiques linguistico-
prosodiques. Contrôlé au moyen d’un logiciel de lecteur sonore, le synthétiseur vocal peut
faire varier la cadence, le débit, le volume et la langue.
7.1 MBROLA
Mbrola est un synthétiseur vocal initié par le laboratoire de la Faculté Polytechnique de
Mons en Belgique. Il est à l’origine d’un projet visant à obtenir un ensemble de
UCAD/ESP/DGI Serigne Fallou NDIAYE
36
synthétiseurs vocaux pour une multitude de langues qui est fournie gratuitement lorsqu’il
s’agit d’applications non commerciales. Mbrola n’est pas sous licence de source libre. D’un
point de vue, plus, concret, le synthétiseur vocal Mbrola est basé sur la concaténation
de diphones. Ainsi, il prend une liste de phonèmes en entrée, avec des informations
prosodiques, c’est-à-dire la durée des phonèmes et une description linéaire par morceaux de
la tonalité, et produit des échantillons de parole sur 16 bits linéaire. Les fréquences
d’échantillonnage proviennent d’une base de données de diphone. MBROLA n’est donc
pas un synthétiseur « Text-To-Speech », puisqu’il n’accepte pas de texte brut en entrée, mais
plutôt une représentation de phonèmes. Chaque base de données de diphone est adaptée au
format MBROLA. Une voix françaises a été mise à la disposition par les auteurs de
MBROLA, et le projet MBROLA a été lui-même organisée de manière à inciter les
laboratoires de recherche et les entreprises à partager leurs bases de données de diphone. Il est
à noter que les bases de données sont aussi rendues disponibles pour utilisation non
commerciale et utilisation non militaires dans le cadre du projet MBROLA.
7.2 LIA_PHON
Comme nous l’avions évoqués précédemment, MBROLA n’étant pas un
synthétiseur «Text-To-Speech», Lia_Phon va être utilisé pour cette fonction, en le reliant
au synthétiseur vocal MBROLA, afin d’obtenir effectivement une sortie audio basée sur un
texte d’origine.
Lia_Phon est un système de phonétisation de textes qui a été développé au LIA
(Laboratoire Informatique de l’Avignon) par Frédéric Bechet. Ce système permet de
nettoyer, étiqueter, accentuer et phonétiser un texte libre. Un module de génération d’une
prosodie minimale est également fourni afin de générer des fichiers compatibles avec le
synthétiseur vocal MBROLA. Lia_Phon est disponible gratuitement sous licence GNU GPL.
8. CONCLUSION
En définitif on peut dire que les serveurs vocaux sont promus à un bel avenir en ce sens
qu’ils proposent des solutions accessibles à un plus grand nombre d’utilisateurs, mais
nécessitent un plus grand investissement pour pouvoir en tirer le maximum de profit.
Cependant, il existe toujours des solutions libres permettant, dans une moindre mesure, de faire
du Service Vocal Interactif avec une qualité de service optimale. Sans chercher loin, on peut
citer la solution Asterisk. En effet, les SVI dans Asterisk conviennent parfaitement pour la mise
en place de notre plateforme.
UCAD/ESP/DGI Serigne Fallou NDIAYE
37
CHAPITRE IV : DESCRIPTION ET MISE EN
PLACE DE LA PLATEFORME
UCAD/ESP/DGI Serigne Fallou NDIAYE
38
I. DESCRIPTION
1. LES ACTEURS DE LA PLATEFORME
Dans le cahier de charge, il est question de réaliser une plateforme de prise de Rendez-
vous autonome sous Asterisk.
En principe cette plateforme met en jeu 2 acteurs mais on peut les scinder en 3 :
 Un utilisateur est toute personne autre que l’administrateur qui utilise la plateforme pour
bénéficier de ses différentes fonctionnalités. Cet utilisateur peut être un abonné ou un client
(ou appelant)
 L’abonné peut être une personne, un cabinet médical ou une entreprise. Il s’abonne au
niveau du système et dispose automatiquement d’un ensemble de fonctionnalités qui lui
permet de gérer son agenda d’attribution de rendez-vous. En effet, il pourra enregistrer les
heures dont il est disponible dans une base de données et le système se chargera de lui faire
fixer ses rendez-vous et de l’informer. Il pourra voir les coordonnées des autres abonnées
et de pouvoir les appeler avec un softphone gratuitement. Il peut visualiser les rendez-vous
que le système a réservés et de pouvoir annuler ceux pour lesquels il n’est plus disponible.
 Un client : il s’agit d’une personne lambda qui va appeler vers le serveur pour avoir un
rendez-vous avec l’abonné X. Ce client va utiliser son téléphone personnel et le serveur va
d’abord enregistrer son numéro puis lui demande de faire un choix en fonction des abonnés
qui existe dans le système. Une fois le choix fait, le serveur va traiter sa requête. Si l’abonné
X a des rendez-vous disponibles dans son agenda, le serveur en choisit une et l’attribue au
client en le lui disant vocalement et en le lui notifiant par SMS avec un code de 10 caractères
qui est unique et qui permet d'authentifier le rendez-vous.
Si aucun rendez-vous n’est disponible, son numéro est sauvegardé dans la liste d’attente et
dès qu’un RV est disponible on lui envoie un SMS pour le lui notifier
 L’administrateur : Il est chargé de paramétrer et d’administrer le système. C’est lui qui
enregistre les abonnés, créée des comptes pour permettre aux gens d’utiliser le serveur
Asterisk afin d'émettre et de recevoir des appels …
2. LES FONCTIONNALITES DE LA PLATEFORME
Dans cette partie on va vous présenter l’ensemble des fonctionnalités dont dispose notre
plateforme.
 Prendre rendez-vous : le client d’une entreprise ou le patient d’une clinique appelle
sur le numéro dédié au serveur s’il désire avoir un rendez-vous avec le responsable. Le
système se charge de lui en attribuer.
 Gérer agenda : il consiste à l’ensemble des opérations relatives à la gestion du
calendrier de l’abonné. C’est-à-dire enregistrer dans le système les dates et heures où il
est disponible pour donner un rendez-vous ; consulter la date de ses rendez-vous ;
annuler un rendez-vous qui ne l’arrange plus.
 Appeler : il s’agit d’une fonctionnalité qui permet à l’abonné d’appeler un
correspondant via WebRTC.
 Annuler RV : c’est la fonctionnalité qui permet à l’abonné d’annuler un rendez-vous.
 Enregistrer abonné : un abonné est toute structure souhaitant confier son système de
gestion de rendez-vous à l’entreprise EmC2. L’enregistrement est effectué par
l’administrateur qui se trouve à EmC2-Group.
UCAD/ESP/DGI Serigne Fallou NDIAYE
39
 Créer utilisateur : c’est lorsque l’administrateur créée un compte sur le serveur asterisk
pour permettre aux gens de communiquer.
 Visualiser informations : c’est la fonctionnalité qui permet à l’administrateur de voir
les statistiques du système comme le nombre d’abonnés, de compte d’utilisateur et
l’historique des appels.
 Consulter message : l’administrateur va pouvoir consulter les messages envoyés par
les abonnés.
 Consulter contacts : c’est la fonctionnalité qui permet à l’abonné d’avoir une vue sur
les utilisateurs et leur numéro pour pouvoir les appeler.
 Mettre en attente : c’est quand le système met dans une liste d’attente les clients qui
ont appelé mais qui n’ont pas trouvé de date libre pour un RV.
 Notifier client : il s’agit des SMS envoyés aux clients pour leur confirmer un rendez-
vous ou leur dire que le RV est annulé ou bien les informer qu’ils sont dans la liste
d’attente.
 Contacter administrateur : il s’agit des messages envoyés par les abonnés à
l’administrateur pour donner ou demander des informations.
II. REALISATION DE LA PLATEFORME
Cette partie est la plus importante, il s’agit ici de montrer les différentes procédures à
adopter pour la réalisation du projet. Toutefois, comme nous l’avons annoncé dans
l’introduction, ce projet est constitué principalement de deux grandes parties.
La première partie est celle qui s’intéresse aux configurations du serveur pour la mise en place
d’un système fonctionnel capable de proposer des choix et de satisfaire la demande des clients.
La seconde partie est purement informatique et consiste à développer les différentes interfaces
qui vont permettre d’administrer et de gérer l’application.
1. ARCHITECTURE DE LA PLATEFORME
Figure 12: Architecture de la plateforme
client/mobile
client/softphone
IP
softphone
mobile
serveur Asterisk avec
SVI
Base de données
abonné
serveur web
prendre RV
prendre RV
traitement requete
traitements des
requetes
planifier,consulter,
annuler RV
UCAD/ESP/DGI Serigne Fallou NDIAYE
40
2. PREREQUIS ET OUTILS NECESSAIRES :
 Un Ordinateur avec les caractéristiques minimales requises
 Une Clé Bluetooth
 Une Clé 3G Huawei 1552
 Un Téléphone portable avec Bluetooth supportant Asterisk-mobile (Samsung, Nokia,
LG...)
 Installer apache2 et php5
3. MISE EN PLACE DU SERVEUR VOCAL INTERACTIF
3.1 INSTALLATION D’ASTERISK
On a choisi de travailler sur un système d’exploitation Ubuntu 12.04 version 32bits et la
version d’asterisk-11.2.2
 Tout d’abord on va faire une mise à jour et installer quelques dépendances
 Télécharger les paquets sources nécessaires

 Décompresser les paquets
 Compiler et installer
# su root
# apt-get update
# apt-get install build-essential wget libssl-dev libncurses5-
dev libnewt-dev libxml2-dev linux-headers-$(uname -r)
libsqlite3-dev libcurl4-nss-dev Bluetooth blueman bluez*
libbluetooth-dev
# cd /usr/src/
# wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-
current.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-
complete/dahdi-linux-complete-current.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-
11.2.2.tar.gz
# tar zxvf dahdi-linux-complete-current.tar.gz
# tar zxvf libpri-1.4-current.tar.gz
# tar zxvf asterisk-11-2.2.tar.gz
UCAD/ESP/DGI Serigne Fallou NDIAYE
41
 DAHDI
 LibPRI
 Asterisk
 Remarque :
Lors de l’exécution de la commande « make menuselect », il faut s’assurer que le module
« chan_mobile » est bien prise en compte :
[*] chan_mobile
A la fin des installations, on va d’abord démarrer dahdi et ensuite asterisk.
Puis on va se connecter dans asterisk pour vérifier si tout est OK
Maintenant on peut s’attaquer à la configuration
# cd /usr/src/dahdi-linux-complete-2.6.2+2.6.2/
# make && make install && make config
# cd /usr/src/libpri-1.4.14/
# make && make install
# cd /usr/src/asterisk-11.2.2/
# ./configure && make menuselect && make && make install &&
make config && make samples
#/etc/init.d/dahdi start
#/etc/init.d/asterisk start
# asterisk –rvvvvvvvvvvvvv
*CLI> dahdi show version
DAHDI Version: 2.6.1 Echo Canceller: HWEC
*CLI> pri show version
libpri version: 1.4.13
UCAD/ESP/DGI Serigne Fallou NDIAYE
42
3.2 CONFIGURATION DE QUELQUES FONCTIONNALITES
Avant d’entamer les configurations, voici quelques précisions :
 Le nom du « contexte » sur lequel on va travailler tout le long est « emc2 »
 Le plan de numérotation est la suivante :
 5XXX pour les comptes utilisateurs
 6000 pour la consultation de la boite vocale
 1XXX pour les enregistrements vocaux
 2000 pour l’IVR avec l’outil de synthèse vocal googletts
 3000 pour l’IVR classique avec voix personnalisée
 2025 pour le SVI de prise de rendez-vous
 ## pour le transfert d’appel (transfert ‘aveugle’)
 ** pour le transfert d’appel supervisé
 700 pour le parking d’appel
 4000 pour la visioconférence
 5999 pour la redirection d’appel jusqu’à trouver un poste libre
 *1 pour l’enregistrement d’appel à la demande de l’utilisateur
3.2.1 SIP.CONF
UCAD/ESP/DGI Serigne Fallou NDIAYE
43
 register => trunkemc2 :passer@91.X.X.X est la ligne qui permet à mon serveur de se
connecter sur le serveur en ligne.
 [trunk_cloud] est le compte que j’ai créé sur mon serveur pour le trunk avec le serveur
asterisk en ligne
 [sfallou] est l’un des comptes utilisateurs que j’ai créé
3.2.2 EXTENSIONS.CONF
3.2.2.1 CONSULTATION DE LA BOITE VOCALE
Comme son nom l’indique, c’est une fonctionnalité qui permet aux utilisateurs d’appeler
sur un numéro et de taper leur mot de passe pour écouter les messages vocaux laissés sur sa
boite vocale (Voir annexe 1).
3.2.2.2 REDIRECTION VERS UN POSTE LIBRE
L’objectif de cette fonctionnalité est de permettre à l’appelant de joindre au moins une
personne dans un centre d’appel. (Voir annexe 2).
3.2.2.3 ENREGISTREMENT D’APPEL A LA DEMANDE DE L’UTILISATEUR
De temps en temps l’utilisateur a besoin d’enregistrer sa conversation téléphonique.
C’est pourquoi on a mis en place cette fonctionnalité au cas où cela se présenterait. (Voir
annexe 3)
3.2.2.4 ENREGISTREMENT VOCAL
Cette fonctionnalité permet de faire des enregistrements vocaux qu’on va utiliser dans
nos IVR. Il suffit juste d’appeler sur un numéro de la plage définie, d’enregistrer ce que l’on
veut et appuyer sur # pour l’écouter.
Le fichier son sous format ulaw est enregistré dans /var/lib/asterisk/sounds avec un nom
« IVR-XXX.ulaw ». Pour l’écraser il faut juste rappeler sur le même numéro et faire un
nouvel enregistrement. (Annexe 4)
3.2.2.5 IVR AVEC GOOGLETTS
Le rôle de cet IVR est de rediriger les appels vers un utilisateur selon le choix. En
d’autres termes c’est un SVI de type standard téléphonique. Cependant il utilise une technique
de synthèse vocale appelée Text-To-Speech (TTS).(Annexe 5)
UCAD/ESP/DGI Serigne Fallou NDIAYE
44
Remarque : Avant d’éditer ces lignes ci-dessus dans le ficher extensions.conf ; il a fallu
d’abord installer quelques dépendances, télécharger et rendre exécutable l’agi googletts.
3.2.2.6 IVR CLASSIQUE AVEC VOIX PERSONNALISEE
Cet IVR fait la même chose que la précédente à la différence que celui-ci ne se base pas sur un
TTS mais plutôt sur des voix préenregistrées. (Annexe 6)
3.2.2.7 VISIOCONFERENCE
Dans le contexte [emc2] on inclue le contexte internal et on fait comme suit
Cette dialplan permet de participer à une conférence. Le fichier de configuration des
conférences est « confbridge.conf » qu’on va éditer dans la suite.
(Voir annexe 7).
3.2.3 FEATURES.CONF
Le fichier de configuration features.conf permet de configurer les fonctionnalités de redirection
et de parking d’appel (Annexe 8).
3.2.4 VOICEMAIL.CONF
Avec cette configuration les messages vocaux laissés sur la boite vocale d’un utilisateur sont
envoyés dans sa boite mail en tant que pièce jointe accompagnée d’un message écrit.
(Annexe 9)
3.2.5 CONFBRIDGE.CONF
C’est le fichier de configuration pour la visioconférence. Dans ce fichier on peut définir autant
de « room » de conférence que l’on veut. Ainsi, à la fin du fichier de configuration on a défini
un « room » de conférence (voir Annexe 10).
3.2.6 TRUNK AVEC LE SERVEUR EN LIGNE
Après avoir créé un compte sur chacun des deux serveurs pour le trunk, j’ai défini le dialplan
ci-dessus au niveau de mon serveur. Ainsi tous appels commençant par 6000 (c’est le plan de
numérotation du serveur en ligne) sont redirigés sur le serveur en ligne. (Voir annexe 11).
Remarque : On a eu quelques problèmes pour faire fonctionner le trunk. En effet,
l’enregistrement de mon serveur s’effectue correctement mais les appels ne passent pas. Ainsi,
# apt-get install perl libwww-perl sox mpg123
# cd /var/lib/asterisk/agi-bin
# wget https://raw.github.com/zaf/asterisk-
googletts/master/googletts.agi
UCAD/ESP/DGI Serigne Fallou NDIAYE
45
c’est l’administrateur du serveur en ligne qui va finir ce travail car j’ai eu des contraintes de
temps pour trouver le problème.
3.3 MISE EN PLACE DE LA PASSERELLE GSM AVEC CHAN_MOBILE
Comme on le sait, cette plateforme est destinée à la prise de rendez-vous à distance. Ceci
implique que n’importe quelle personne doit pouvoir appeler pour avoir un rendez-vous, et cela,
autant de fois que nécessaire. Donc la question qu’on a envie de se poser tout de suite est « est-
ce qu’on doit créer des comptes au niveau du serveur pour toutes les personnes désirant prendre
un rendez-vous ? ». La réponse est non. En effet, cette solution est inadaptée ne serait-ce que
pour les trois raisons suivantes
 On ne peut pas prévoir le nombre de personne qui voudra utiliser la plateforme ni à quel
moment. Du coup il devient impossible de créer des comptes utilisateurs pour chaque
personne
 Si la personne dispose d’un compte utilisateur au niveau du serveur, il est obligé de
savoir paramétrer un softphone et d’avoir une connexion internet stable. Ce qui est loin
d’être évident au Sénégal
 En fin, il sera impossible d’envoyer directement un sms à l’appelant pour lui notifier le
rendez-vous avec son code.
Avec autant de contraintes, il devient impératif pour nous de mettre en place une passerelle
GSM pour simplifier les choses. Ainsi, les gens vont juste appeler le numéro de la passerelle
qui est un numéro mobile (77 XXXXXXX par exemple) et tout se passe comme s’il s’agissait
d’un appel normal vers un autre numéro.
Cependant, il existe plusieurs types de passerelle GSM dont la plupart sont très chères. Comme
nous avons opté pour la mise en place d’une plateforme efficace à moindre coût, la solution qui
s’impose à nous est chan_mobile qui permet de relier notre téléphone mobile à asterisk via
Bluetooth. Ainsi, le téléphone va nous servir comme passerelle GSM. Voici comment procéder
pour mette en place cette passerelle.
Etape 1 : Insérer la clé Bluetooth dans un port USB de l’ordinateur
Etape 2 : Taper les commandes suivantes pour activer le Bluetooth avec la possibilité de scan.
NB : Dans certains cas hci0 peut être hci1. Pour s’en assurer on peut taper la commande hcitool
dev.
Etape 3 : Lancez le scan pour voir si le Bluetooth de l’ordinateur détecte le Bluetooth du
téléphone. Pour cela, on active le Bluetooth du téléphone et le rendre visible puis on fait
# hciconfig hci0 up
# hciconfig hci0 piscan
UCAD/ESP/DGI Serigne Fallou NDIAYE
46
Etape 4 : Connecter les deux appareils.
Cette connexion peut se faire facilement au niveau du téléphone ou bien au niveau de
l’ordinateur avec blueman. C’est la même procédure que l’appareillage de deux téléphones.
Etape 5 : Relever l’adresse MAC de la clé Bluetooth
Etape 6 : Détecter le téléphone à partir du cli d’Asterisk
Etape 7 : Editer le fichier /etc/asterisk/chan_mobile.conf
UCAD/ESP/DGI Serigne Fallou NDIAYE
47
Etape 8 : Redémarrer Asterisk puis se reconnecter à la console
NB : Si tout s’est bien passé on doit voir quelque chose comme ça :
Etape 9 : S’assurer que tout fonctionne avec la commande suivante
Etape 10 : Editer le fichier extensions.conf
Les deux premières lignes après le commentaire concernent les appels sortants. Lorsqu’un
utilisateur veut utiliser son softphone pour appeler vers un numéro mobile, il compose le
numéro avec le préfixe (par exemple : +22177XXXXXX) et la passerelle se charge du reste.
La troisième ligne est celle qui redirige tous les appels arrivant sur le numéro de la passerelle
vers le numéro associé au Serveur Vocal Interactif.
La dernière ligne est celle qui redirige les appels vers le poste de l’utilisateur sfallou au cas où
on ne peut pas atteindre le SVI.
Conclusion
Cette solution de passerelle avec Bluetooth est facile à mettre en place et ne nécessite pas un
grand investissement. En plus il est possible d’utiliser cette technique pour faire du sms avec
asterisk mais cela n’est pas toujours facile car actuellement il n’y a que trois types de téléphones
qui supportent les sms (il s’agit des modèles Nokia E51, 6021 et 6230i). Aussi, il faudra faire
une configuration assez complexe. C’est pourquoi on a décidé de mettre en place une passerelle
SMS en utilisant les clés 3G Huawei.
L’un des inconvénients majeurs de la passerelle Bluetooth est qu’on ne peut pas avoir
simultanément plusieurs appels.
UCAD/ESP/DGI Serigne Fallou NDIAYE
48
3.4 MISE EN PLACE D’UNE PASSERELLE SMS AVEC CHAN_DONGLE
Une passerelle GSM-VoIP très accessible peut être obtenue en utilisant Huawei E155X ou tout
autre modem USB compatible avec chan_dongle. Chan_dongle est un module d’asterisk
permettant d’utiliser les clés 3G Huawei en tant que passerelle GSM. Ainsi, il est possible
d’utiliser la clé pour émettre et recevoir des appels, d’envoyer et de recevoir des SMS et USSD
mais aussi des commandes DTMF. C’est un moyen pas cher et facile à déployer pour ajouter à
notre serveur asterisk la possibilité communication avec le monde GSM.
D’ailleurs on a essayé de remplacer notre passerelle Bluetooth avec cette clé 3G pour les appels
entrants et sortants. Cependant, à cause des contraintes de temps on a seulement eu à mettre en
œuvre l’envoie et la réception de SMS.
Voici la procédure à suivre pour mettre en place cette passerelle :
Etape1: Préparer notre carte SIM
Il faut désactiver la protection de la puce par code pin. On peut le faire avec notre téléphone.
On doit aussi s’assurer que les appels sortants ne sont pas bloqués au niveau du SIM.
Etape 2 : Préparer l’ordinateur pour accepter la clé 3G
Par défaut, la clé Huawei 1552 est considérée par le système comme un port USB. C’est
pourquoi on va insérer la clé contenant la puce et installer le paquet usb-modeswitch.
Ensuite on va devoir configurer usb-modeswitch et pour cela nous allons ajouter une règle au
niveau de /etc/udev/rules.d/ comme suit :
Le contenu de ce fichier est le suivant :
En fin on redémarre les services
# apt-get install usb-modeswitch
#gedit /etc/udev/rules.d/50-huawei-e1552.rules
SUBSYSTEM==”usb”,
ATTR{idVendor}==”12d1″,
ATTR{idProduct}==”1446″,
RUN+=”/lib/udev/usb-modeswitch -v 0x%s{idVendor} -p
0x%s{idProduct} -t option-zerocd”
#cd /etc/init.d/ && ./udev restart
UCAD/ESP/DGI Serigne Fallou NDIAYE
49
Etape 3 : Compiler et configurer chan_dongle
On va taper les commandes suivantes pour télécharger, compiler et installer chan_dongle.
On édite le fichier /etc/asterisk/dongle.conf
Dès fois en fonction des systèmes, à la place de ttyUSB0 et ttyUSB1 on a ttyUSB1 et ttUSB2
Etape 4 : Tests
On va redémarrer asterisk et se connecter au cli puis on charge le module avec la commande
# cd /usr/src
# wget https://github.com/jstasiak/asterisk-chan-
dongle/archive/asterisk11.zip
# unzip asterisk11.zip
# cd asterisk-chan-dongle-asterisk11
# aclocal
# autoconf
# automake -a
# ./configure
# make & make install
# cp etc/dongle.conf /etc/asterisk/
module load chan_dongle
UCAD/ESP/DGI Serigne Fallou NDIAYE
50
Pour voir si la passerelle est active on va taper la commande suivante
UCAD/ESP/DGI Serigne Fallou NDIAYE
51
Etape 5 : Editer extensions.conf pour recevoir et envoyer des SMS
Avec cette configuration on peut recevoir nos SMS et en envoyer. Il suffit juste de changer le
numéro destinataire et le message à envoyer. Le reste est de composer le numéro 500 sur un
softphone et le message est envoyé. Il existe aussi des commandes qu’on peut utiliser
directement au niveau du cli par exemple :
[dongle-incoming]
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)}
${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,System(echo ‘${STRFTIME(${EPOCH},,%Y-%m-%d
%H:%M:%S)} – ${DONGLENAME} – ${CALLERID(num)}:
${BASE64_DECODE(${SMS_BASE64})}’ >>
/var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
[emc2]
exten => 500,1,DongleSendSMS(dongle0,+221778757730,’hello
emc2!’,1440,yes)
 dongle stop now <device>
Stop <device> now. Stops <device> immediately, ending any
calls/SMS/USSD in progress
 dongle stop when convenient <device>
Stop <device> when convenient. Waits until <device> has no
calls/SMS/USSD in progress, and then it stops <device>. It does
not prevent new calls/SMS/USSD from entering the <device>.
 dongle show device settings <device>
Shows settings for <device>
 dongle show device state <device>
Shows detailed state for <device>
 dongle show device statistics <device>
Shows statistics for <device>
 dongle show devices
Shows summarized state for all devices
 dongle show version
Show module version
 dongle sms <device> <number> <message>
Send SMS to <number> with the <message> using <device>
 dongle pdu <device> <pdu>
Send PDU using <device>
 dongle ussd <device> <ussd>
Send USSD command <ussd> using <device>
 dongle start <device>
Start <device> if not removed from before.
 dongle restart gracefully <device>
Prevents new incoming and outgoing calls and SMS and
outgoing USSD from starting up in <device>, but allows
UCAD/ESP/DGI Serigne Fallou NDIAYE
52
Conclusion
La mise en place de cette passerelle SMS nous a permis de comprendre une fois de plus qu’il
n’y a pas un PBX IP plus complet et plus riche qu’asterisk. Avec cette passerelle on a tout ce
qu’il nous faut pour satisfaire la demande des clients qui souhaitent prendre des rendez-vous.
3.5 MISE EN OEUVRE DU SERVEUR VOCAL INTERACTIF
3.5.1 MODE DE FONCTIONNEMENT
La base de ce projet repose sur le serveur vocal interactif qui va dialoguer avec les clients. Son
importance est grande, son bon fonctionnement est capitale pour la réussite de la plateforme.
Pour ces raisons on a commencé d’abord par décrire le scénario d’interaction qu’il y aura entre
le SVI et le client avant de passer à l’implémentation. En résumé voici le principe de
fonctionnement du SVI :
 Une personne appelle sur le numéro du serveur associé au SVI
 On lui joue une music d'accueil pendant 5 secondes
 On lui souhaite la bienvenue sur le serveur
 On l'invite à faire un choix parmi les abonnés pour prendre un rendez-vous
 Il fait son choix et le serveur commence le traitement.
 On récupère le choix de l'appelant et on le transmet à un ensemble de fichier de
traitement PHP qui vont interroger la base de données, effectuer les traitements
nécessaires et renvoient les résultats au serveur
 Si un rendez-vous est disponible, le serveur récupère la date, l'heure et le code aléatoire
associé à ce rendez-vous.
 On joue les fichiers sons préenregistrés correspondants à la date et l'heure du rendez-
vous.
 On lui demande d'appuyer sur une touche pour réécouter ou bien de raccrocher.
 A la fin de la communication, il reçoit un sms de la part du serveur dans lequel on lui
notifiera encore son RV et son code de rendez-vous.
 Si aucun rendez-vous n'est disponible, le serveur lui dit que son numéro de téléphone
est enregistré et qu'un sms lui sera envoyé dès qu'il y a un rendez-vous disponible.
 On lui joue une musique de 'goodby' avant d’interrompre la communication.
Cela dit, pour atteindre le SVI on doit appeler avec un téléphone portable sur le numéro de la
passerelle qui est un numéro mobile (77XXXXXX ou 76XXXXX...).
Par contre on peut utiliser des softphones pour appeler et prendre des rendez-vous sans
consommer du crédit mais dans ce cas, il faut disposer d'un compte utilisateur dans le serveur,
avoir un accès internet à haut débit et pouvoir se servir d’un softphone. En plus on ne pourra
pas recevoir des notifications par sms
3.5.2 CONFIGURATION DU SVI
Sous Asterisk, la quasi-totalité des configurations qui font appels aux applications et aux
fonctions s’effectuent au niveau du fichier extensions.conf. En effet, c’est exactement le cas
pour ce SVI. Il faut juste noter que la configuration est faite sous le contexte [emc2].
UCAD/ESP/DGI Serigne Fallou NDIAYE
53
 Prérequis :
Pour la mise en place du serveur vocal interactif on aura à utiliser principalement certaines
fonctions et applications qu’on a jugées utiles de vous présenter
 La principale fonction qu’on va utiliser est :
 CURL : cette fonction permet de faire passer des paramètres à des scripts en utilisant
les URL. Grâce à elle, on va envoyer des requêtes au niveau des scripts PHP qui
vont effectuer les traitements nécessaires.
 Les applications
 Answer: Répondre à un appel
 Read: Lit une variable
 Set: Définie une variable ou la valeur d'une fonction
 Playback: Lire un fichier son
 Background: Lire un fichier son en tâche de fond dans l'attente de la saisie d'une
touche
 GotoIf: Se rendre à une priorité d’extension précise d’un contexte suivant la
condition posée
 DongleSendSMS : permet d’envoyer un sms
 Mise en œuvre
UCAD/ESP/DGI Serigne Fallou NDIAYE
54
En annexe, on va montrer quelques les scripts PHP qu’on a utilisé dans ce SVI mais pour le
moment on va montrer les scripts ‘rv_jour.php’ et ‘sms.php’.
 rv_jour.php
<?php
$d=date("d");
$m=date("m");
$y=date("Y");
$h=date("H");
$i=date("i");
$dates=$d.$m.$y.$h.$i;
//on recupere les variables
$choix=$_GET['choix'];
$num=$_GET['num'];
@mysql_connect('localhost','root','passer') or die("Echec de connexion");
@mysql_select_db('planning') or die("Echec de sélection de la base.");
$requete = "SELECT id,rv, heures from agenda2 WHERE id_proprietaire='$choix'
AND etat=0 ORDER BY id DESC LIMIT 0, 1";
$result = mysql_query($requete);
if($don=mysql_fetch_array($result))
{
//on recupere le rv disponible
$rv = $don['rv'];
$heures = $don['heures'];
//on marque la date comme réservée dans la bdd et on enregistre son numéro et le code
aléatoire
$requ=mysql_query("UPDATE agenda2 SET etat=1, telephone='$num' WHERE
rv='$rv' AND heures='$heures'");
//on separe les jours,date,année,heures,minutes...
list($day, $date, $month, $year) = explode(" ", $rv);
list($hour, $min) = explode(":", $heures);
echo $day;
}
else
{
$day=0;
echo $day;
}
?>
UCAD/ESP/DGI Serigne Fallou NDIAYE
55
 sms.php
Dans notre SVI, on voit des fichiers sons que le serveur va lire pour informer l’appelant. Ces
sons sont préenregistrés et stockés dans un répertoire du système. Ce qui est impressionnant ici,
c’est que ces sons n’ont pas étés enregistrés vocalement ; en effet ils sont tous étés crées à partir
de synthèse vocale avec les outils Mbrola, Lia_Phon, Sox et le lecteur audacity.
3.6 CREATION DES FICHIERS SONS
Plus haut, on a décrit deux outils importants pour la mise en place d’une synthèse vocale de
qualité à savoir mbrola et lia_phon. Ainsi, on a préféré les utiliser pour créer les fichiers sons
au lieu de les enregistrer vocalement. Ce choix est justifié par plusieurs raisons :
<?php
$d=date("d");
$m=date("m");
$y=date("Y");
$h=date("H");
$i=date("i");
$dates=$d.$m.$y.$h.$i;
//on récupere
$choix=$_GET['choix'];
$num=$_GET['num'];
$jour=$_GET['day'];
$date=$_GET['date'];
$mois=$_GET['month'];
$annee=$_GET['year'];
$heure=$_GET['hour'];
$minute=$_GET['min'];
$rv="$jour $date $mois";
$hours="$heure:$minute";
//connexion à la base de donnée
@mysql_connect('localhost','root','passer') or die("Echec de connexion");
@mysql_select_db('planning') or die("Echec de sélection de la base.");
//on génére un code de 10 chiffre
$characts = '1234567890';
$code = 'EMC2';
for($i=0;$i < 6;$i++) //6 est le nombre de caractères
{
$code.= substr($characts,rand()%(strlen($characts)),1);
}
// si le rv existe
if(!empty($jour))
{
//on enregistre le code dans la base de donnéés
$requ=mysql_query("UPDATE agenda2 SET code='$code' WHERE rv='$rv'
AND heures='$hours'") //on ecrit le message à envoyer
$text="Votre rendez-vous est pour le $rv a $hours.Code RV=$code";
echo $text;
}
else
{
//on enregistre le numero et le code dans la liste d'attente
$req=mysql_query("INSERT INTO attente (telephone,code,id_entreprise)
VALUES ('$num','$code','$choix')");
}
?>
UCAD/ESP/DGI Serigne Fallou NDIAYE
56
- Il y a environ 80 fichiers sons à enregistrer (les noms des jours, des mois, des années,
des heures, des minutes, des dates …). Ainsi il nous faudrait beaucoup de temps pour le
faire.
- Il y a des bruits qui perturbent les enregistrements et empiètent sur la qualité sonore
- Ma voix n’est pas trop belle pour être utilisée dans un SVI
Dans ce qui suit, on va vous montrer comment on a fait pour créer les sons avec ces outils. (On
va prendre l’exemple des sons qui contiennent les jours de la semaine).
Etape 1 : Installations des outils
 Mbrola
Vu que notre projet est destiné à être utilisé dans un espace francophone , nous avons
maintenant besoin de voix pour la langue française. Il est à noter que plusieurs autres langues
sont disponibles, entre autres les suivantes : Anglais, Allemand, Espagnol, etc. Les choix
possibles sont les suivants :
Nous pouvons les télécharger en exécutant les lignes de commandes ci-dessous :
# cd /usr/local/bin
# mkdir mbrola
# cd mbrola
# wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
# unzip mbr301h.zip
# rm -f mbr301h.zip
# ln -s mbrola-linux-i386 mbrola
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr1/fr1-990204.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr2/fr2-980806.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr3/fr3-990324.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr5/fr5-991020.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr6/fr6-010330.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr7/fr7-010330.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/ca1/ca1.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/ca2/ca2.zip
find . -name "fr*.zip" -print -exec unzip ‘{}’ ;
find . -name "ca*.zip" -print -exec unzip ‘{}’ ;
UCAD/ESP/DGI Serigne Fallou NDIAYE
57
Il faudrait ensuite enlever les archives, simplement via les lignes de commandes suivantes
 Lia_Phon
Il faut maintenant définir une variable au niveau de notre session en exécutant la ligne de
commande suivante :
Afin de vérifier que la variable a bien été définie, il faut exécuter la ligne de commande ci-
dessous :
NB : Il est nécessaire de s’assurer de la présence de « csh » avant de compiler lia_phon. Si «
csh » n’est pas installé, il faudrait exécuter la ligne de commande suivante afin d’en
faire l’installation :
Passons maintenant à l’étape de la compilation du code source. Les lignes de commandes
suivantes doivent être exécutées:
Le tout devrait se terminer avec le message suivant : «
Congratulation, LIA_PHON is correctly installed »
Effectuons maintenant un transfert de propriétaire des fichiers de lia_phon à l’utilisateur root.
Exécutons la ligne de commande suivante :
rm –f fr*.zip
rm –f ca*.zip
cd /usr/local/bin
wget http://tcts.fpms.ac.be/synthesis/mbrola/tts/French/lia_phon.v1.2.tar.gz
tar zxvf lia_phon.v1.2.tar.gz
rm –f lia_phon.v1.2.tar.gz
cd lia_phon
find . -print -exec chown root:root ‘{}’ ;
export LIA_PHON_REP=/usr/local/bin/lia_phon
export -p | grep LIA_PHON_REP
apt-get install csh.
make all
make ressource
make check
find . -print -exec chown root:root ‘{}’ ;
UCAD/ESP/DGI Serigne Fallou NDIAYE
58
 Sox
SoX est un logiciel de traitement de son en ligne de commande. Il consiste en une suite d'outils
permettant par exemple de changer le format, de filtrer, de rajouter des fondus, d'analyser un
fichier, etc.
*
 Audacity
Audacity est un logiciel libre et gratuit. Il permet de réaliser des montages de documents sonores
complexes.
Etape 2 : création des fichiers sons en format wav à partir d’un texte
 Se déplacer dans le répertoire /usr/local/bin/mbrola et y créer un fichier texte contenant
les jours de la semaine. Par exemple :
Le contenu du fichier devrait ressembler à ceci
 On effectue maintenant la phonétisation en exécutant la commande suivante
 Finalement, effectuons la synthèse vocale en exécutant la commande ci-dessous. Lors
de la synthèse dans la commande ci-dessous, bien écrire « -I » (i majuscule) et non pas
« -l » (L minuscule).
Maintenant on a un fichier son de bonne qualité qui va lire les jours de la semaine avec toute la
prononciation qu’il faut. C’est exactement de la voix humaine. Si on désire une voix différente,
il suffit juste de changer fr1/fr1 par fr2/fr2 par exemple
 Montage du fichier son avec audacity
On a utilisé audacity pour découper le fichier en 7 séquences dont chacune contient un jour (par
exemple son_jourLundi.wav). On a en profité aussi pour mettre une musique de fond pour
rendre plus agréable l’écoute.
Apt-get install sox
Apt-get install audacity
cd /usr/local/bin/mbrola && nano jours.txt
Lundi. Mardi. Mercredi. Jeudi. Vendredi. Samedi. Dimanche.
$LIA_PHON_REP/script/lia_nett < jours.txt | $LIA_PHON_REP/script/lia_taggreac |
$LIA_PHON_REP/script/lia_phon | $LIA_PHON_REP/bin/lia_add_proso > jours.pho
./mbrola -I $LIA_PHON_REP/data/initfile.lia fr1/fr1 jours.pho jours.wav
UCAD/ESP/DGI Serigne Fallou NDIAYE
59
 Conversion au format gsm avec sox
Les fichiers audio obtenus sont au format wav alors que notre serveur asterisk utilise
d’autres formats comme gsm. Voici comment s’effectue la conversion.
Maintenant c’est terminé. On a nos fichiers audio de bonne qualité. Pour créer les autres
fichiers audio on suit le même principe.
4. INTERFACE DE TEST
Les applications web sont des applications qui mettent en relation des clients web (tels
que des navigateurs) et des données à travers les protocoles standards de l'Internet (HTTP par
exemple).
Ici, l'objectif est de mettre en place une interface web simple destinée aux abonnés et à
l'administrateur. Cette interface va nous servir de test pour un bon fonctionnement d’asterisk.
 Index.php : c’est la page d’accueil de la plateforme web (voir annexe 12)
 Index_user.php : c’est la page d’authentification de l’abonné
 Accueil_user.php : c’est la page d’accueil des abonnés
 Menu_user.php : c’est le menu qui regroupe l’ensemble des fonctionnalités de
l’abonné (voir annexe 13 et 14)
 calendrier.php : c’est le calendrier qui permet à l’abonné de planifier ses rendez-vous.
Il clique sur une date et la liste des heures s’affichent afin qu’il fasse ses choix. En effet
chaque date est un lien vers heures.php (voir annexe 15)
 Heures.php : c’est l’interface des créneaux horaires que l’abonné veut attribuer à ses
clients ou patients. Une fois cochées et validées, elles sont directement stockées dans
la base de donné avec la date correspondante. On affiche également à côté des créneaux
horaires les dix derniers rendez-vous que le serveur a déjà réservés aux clients. Ainsi
l’abonné pourra à tout moment visualiser ses prochains rendez-vous et même les annuler
au cas où il n’est plus disponible. (voir annexe 16)
 contacts.php : c’est la page qui affiche les informations sur les comptes d’utilisateur
(username, numéro, nom, contexte…). Elle permet à l’abonné de connaitre et de pouvoir
appeler ces utilisateurs gratuitement avec un softphone.
 appeler.php : cette page est un lien vers sipml5.org. En effet dans les perspectives du
projet on va mettre en place le WebRTC pour permettre aux utilisateurs d’utiliser leur
navigateur pour émettre et recevoir des appels. (voir annexe 17)
 contacter_admin.php : cette page est un formulaire qui permet à l’abonné d’envoyer
un mail à l’administrateur en cas de besoin.
 index_admin.php : c’est la page d’authentification de l’administrateur
 accueil_admin.php : c’est la même page d’accueil que celle des abonnés. Il n’y a que
le menu qui diffère.
 Menu_admin.php : (voir annexe 18 et 19)
 Nouveau_abonnement.php : c’est le formulaire d’abonnement
 Abonnes.php : c’est la page qui affiche les informations sur les abonnés
sox son_jourLundi.wav -r 8000 -c1 -g son_jourLundi.gsm
UCAD/ESP/DGI Serigne Fallou NDIAYE
60
 Ajout_client.php : c’est le formulaire qui permet à l’administrateur de créer un compte
utilisateur. Elle récupère les données saisies, les stocke dans la base de données, puis
ouvre les fichiers de configuration d’asterisk et y met ce qu’il faut pour créer un compte
et en fin redémarre le service
 Numeros_admin.php : c’est la liste des utilisateurs.
 Statistique.php : ici, l’administrateur saisie une date dans un champ de formulaire pour
avoir l’historique des appels effectués dans le système (voir annexe 20 et 21)
 Message_recu.php : c’est au niveau de cette page que l’administrateur visualise les
messages envoyés par les abonnés. (voir annexe 22)
5. DEPLOIEMENT EN LIGNE
Tout ce qu’on vient de faire se trouvent dans serveur (un ordinateur) local avec une
adresse IP privée. Comme la plateforme est destinée au public, on est obligé de trouver les
moyens de rendre ses services disponibles à travers le net.
Pour ce faire, on a opté pour une solution simple. En effet ; tout ce qu’on a eu à faire c’est :
 Fixer l’adresse privée du serveur à partir du routeur
 Faire une redirection de port au niveau du routeur.
En effet, on a configuré le routeur de sorte que tout ce qui entre par le port 80 (c’est le
port du protocole http) est directement redirigé vers notre serveur. Cela permet aux
abonnés d’avoir accès à leur interface de gestion de calendrier n’importe où.
Idem pour le port 5060 en TCP et UDP. Le port 5060 est le port d’écoute du serveur
asterisk. Avec cette configuration, les utilisateurs parviennent à s’enregistrer sur notre
serveur asterisk à distance avec l’adresse IP publique du routeur.
Les révolutions technologiques dans l'informatique et les télécommunications ont rendu
possible le développement de nouveaux services qui fournissent une grande valeur ajoutée par
rapport à certains services traditionnels.
Dans ce cadre, le présent projet avait pour but la mise en place d'une plateforme de prise de
rendez-vous autonome sous asterisk pour la résolution de la problématique de la disponibilité
et de la prise des rendez-vous au sein des structures publiques et privées. En effet, l'absence
d'un système informatique autonome dans ce domaine a fait sentir ses effets, créant par
exemple des pertes de temps et d’argent chez la population.
C’est en ce sens que nous avions procédés à une auscultation :
 Des serveurs vocaux interactifs d’une manière bien soignée ;
CONCLUSION GENERALE ET PERSPECTIVES
UCAD/ESP/DGI Serigne Fallou NDIAYE
61
 Des solutions ‘open source’ les mieux adaptées pour répondre à nos besoins sur les
serveurs vocaux interactifs dont la plateforme Asterisk qui nous a servi pour la
mise en œuvre ;
Et enfin :
 Faire une étude de la conception et la mise en œuvre de d’une plateforme de prise
de rendez-vous.
 Procéder à la réalisation pratique de ce projet.
Nous pouvons ainsi en venir aux conclusions suivantes :
Les technologies offertes par les logiciels ‘open source’ comme asterisk apparaissent partout
conquérant aussi bien dans le monde professionnel que le grand public. Les fonctionnalités
qu’ils mettent à notre disposition ne se limitent pas seulement à la satisfaction de nos besoins
mais s’immiscent également dans nos divertissements, dans notre formation, au travail, dans
l’assistance, etc.
Aujourd’hui on peut dire avec certitude que « la limite d’Asterisk est celle de celui qui
l’utilise ». En effet, avec un moindre coût on est parvenu à mettre en place un système original
et utile qui répond à un besoin d’automatisation réel grâce à Asterisk et particulièrement à son
serveur vocal interactif.
Néanmoins, ce dernier présente quelques limites significatives comparé à l’interaction
humaine. En effet il peut être déroutant dans la mesure où les systèmes programmés peuvent
être confrontés à des situations exceptionnelles dont ils ne pourraient gérer.
Par conséquent, une bonne application automatisée de la voix comme les SVI représente un
compromis équilibré qui évite trop ou peu d'informations.
Comme perspectives nous pouvons dire que :
Bon nombre d’améliorations sont à envisager notamment au niveau des technologies du
traitement automatique de la parole, comme la synthèse vocale qu’on a utilisé pour créer
les fichiers audio pour le SVI.
En effet, ce dernier doit être en mesure de proposer plusieurs options de langue afin de permettre
à tout le monde d’accéder à la plateforme sans difficultés de communication. Concernant
l’application qui a été conçue, Il faudra penser à augmenter les fonctionnalités comme le faite
de donner à l’appelant la possibilité de choisir la date qui lui convient et aussi la possibilité
d’annuler ses rendez-vous.
En outre, on souhaite continuer le projet afin de mettre en place une application qui interagit
avec la base de données asterisk, permettant de gérer les rendez-vous
En définitif on peut dire que ce projet est un pas important vers ce qu’on appelle aujourd’hui
l’intelligence artificielle (IA).
UCAD/ESP/DGI Serigne Fallou NDIAYE
62
 Asterisk, la téléphonie d’entreprise libre de Philippe SULTANT collection
EYROLLES ;
 Téléphonie sur IP (2è édition) de Laurent OUAKIL et Guy PUJOLLE collection
EYROLLES ;
 Etude et conception d’un serveur vocal interactif de Joseph KAPOU pour Mémoire de
fin de cycle licence professionnelle
 Cours Application Informatique Encadrée pour Licence pro Génie logiciel de Docteur
DIAW à l’ESP
 Asterisk
 https://wiki.asterisk.org
 http://blog.neotiq.net/
 www.forums.asterisk.org
 http://www.asterisk-france.org/
 http://tsrit.16mb.com/
 http://denisrosenkranz.com/
 http://blogs.digium.com/2012/11/14/how-to-install-asterisk-11-on-ubuntu-12-4-lts/
 Synthèse vocale
 www.tux89.com/telephonie/synthese-vocale-en-francais-sous-asterisk/
 http://www.asteriskdocs.org/en/
 Chan_mobile
 http://hasnainali.wordpress.com/2013/02/27/asterisk-connection-with-mobile-phone-
using-chan_mobile
 http://www.geek-pages.com
 http://www.stocksy.co.uk
 Chan_dongle
 http://wiki.e1550.mobi/doku.php?id=Main%20page
 www.zaliasrobotas.blogspot.com
 http://www.controlaltdieliet.be/blog/?p=144&lang=ned-ned#
 http://asteriskmakeeasy.wordpress.com/
 PHP
 www.developpez.com
 www.openclasserom.com
 http://www.grafikart.fr/tutoriels
 Ubuntu
 http://stackoverflow.com/questions
 www.doc.ubuntu-fr.org/
BIBLIOGRAPHIE ET WEBOGRAPHIE
UCAD/ESP/DGI Serigne Fallou NDIAYE
63
 Codecs : Compression et Décompression. C'est un procédé logiciel (une formule
mathématique automatisée') encodant des informations afin de diminuer le volume de
stockage occupé initialement sur les différents supports DVD, CD, disques durs,
disquettes... En d’autres termes les codecs sont des algorithmes utilisés pour la
compression et la décompression. Il existe des codecs matériels aussi.
 IAX : Inter-Asterisk eXchange. Ce protocole permet la communication entre deux serveurs
Asterisk ainsi qu'entre client et serveur Asterisk.
 Open source : L'expression Open Source caractérise les logiciels dont le code source
est visible, modifiable et librement redistribuable sous certaines conditions, ces
conditions peuvent être plus ou moins strictes.
 PABX : Private Automatic Branch eXchange. Plus connu sous le nom de standard
téléphonique, il s´agit généralement d´un boîtier ou d´un coffret central assurant le lien
entre le réseau téléphonique de l´opérateur et les communications internes de
l´entreprise. Grâce à lui, tout appel est acheminé à son destinataire ou stocké sur une
messagerie en cas d´absence de ce dernier. Il peut également s´agir d´une télécopie ou
de tout autre fichier, le PABX gérant aussi bien la voix que les données.
 Protocole : Spécification d'un dialogue entre plusieurs ordinateurs qui s'échangent des
données.
 TCP/IP : Transmission Control Protocol/Internet Protocol. Protocole utilisé sur le réseau
Internet pour transmettre des données entre deux machines.
 ToIP : Téléphonie sur IP. TOIP, représente la VOIP en addition de toutes les
applications téléphoniques qu'il peut y avoir.
 VoIP : Voix sur IP. VoIP, représente seulement la technologie de transport de voix sur le
protocole Internet.
 IP : Internet Protocol
 SIP: (Session Initiation Protocol) est un protocole standard ouvert de gestion de sessions
utilisé dans la télécommunication multimédia.
 DTMF: Dual-Tone Multi-Frequency
 MGCP: Media Gateway Control Protocol
 IPBX: Internet Protocol Private Branch eXchange
 RTP: Real-time Transport Protocol
 RTCP: Real-time Transport Control Protocol
 SVI : Serveur Vocal Interactif
 RTC : Réseau Téléphonique Commuté
 IETF: Internet Engineering Task Force
 UDP: User Datagram Protocol
 TCP: Transmission Control Protocol
 HTTP: Hypertext Transfer Protocol
 RNIS : Réseau Numérique à Intégration de Services
 IVR : Interactive Voice Response
 TTS: Text To Speech
GLOSSAIRE
UCAD/ESP/DGI Serigne Fallou NDIAYE
64
 ACD: Automatic Call Distributor
 API: Application Programming Interface
 AGI: Asterisk Gateway Interface
 CTI : Couplage Téléphonie-Informatique
 Dial Plan : C’est le plan de numérotation d’Asterisk
 Mailbox : indique la boite vocale associée à ce compte.
 Background : Lit un message audio de manière non bloquante. Autrement dit, une saisie
d’une ou plusieurs touches par l’appelant est possible en parallèle. Dans ce cas, la lecture
du message audio en cours est interrompue. L’extension correspondant aux touches
saisies par l’appelant est automatiquement appelée.
 Dial : Met en relation l’appelant et l’utilisateur ou le service spécifié en argument de
l’application Dial. Cette commande est donc utilisée pour affecter un numéro de téléphone
à un utilisateur, à un terminal ou à un service. En argument de l’application, il faut
indiquer le nom du compte à contacter, préfixé par le protocole de signalisation que
le compte utilise (IAX2, SIP, etc.). Cela permet au serveur Asterisk de déterminer dans quel
fichier de configuration se trouvent les propriétés du compte appelé (iax.conf, sip.conf,
etc.).
 Answer : Répond à un appel téléphonique entrant.
 Goto : Branchement inconditionnel vers un contexte, une extension et une priorité
particuliers.
 GotoIf : Branchement conditionnel vers un contexte, une extension et une priorité
particuliers lorsqu’une condition est vérifiée.
 Playback : Lit un message audio de manière bloquante. La lecture du message doit
se faire intégralement, et l’appelant ne peut interrompre cette diffusion par une saisie de
touche sur le clavier téléphonique.
 Read : Lit une variable. L’appelant est invité à entrer une valeur qui est sauvegardée
sous forme de variable par le système. Cela permet notamment de demander un mot de
passe à l’utilisateur avant d’accéder à un service spécifique.
 System : Exécute une commande système du système d’exploitation.
 Wait : Attend pendant un certain délai spécifié en argument.
 WaitExten : Attend une saisie d’une extension par l’utilisateur.
UCAD/ESP/DGI Serigne Fallou NDIAYE
65
Annexe 1 :
Annexe 2 :
Annexe 3 :
Annexe 4 :
ANNEXES
UCAD/ESP/DGI Serigne Fallou NDIAYE
66
Annexe 5 :
Annexe 6 :
Annexe 7 :
Annexe 8 :
UCAD/ESP/DGI Serigne Fallou NDIAYE
67
Annexe 9 :
Annexe 10
UCAD/ESP/DGI Serigne Fallou NDIAYE
68
Annexe 11 :
Annexe 12 :
Annexe 13 :
Annexe 14 : code du menu précédent
Annexe 15 :
UCAD/ESP/DGI Serigne Fallou NDIAYE
69
Annexe 16
Annexe 17
Annexe 18 :
Annexe 19 :
UCAD/ESP/DGI Serigne Fallou NDIAYE
70
Annexe 20 :
Annexe 21:
Annexe 22:
UCAD/ESP/DGI Serigne Fallou NDIAYE
71
Annexe 23:
Script permet de créer un compte utilisateur
<?php
require("connexion_bd.php");
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$username=$_POST['username'];
$numero=$_POST['numero'];
$pass=$_POST['passwd'];
$email=$_POST['email'];
$context=$_POST['context'];
$req=mysql_query("insert into users(username,nom,prenom,numero,mdp,email,context)
values('$username','$nom','$prenom',$numero,'$pass','$email','$context')");
$sip="n[$username]ntype=friendncontext=$contextnsecret=$passnhost=dynamicndtmfmode=rfc2833ncallerid=$pre
nom
$nom<$numero>nmailbox=$numero@defaultncallgroup=1nqualify=yesndisallow=allnallow=alawnallow=ulawnallow
=gsmnallow=g729nallow=h264nallow=h263nallow=h263pnicesupport=yesndirectmedia=nontransport=udpnavpf=n
onencryption=no";
$extension="nnexten => $numero,1,Dial(SIP/$username,10,Ttr)nexten => $numero,n,VoiceMail($numero)nexten =>
$numero,n,Hangup()";
$voicemail="n$numero = 1234, $username, $email";
$cmd1="echo "$sip" >> /etc/asterisk/sip.conf";
$cmd2="echo "$extension" >> /etc/asterisk/extensions.conf";
$cmd3="echo "$voicemail" >> /etc/asterisk/voicemail.conf";
$cmd4=" /etc/init.d/asterisk reload";
exec($cmd1);
exec($cmd2);
exec($cmd3);
exec($cmd4);
header('Location: ajout_client.php');
?>
UCAD/ESP/DGI Serigne Fallou NDIAYE
72
Script permet de notifier le client lorsqu’un RV est annulé
Ce script est exécuté tous les jours à 12h00 par la tâche cron ci-dessous:
En effet Cron est un daemon utilisé pour planifier/programmer des tâches devant être exécutées
à un moment précis. Chaque utilisateur a un fichier crontab, lui permettant d'indiquer les
actions et à quelles périodes, elles devront être exécutées.
Pour éditer un cron dans le fichier de crontab, on exécute la commande suivante
 crontab -e
Pour voir le contenu du crontab on fait
 crontab –l

Voici la tâche cron qui permet de lancer ce scripte de façon périodique (tous les jours à 12h)
<?php
require("connexion_bd.php");
//on regarde s'il y a des infos dans la liste d'attente
$req=mysql_query("SELECT * FROM attente");
while($data=mysql_fetch_array($req))
{
$id=$data['id'];
$telephone=$data['telephone'];
$code=$data['code'];
$id_entreprise=$data['id_entreprise'];
//on associe l'id_entreprise au nom de l'entreprise
if($id_entreprise==1)
$entreprise="EmC2-Group";
if($id_entreprise==2)
$entreprise="ESP";
if($id_entreprise==3)
$entreprise="Hopital Fann";
//on regarde s'il y a des rv disponibles dans l'agenda de l'entreprise
$request=mysql_query("SELECT * FROM agenda2 WHERE id_proprietaire='$id_entreprise' AND etat=0 ORDER BY id
DESC LIMIT 0,1");
if($don=mysql_fetch_array($request))
{
$rv=$don['rv'];
$heures=$don['heures'];
$message="Votre rendez-vous a $entreprise est pour le $rv a $heures.Code RV=$code";
$tel="+221$telephone";
$text="Channel: LOCAL/answer@answernApplication: DongleSendSMSnData:
dongle0,$tel,"$message"";
$fp = fopen("/tmp/sms$id.call","w"); // ouverture du fichier en écriture
fputs($fp, "$text"); // on écrit les commandes dans le fichier
fclose($fp);
//on place le fichier dans /var/spool/asterisk/outgoing
$cmd="cp /tmp/sms$id.call /var/spool/asterisk/outgoing";
exec($cmd);
//on marque le rv comme résérvé
$requ=mysql_query("UPDATE agenda2 SET telephone='$telephone',code='$code',etat=1 WHERE rv='$rv'
AND heures='$heures' AND id_proprietaire='$id_entreprise'");
//on spprime l'info de la liste d'attente
$req1=mysql_query("DELETE FROM attente WHERE id='$id'");
}
}
?>
0 12 * * 0-6 php /var/www/emc2/attente.php
UCAD/ESP/DGI Serigne Fallou NDIAYE
73
Le script qui s’exécute lorsqu’il n’y a pas de rendez-vous disponible (wait.php)
<?php
$d=date("d");
$m=date("m");
$y=date("Y");
$h=date("H");
$i=date("i");
$dates=$d.$m.$y.$h.$i;
$choix=$_GET['choix'];
$num=$_GET['num'];
$jour=$_GET['day'];
$date=$_GET['date'];
$mois=$_GET['month'];
$annee=$_GET['year'];
$heure=$_GET['hour'];
$minute=$_GET['min'];
$rv="$jour $date $mois";
$hours="$heure:$minute";
//connexion à la base de données
@mysql_connect('localhost','root','passer') or die("Echec de connexion");
@mysql_select_db('planning') or die("Echec de sélection de la base.");
//on génére un code de 10 chiffres
$characts = '1234567890';
$code = 'EMC2';
for($i=0;$i < 6;$i++) //6 est le nombre de caractères
{
$code.= substr($characts,rand()%(strlen($characts)),1);
}
//on enregistre le numero et le code dans la liste d'attente
$req=mysql_query("INSERT INTO attente (telephone,code,id_entreprise) VALUES ('$num','$code','$choix')");
echo "bien enregistré";
?>

Memoire final sfallou

  • 1.
    Année universitaire: 2013–2014 SUJET : MISE EN PLACE D’UNE PLATEFORME DE PRISE DE RENDEZ-VOUS AUTONOME SOUS ASTERISK MEMOIRE DE FIN DE CYCLE Pour l’obtention du : DIPLOME UNIVERSITAIRE DE TECHNOLOGIE(D.U.T) Lieu de stage : EmC2-Group Durée de stage : 45 jours ECOLE SUPERIEURE POLYTECHNIQUE DEPARTEMENT GENIE INFORMATIQUE TELECOMS-RESEAUX Centre de Dakar REPUBLIQUE DU SENEGAL UNIVERSITE CHEIKH ANTA DIOP DE DAKAR Présenté et soutenu par : Serigne Fallou NDIAYE Professeur encadreur : Mr. Ibrahima GAYE Maître de stage: Mr. Thierno KANE
  • 2.
    UCAD/ESP/DGI Serigne FallouNDIAYE 2 TABLE DES MATIERES Table des figures ..................................................................................................................................................... 4 Dédicaces ................................................................................................................................................................ 5 Remerciements....................................................................................................................................................... 6 Avant-propos .......................................................................................................................................................... 7 Abstract................................................................................................................................................................... 8 Introduction ............................................................................................................................................................ 9 Chapitre I : Présentation Générale........................................................................................................................ 10 1. Présentation d’EmC2-Group.................................................................................................................... 11 1.1 Le département informatique................................................................................................................ 12 1.2 Le département Télécommunication ..................................................................................................... 12 1.3 Le département Electronique................................................................................................................. 14 1.4 Le département Energie......................................................................................................................... 14 2. Présentation du sujet............................................................................................................................... 14 2.1 Problématique........................................................................................................................................ 14 2.2 Objectifs ................................................................................................................................................. 15 Chapitre II : Analyse de l’existant et étude prealable........................................................................................... 16 1. Analyse de l'existant ..................................................................................................................................... 17 2. Critique de l'existant..................................................................................................................................... 17 3. Solutions proposées...................................................................................................................................... 17 Chapitre III : Etude globale de la téléphonie sur IP .............................................................................................. 19 I. Présentation de la ToIP.................................................................................................................................. 20 1. La téléphonie par circuit et par parquet................................................................................................... 20 2. La problématique de base de la téléphonie sur IP ................................................................................... 21 3. Avantage de la ToIP.................................................................................................................................. 22 4 .Les différentes solutions de ToIP open source......................................................................................... 23 5. Conclusion ................................................................................................................................................ 23 II. La plateforme Asterisk.................................................................................................................................. 23 1. Architecture.............................................................................................................................................. 24 2. Caractéristiques........................................................................................................................................ 25 3. Fonctionnalités......................................................................................................................................... 26 4. Avantages et inconvénients ..................................................................................................................... 27 III. Etude sur les serveurs vocaux interactifs..................................................................................................... 27 1. Introduction.............................................................................................................................................. 27 2. Définition.................................................................................................................................................. 28
  • 3.
    UCAD/ESP/DGI Serigne FallouNDIAYE 3 3. Rôle d’un SVI............................................................................................................................................. 28 4. Les types de base d’un SVI ....................................................................................................................... 29 5. Fonctionnement d’un SVI......................................................................................................................... 30 6. L’interaction Clients-SVI / SVI-Clients....................................................................................................... 31 7. La synthèse vocale................................................................................................................................... 35 8. Conclusion ................................................................................................................................................ 36 Chapitre IV : Description et mise en place de la plateforme................................................................................ 37 I. Description..................................................................................................................................................... 38 1. Les acteurs de la plateforme .................................................................................................................... 38 2. Les fonctionnalités de la plateforme ............................................................................................................ 38 II. Réalisation de la plateforme......................................................................................................................... 39 1. Architecture de la plateforme .................................................................................................................. 39 2. Prérequis et outils nécessaires :............................................................................................................... 40 3. Mise en place du serveur vocal interactif................................................................................................. 40 3.3 Mise en place de la passerelle GSM avec chan_mobile ......................................................................... 45 3.4 Mise en place d’une passerelle SMS avec chan_dongle ........................................................................ 48 3.5 Mise en oeuvre du Serveur Vocal Interactif........................................................................................... 52 3.6 Création des fichiers sons....................................................................................................................... 55 4. INTERFACE DE TEST...................................................................................................................................... 59 5. Déploiement en ligne.................................................................................................................................... 60 Conclusion générale et perspectives .................................................................................................................... 60 Bibliographie ET Webographie.............................................................................................................................. 62 glossaire ................................................................................................................................................................ 63 Annexes................................................................................................................................................................. 65
  • 4.
    UCAD/ESP/DGI Serigne FallouNDIAYE 4 TABLE DES FIGURES Figure 1: organigrammes de l'entreprise ............................................................................................................... 11 Figure 2: Technique de transfert de paquets ......................................................................................................... 20 Figure 3: Un flot de paquets téléphoniques........................................................................................................... 21 Figure 4: Architecture d’Asterisk.......................................................................................................................... 25 Figure 5: Carte vocale Digium.............................................................................................................................. 25 Figure 6: Les API d’Asterisk ................................................................................................................................ 26 Figure 7: Couplage Téléphonie Informatique ....................................................................................................... 30 Figure 8: Fonctionnement d’un SVI ..................................................................................................................... 31 Figure 9: Tableau récapitulatif des différentes fréquences du standard DTMF .................................................... 32 Figure 10: Processus de la reconnaissance vocale ................................................................................................ 33 Figure 11:Processus de la synthèse vocale............................................................................................................ 35 Figure 12: Architecture de la plateforme .............................................................................................................. 39
  • 5.
    UCAD/ESP/DGI Serigne FallouNDIAYE 5 JE DEDIE LE FRUIT DE CE TRAVAIL À mes parents À qui Je dois ce que je suis aujourd’hui. Que la paix du Tout Miséricordieux Et Sa Bénédictions les accompagnent. Que le Bon Dieu accorde une longue vie à ma mère NDEYE KANDJI Et le paradis à mon père El Hadj CHEIKH NDIAYE (paix à son âme). À ma famille et surtout à mes amis Pour leurs soutiens et encouragements continus. Que Dieu les protège. À mes professeurs Du collège, du lycée et de l’université Qui m’ont toujours soutenue et encouragé. DEDICACES
  • 6.
    UCAD/ESP/DGI Serigne FallouNDIAYE 6 C’est avec un grand plaisir que je réserve ces lignes en signe de gratitude et de reconnaissance à tous ceux qui ont contribué de près ou de loin à l’élaboration de ce travail. Je tiens tout d’abord à remercier Allah le Tout Puissant, Son Prophète Mouhamed (PSL) et notre vénéré guide Cheikh Ahmadou Bamba qui nous a montré le droit chemin. J’exprime ma reconnaissance à mon mentor Kalidou SY. Une personne généreuse à qui sa disponibilité, ses conseils et son aide sont autant d’éléments qui ont permis la réalisation de ce travail. La qualité de ce projet fut enrichie par l’apport de mon cher ami et promotionnaire Bassirou Ngom. Qu’il reçoive également toute ma gratitude pour les suggestions et conseils qu’il a pu me prodiguer. Mes remerciements vont également à l’endroit de l’entreprise EmC2-Group qui m’a offert l’opportunité de réaliser ce projet dans de bonnes conditions ; à Monsieur Elimane KANE pour son soutien et ses conseils ; à mon maitre de stage Monsieur Thierno KANE qui m’a soutenu tout le long de ce travail et à tout le personnel de l’entreprise. J’exprime ma gratitude à mon encadreur Monsieur IBRAHIMA GAYE, pour l’effort fourni, les conseils prodigués et pour son soutien sans condition. Mes plus tendres pensées iront vers ma famille (mes frères, mes sœurs, mes cousins, mes cousines, mes tantes et tontons), et surtout à mes parents, ma mère, mon père (paix à son âme) Ces remerciements ne seraient pas complets sans une pensée pour mes meilleurs amis et amies de longue date. Merci de m’avoir aidé et encouragé, et d’être présent quand j’en ai besoin. REMERCIEMENTS
  • 7.
    UCAD/ESP/DGI Serigne FallouNDIAYE 7 L’école supérieure polytechnique (E.S.P) forme en deux années d’études des techniciens supérieurs, et en cinq ans des ingénieurs dans plusieurs spécialités. Dans le cadre de leur formation les étudiants de fin de chaque cycle sont tenus d’effectuer un stage pratique au sein d’une entreprise. Ce stage en entreprise est un moment privilégié de mise en pratique des enseignements reçus. Il permet tout d’abord à l’étudiant de faire une application réelle des connaissances théoriques. Ensuite, il emmène l’étudiant à transformer les acquis pédagogiques en savoir- faire et savoir être, lui permettant de se positionner dans le milieu professionnel ainsi, de s’impliquer comme un acteur véritable dans le processus de l’entreprise. En outre, il doit permettre à l’étudiant de mettre en évidence, son niveau de maturité, son autonomie et sa capacité à s’évaluer en dehors du milieu scolaire, dans le strict respect des règles du monde du travail. A la fin de ce stage, l’étudiant doit produire un mémoire et le soutenir devant un jury. Ce document décrit les activités effectuées au sein de la structure d’accueil en rapport avec un sujet ou projet qui lui a été confié. C’est dans ce cadre que nous venons à présenter ce document. AVANT-PROPOS
  • 8.
    UCAD/ESP/DGI Serigne FallouNDIAYE 8 My training course was held at the company EMC2-GROUP. This is a Senegalese company founded by young engineers and scientists of many nationalities, which aims to make available to customers the latest technologies. Service provider, the company is involved in Telecommunications, Electronics, Computer and Energy. My project was to create a platform for making appointments under asterisk. This platform enables service agencies, individuals and offices to plan their calendar appointments and manage the allocation of appointments independently. Indeed, customers call a dedicated number and the server offers them a choice on appointments available. The implementation of this platform lasted six weeks and allowed me to gain a lot of experience on the VoIP technology and development of web application. The basis of this platform is essentially and primarily on IVR with asterisk. ABSTRACT
  • 9.
    UCAD/ESP/DGI Serigne FallouNDIAYE 9 Avec l’émergence de la téléphonie IP, le secteur des services, informatiques et télécoms, à valeur ajoutée connaît de nos jour un progrès sans précédent. L’avènement du serveur vocal interactif en est un des plus beaux exemples. Le SVI (Serveur Vocal Interactif) qui fut l’apanage des grandes entreprises devient accessible aux plus petites. Il fonctionne souvent avec des messages préenregistrés qu'il diffuse, mais peut aussi utiliser un synthétiseur vocal pour générer son discours. Le SVI constitue une aide appréciée par toutes les PME qui veulent optimiser la qualité de leurs services clients, en permettant notamment une accessibilité 24h/24 et une liaison personnalisée avec les bases de données de l'entreprise. A cet effet, il convient de se poser la question de savoir : Quelles genres de plateformes et services mettre en place pour concevoir et développer des applications permettant à tout un chacun de bien s’approprier les merveilles de ces technologies? A ce titre, il s’avère raisonnable de disposer d'une solution efficace et moins coûteuse. Pour répondre à ce besoin, il existe des logiciels sur le marché, à l'instar d’Asterisk qui est un logiciel libre. Asterisk est un IPBX, c'est à dire un commutateur téléphonique qui fonctionne aussi bien sur le réseau téléphonique traditionnel que sur les nouveaux réseaux Internet (IP). Il est généralement utilisé sur un système d'exploitation à base d'Unix (Linux, BSD, Unix). Ainsi la recherche à mener dans ce projet doit améliorer la communication entre un système d’informations et ses utilisateurs au travers de l’analyse et de la conception de l’interface homme-machine. C'est dans cette optique que le projet de « Mise en place d’une plateforme de prise de Rendez-vous autonome sous asterisk » nous a été confié. Après avoir présenté le sujet, on fera une théorique sur la téléphonie IP. Ensuite nous faisons une description détaillée des technologies utilisées. Enfin nous allons mettre en place la plateforme de prise de rendez-vous sous asterisk. INTRODUCTION
  • 10.
    UCAD/ESP/DGI Serigne FallouNDIAYE 10 CHAPITRE I : PRESENTATION GENERALE
  • 11.
    UCAD/ESP/DGI Serigne FallouNDIAYE 11 1. PRESENTATION D’EMC2-GROUP Créé en 2010 par de jeunes ingénieurs et chercheurs de plusieurs nationalités, EmC2 est une entreprise spécialisée dans les TIC. Fournisseur et prestataire de services, l’entreprise intervient dans les domaines de l’Electronique, l’Energie, l’Informatique et les Télécommunications. Sa devise est de fournir aux clients les technologies de dernière génération. Ainsi, EmC2 est spécialisée dans le développement logiciel, les ventes de biens électroniques et informatiques (routeurs, modems, caméras IP,…), les technologies de paiement mobile, les énergies renouvelables, etc. Composée d’une équipe dynamique et expérimentée, son capital humain montre une valeur extraordinaire à travers son savoir-faire et sa qualité de service. L'encadrement de son personnel est assuré grâce à des formations régulières sur les nouvelles technologies. En fonction de ses différents départements, l’entreprise EmC2 offre à ses clients une diversité de services d’installation et de maintenance des réseaux télécom, informatiques, et électriques, de développement logiciel et de fournitures de biens et d’équipements.  Les locaux de l’entreprise se situent à l’adresse suivante : 4, Cité Comico II, VDN-Dakar  Les contacts : contact@emc2-group.com Tel: +221 30 114 16 24 / +221 33 867 19 67 Site : www.emc2-group.com  Distinction : EmC2 a été primée par le Comité « Business Iniative and Directions » (www.bid-org.com) les 26 & 27 Octobre 2013 à Paris au titre de : « INTERNATIONAL GOLD STAR FOR QUALITY ». Figure 1: organigrammes de l'entreprise
  • 12.
    UCAD/ESP/DGI Serigne FallouNDIAYE 12 1.1 LE DEPARTEMENT INFORMATIQUE Depuis sa création, EmC2 a développé dans le cadre de ses activités, une connaissance éprouvée dans les technologies Java/J2EE et PHP5 qui constituent aujourd’hui ses domaines d’expertise ; ce qui lui permet aujourd’hui de gagner la confiance de ses clients qui attendent des solutions simples et adaptées à leurs besoins. EmC2 mise sur les technologies open source. De nombreux logiciels libres atteignent ou dépassent la qualité des solutions propriétaires et ont en plus, l’avantage de donner une indépendance vis-à-vis d’un éditeur. Aujourd’hui l’open source connaît de plus en plus de notoriété. Ainsi, les principaux services fournis par ce département sont : ● La Monétique : avec notre système de paiement par carte et sur internet ● Contrôle d’accès par cartes ● La conception de sites web ● Le développement de solutions Open Source ● Le développement de technologies Web et mobile, spécifiques aux besoins de chaque client. ● L’audit et les conseils informatiques Les principales réalisations au sein de ce département sont les suivantes:  Plateforme de Géolocalisation qui donne la vitesse et la position des véhicules grâce aux balises GPS ou aux téléphones portables, en temps réel.  Système de paiement par cartes électroniques rechargeables et jetables (Restaurants, Supers Marchés, Bus, Banques, Ecoles, Universités, Station d’essence, etc.).  Système de pointage horaire par badges électroniques  Système de Recouvrement des recettes municipales par téléphones mobiles  Système de collecte de données à partir de formulaires embarqués dans les Smartphones. Pour des campagnes de recensement, d’enquête, sondage, étude de marché, etc.  Le site www.jevousoffre.com  Le site www.osez-vert.com  Le site www.senfive.com  Le site www.avenuemarchand.com  Le site www.harmattan-senegal.com  Le site www.agenceculturelleafricaine.ch  Le site www.emc2-group.com  Etc. 1.2 LE DEPARTEMENT TELECOMMUNICATION Les opérateurs télécoms disposent d’un vaste réseau aussi bien mobile que fixe. L’exploitation de ce réseau et son extension représentent un enjeu considérable pour ces
  • 13.
    UCAD/ESP/DGI Serigne FallouNDIAYE 13 derniers. EmC2 dispose de solutions adaptées pour aider les opérateurs à garantir à leurs clients des services de qualité. EmC2 installe également les éléments du réseau comme les stations de base BTS/NODEB, les BSC/RNC, …, gère les intégrations d’antennes RF MW, la recherche et négociation des sites, l’ingénierie design APD et AS-built. Aussi, l’entreprise se propose-t-elle d’accompagner chaque partenaire, dans la mise en place des réseaux électriques, LAN et téléphonie d’entreprise. De plus, elle offre un service d’audit des réseaux télécoms ainsi qu’un contrôle sur toutes les étapes de la progression de l’installation des réseaux. Ce département fournit les services suivants :  La construction de sites GSM, CDMA, Node B, BSC, RNC  Le survey des sites GSM, FH et confection des APD : Avant-Projet Détaillé  L’entretien et la construction des pylônes de toutes sortes (haubanés ou auto stables)  L’installation et la mise en service des baies d’énergie  La configuration ou upgrade des sites BTS pour optimisation réseau  Le commissioning et l’acceptance des sites GSM (MBI, MBO, CBO)  La maintenance et la mesure corrective de VSWR, ROS sur des installations GSM  L’assemblage des shelters de toutes sortes (Alga, Zeppelin, ZDMI, How Stone) et de pylônes  L’audit des installations pour l’amélioration de service  Le développement et l’installation de solutions en Réseau et Informatique  Le câblage des réseaux IP  L’interconnexion des sites par VPN  Les services relatifs aux solutions WIFI (déploiement, Itinérance, Sécurité…)  Le développement de solutions VoIP/ToIP Nos solutions de téléphonie sur IP permettent de réduire considérablement les coûts de communication des entreprises, particuliers et organisations. Elles présentent les avantages suivants :  une communication gratuite au sein de toute une entreprise (PC, Smart Phone, appareil fixe)  le paiement d’un montant forfaitaire pour des communications vers une centaine de pays étrangers 24h/7j.  la mise en place d’un centre d’appel  la gestion de files d’attentes  l’utilisation de la fonction Transfert d’appels (transfert d’appels lors de non réponse, sur occupation de poste,...)  la possibilité de planifier et/ou d’initier des conférences téléphoniques (Salles de conférence, recherche d’extensions/utilisateurs)  les appels vidéo, le chat la mise en place d’un Serveur Vocal,  etc.
  • 14.
    UCAD/ESP/DGI Serigne FallouNDIAYE 14 1.3 LE DEPARTEMENT ELECTRONIQUE Dans ce département, des ingénieurs en électronique programmable et électrotechniciens s’occupent essentiellement de la programmation des microcontrôleurs et interfaces GSM, ainsi que de toute activité relative à ce domaine. Les principales activités au sein de ce département sont citées comme suit : ● La vente de consommables:  Routeur 3G/WIFI compatible avec les clés Expresso, Orange et Tigo  Caméra IP (Visibilité diurne et nocturne), motorisée  Antennes Omnidirectionnelles de 1Km de rayon  Routeur avec OS Linux modifiable pour les développeurs ● La mise en place de système de géolocalisation permettant :  La gestion centralisée en temps réel d’un parc automobile  L’immobilisation de véhicule en cas de vol par un code SMS. ● La mise en place de systèmes de vidéo surveillance ● La mise en place de systèmes en domotique 1.4 LE DEPARTEMENT ENERGIE Ce département regroupe des ingénieurs et des techniciens en électricité. Il propose les services suivants :  La fourniture et l’installation de systèmes de secours électrique (Backup Batterie)  L’installation solaire  La fourniture et l’installation de compteurs électriques spéciaux, gérés grâce à des microcontrôleurs embarqués et connectés à des téléphones mobiles embarqués pour envoyer la consommation journalière du client, et être en mesure d’effectuer une coupure et un rétablissement à distance par SMS. 2. PRESENTATION DU SUJET 2.1 PROBLEMATIQUE Ce projet a été mis sur pied dans le souci d’aider les agences de service, les cabinets de consultation et les entreprises à gérer de façon efficiente leur agenda d’attribution de rendez-vous pour leurs clients et leurs patients. En effet, au Sénégal, le constat est que la prise de rendez-vous au niveau des agences de service, des centres médicaux, des entreprises, peut être une opération fastidieuse pour la population. Très souvent, pour prendre un rendez-vous on est obligé de se pointer dans les locaux de la structure sans pour autant être sûre de la disponibilité de leur agenda. Cela peut s’avérer très couteux en termes de temps et d’argent.
  • 15.
    UCAD/ESP/DGI Serigne FallouNDIAYE 15 Cependant, le développement des nouvelles technologies notamment dans le domaine des télécommunications offre des solutions simples pour pallier ce problème. Voilà, en résumé, le contexte qui justifie l’intérêt de ce sujet de stage portant exclusivement sur la gestion à distance des Rendez-Vous. 2.2 OBJECTIFS EmC2-Group, en tant que prestataire de services, s’intéresse beaucoup à l’automatisation des tâches récurrentes qui sont effectuées dans les entreprises ; et la gestion des rendez-vous entre dans ce cadre. Donc son objectif est de proposer un service unique et irréprochable dans ce domaine, c’est dans cet ordre d’idée que nous nous proposons de réaliser ce travail aussi passionnant qu’il soit de mettre en place un système basé sur la ToIP qui soit capable de dialoguer avec les clients et le système d’information de la structure afin de gérer avec autonomie le calendrier des rendez-vous. En principe, il s’agit d’une part, d’un serveur vocal interactif qui va permettre aux appelants de faire un choix parmi les différentes structures qui sont présentes dans le système afin de prendre un rendez-vous avec l’une d’elle. En fonction du choix fait, le système va exécuter des scripts qui vont interroger la base de données et renvoyer les dates de rendez-vous disponibles. Ensuite, le serveur se chargera d’annoncer la date et l’heure du rendez-vous qu’il a fixé à l’appelant. Cette notification se fera vocalement via l’IVR mais aussi par sms D’autre part, il sera question de concevoir une plateforme web qui va permettre aux différentes structures de planifier leur agenda, de visualiser les rendez-vous attribués par le système, d’annuler ou de reporter des rendez-vous, de contacter l’administrateur (EmC2-Group) et les autres structures qui sont abonné au système. Et enfin une interface d’administration destinée à EmC2-Group. Pour arriver à mettre en place cette application nous utiliserons le Serveur PABX « Open source » Asterisk qui constituera le noyau du projet.
  • 16.
    UCAD/ESP/DGI Serigne FallouNDIAYE 16 CHAPITRE II : ANALYSE DE L’EXISTANT ET ETUDE PREALABLE
  • 17.
    UCAD/ESP/DGI Serigne FallouNDIAYE 17 Ce chapitre est destiné à décrire ce qui existait dans l’entreprise et relatif au projet avant sa mise en place. 1. ANALYSE DE L'EXISTANT EmC2-Group est un prestataire de service reconnu dans le domaine de l’informatique et des télécommunications notamment dans les services de VoIP. En effet, l’entreprise dispose déjà d’un serveur Asterisk en ligne. En d’autres termes, elle est un fournisseur de ToIP. En effet, toute personne qui dispose d’un compte utilisateurs au niveau de l’entreprise peut s’enregistrer auprès du serveur et bénéficier des services n’importe où dès lors qu’il a accès à internet. Ce serveur est déployé sur un Cloud avec une adresse IP publique et un nom de domaine spécifique. Les fonctionnalités de ce serveur sont entre autre :  Emission et réception d’appel  SVI de redirection d’appel  Messagerie vocale 2. CRITIQUE DE L'EXISTANT Les critiques vont porter principalement sur les services offerts par le serveur Asterisk de l’entreprise déployé en ligne. Si on revient sur l’analyse de l’existant, on remarque que les fonctionnalités mentionnées dans cette partie sont bien intéressantes mais insuffisantes et à la limite même trop standards. En effet, les fonctionnalités déployées sont des fonctionnalités standards d’un serveur Asterisk ; il s’agit juste de quelques configurations de base à la portée de tout technicien avec quelques notions sur Asterisk. Certes l’essentiel est là mais on ne trouve aucun service original qui pourrait rendre attractif le serveur et le différencier des autres. De plus, aucun dispositif pouvant servir de passerelle avec le monde GSM ou RTC n’est mis en place. Par ailleurs, l’entreprise ne dispose pas d’une application web qui permettrait d’administrer avec facilité ce serveur en ligne. En effet, pour créer des comptes utilisateurs, on est obligé d’éditer plusieurs fichiers de configuration et ensuite redémarrer le serveur avec des lignes de commande. Cela exige donc la présence d’une personne maitrisant les configurations dans Asterisk. Comme l’entreprise se veut être leader dans les services de VoIP au Sénégal et qu’elle est consciente qu’un opérateur sans services et un opérateur voué à la disparition, elle a pris les devants en proposant des solutions uniques et originales dans ce domaine. Ce projet que nous comptons réaliser en est la parfaite illustration. 3. SOLUTIONS PROPOSEES Tous d’abord nous avons décidé de travailler en local pour raisons techniques liés à l’utilisation de certains dispositifs physiques que nous allons employer pour la réalisation du projet.
  • 18.
    UCAD/ESP/DGI Serigne FallouNDIAYE 18 Donc voici comment on a décidé de procéder : - Mettre en place un serveur Asterisk en local - Configurer ce serveur avec les services de base identiques à ceux qu’on a dans le serveur en ligne - Mettre en place le service de prise de rendez-vous dans ce serveur - Mettre en place une interface web pour l’administration de ce serveur à savoir la création des comptes utilisateurs et d’abonnement, la visualisation de l’historique des appels… - Faire un Trunk entre ce serveur local et celui qui est en ligne - Faire une redirection de port au niveau du routeur pour que le serveur soit accessible à travers le net.
  • 19.
    UCAD/ESP/DGI Serigne FallouNDIAYE 19 CHAPITRE III : ETUDE GLOBALE DE LA TELEPHONIE SUR IP
  • 20.
    UCAD/ESP/DGI Serigne FallouNDIAYE 20 I. PRESENTATION DE LA TOIP 1. LA TELEPHONIE PAR CIRCUIT ET PAR PARQUET Dans la communication à transfert de paquets, toutes les informations à transporter sont découpées en paquets pour être acheminées d’une extrémité à une autre du réseau. Cette technique est illustrée à la figure 1 ci-dessous. L’équipement terminal A souhaite envoyer un message à B. Le message est découpé en trois paquets, qui sont émis de l’équipement terminal vers le premier nœud du réseau, lequel les envoie à un deuxième nœud, et ainsi de suite, jusqu’à ce qu’ils arrivent à l’équipement terminal B. Dans l’équipement terminal les paquets rassemblés reconstituent le message de départ. Le paquet peut en fait provenir de différents médias. Sur la figure, nous supposons que la source est un message composé de données, comme une page de texte préparée au moyen d’un traitement de texte. Le terme message est cependant beaucoup plus vaste et recoupe toutes les formes sous lesquelles de l’information peut se présenter. Cela va d’une page Web à un flot de parole téléphonique représentant une conversation. Dans la parole téléphonique, l’information est regroupée pour être placée dans un paquet, comme illustré à la figure 2. Le combiné téléphonique produit des octets, provenant de la numérisation de la parole, c’est-à-dire le passage d’un signal analogique à un signal sous forme de 0 et de 1, qui remplissent petit à petit le paquet. Dès que celui-ci est plein, il est émis vers le destinataire. Une fois le paquet arrivé à la station terminale, le processus inverse s’effectue, restituant les éléments binaires régulièrement à partir du paquet pour reconstituer la parole téléphonique. Le réseau de transfert est lui-même composé de nœuds, appelés nœuds de transfert, reliés entre eux par des lignes de communication, sur lesquelles sont émis les éléments binaires constituant les paquets. Le travail d’un nœud de transfert consiste à recevoir des paquets et à déterminer vers quel nœud suivant ces derniers doivent être acheminés. Figure 2: Technique de transfert de paquets
  • 21.
    UCAD/ESP/DGI Serigne FallouNDIAYE 21 Figure 3: Un flot de paquets téléphoniques 2. LA PROBLEMATIQUE DE BASE DE LA TELEPHONIE SUR IP La voix sur IP adresse deux types d’applications : celles qui, comme la téléphonie, mettent en jeu une interaction humaine, laquelle implique un temps de transit très court, et celles qui transportent des paroles unidirectionnelles, qui n’exigent pas de temps réel. Cette dernière catégorie rassemble essentiellement des transferts de fichiers contenant de la parole. La téléphonie transportée par paquets, et plus particulièrement par paquet IP, permet d’intégrer dans un même réseau les services de données et la téléphonie. Les entreprises sont de plus en plus nombreuses à intégrer leur environnement téléphonique dans leur réseau à transfert de paquets. Les avantages de cette intégration sont, bien sûr, la baisse des frais de communication, mais aussi la simplification de la maintenance de leurs réseaux, qui passent de deux (téléphonie et données) à un seul (données). La difficulté de la téléphonie par paquets réside dans la très forte contrainte temporelle due à l’interaction entre individus. Le temps de latence doit être inférieur à 300 ms si l’on veut garder une interaction humaine acceptable. Si l’on souhaite une bonne qualité de la conversation, la latence ne doit pas dépasser 150 ms. Un cas encore plus complexe se produit lorsqu’il y a un écho, c’est-à-dire un signal qui revient dans l’oreille de l’émetteur. L’écho se produit lorsque le signal rencontre un obstacle, comme l’arrivée sur le combiné téléphonique. L’écho qui repart en sens inverse est numérisé par un codec (codeur-décodeur) et traverse sans problème un réseau numérique. La valeur normalisée de la latence de l’écho étant de 56 ms, pour que l’écho ne soit pas gênant à l’oreille, il faut que le temps aller ne dépasse pas 28 ms, en supposant un réseau symétrique prenant le même temps de transit à l’aller qu’au retour. Il faut donc que, dans les équipements terminaux, les logiciels extrémité soient capables de gérer les retards et de resynchroniser les octets qui arrivent. Les équipements modernes, comme les terminaux GSM, possèdent des suppresseurs d’écho évitant cette contrainte temporelle forte. Une autre caractéristique essentielle de la téléphonie provient du besoin d’avertir par une sonnerie la personne qui est appelée. La communication téléphonique est pour cela décomposée en deux phases : une première permettant d’avertir le destinataire, et une seconde correspondant au transport de la parole proprement dite. Il existe en réalité une troisième phase, qui consiste en
  • 22.
    UCAD/ESP/DGI Serigne FallouNDIAYE 22 la finalisation de la communication lorsqu’un des deux terminaux raccroche. Cette phase utilise le même type de protocole que la première : un protocole de signalisation. 3. AVANTAGE DE LA TOIP La téléphonie n’a jamais été une application simple. Les contraintes temps réel et de synchronisation pèsent lourdement sur sa mise en œuvre, et la téléphonie par paquet ne fait que compliquer le transport. Cependant, plusieurs raisons expliquent le succès de la téléphonie par paquet, et plus spécifiquement de la téléphonie sur IP :  Convergence Quel que soit le type de données véhiculées, le réseau est unique : les flux de voix, de vidéo, de textes et d’applicatifs transitent sur le même réseau. Les communications deviennent plus riches, et sans avoir besoin de multiplier les canaux de transport.  Optimisation des ressources. Le réseau IP utilisant un transfert de paquets, l’utilisation des ressources est optimisée en comparaison des solutions de type commutation de circuits. Dans le réseau RTC, qui est à commutation de circuits, des ressources sont dédiées pour toute la durée de la communication, qu’elles soient utilisées ou non. Or les très nombreux silences d’une conversation téléphonique rendent le dimensionnement du canal réservé systématiquement trop grand. Pour que la voix supporte simultanément la superposition des deux paroles correspondant aux deux intervenants d’une communication téléphonique (full-duplex), les réseaux RTC doivent allouer pour chaque intervenant des canaux différents, l’un en émission, l’autre en réception. Dans la pratique, lors d’une conversation téléphonique, une seule personne parle en même temps. Les ressources sont donc globalement gaspillées. C’est pourquoi la réservation effectuée dans les réseaux RTC représente un coût nettement supérieur à celui des réseaux IP.  Coût de transport quasiment nul. Grâce à l’intégration de la téléphonie parmi de nombreuses autres applications, le coût du transport devient pratiquement nul. Le réseau permettant d’effectuer le transport est le réseau cœur des opérateurs, celui qui effectue tous les transports de données. Ces opérateurs, qui étaient auparavant obligés de maintenir au moins deux réseaux, celui de téléphonie et celui de données, n’en ont plus qu’un seul à maintenir. L’intégration supplémentaire de la télévision dans le réseau de données fait également chuter les coûts de transport de cette application.  Services exclusifs. Certains services sont propres aux réseaux IP. Par exemple, le service de présence, consistant à détecter si un utilisateur est connecté au réseau ou non, ne nécessite aucune réservation de ressources dans un réseau IP, à la différence du réseau RTC. De façon analogue, pour le nomadisme des utilisateurs, il est plus simple de passer, partout dans le monde, par le réseau IP plutôt que par le réseau RTC.
  • 23.
    UCAD/ESP/DGI Serigne FallouNDIAYE 23  Disparition des commutateurs locaux. Liée à la précédente, cette nouvelle donne résulte de la possibilité de gérer les téléphones depuis le réseau de l’opérateur (système Centrex). Des solutions intermédiaires, comme les PBX-IP, permettent de passer petit à petit des circuits numériques aux liaisons paquet IP. 4 .LES DIFFERENTES SOLUTIONS DE TOIP OPEN SOURCE Il existe aujourd’hui plusieurs solutions de téléphonie sur IP. Globalement elles utilisent les mêmes principes de bases mais les fonctionnalités peuvent être différentes. Parmi celles-ci on peut citer :  FreeSWITCH FreeSWITCH est un PBX IP open source créé en 2006. Il offre quasiment tout ce qu’un PBX IP de renom comme asterisk dispose. Il implémente les différents types de signalisation à savoir SIP, H323, MGCP ….  Asterisk Asterisk est un autocommutateur téléphonique privé (PABX) open source et propriétaire (publié sous licence GPL et licence propriétaire) pour systèmes GNU/Linux. Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu'un protocole spécifique nommé IAX (Inter-Asterisk eXchange). Ce protocole IAX permet la communication entre deux serveurs Asterisk ainsi qu'entre client et serveur Asterisk. Asterisk peut également jouer le rôle de registrar et passerelle avec les réseaux publics (RTC, GSM, etc.) Asterisk est extensible par des scripts ou des modules en langage Perl, C, Python, PHP, et Ruby. 5. CONCLUSION La téléphonie reste une des applications dominantes du monde des réseaux, et ce pour encore de nombreuses années, en raison notamment de l’émergence de nouveaux et immenses marchés, comme celui de la Chine. La VoIP reste aujourd’hui majoritairement prise en charge par les réseaux à commutation de circuits, mais une forte concurrence s’exerce avec les réseaux à transfert de paquets. Le passage vers le tout-IP téléphonique, permettant d’intégrer les services de données et la téléphonie dans un même réseau, paraît inéluctable. Cependant, parmi la panoplie de choix qui s’offre à nous, on a préféré travailler avec l’IPBX Asterisk grâce notamment à sa facilité de mise en œuvre et les innombrables avantages qu’il met à notre disposition. II. LA PLATEFORME ASTERISK Asterisk est un commutateur téléphonique privé à part entière mais d'implémentation logicielle, compatible avec Linux et qui s'interconnecte avec quasiment tous les équipements de téléphonie de base. Il rassemble plus de 100 ans de connaissance sur la téléphonie dans une robuste suite d’applications de télécommunication fortement intégrées. C’est probablement l’un des outils les plus puissants, les plus flexibles et les plus extensibles fournissant tous les services de télécommunications qui soient. Il a été développé par Mark Spencer à l'origine de l'entreprise Digium, et qui continue, grâce à de nombreux contributeurs, à évoluer régulièrement. Ce logiciel a été conçu pour une
  • 24.
    UCAD/ESP/DGI Serigne FallouNDIAYE 24 flexibilité maximale et reste un système ouvert à de nouvelles applications. Asterisk fournit toutes les fonctionnalités attendues d'un PABX mais aussi la voix sur IP et n'a besoin d'aucun matériel supplémentaire pour l'assurer. Dans l'interconnexion avec les équipements de téléphonie numériques et analogiques, Asterisk reconnaît une large gamme de dispositifs matériels, et notamment ceux fabriqués par ses sponsors, tels que digium, ou encore Quicknet. Asterisk offre des services tels que la conférence téléphonique, le répondeur interactif, la mise en attente d'appels, la messagerie vocale, la musique d'attente, les enregistrements d'appels pour l'intégration avec des systèmes de facturation, etc... Asterisk crée un environnement unique qui peut être façonné pour s’adapter à n’importe quel cas d’utilisation notamment en tant que serveur vocal interactif. Asterisk est conçu pour s’interfacer avec n’importe quel dispositif logiciel ou matériel de télécommunication de manière cohérente et progressive. Asterisk est un logiciel assez complexe, dont la configuration peut être ardue. Il propose des options avancées de configuration et d’ouverture parmi lesquelles nous avons une base de données interne et un système de communication avec des applications externes : AGI. AGI (Asterisk Gateway Interface) est une interface permettant de faire communiquer le plan de numérotation (extensions.conf) avec des programmes extérieurs à Asterisk, écrits avec des langages de programmation aussi divers que PHP, Perl, Python, C, Shell Linux. AGI est matérialisé par l'écriture de scripts qui sont exécutés dans le plan de numérotation. A chaque lancement d'un script AGI, Asterisk envoie au script un ensemble de variables avec leurs valeurs. Les fonctionnalités des scripts AGI sont aussi diverses que le langage de programmation choisi ne permet de possibilités. Il est entre autres possible de :  Faire des requêtes dans une base de données (et ainsi lier un serveur Asterisk à une application)  Modifier les informations à l'affichage  Améliorer les manipulations dans le plan de numérotation  Améliorer le traitement des appels  Créer un historique personnalisé  Etc. A cela s’ajoute la possibilité d'utiliser les autres applications de type AGI. A savoir :  EAGI (): Permet de lire le canal son.  DeadAGI (): Permet de contrôler les canaux désactivés (hangup/raccroché).  FastAGI (): Permet au script d'être utilisé sur un serveur Asterisk distant. 1. ARCHITECTURE Asterisk a une architecture très simple. Il se comporte comme un middleware connectant les applications et les technologies de téléphonie. Il a tout d’abord été développé sur GNU/LINUX pour x/86. Mais il a été soigneusement conçu pour une flexibilité maximale. Ainsi les APIS spécifiques sont définies autour d'un système PBX central. Ce noyau avancé manipule l’interconnexion interne du PBX proprement soustrait des protocoles spécifiques, des codecs et des interfaces matérielles des applications de téléphonie. Cela permet à Asterisk d'utiliser n'importe quel matériel approprié et
  • 25.
    UCAD/ESP/DGI Serigne FallouNDIAYE 25 technologie disponible (maintenant ou à l'avenir) pour exécuter ces fonctions essentielles, en connectant le matériel et les applications. Figure 4: Architecture d’Asterisk  Equipement d’interconnexion Il est à noter que pour un usage en interne, Asterisk ne nécessite aucun matériel supplémentaire mais nécessite une ou plusieurs cartes pour atteindre le réseau téléphonique commuté. Exemple : Figure 5: Carte vocale Digium 2. CARACTERISTIQUES Les solutions de commutations téléphoniques d’Asterisk offrent un assortiment à caractères riches et flexibles. Asterisk offre les fonctionnalités du PBX classique ainsi que des caractéristiques avancées et fonctionne avec les systèmes traditionnels de commutations téléphoniques à base standard et aussi avec les systèmes Voix sur IP. Asterisk fournit toutes les caractéristiques souhaitables d’un large système PBX. Asterisk prend en charge de nombreux protocoles MRT (Multi-Threaded Routing Toolkit) pour le traitement et la transmission de la voix par les interfaces de téléphonie traditionnelle. Asterisk est compatible avec les types de signalisations standards américaines et européennes utilisés dans les systèmes téléphoniques d’affaire standard ; il établit un pont entre la prochaine génération de réseaux d'intégration voix-données et les infrastructures déjà en place.
  • 26.
    UCAD/ESP/DGI Serigne FallouNDIAYE 26 Non seulement Asterisk est compatible avec les équipements de téléphonie traditionnels, mais il étend leurs capacités techniques. Asterisk est muni d'un noyau de commutation, de quatre API pour effectuer le chargement modulaire des applications de téléphonie, gérer les interfaces d'équipement, les différents formats de fichiers et des codecs (voir figure ci-dessous). Figure 6: Les API d’Asterisk La commutation entre les différentes interfaces qui sont prises en charge s'effectue de façon transparente, c'est pourquoi il peut intégrer tellement de systèmes de téléphonies différents en un seul réseau de commutation. Asterisk pour fonctionner, a besoin d'une configuration matérielle et logicielle minimale:  Processeur : Pentium III 900Mhz ou supérieur  Mémoire : mini 256Mo de RAM 3. FONCTIONNALITES Asterisk propose toutes les fonctionnalités d’un standard téléphonique de niveau professionnel, des plus élémentaires aux plus complexes. Non seulement, il permet de gérer le routage des appels au sein du réseau, mais en plus il supporte une large gamme de services :  Authentification des utilisateurs appelants.  Serveur vocal, ou standard d’accueil téléphonique automatisé, aussi appelé IVR (Interactive Voice Response). Cette fonction permet de demander à l’appelant le service qu’il souhaite utiliser et d’effectuer le routage correspondant.  Numérotation abrégée pour définir des raccourcis.  Transfert d’appel.  Filtrage des appels.  Messagerie vocale (répondeur automatique).  Notification et écoute par e-mail des messages laissés sur son répondeur (voicemail).  Gestion des conférences etc.
  • 27.
    UCAD/ESP/DGI Serigne FallouNDIAYE 27 4. AVANTAGES ET INCONVENIENTS 4.1 AVANTAGES Asterisk est très flexible et on peut construire des réseaux de taille variable qui vont du PBX connectant un seul téléphone analogique ou IP aux grands systèmes connectant plusieurs téléphones analogiques et IP Asterisk fusionne de façon transparente le trafic de la voix et des données sur des réseaux disparates au moyen du protocole voix sur IP IAX (Inter-Asterisk eXchange). Il est possible, au moyen de paquets de données vocales, de transmettre des données, telles que les adresses URL et des images, alignées au trafic de la voix. C'est ce qui permet l'intégration évoluée des données Asterisk permet la réduction des coûts car étant un logiciel Open Source et ne nécessitant pas de dispositif très important pour sa mise en œuvre. Évolutif, car les programmeurs Open Source participent au codage. Ainsi Asterisk grossit rapidement avec de nouvelles fonctionnalités supplémentaires qui sont fréquemment ajoutées. 4.2 INCONVENIENTS La liaison doit être de bonne qualité car aussi bien la voix que les données passent par le même réseau. Ainsi ce réseau se doit d’être de bonne qualité, sinon plusieurs appels entre terminaux ou entre les terminaux et le serveur peuvent être rejetés ou ne peuvent pas aboutir. Dépendant du réseau électrique, car le serveur et certains des terminaux sont liés non pas au réseau téléphonique commuté (RTC), mais au réseau informatique. Donc, dès qu’il y a coupure d’électricité, le serveur devient indisponible, ce qui constitue d’ailleurs l’un des principaux inconvénients de cette solution. III. ETUDE SUR LES SERVEURS VOCAUX INTERACTIFS 1. INTRODUCTION La numérisation et l’informatique sont de nos jours en grand essor, ce qui a conduit à une importante évolution au niveau des réseaux téléphoniques. Nous assistons à une mise en place d’applications logicielles pour une meilleure gestion du flux des appels entrants et sortants. Le premier essai d'application des SVI a été réalisé par IBM en 1972 pour le compte de la Banque Bred. L'introduction des SVI dans les entreprises s'est généralisée dans le milieu des années 1980. Depuis 1991, les serveurs vocaux ne sont plus seulement présents dans les grandes entreprises, mais aussi dans les petites et moyennes entreprises qui s’activent dans les domaines de l’artisanat et des services fournis aux particuliers. Le SVI a constitué une étape historique de l'évolution des technologies informatiques et des télécommunications, au sens où c'était la première fois que l'intégration des technologies informatiques et vocales, et celle des technologies téléphoniques au sein d'un unique équipement débouchaient sur un véritable marché d'équipements de télécommunication. Le serveur vocal interactif constitue la première étape dans l'évolution du Couplage Téléphonie-
  • 28.
    UCAD/ESP/DGI Serigne FallouNDIAYE 28 Informatique (CTI). 2. DEFINITION Un serveur vocal interactif (SVI) est un système informatique qui prend en charge les appels entrants à l’aide de messages vocaux enregistrés ou de synthèse vocale. En d’autres termes, c’est une plateforme, un ensemble logiciel et/ou matériel, qui sert de répondeur vocal contrôlé par l'ensemble des touches du téléphone ou des technologies de reconnaissance vocale, permettant d'échanger de manière automatique des informations divers (messages, fax, etc.). Le système est interactif dès lors qu'une réponse à une question posée par l'appelant entraîne un traitement particulier de la part du serveur, car, l’appelant est appelé à interagir avec le serveur par la voix ou par l’utilisation des touches de son téléphone fixe, mobile ou d’un softphone 24h sur 24 et 7 jours sur 7 pour certaines applications. Le serveur vocal interactif peut orienter l’utilisateur vers un opérateur humain ou traiter entièrement la demande. L’accès à cette application se fait par un simple numéro de téléphone ou par un numéro spécialisé dont la demande s'effectue auprès d'un opérateur téléphonique. Plus précisément, un SVI est chargé de la délivrance d'informations courtes et simples. Il permet également d'identifier les appelants, de les aiguiller vers des services automatiques ou des téléopérateurs compétents. Le SVI permet aussi d’interroger une base de données dans le Système d’Information (SI). Les SVI sont adaptés à une large gamme de services et fonctions. Les applications classiques du serveur vocal sont les services de transaction (réservation, télépaiement, etc) et les services de consultation (horaires, comptes bancaires, etc.). 3. ROLE D’UN SVI Autre fois, le SVI avait, que, pour rôle la gestion intelligente du temps d'attente. A présent, nous assistons à une variation du rôle des serveurs vocaux, grâce notamment à la synthèse vocale qui a profondément modifié le fonctionnement de la messagerie et de l'accueil. En même temps, le couplage téléphonie-informatique a révolutionné les centres d'appels en donnant un nouveau rôle aux serveurs vocaux interactifs. Les réseaux téléphoniques acceptant la numérotation en fréquence vocale, celle qui permet d'envoyer les signaux DTMF (Dual Tone Multi Frequency) avec les touches du combiné, ont offert la possibilité de communiquer à distance avec les serveurs interactifs. Etant donné qu’aujourd'hui, le téléphone s'affirme comme le centre névralgique d'une entreprise, qu'elle soit une TPE, une PME ou une grande compagnie, un simple combiné et un répondeur classique ne suffisent plus pour répondre au mieux à des nombreuses demandes des clients. De ce fait, la téléphonie, à travers les SVI, apparait comme indispensable pour le développement d’une entreprise. Plus le nombre d’appels reçus par l’entreprise croît et plus celle-ci doit assurer un meilleur accueil à ses clients potentiels. Pour ce faire, l’entreprise doit administrer au mieux les files d’attente. Dans les années 1990, la prise de conscience que l'image d'une entreprise dépend de la qualité de son accueil téléphonique va engendrer une multitude d'investissements. Ainsi, l'acquisition d'un serveur vocal qui répond immédiatement aux appels et limite le nombre d'appels non aboutis, vise à améliorer l'image de l'entreprise dans un premier temps, puis le contact client/entreprise. Concrètement, la fonction première d'un SVI consiste à répondre aux appels reçus avec un niveau de qualité optimale, en s'appuyant sur les atouts intrinsèques de l'automate. Avec
  • 29.
    UCAD/ESP/DGI Serigne FallouNDIAYE 29 un serveur vocal interactif, fini les longues attentes dans les périodes d'encombrement du standard, une voix vous guide et vous permet d'accéder directement au service correspondant à votre demande. Le SVI permet de traiter une partie des demandes et de suppléer aux centres d’appels pendant les heures de fermeture. Le SVI est aussi en mesure de faire une sélection d'appels en limitant les appels polluants. En résumé, un SVI offre une solution pour le traitement des appels entrants qui se résume à la devise : « être disponible lorsque les clients appellent, traiter au mieux chaque appel de vos clients et rester efficace, précis quand le téléphone sonne sans cesse ». Avec le développement de l’Internet et l’émergence de nouveaux médias notamment les téléphones mobiles, le SVI connaît un regain d’intérêt et ouvre de nouveaux champs d’application qui permettent l’accès en base de données. 4. LES TYPES DE BASE D’UN SVI Avec un serveur vocal interactif, on peut mettre en place plusieurs fonctionnalités telles que la mise à disposition d’informations spécifiques sous forme vocale, un standard automatique à partir d’une certaine heure avec possibilité d’aiguillage automatique, la diffusion d’alertes, l’interrogation de bases de données. De ce fait les SVI se regroupent en trois types d'utilisation standards: la borne d'informations, le standard téléphonique et l'utilisation d'un SVI en liaison avec une base de données ou CTI (Couplage Téléphonie Informatique). 4.1 LA BORNE D’INFORMATION Le fonctionnement en borne d’information est le service le plus basique que puisse rendre un SVI. Ce dernier diffuse des messages répétitifs, plus précisément des informations pratiques, sans aucune intervention humaine. Cette fonction permet à l’appelant d’être guidé dans une arborescence afin de trouver les informations qu’il cherche. Il passe d’un menu à l’autre par simple choix. Les SVI bornes d'informations sont quelques fois utilisées en cas de "débordement d'appels" c'est à dire quand le service de réception assuré par du personnel est saturé. Les appels entrants sont redirigés vers des SVI fonctionnant en débordement d’appel. 4.2 LE STANDARD TELEPHONIQUE Le standard téléphonique, encore appelé standard pré-décroché, est un commutateur, c'est-à-dire un appareil assurant automatiquement les connexions téléphoniques entre appelé et appelant (à l'intérieur de l'entreprise comme vers l'extérieur). Il se charge de l’accueil de l’appelant et lui propose par des choix dans des menus vocaux d’accéder à son correspondant. Les choix s’effectuent par fréquence vocale sur le clavier téléphonique de l’appelant ou parfois par reconnaissance vocale. Le standard téléphonique permet de transférer les appels, les guider vers les différents services et correspondants, les filtrer en cas de besoin. Le SVI doit alors faire suivre l'appel, et pour cela il doit commander le PABX (Private Automatic Branch eXchange) qui à son tour peut conduire des appels sans interposition manuelle en se basant entièrement sur le numéro composé, c’est un outil très puissant et très flexible en terme de mécanisme de routage.
  • 30.
    UCAD/ESP/DGI Serigne FallouNDIAYE 30 4.3 LE COUPLAGE TELEPHONIE INFORMATIQUE Figure 7: Couplage Téléphonie Informatique La notion de CTI est la réunion et l'intégration des mondes de la téléphonie et de l'informatique sur une plateforme commune. Le CTI donne la possibilité d’interroger une base de données, d’y stocker des informations saisies par l’appelant, mais aussi de lui diffuser des informations qui lui sont propres. Pour parvenir à cela, il faut intégrer la base de données dans le logiciel de gestion du SVI. Ce qui différencie ces SVI des autres ne se situe pas au niveau matériel, mais plutôt au niveau logiciel. Le logiciel employé n'est plus un logiciel aux fonctions limitées mais un progiciel. Ce sont par exemple les SVI de type prise de commandes, consultations de comptes bancaires, etc. En effet, le couplage téléphonie informatique (CTI) permet notamment l’utilisation de bases de données qui contiennent les traces des appels (nombre, durée, qualité, agent, etc) et facilitent une approche statistique pour aider à la décision. Les fonctions du CTI permettent d’effectuer le chargement de la fiche du demandeur sur l’applicatif métier lors de la présentation de l’appel à l’opérateur. Grâce au CTI les messages vocaux sont des fichiers informatiques que l’on peut à souhait placer dans des scénarii où naviguent les interlocuteurs. De plus le couplage téléphonie informatique permet une gestion plus aisée en associant par exemple le numéro de téléphone de l’appelant ou un code émis par l’appelant, avec une fiche personnalisée. 5. FONCTIONNEMENT D’UN SVI Un serveur vocal interactif fonctionne en se basant le plus souvent sur cinq modules : la reconnaissance de la parole, l’analyseur sémantique, le gestionnaire du dialogue, la gestionnaire de réponse et la synthèse de parole.
  • 31.
    UCAD/ESP/DGI Serigne FallouNDIAYE 31 Figure 8: Fonctionnement d’un SVI  La reconnaissance de la parole : c’est une technique informatique qui permet d'analyser la parole cap0tée au moyen d'un microphone pour la transcrire sous la forme d'un texte exploitable par une machine. Elle vise à transformer le signal acoustique produit par l'interlocutoire en une chaine textuelle équivalente.  Analyseur sémantique: L’objectif de la compréhension est de dégager les intentions de l’usager et d’identifier les actes de langage employés. Il s’agit de donner du sens à la ou aux phrases reconnues. C’est aussi une phase de l’analyse qui en établit la signification en utilisant le sens des éléments (mots) du texte, par opposition aux analyses lexicales ou grammaticales qui décomposent le message à l'aide d'un lexique ou d'une grammaire.  Gestionnaire de parole: Véritable chef d’orchestre du système, le contrôleur de dialogue est chargé d’interagir avec le système d’information, de gérer l’interaction (choix de la réponse à apporter).  Gestionnaire de réponse: Pour la génération, deux étapes peuvent être distinguées. La première est la génération profonde. Elle correspond à la question quoi dire ? c’est-à-dire qu'elle vise à déterminer le contenu sémantique de la réponse à l’utilisateur. La deuxième phase, dite génération de surface, permet de choisir les mots pour exprimer la réponse à l’utilisateur. Elle correspond à la question comment le dire ?  La synthèse de la parole : Dernière composante du système, c’est une technique informatique de synthèse sonore qui permet de créer de la parole artificielle à partir de n'importe quel texte. La synthèse vocale restitue de manière orale le message généré par la chaine de traitement. 6. L’INTERACTION CLIENTS-SVI / SVI-CLIENTS Les SVI se sont imposés aujourd’hui comme un outil stratégique pour les relations clients entreprises. Typiquement, pour un standard automatisé. L’appelant est guidé à travers une arborescence vocale et fait des choix au fur et à mesure soit à l’aide du clavier téléphonique avec les touches DTMF, soit grâce à la reconnaissance vocale par mots-clés. Ce sont les interactions Clients-SVI. Cette interaction client à SVI est obligatoire pour pouvoir s'orienter
  • 32.
    UCAD/ESP/DGI Serigne FallouNDIAYE 32 dans la série de menus vocaux proposés par la plate-forme vocale. Ainsi, au fil des menus, la précision de la demande s'accentue. Cette interaction est effectuée de 2 façons différentes :  L’utilisation des touches DTMF du téléphone  L'utilisation de la reconnaissance vocale Le SVI doit aussi transmettre les différentes possibilités à l’appelant. Ces possibilités lui sont transmises vocalement : ce sont les interactions SVI-Clients. 6.1 INTERACTION CLIENTS-SVI 6.1.1 LES TOUCHES DTMF Un code DTMF (Dual Tone Multi Frequency) est une combinaison de fréquences utilisée pour la téléphonie moderne. Ces codes sont utilisés pour la composition des numéros de téléphones (en opposition aux téléphones dits à impulsions), et ils ont permis la création des premiers serveurs vocaux interactifs. Techniquement, chaque touche d'un téléphone correspond à un couple de deux fréquences audibles qui sont jouées simultanément. De cette façon, huit fréquences bien distinctes permettent de coder seize touches. Ces fréquences peuvent être reconnues par des dispositifs électroniques et sont utilisées pour réaliser des serveurs vocaux. Dans le tableau suivant figurent des touches « A » à « D » : celles-ci étaient utilisées par l'armée américaine pour représenter la priorité d'une communication. Ce système moderne a été développé par la firme américaine Bell. Le but recherché était de définir un système de numérotation rapide pouvant être utilisé par les appareils numériques (ordinateurs, centraux numériques). La signalisation DTMF est employée pour permettre à l’utilisateur de transmettre des ordres au SVI. Avec cette technique, les touches du clavier téléphonique sont identifiées par leur fréquence en mode DTMF qui permet l’émission de tonalités multifréquences destinées à la signalisation sur le réseau analogique. Chaque chiffre ou digit correspond à un signal sonore. Le signal est constitué de l'addition de deux sons (Dual Tone), dont les fréquences caractérisent un digit (Multi Frequency). Le signal ainsi envoyé correspond à l'émission de deux fréquences précise qu'un bruit intempestif sur la ligne ne peut perturber. Les digits définis par le DTMF sont les mêmes que pour le système à impulsions (de 0 à 9) avec en plus 6 nouveaux digits (#, *, A, B, C et D). Cependant, on ne trouve généralement que les deux nouveaux digits # et * sur les claviers de téléphone. Un digit est défini par la somme de signaux sinusoïdaux de fréquences différentes. Les fréquences utilisées sont caractéristiques et leurs valeurs sont regroupées ci-contre. Un 5 sera, par exemple, généré en additionnant deux signaux de fréquences 770Hz et 1336Hz. Les avantages de ce système sont multiples, les numéros de téléphone peuvent être composés très rapidement et peuvent être générés par des systèmes informatiques. Figure 9: Tableau récapitulatif des différentes fréquences du standard DTMF
  • 33.
    UCAD/ESP/DGI Serigne FallouNDIAYE 33 Cependant la signalisation DTMF est remplacée dans certaines plateformes par la reconnaissance vocale qui se trouve être plus facile à utiliser. Avec le DTMF, le système donne des ordres à l'utilisateur, avec la reconnaissance vocale, c'est l'inverse. L’inconvénient majeur du DTMF est que certains postes téléphoniques n’y ont pas accès, il concerne les postes émettant des sons à la numérotation. De plus, en termes purement fonctionnels le DTMF est limité car il ne peut pas être utilisé par un SVI qui propose un nombre de choix qui dépasse le nombre de touches du clavier téléphonique. 6.1.2 LA RECONNAISSANCE VOCALE Figure 10: Processus de la reconnaissance vocale La reconnaissance vocale est l’une des tâches pionnières de l’Intelligence Artificielle (IA) consistant à reproduire la capacité d’un être humain à extraire des informations de la parole produite par un autre être humain. Cette tâche, trop complexe pour être reproduite par un système informatique unique, a été subdivisée en plusieurs sous problèmes en fonction du type d’informations à extraire et à reconnaître. Les problématiques les plus étudiées sont la reconnaissance du locuteur, de son état émotionnel, de la langue employée et du langage parlé. Les recherches sur la résolution de ces tâches ont donné lieu, depuis une vingtaine d’années, à des dizaines de milliers de publications, des centaines de bases de données de parole, des dizaines de campagnes internationales d’évaluation. Les progrès ont été importants et ont permis le développement d’applications importantes en communication homme-machine comme la dictée vocale ou les systèmes de dialogues finalisés des serveurs vocaux interactifs (SVI). Cependant de nombreuses recherches restent indispensables en raison de l’ampleur du problème et de sa variabilité : 7 milliards de locuteurs, plus de 500 noms d’émotions, près de 7000 langues et quelques centaines de milliers de mots par langue. D’autres types d’information restent pour l’instant pratiquement inexploités comme l’accent, l’état physiologique, le niveau de stress ou de fatigue. Pour les utilisateurs, la reconnaissance vocale est plus souple d’utilisation que les touches DTMF. Cette fonction permet de rendre les applications plus interactives. La reconnaissance automatique de la parole en langage naturel s'effectue par repérage des mots clés. Cette technologie permet de remplacer les interfaces DTMF. Avec la reconnaissance vocale, c’est l’utilisateur qui impose
  • 34.
    UCAD/ESP/DGI Serigne FallouNDIAYE 34 ses choix de navigation au système. La reconnaissance vocale permet une plus grande souplesse pour l'utilisateur mais implique un coût plus élevé pour la configuration du serveur vocal : mémoire, applications, espaces disques, processeurs, etc. Un module de reconnaissance de mots ou de phrases d'un système nécessite des quantités importantes de connaissances acoustiques et linguistiques. Les connaissances acoustiques permettent au système de reconnaître les sons, alors que les connaissances linguistiques permettent de retrouver les mots et de valider leur enchaînement. Pour obtenir des performances suffisantes, il est indispensable de disposer de corpus enregistrés dans des conditions aussi proches que possible de celles des applications visées. Deux approches, l'une plus globale, l'autre plus analytique permettent d'appréhender la reconnaissance des mots. Dans l'approche globale, l'unité de base sera le plus souvent le mot considéré comme une entité globale, c'est-à-dire non décomposée. L'idée de cette méthode est de donner au système une image acoustique de chacun des mots qu'il devra identifier par la suite. Cette opération est faite lors de la phase d'apprentissage, où chacun des mots est prononcé une ou plusieurs fois. Cette méthode a pour avantage d'éviter les effets de coarticulation, c'est à dire l'influence réciproque des sons à l'intérieur des mots. Elle est cependant limitée aux petits vocabulaires prononcés par un nombre restreint de locuteurs. L’approche analytique, qui tire parti de la structure linguistique des mots tente de détecter et d’identifier les composantes élémentaires (phonèmes, syllabes). Celles-ci sont les unités de base à reconnaître. Cette approche a un caractère plus général que la précédente : pour reconnaître de grands vocabulaires, il suffit d’enregistrer dans la mémoire de la machine les principales caractéristiques des unités de base. Actuellement, bien que la reconnaissance vocale soit encore loin d’être parfaite, les échecs de cette technique sont le plus souvent causés par une mauvaise compréhension notamment pour les mots hors vocabulaire, un modèle de dialogue inadapté ou encore par le comportement et les attitudes de l‘utilisateur mal modélisés. Ce dernier n’agissant pas comme prévu, le système comprend mal ses attitudes et la stratégie de dialogue peut alors devenir déroutante pour l’usager. 6.2 INTERACTIONS SVI-CLIENTS Le SVI guide l’utilisateur à travers l’arborescence vocale par le biais d’annonces vocales. On distingue les annonces avec un fond sonore et les annonces classiques. 6.2.1 ANNONCE AVEC UN FOND SONORE Un fond sonore est ajouté au message vocal pour améliorer l’interface vocale. Cette opération est réalisée par un enregistrement ou suivant la technique d’encodage MIC, le message est numérisé à 64 kbps. Il peut être compressé pour prendre moins d’espace disque sur le SVI. 6.2.2 ANNONCES CLASSIQUES Dans le cas d’un message composé de texte sans fond sonore (annonce classique), on peut soit enregistrer directement l’annonce sous forme de fichier sonore, soit utiliser la technique de la synthèse vocale. Dans le premier cas, l’espace disque nécessaire pour stocker l’annonce est plus important que dans le second. Pour cela, on préfère donc la technique de la synthèse vocale.
  • 35.
    UCAD/ESP/DGI Serigne FallouNDIAYE 35 7. LA SYNTHESE VOCALE Figure 11:Processus de la synthèse vocale La synthèse de la parole à partir du texte est la passerelle-clé entre le monde de l'écrit et celui de l'oral. La synthèse vocale est une technologie qui produit « des sons de parole à partir d’une représentation phonétique du message ». Cette technologie ne doit pas être confondue avec la restitution d’un message préenregistré dans laquelle le texte est fixe puisque la synthèse à partir du texte est utilisée à la place de la restitution de messages préenregistrés, dès que la fréquence (et donc le coût) de mise à jour de ces messages devient trop importante. Le principe est extrêmement simple, tout texte écrit peut être traduit en message vocal grâce à une simple carte de synthèse vocale. Deux grandes familles de synthèse vocale sont à distinguer :  Les systèmes qui utilisent la concaténation de mots entiers qui ont un vocabulaire limité et qui offrent une qualité de parole excellente. Ces systèmes ne nécessitent pas d’analyse linguistique.  Les systèmes dits de synthèse à partir du texte qui dans une première étape convertissent un texte en une chaîne de phonèmes marqués par des informations prosodiques (ensemble des phénomènes d’intonation d’une langue), et dans une seconde étape qui transforment cette chaîne en un ensemble de données acoustiques à transmettre à un synthétiseur. Le synthétiseur vocal permet de créer une voix artificielle semblable à celle de l'homme. Il convertit le texte codé au moyen d’un lecteur sonore d’écran et le transmet à la carte son, afin d’obtenir une reproduction orale en appliquant au signal les caractéristiques linguistico- prosodiques. Contrôlé au moyen d’un logiciel de lecteur sonore, le synthétiseur vocal peut faire varier la cadence, le débit, le volume et la langue. 7.1 MBROLA Mbrola est un synthétiseur vocal initié par le laboratoire de la Faculté Polytechnique de Mons en Belgique. Il est à l’origine d’un projet visant à obtenir un ensemble de
  • 36.
    UCAD/ESP/DGI Serigne FallouNDIAYE 36 synthétiseurs vocaux pour une multitude de langues qui est fournie gratuitement lorsqu’il s’agit d’applications non commerciales. Mbrola n’est pas sous licence de source libre. D’un point de vue, plus, concret, le synthétiseur vocal Mbrola est basé sur la concaténation de diphones. Ainsi, il prend une liste de phonèmes en entrée, avec des informations prosodiques, c’est-à-dire la durée des phonèmes et une description linéaire par morceaux de la tonalité, et produit des échantillons de parole sur 16 bits linéaire. Les fréquences d’échantillonnage proviennent d’une base de données de diphone. MBROLA n’est donc pas un synthétiseur « Text-To-Speech », puisqu’il n’accepte pas de texte brut en entrée, mais plutôt une représentation de phonèmes. Chaque base de données de diphone est adaptée au format MBROLA. Une voix françaises a été mise à la disposition par les auteurs de MBROLA, et le projet MBROLA a été lui-même organisée de manière à inciter les laboratoires de recherche et les entreprises à partager leurs bases de données de diphone. Il est à noter que les bases de données sont aussi rendues disponibles pour utilisation non commerciale et utilisation non militaires dans le cadre du projet MBROLA. 7.2 LIA_PHON Comme nous l’avions évoqués précédemment, MBROLA n’étant pas un synthétiseur «Text-To-Speech», Lia_Phon va être utilisé pour cette fonction, en le reliant au synthétiseur vocal MBROLA, afin d’obtenir effectivement une sortie audio basée sur un texte d’origine. Lia_Phon est un système de phonétisation de textes qui a été développé au LIA (Laboratoire Informatique de l’Avignon) par Frédéric Bechet. Ce système permet de nettoyer, étiqueter, accentuer et phonétiser un texte libre. Un module de génération d’une prosodie minimale est également fourni afin de générer des fichiers compatibles avec le synthétiseur vocal MBROLA. Lia_Phon est disponible gratuitement sous licence GNU GPL. 8. CONCLUSION En définitif on peut dire que les serveurs vocaux sont promus à un bel avenir en ce sens qu’ils proposent des solutions accessibles à un plus grand nombre d’utilisateurs, mais nécessitent un plus grand investissement pour pouvoir en tirer le maximum de profit. Cependant, il existe toujours des solutions libres permettant, dans une moindre mesure, de faire du Service Vocal Interactif avec une qualité de service optimale. Sans chercher loin, on peut citer la solution Asterisk. En effet, les SVI dans Asterisk conviennent parfaitement pour la mise en place de notre plateforme.
  • 37.
    UCAD/ESP/DGI Serigne FallouNDIAYE 37 CHAPITRE IV : DESCRIPTION ET MISE EN PLACE DE LA PLATEFORME
  • 38.
    UCAD/ESP/DGI Serigne FallouNDIAYE 38 I. DESCRIPTION 1. LES ACTEURS DE LA PLATEFORME Dans le cahier de charge, il est question de réaliser une plateforme de prise de Rendez- vous autonome sous Asterisk. En principe cette plateforme met en jeu 2 acteurs mais on peut les scinder en 3 :  Un utilisateur est toute personne autre que l’administrateur qui utilise la plateforme pour bénéficier de ses différentes fonctionnalités. Cet utilisateur peut être un abonné ou un client (ou appelant)  L’abonné peut être une personne, un cabinet médical ou une entreprise. Il s’abonne au niveau du système et dispose automatiquement d’un ensemble de fonctionnalités qui lui permet de gérer son agenda d’attribution de rendez-vous. En effet, il pourra enregistrer les heures dont il est disponible dans une base de données et le système se chargera de lui faire fixer ses rendez-vous et de l’informer. Il pourra voir les coordonnées des autres abonnées et de pouvoir les appeler avec un softphone gratuitement. Il peut visualiser les rendez-vous que le système a réservés et de pouvoir annuler ceux pour lesquels il n’est plus disponible.  Un client : il s’agit d’une personne lambda qui va appeler vers le serveur pour avoir un rendez-vous avec l’abonné X. Ce client va utiliser son téléphone personnel et le serveur va d’abord enregistrer son numéro puis lui demande de faire un choix en fonction des abonnés qui existe dans le système. Une fois le choix fait, le serveur va traiter sa requête. Si l’abonné X a des rendez-vous disponibles dans son agenda, le serveur en choisit une et l’attribue au client en le lui disant vocalement et en le lui notifiant par SMS avec un code de 10 caractères qui est unique et qui permet d'authentifier le rendez-vous. Si aucun rendez-vous n’est disponible, son numéro est sauvegardé dans la liste d’attente et dès qu’un RV est disponible on lui envoie un SMS pour le lui notifier  L’administrateur : Il est chargé de paramétrer et d’administrer le système. C’est lui qui enregistre les abonnés, créée des comptes pour permettre aux gens d’utiliser le serveur Asterisk afin d'émettre et de recevoir des appels … 2. LES FONCTIONNALITES DE LA PLATEFORME Dans cette partie on va vous présenter l’ensemble des fonctionnalités dont dispose notre plateforme.  Prendre rendez-vous : le client d’une entreprise ou le patient d’une clinique appelle sur le numéro dédié au serveur s’il désire avoir un rendez-vous avec le responsable. Le système se charge de lui en attribuer.  Gérer agenda : il consiste à l’ensemble des opérations relatives à la gestion du calendrier de l’abonné. C’est-à-dire enregistrer dans le système les dates et heures où il est disponible pour donner un rendez-vous ; consulter la date de ses rendez-vous ; annuler un rendez-vous qui ne l’arrange plus.  Appeler : il s’agit d’une fonctionnalité qui permet à l’abonné d’appeler un correspondant via WebRTC.  Annuler RV : c’est la fonctionnalité qui permet à l’abonné d’annuler un rendez-vous.  Enregistrer abonné : un abonné est toute structure souhaitant confier son système de gestion de rendez-vous à l’entreprise EmC2. L’enregistrement est effectué par l’administrateur qui se trouve à EmC2-Group.
  • 39.
    UCAD/ESP/DGI Serigne FallouNDIAYE 39  Créer utilisateur : c’est lorsque l’administrateur créée un compte sur le serveur asterisk pour permettre aux gens de communiquer.  Visualiser informations : c’est la fonctionnalité qui permet à l’administrateur de voir les statistiques du système comme le nombre d’abonnés, de compte d’utilisateur et l’historique des appels.  Consulter message : l’administrateur va pouvoir consulter les messages envoyés par les abonnés.  Consulter contacts : c’est la fonctionnalité qui permet à l’abonné d’avoir une vue sur les utilisateurs et leur numéro pour pouvoir les appeler.  Mettre en attente : c’est quand le système met dans une liste d’attente les clients qui ont appelé mais qui n’ont pas trouvé de date libre pour un RV.  Notifier client : il s’agit des SMS envoyés aux clients pour leur confirmer un rendez- vous ou leur dire que le RV est annulé ou bien les informer qu’ils sont dans la liste d’attente.  Contacter administrateur : il s’agit des messages envoyés par les abonnés à l’administrateur pour donner ou demander des informations. II. REALISATION DE LA PLATEFORME Cette partie est la plus importante, il s’agit ici de montrer les différentes procédures à adopter pour la réalisation du projet. Toutefois, comme nous l’avons annoncé dans l’introduction, ce projet est constitué principalement de deux grandes parties. La première partie est celle qui s’intéresse aux configurations du serveur pour la mise en place d’un système fonctionnel capable de proposer des choix et de satisfaire la demande des clients. La seconde partie est purement informatique et consiste à développer les différentes interfaces qui vont permettre d’administrer et de gérer l’application. 1. ARCHITECTURE DE LA PLATEFORME Figure 12: Architecture de la plateforme client/mobile client/softphone IP softphone mobile serveur Asterisk avec SVI Base de données abonné serveur web prendre RV prendre RV traitement requete traitements des requetes planifier,consulter, annuler RV
  • 40.
    UCAD/ESP/DGI Serigne FallouNDIAYE 40 2. PREREQUIS ET OUTILS NECESSAIRES :  Un Ordinateur avec les caractéristiques minimales requises  Une Clé Bluetooth  Une Clé 3G Huawei 1552  Un Téléphone portable avec Bluetooth supportant Asterisk-mobile (Samsung, Nokia, LG...)  Installer apache2 et php5 3. MISE EN PLACE DU SERVEUR VOCAL INTERACTIF 3.1 INSTALLATION D’ASTERISK On a choisi de travailler sur un système d’exploitation Ubuntu 12.04 version 32bits et la version d’asterisk-11.2.2  Tout d’abord on va faire une mise à jour et installer quelques dépendances  Télécharger les paquets sources nécessaires   Décompresser les paquets  Compiler et installer # su root # apt-get update # apt-get install build-essential wget libssl-dev libncurses5- dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev libcurl4-nss-dev Bluetooth blueman bluez* libbluetooth-dev # cd /usr/src/ # wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4- current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/dahdi-linux- complete/dahdi-linux-complete-current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk- 11.2.2.tar.gz # tar zxvf dahdi-linux-complete-current.tar.gz # tar zxvf libpri-1.4-current.tar.gz # tar zxvf asterisk-11-2.2.tar.gz
  • 41.
    UCAD/ESP/DGI Serigne FallouNDIAYE 41  DAHDI  LibPRI  Asterisk  Remarque : Lors de l’exécution de la commande « make menuselect », il faut s’assurer que le module « chan_mobile » est bien prise en compte : [*] chan_mobile A la fin des installations, on va d’abord démarrer dahdi et ensuite asterisk. Puis on va se connecter dans asterisk pour vérifier si tout est OK Maintenant on peut s’attaquer à la configuration # cd /usr/src/dahdi-linux-complete-2.6.2+2.6.2/ # make && make install && make config # cd /usr/src/libpri-1.4.14/ # make && make install # cd /usr/src/asterisk-11.2.2/ # ./configure && make menuselect && make && make install && make config && make samples #/etc/init.d/dahdi start #/etc/init.d/asterisk start # asterisk –rvvvvvvvvvvvvv *CLI> dahdi show version DAHDI Version: 2.6.1 Echo Canceller: HWEC *CLI> pri show version libpri version: 1.4.13
  • 42.
    UCAD/ESP/DGI Serigne FallouNDIAYE 42 3.2 CONFIGURATION DE QUELQUES FONCTIONNALITES Avant d’entamer les configurations, voici quelques précisions :  Le nom du « contexte » sur lequel on va travailler tout le long est « emc2 »  Le plan de numérotation est la suivante :  5XXX pour les comptes utilisateurs  6000 pour la consultation de la boite vocale  1XXX pour les enregistrements vocaux  2000 pour l’IVR avec l’outil de synthèse vocal googletts  3000 pour l’IVR classique avec voix personnalisée  2025 pour le SVI de prise de rendez-vous  ## pour le transfert d’appel (transfert ‘aveugle’)  ** pour le transfert d’appel supervisé  700 pour le parking d’appel  4000 pour la visioconférence  5999 pour la redirection d’appel jusqu’à trouver un poste libre  *1 pour l’enregistrement d’appel à la demande de l’utilisateur 3.2.1 SIP.CONF
  • 43.
    UCAD/ESP/DGI Serigne FallouNDIAYE 43  register => trunkemc2 :passer@91.X.X.X est la ligne qui permet à mon serveur de se connecter sur le serveur en ligne.  [trunk_cloud] est le compte que j’ai créé sur mon serveur pour le trunk avec le serveur asterisk en ligne  [sfallou] est l’un des comptes utilisateurs que j’ai créé 3.2.2 EXTENSIONS.CONF 3.2.2.1 CONSULTATION DE LA BOITE VOCALE Comme son nom l’indique, c’est une fonctionnalité qui permet aux utilisateurs d’appeler sur un numéro et de taper leur mot de passe pour écouter les messages vocaux laissés sur sa boite vocale (Voir annexe 1). 3.2.2.2 REDIRECTION VERS UN POSTE LIBRE L’objectif de cette fonctionnalité est de permettre à l’appelant de joindre au moins une personne dans un centre d’appel. (Voir annexe 2). 3.2.2.3 ENREGISTREMENT D’APPEL A LA DEMANDE DE L’UTILISATEUR De temps en temps l’utilisateur a besoin d’enregistrer sa conversation téléphonique. C’est pourquoi on a mis en place cette fonctionnalité au cas où cela se présenterait. (Voir annexe 3) 3.2.2.4 ENREGISTREMENT VOCAL Cette fonctionnalité permet de faire des enregistrements vocaux qu’on va utiliser dans nos IVR. Il suffit juste d’appeler sur un numéro de la plage définie, d’enregistrer ce que l’on veut et appuyer sur # pour l’écouter. Le fichier son sous format ulaw est enregistré dans /var/lib/asterisk/sounds avec un nom « IVR-XXX.ulaw ». Pour l’écraser il faut juste rappeler sur le même numéro et faire un nouvel enregistrement. (Annexe 4) 3.2.2.5 IVR AVEC GOOGLETTS Le rôle de cet IVR est de rediriger les appels vers un utilisateur selon le choix. En d’autres termes c’est un SVI de type standard téléphonique. Cependant il utilise une technique de synthèse vocale appelée Text-To-Speech (TTS).(Annexe 5)
  • 44.
    UCAD/ESP/DGI Serigne FallouNDIAYE 44 Remarque : Avant d’éditer ces lignes ci-dessus dans le ficher extensions.conf ; il a fallu d’abord installer quelques dépendances, télécharger et rendre exécutable l’agi googletts. 3.2.2.6 IVR CLASSIQUE AVEC VOIX PERSONNALISEE Cet IVR fait la même chose que la précédente à la différence que celui-ci ne se base pas sur un TTS mais plutôt sur des voix préenregistrées. (Annexe 6) 3.2.2.7 VISIOCONFERENCE Dans le contexte [emc2] on inclue le contexte internal et on fait comme suit Cette dialplan permet de participer à une conférence. Le fichier de configuration des conférences est « confbridge.conf » qu’on va éditer dans la suite. (Voir annexe 7). 3.2.3 FEATURES.CONF Le fichier de configuration features.conf permet de configurer les fonctionnalités de redirection et de parking d’appel (Annexe 8). 3.2.4 VOICEMAIL.CONF Avec cette configuration les messages vocaux laissés sur la boite vocale d’un utilisateur sont envoyés dans sa boite mail en tant que pièce jointe accompagnée d’un message écrit. (Annexe 9) 3.2.5 CONFBRIDGE.CONF C’est le fichier de configuration pour la visioconférence. Dans ce fichier on peut définir autant de « room » de conférence que l’on veut. Ainsi, à la fin du fichier de configuration on a défini un « room » de conférence (voir Annexe 10). 3.2.6 TRUNK AVEC LE SERVEUR EN LIGNE Après avoir créé un compte sur chacun des deux serveurs pour le trunk, j’ai défini le dialplan ci-dessus au niveau de mon serveur. Ainsi tous appels commençant par 6000 (c’est le plan de numérotation du serveur en ligne) sont redirigés sur le serveur en ligne. (Voir annexe 11). Remarque : On a eu quelques problèmes pour faire fonctionner le trunk. En effet, l’enregistrement de mon serveur s’effectue correctement mais les appels ne passent pas. Ainsi, # apt-get install perl libwww-perl sox mpg123 # cd /var/lib/asterisk/agi-bin # wget https://raw.github.com/zaf/asterisk- googletts/master/googletts.agi
  • 45.
    UCAD/ESP/DGI Serigne FallouNDIAYE 45 c’est l’administrateur du serveur en ligne qui va finir ce travail car j’ai eu des contraintes de temps pour trouver le problème. 3.3 MISE EN PLACE DE LA PASSERELLE GSM AVEC CHAN_MOBILE Comme on le sait, cette plateforme est destinée à la prise de rendez-vous à distance. Ceci implique que n’importe quelle personne doit pouvoir appeler pour avoir un rendez-vous, et cela, autant de fois que nécessaire. Donc la question qu’on a envie de se poser tout de suite est « est- ce qu’on doit créer des comptes au niveau du serveur pour toutes les personnes désirant prendre un rendez-vous ? ». La réponse est non. En effet, cette solution est inadaptée ne serait-ce que pour les trois raisons suivantes  On ne peut pas prévoir le nombre de personne qui voudra utiliser la plateforme ni à quel moment. Du coup il devient impossible de créer des comptes utilisateurs pour chaque personne  Si la personne dispose d’un compte utilisateur au niveau du serveur, il est obligé de savoir paramétrer un softphone et d’avoir une connexion internet stable. Ce qui est loin d’être évident au Sénégal  En fin, il sera impossible d’envoyer directement un sms à l’appelant pour lui notifier le rendez-vous avec son code. Avec autant de contraintes, il devient impératif pour nous de mettre en place une passerelle GSM pour simplifier les choses. Ainsi, les gens vont juste appeler le numéro de la passerelle qui est un numéro mobile (77 XXXXXXX par exemple) et tout se passe comme s’il s’agissait d’un appel normal vers un autre numéro. Cependant, il existe plusieurs types de passerelle GSM dont la plupart sont très chères. Comme nous avons opté pour la mise en place d’une plateforme efficace à moindre coût, la solution qui s’impose à nous est chan_mobile qui permet de relier notre téléphone mobile à asterisk via Bluetooth. Ainsi, le téléphone va nous servir comme passerelle GSM. Voici comment procéder pour mette en place cette passerelle. Etape 1 : Insérer la clé Bluetooth dans un port USB de l’ordinateur Etape 2 : Taper les commandes suivantes pour activer le Bluetooth avec la possibilité de scan. NB : Dans certains cas hci0 peut être hci1. Pour s’en assurer on peut taper la commande hcitool dev. Etape 3 : Lancez le scan pour voir si le Bluetooth de l’ordinateur détecte le Bluetooth du téléphone. Pour cela, on active le Bluetooth du téléphone et le rendre visible puis on fait # hciconfig hci0 up # hciconfig hci0 piscan
  • 46.
    UCAD/ESP/DGI Serigne FallouNDIAYE 46 Etape 4 : Connecter les deux appareils. Cette connexion peut se faire facilement au niveau du téléphone ou bien au niveau de l’ordinateur avec blueman. C’est la même procédure que l’appareillage de deux téléphones. Etape 5 : Relever l’adresse MAC de la clé Bluetooth Etape 6 : Détecter le téléphone à partir du cli d’Asterisk Etape 7 : Editer le fichier /etc/asterisk/chan_mobile.conf
  • 47.
    UCAD/ESP/DGI Serigne FallouNDIAYE 47 Etape 8 : Redémarrer Asterisk puis se reconnecter à la console NB : Si tout s’est bien passé on doit voir quelque chose comme ça : Etape 9 : S’assurer que tout fonctionne avec la commande suivante Etape 10 : Editer le fichier extensions.conf Les deux premières lignes après le commentaire concernent les appels sortants. Lorsqu’un utilisateur veut utiliser son softphone pour appeler vers un numéro mobile, il compose le numéro avec le préfixe (par exemple : +22177XXXXXX) et la passerelle se charge du reste. La troisième ligne est celle qui redirige tous les appels arrivant sur le numéro de la passerelle vers le numéro associé au Serveur Vocal Interactif. La dernière ligne est celle qui redirige les appels vers le poste de l’utilisateur sfallou au cas où on ne peut pas atteindre le SVI. Conclusion Cette solution de passerelle avec Bluetooth est facile à mettre en place et ne nécessite pas un grand investissement. En plus il est possible d’utiliser cette technique pour faire du sms avec asterisk mais cela n’est pas toujours facile car actuellement il n’y a que trois types de téléphones qui supportent les sms (il s’agit des modèles Nokia E51, 6021 et 6230i). Aussi, il faudra faire une configuration assez complexe. C’est pourquoi on a décidé de mettre en place une passerelle SMS en utilisant les clés 3G Huawei. L’un des inconvénients majeurs de la passerelle Bluetooth est qu’on ne peut pas avoir simultanément plusieurs appels.
  • 48.
    UCAD/ESP/DGI Serigne FallouNDIAYE 48 3.4 MISE EN PLACE D’UNE PASSERELLE SMS AVEC CHAN_DONGLE Une passerelle GSM-VoIP très accessible peut être obtenue en utilisant Huawei E155X ou tout autre modem USB compatible avec chan_dongle. Chan_dongle est un module d’asterisk permettant d’utiliser les clés 3G Huawei en tant que passerelle GSM. Ainsi, il est possible d’utiliser la clé pour émettre et recevoir des appels, d’envoyer et de recevoir des SMS et USSD mais aussi des commandes DTMF. C’est un moyen pas cher et facile à déployer pour ajouter à notre serveur asterisk la possibilité communication avec le monde GSM. D’ailleurs on a essayé de remplacer notre passerelle Bluetooth avec cette clé 3G pour les appels entrants et sortants. Cependant, à cause des contraintes de temps on a seulement eu à mettre en œuvre l’envoie et la réception de SMS. Voici la procédure à suivre pour mettre en place cette passerelle : Etape1: Préparer notre carte SIM Il faut désactiver la protection de la puce par code pin. On peut le faire avec notre téléphone. On doit aussi s’assurer que les appels sortants ne sont pas bloqués au niveau du SIM. Etape 2 : Préparer l’ordinateur pour accepter la clé 3G Par défaut, la clé Huawei 1552 est considérée par le système comme un port USB. C’est pourquoi on va insérer la clé contenant la puce et installer le paquet usb-modeswitch. Ensuite on va devoir configurer usb-modeswitch et pour cela nous allons ajouter une règle au niveau de /etc/udev/rules.d/ comme suit : Le contenu de ce fichier est le suivant : En fin on redémarre les services # apt-get install usb-modeswitch #gedit /etc/udev/rules.d/50-huawei-e1552.rules SUBSYSTEM==”usb”, ATTR{idVendor}==”12d1″, ATTR{idProduct}==”1446″, RUN+=”/lib/udev/usb-modeswitch -v 0x%s{idVendor} -p 0x%s{idProduct} -t option-zerocd” #cd /etc/init.d/ && ./udev restart
  • 49.
    UCAD/ESP/DGI Serigne FallouNDIAYE 49 Etape 3 : Compiler et configurer chan_dongle On va taper les commandes suivantes pour télécharger, compiler et installer chan_dongle. On édite le fichier /etc/asterisk/dongle.conf Dès fois en fonction des systèmes, à la place de ttyUSB0 et ttyUSB1 on a ttyUSB1 et ttUSB2 Etape 4 : Tests On va redémarrer asterisk et se connecter au cli puis on charge le module avec la commande # cd /usr/src # wget https://github.com/jstasiak/asterisk-chan- dongle/archive/asterisk11.zip # unzip asterisk11.zip # cd asterisk-chan-dongle-asterisk11 # aclocal # autoconf # automake -a # ./configure # make & make install # cp etc/dongle.conf /etc/asterisk/ module load chan_dongle
  • 50.
    UCAD/ESP/DGI Serigne FallouNDIAYE 50 Pour voir si la passerelle est active on va taper la commande suivante
  • 51.
    UCAD/ESP/DGI Serigne FallouNDIAYE 51 Etape 5 : Editer extensions.conf pour recevoir et envoyer des SMS Avec cette configuration on peut recevoir nos SMS et en envoyer. Il suffit juste de changer le numéro destinataire et le message à envoyer. Le reste est de composer le numéro 500 sur un softphone et le message est envoyé. Il existe aussi des commandes qu’on peut utiliser directement au niveau du cli par exemple : [dongle-incoming] exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})}) exten => sms,n,System(echo ‘${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} – ${DONGLENAME} – ${CALLERID(num)}: ${BASE64_DECODE(${SMS_BASE64})}’ >> /var/log/asterisk/sms.txt) exten => sms,n,Hangup() [emc2] exten => 500,1,DongleSendSMS(dongle0,+221778757730,’hello emc2!’,1440,yes)  dongle stop now <device> Stop <device> now. Stops <device> immediately, ending any calls/SMS/USSD in progress  dongle stop when convenient <device> Stop <device> when convenient. Waits until <device> has no calls/SMS/USSD in progress, and then it stops <device>. It does not prevent new calls/SMS/USSD from entering the <device>.  dongle show device settings <device> Shows settings for <device>  dongle show device state <device> Shows detailed state for <device>  dongle show device statistics <device> Shows statistics for <device>  dongle show devices Shows summarized state for all devices  dongle show version Show module version  dongle sms <device> <number> <message> Send SMS to <number> with the <message> using <device>  dongle pdu <device> <pdu> Send PDU using <device>  dongle ussd <device> <ussd> Send USSD command <ussd> using <device>  dongle start <device> Start <device> if not removed from before.  dongle restart gracefully <device> Prevents new incoming and outgoing calls and SMS and outgoing USSD from starting up in <device>, but allows
  • 52.
    UCAD/ESP/DGI Serigne FallouNDIAYE 52 Conclusion La mise en place de cette passerelle SMS nous a permis de comprendre une fois de plus qu’il n’y a pas un PBX IP plus complet et plus riche qu’asterisk. Avec cette passerelle on a tout ce qu’il nous faut pour satisfaire la demande des clients qui souhaitent prendre des rendez-vous. 3.5 MISE EN OEUVRE DU SERVEUR VOCAL INTERACTIF 3.5.1 MODE DE FONCTIONNEMENT La base de ce projet repose sur le serveur vocal interactif qui va dialoguer avec les clients. Son importance est grande, son bon fonctionnement est capitale pour la réussite de la plateforme. Pour ces raisons on a commencé d’abord par décrire le scénario d’interaction qu’il y aura entre le SVI et le client avant de passer à l’implémentation. En résumé voici le principe de fonctionnement du SVI :  Une personne appelle sur le numéro du serveur associé au SVI  On lui joue une music d'accueil pendant 5 secondes  On lui souhaite la bienvenue sur le serveur  On l'invite à faire un choix parmi les abonnés pour prendre un rendez-vous  Il fait son choix et le serveur commence le traitement.  On récupère le choix de l'appelant et on le transmet à un ensemble de fichier de traitement PHP qui vont interroger la base de données, effectuer les traitements nécessaires et renvoient les résultats au serveur  Si un rendez-vous est disponible, le serveur récupère la date, l'heure et le code aléatoire associé à ce rendez-vous.  On joue les fichiers sons préenregistrés correspondants à la date et l'heure du rendez- vous.  On lui demande d'appuyer sur une touche pour réécouter ou bien de raccrocher.  A la fin de la communication, il reçoit un sms de la part du serveur dans lequel on lui notifiera encore son RV et son code de rendez-vous.  Si aucun rendez-vous n'est disponible, le serveur lui dit que son numéro de téléphone est enregistré et qu'un sms lui sera envoyé dès qu'il y a un rendez-vous disponible.  On lui joue une musique de 'goodby' avant d’interrompre la communication. Cela dit, pour atteindre le SVI on doit appeler avec un téléphone portable sur le numéro de la passerelle qui est un numéro mobile (77XXXXXX ou 76XXXXX...). Par contre on peut utiliser des softphones pour appeler et prendre des rendez-vous sans consommer du crédit mais dans ce cas, il faut disposer d'un compte utilisateur dans le serveur, avoir un accès internet à haut débit et pouvoir se servir d’un softphone. En plus on ne pourra pas recevoir des notifications par sms 3.5.2 CONFIGURATION DU SVI Sous Asterisk, la quasi-totalité des configurations qui font appels aux applications et aux fonctions s’effectuent au niveau du fichier extensions.conf. En effet, c’est exactement le cas pour ce SVI. Il faut juste noter que la configuration est faite sous le contexte [emc2].
  • 53.
    UCAD/ESP/DGI Serigne FallouNDIAYE 53  Prérequis : Pour la mise en place du serveur vocal interactif on aura à utiliser principalement certaines fonctions et applications qu’on a jugées utiles de vous présenter  La principale fonction qu’on va utiliser est :  CURL : cette fonction permet de faire passer des paramètres à des scripts en utilisant les URL. Grâce à elle, on va envoyer des requêtes au niveau des scripts PHP qui vont effectuer les traitements nécessaires.  Les applications  Answer: Répondre à un appel  Read: Lit une variable  Set: Définie une variable ou la valeur d'une fonction  Playback: Lire un fichier son  Background: Lire un fichier son en tâche de fond dans l'attente de la saisie d'une touche  GotoIf: Se rendre à une priorité d’extension précise d’un contexte suivant la condition posée  DongleSendSMS : permet d’envoyer un sms  Mise en œuvre
  • 54.
    UCAD/ESP/DGI Serigne FallouNDIAYE 54 En annexe, on va montrer quelques les scripts PHP qu’on a utilisé dans ce SVI mais pour le moment on va montrer les scripts ‘rv_jour.php’ et ‘sms.php’.  rv_jour.php <?php $d=date("d"); $m=date("m"); $y=date("Y"); $h=date("H"); $i=date("i"); $dates=$d.$m.$y.$h.$i; //on recupere les variables $choix=$_GET['choix']; $num=$_GET['num']; @mysql_connect('localhost','root','passer') or die("Echec de connexion"); @mysql_select_db('planning') or die("Echec de sélection de la base."); $requete = "SELECT id,rv, heures from agenda2 WHERE id_proprietaire='$choix' AND etat=0 ORDER BY id DESC LIMIT 0, 1"; $result = mysql_query($requete); if($don=mysql_fetch_array($result)) { //on recupere le rv disponible $rv = $don['rv']; $heures = $don['heures']; //on marque la date comme réservée dans la bdd et on enregistre son numéro et le code aléatoire $requ=mysql_query("UPDATE agenda2 SET etat=1, telephone='$num' WHERE rv='$rv' AND heures='$heures'"); //on separe les jours,date,année,heures,minutes... list($day, $date, $month, $year) = explode(" ", $rv); list($hour, $min) = explode(":", $heures); echo $day; } else { $day=0; echo $day; } ?>
  • 55.
    UCAD/ESP/DGI Serigne FallouNDIAYE 55  sms.php Dans notre SVI, on voit des fichiers sons que le serveur va lire pour informer l’appelant. Ces sons sont préenregistrés et stockés dans un répertoire du système. Ce qui est impressionnant ici, c’est que ces sons n’ont pas étés enregistrés vocalement ; en effet ils sont tous étés crées à partir de synthèse vocale avec les outils Mbrola, Lia_Phon, Sox et le lecteur audacity. 3.6 CREATION DES FICHIERS SONS Plus haut, on a décrit deux outils importants pour la mise en place d’une synthèse vocale de qualité à savoir mbrola et lia_phon. Ainsi, on a préféré les utiliser pour créer les fichiers sons au lieu de les enregistrer vocalement. Ce choix est justifié par plusieurs raisons : <?php $d=date("d"); $m=date("m"); $y=date("Y"); $h=date("H"); $i=date("i"); $dates=$d.$m.$y.$h.$i; //on récupere $choix=$_GET['choix']; $num=$_GET['num']; $jour=$_GET['day']; $date=$_GET['date']; $mois=$_GET['month']; $annee=$_GET['year']; $heure=$_GET['hour']; $minute=$_GET['min']; $rv="$jour $date $mois"; $hours="$heure:$minute"; //connexion à la base de donnée @mysql_connect('localhost','root','passer') or die("Echec de connexion"); @mysql_select_db('planning') or die("Echec de sélection de la base."); //on génére un code de 10 chiffre $characts = '1234567890'; $code = 'EMC2'; for($i=0;$i < 6;$i++) //6 est le nombre de caractères { $code.= substr($characts,rand()%(strlen($characts)),1); } // si le rv existe if(!empty($jour)) { //on enregistre le code dans la base de donnéés $requ=mysql_query("UPDATE agenda2 SET code='$code' WHERE rv='$rv' AND heures='$hours'") //on ecrit le message à envoyer $text="Votre rendez-vous est pour le $rv a $hours.Code RV=$code"; echo $text; } else { //on enregistre le numero et le code dans la liste d'attente $req=mysql_query("INSERT INTO attente (telephone,code,id_entreprise) VALUES ('$num','$code','$choix')"); } ?>
  • 56.
    UCAD/ESP/DGI Serigne FallouNDIAYE 56 - Il y a environ 80 fichiers sons à enregistrer (les noms des jours, des mois, des années, des heures, des minutes, des dates …). Ainsi il nous faudrait beaucoup de temps pour le faire. - Il y a des bruits qui perturbent les enregistrements et empiètent sur la qualité sonore - Ma voix n’est pas trop belle pour être utilisée dans un SVI Dans ce qui suit, on va vous montrer comment on a fait pour créer les sons avec ces outils. (On va prendre l’exemple des sons qui contiennent les jours de la semaine). Etape 1 : Installations des outils  Mbrola Vu que notre projet est destiné à être utilisé dans un espace francophone , nous avons maintenant besoin de voix pour la langue française. Il est à noter que plusieurs autres langues sont disponibles, entre autres les suivantes : Anglais, Allemand, Espagnol, etc. Les choix possibles sont les suivants : Nous pouvons les télécharger en exécutant les lignes de commandes ci-dessous : # cd /usr/local/bin # mkdir mbrola # cd mbrola # wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip # unzip mbr301h.zip # rm -f mbr301h.zip # ln -s mbrola-linux-i386 mbrola wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr1/fr1-990204.zip wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr2/fr2-980806.zip wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr3/fr3-990324.zip wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr5/fr5-991020.zip wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr6/fr6-010330.zip wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr7/fr7-010330.zip wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/ca1/ca1.zip wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/ca2/ca2.zip find . -name "fr*.zip" -print -exec unzip ‘{}’ ; find . -name "ca*.zip" -print -exec unzip ‘{}’ ;
  • 57.
    UCAD/ESP/DGI Serigne FallouNDIAYE 57 Il faudrait ensuite enlever les archives, simplement via les lignes de commandes suivantes  Lia_Phon Il faut maintenant définir une variable au niveau de notre session en exécutant la ligne de commande suivante : Afin de vérifier que la variable a bien été définie, il faut exécuter la ligne de commande ci- dessous : NB : Il est nécessaire de s’assurer de la présence de « csh » avant de compiler lia_phon. Si « csh » n’est pas installé, il faudrait exécuter la ligne de commande suivante afin d’en faire l’installation : Passons maintenant à l’étape de la compilation du code source. Les lignes de commandes suivantes doivent être exécutées: Le tout devrait se terminer avec le message suivant : « Congratulation, LIA_PHON is correctly installed » Effectuons maintenant un transfert de propriétaire des fichiers de lia_phon à l’utilisateur root. Exécutons la ligne de commande suivante : rm –f fr*.zip rm –f ca*.zip cd /usr/local/bin wget http://tcts.fpms.ac.be/synthesis/mbrola/tts/French/lia_phon.v1.2.tar.gz tar zxvf lia_phon.v1.2.tar.gz rm –f lia_phon.v1.2.tar.gz cd lia_phon find . -print -exec chown root:root ‘{}’ ; export LIA_PHON_REP=/usr/local/bin/lia_phon export -p | grep LIA_PHON_REP apt-get install csh. make all make ressource make check find . -print -exec chown root:root ‘{}’ ;
  • 58.
    UCAD/ESP/DGI Serigne FallouNDIAYE 58  Sox SoX est un logiciel de traitement de son en ligne de commande. Il consiste en une suite d'outils permettant par exemple de changer le format, de filtrer, de rajouter des fondus, d'analyser un fichier, etc. *  Audacity Audacity est un logiciel libre et gratuit. Il permet de réaliser des montages de documents sonores complexes. Etape 2 : création des fichiers sons en format wav à partir d’un texte  Se déplacer dans le répertoire /usr/local/bin/mbrola et y créer un fichier texte contenant les jours de la semaine. Par exemple : Le contenu du fichier devrait ressembler à ceci  On effectue maintenant la phonétisation en exécutant la commande suivante  Finalement, effectuons la synthèse vocale en exécutant la commande ci-dessous. Lors de la synthèse dans la commande ci-dessous, bien écrire « -I » (i majuscule) et non pas « -l » (L minuscule). Maintenant on a un fichier son de bonne qualité qui va lire les jours de la semaine avec toute la prononciation qu’il faut. C’est exactement de la voix humaine. Si on désire une voix différente, il suffit juste de changer fr1/fr1 par fr2/fr2 par exemple  Montage du fichier son avec audacity On a utilisé audacity pour découper le fichier en 7 séquences dont chacune contient un jour (par exemple son_jourLundi.wav). On a en profité aussi pour mettre une musique de fond pour rendre plus agréable l’écoute. Apt-get install sox Apt-get install audacity cd /usr/local/bin/mbrola && nano jours.txt Lundi. Mardi. Mercredi. Jeudi. Vendredi. Samedi. Dimanche. $LIA_PHON_REP/script/lia_nett < jours.txt | $LIA_PHON_REP/script/lia_taggreac | $LIA_PHON_REP/script/lia_phon | $LIA_PHON_REP/bin/lia_add_proso > jours.pho ./mbrola -I $LIA_PHON_REP/data/initfile.lia fr1/fr1 jours.pho jours.wav
  • 59.
    UCAD/ESP/DGI Serigne FallouNDIAYE 59  Conversion au format gsm avec sox Les fichiers audio obtenus sont au format wav alors que notre serveur asterisk utilise d’autres formats comme gsm. Voici comment s’effectue la conversion. Maintenant c’est terminé. On a nos fichiers audio de bonne qualité. Pour créer les autres fichiers audio on suit le même principe. 4. INTERFACE DE TEST Les applications web sont des applications qui mettent en relation des clients web (tels que des navigateurs) et des données à travers les protocoles standards de l'Internet (HTTP par exemple). Ici, l'objectif est de mettre en place une interface web simple destinée aux abonnés et à l'administrateur. Cette interface va nous servir de test pour un bon fonctionnement d’asterisk.  Index.php : c’est la page d’accueil de la plateforme web (voir annexe 12)  Index_user.php : c’est la page d’authentification de l’abonné  Accueil_user.php : c’est la page d’accueil des abonnés  Menu_user.php : c’est le menu qui regroupe l’ensemble des fonctionnalités de l’abonné (voir annexe 13 et 14)  calendrier.php : c’est le calendrier qui permet à l’abonné de planifier ses rendez-vous. Il clique sur une date et la liste des heures s’affichent afin qu’il fasse ses choix. En effet chaque date est un lien vers heures.php (voir annexe 15)  Heures.php : c’est l’interface des créneaux horaires que l’abonné veut attribuer à ses clients ou patients. Une fois cochées et validées, elles sont directement stockées dans la base de donné avec la date correspondante. On affiche également à côté des créneaux horaires les dix derniers rendez-vous que le serveur a déjà réservés aux clients. Ainsi l’abonné pourra à tout moment visualiser ses prochains rendez-vous et même les annuler au cas où il n’est plus disponible. (voir annexe 16)  contacts.php : c’est la page qui affiche les informations sur les comptes d’utilisateur (username, numéro, nom, contexte…). Elle permet à l’abonné de connaitre et de pouvoir appeler ces utilisateurs gratuitement avec un softphone.  appeler.php : cette page est un lien vers sipml5.org. En effet dans les perspectives du projet on va mettre en place le WebRTC pour permettre aux utilisateurs d’utiliser leur navigateur pour émettre et recevoir des appels. (voir annexe 17)  contacter_admin.php : cette page est un formulaire qui permet à l’abonné d’envoyer un mail à l’administrateur en cas de besoin.  index_admin.php : c’est la page d’authentification de l’administrateur  accueil_admin.php : c’est la même page d’accueil que celle des abonnés. Il n’y a que le menu qui diffère.  Menu_admin.php : (voir annexe 18 et 19)  Nouveau_abonnement.php : c’est le formulaire d’abonnement  Abonnes.php : c’est la page qui affiche les informations sur les abonnés sox son_jourLundi.wav -r 8000 -c1 -g son_jourLundi.gsm
  • 60.
    UCAD/ESP/DGI Serigne FallouNDIAYE 60  Ajout_client.php : c’est le formulaire qui permet à l’administrateur de créer un compte utilisateur. Elle récupère les données saisies, les stocke dans la base de données, puis ouvre les fichiers de configuration d’asterisk et y met ce qu’il faut pour créer un compte et en fin redémarre le service  Numeros_admin.php : c’est la liste des utilisateurs.  Statistique.php : ici, l’administrateur saisie une date dans un champ de formulaire pour avoir l’historique des appels effectués dans le système (voir annexe 20 et 21)  Message_recu.php : c’est au niveau de cette page que l’administrateur visualise les messages envoyés par les abonnés. (voir annexe 22) 5. DEPLOIEMENT EN LIGNE Tout ce qu’on vient de faire se trouvent dans serveur (un ordinateur) local avec une adresse IP privée. Comme la plateforme est destinée au public, on est obligé de trouver les moyens de rendre ses services disponibles à travers le net. Pour ce faire, on a opté pour une solution simple. En effet ; tout ce qu’on a eu à faire c’est :  Fixer l’adresse privée du serveur à partir du routeur  Faire une redirection de port au niveau du routeur. En effet, on a configuré le routeur de sorte que tout ce qui entre par le port 80 (c’est le port du protocole http) est directement redirigé vers notre serveur. Cela permet aux abonnés d’avoir accès à leur interface de gestion de calendrier n’importe où. Idem pour le port 5060 en TCP et UDP. Le port 5060 est le port d’écoute du serveur asterisk. Avec cette configuration, les utilisateurs parviennent à s’enregistrer sur notre serveur asterisk à distance avec l’adresse IP publique du routeur. Les révolutions technologiques dans l'informatique et les télécommunications ont rendu possible le développement de nouveaux services qui fournissent une grande valeur ajoutée par rapport à certains services traditionnels. Dans ce cadre, le présent projet avait pour but la mise en place d'une plateforme de prise de rendez-vous autonome sous asterisk pour la résolution de la problématique de la disponibilité et de la prise des rendez-vous au sein des structures publiques et privées. En effet, l'absence d'un système informatique autonome dans ce domaine a fait sentir ses effets, créant par exemple des pertes de temps et d’argent chez la population. C’est en ce sens que nous avions procédés à une auscultation :  Des serveurs vocaux interactifs d’une manière bien soignée ; CONCLUSION GENERALE ET PERSPECTIVES
  • 61.
    UCAD/ESP/DGI Serigne FallouNDIAYE 61  Des solutions ‘open source’ les mieux adaptées pour répondre à nos besoins sur les serveurs vocaux interactifs dont la plateforme Asterisk qui nous a servi pour la mise en œuvre ; Et enfin :  Faire une étude de la conception et la mise en œuvre de d’une plateforme de prise de rendez-vous.  Procéder à la réalisation pratique de ce projet. Nous pouvons ainsi en venir aux conclusions suivantes : Les technologies offertes par les logiciels ‘open source’ comme asterisk apparaissent partout conquérant aussi bien dans le monde professionnel que le grand public. Les fonctionnalités qu’ils mettent à notre disposition ne se limitent pas seulement à la satisfaction de nos besoins mais s’immiscent également dans nos divertissements, dans notre formation, au travail, dans l’assistance, etc. Aujourd’hui on peut dire avec certitude que « la limite d’Asterisk est celle de celui qui l’utilise ». En effet, avec un moindre coût on est parvenu à mettre en place un système original et utile qui répond à un besoin d’automatisation réel grâce à Asterisk et particulièrement à son serveur vocal interactif. Néanmoins, ce dernier présente quelques limites significatives comparé à l’interaction humaine. En effet il peut être déroutant dans la mesure où les systèmes programmés peuvent être confrontés à des situations exceptionnelles dont ils ne pourraient gérer. Par conséquent, une bonne application automatisée de la voix comme les SVI représente un compromis équilibré qui évite trop ou peu d'informations. Comme perspectives nous pouvons dire que : Bon nombre d’améliorations sont à envisager notamment au niveau des technologies du traitement automatique de la parole, comme la synthèse vocale qu’on a utilisé pour créer les fichiers audio pour le SVI. En effet, ce dernier doit être en mesure de proposer plusieurs options de langue afin de permettre à tout le monde d’accéder à la plateforme sans difficultés de communication. Concernant l’application qui a été conçue, Il faudra penser à augmenter les fonctionnalités comme le faite de donner à l’appelant la possibilité de choisir la date qui lui convient et aussi la possibilité d’annuler ses rendez-vous. En outre, on souhaite continuer le projet afin de mettre en place une application qui interagit avec la base de données asterisk, permettant de gérer les rendez-vous En définitif on peut dire que ce projet est un pas important vers ce qu’on appelle aujourd’hui l’intelligence artificielle (IA).
  • 62.
    UCAD/ESP/DGI Serigne FallouNDIAYE 62  Asterisk, la téléphonie d’entreprise libre de Philippe SULTANT collection EYROLLES ;  Téléphonie sur IP (2è édition) de Laurent OUAKIL et Guy PUJOLLE collection EYROLLES ;  Etude et conception d’un serveur vocal interactif de Joseph KAPOU pour Mémoire de fin de cycle licence professionnelle  Cours Application Informatique Encadrée pour Licence pro Génie logiciel de Docteur DIAW à l’ESP  Asterisk  https://wiki.asterisk.org  http://blog.neotiq.net/  www.forums.asterisk.org  http://www.asterisk-france.org/  http://tsrit.16mb.com/  http://denisrosenkranz.com/  http://blogs.digium.com/2012/11/14/how-to-install-asterisk-11-on-ubuntu-12-4-lts/  Synthèse vocale  www.tux89.com/telephonie/synthese-vocale-en-francais-sous-asterisk/  http://www.asteriskdocs.org/en/  Chan_mobile  http://hasnainali.wordpress.com/2013/02/27/asterisk-connection-with-mobile-phone- using-chan_mobile  http://www.geek-pages.com  http://www.stocksy.co.uk  Chan_dongle  http://wiki.e1550.mobi/doku.php?id=Main%20page  www.zaliasrobotas.blogspot.com  http://www.controlaltdieliet.be/blog/?p=144&lang=ned-ned#  http://asteriskmakeeasy.wordpress.com/  PHP  www.developpez.com  www.openclasserom.com  http://www.grafikart.fr/tutoriels  Ubuntu  http://stackoverflow.com/questions  www.doc.ubuntu-fr.org/ BIBLIOGRAPHIE ET WEBOGRAPHIE
  • 63.
    UCAD/ESP/DGI Serigne FallouNDIAYE 63  Codecs : Compression et Décompression. C'est un procédé logiciel (une formule mathématique automatisée') encodant des informations afin de diminuer le volume de stockage occupé initialement sur les différents supports DVD, CD, disques durs, disquettes... En d’autres termes les codecs sont des algorithmes utilisés pour la compression et la décompression. Il existe des codecs matériels aussi.  IAX : Inter-Asterisk eXchange. Ce protocole permet la communication entre deux serveurs Asterisk ainsi qu'entre client et serveur Asterisk.  Open source : L'expression Open Source caractérise les logiciels dont le code source est visible, modifiable et librement redistribuable sous certaines conditions, ces conditions peuvent être plus ou moins strictes.  PABX : Private Automatic Branch eXchange. Plus connu sous le nom de standard téléphonique, il s´agit généralement d´un boîtier ou d´un coffret central assurant le lien entre le réseau téléphonique de l´opérateur et les communications internes de l´entreprise. Grâce à lui, tout appel est acheminé à son destinataire ou stocké sur une messagerie en cas d´absence de ce dernier. Il peut également s´agir d´une télécopie ou de tout autre fichier, le PABX gérant aussi bien la voix que les données.  Protocole : Spécification d'un dialogue entre plusieurs ordinateurs qui s'échangent des données.  TCP/IP : Transmission Control Protocol/Internet Protocol. Protocole utilisé sur le réseau Internet pour transmettre des données entre deux machines.  ToIP : Téléphonie sur IP. TOIP, représente la VOIP en addition de toutes les applications téléphoniques qu'il peut y avoir.  VoIP : Voix sur IP. VoIP, représente seulement la technologie de transport de voix sur le protocole Internet.  IP : Internet Protocol  SIP: (Session Initiation Protocol) est un protocole standard ouvert de gestion de sessions utilisé dans la télécommunication multimédia.  DTMF: Dual-Tone Multi-Frequency  MGCP: Media Gateway Control Protocol  IPBX: Internet Protocol Private Branch eXchange  RTP: Real-time Transport Protocol  RTCP: Real-time Transport Control Protocol  SVI : Serveur Vocal Interactif  RTC : Réseau Téléphonique Commuté  IETF: Internet Engineering Task Force  UDP: User Datagram Protocol  TCP: Transmission Control Protocol  HTTP: Hypertext Transfer Protocol  RNIS : Réseau Numérique à Intégration de Services  IVR : Interactive Voice Response  TTS: Text To Speech GLOSSAIRE
  • 64.
    UCAD/ESP/DGI Serigne FallouNDIAYE 64  ACD: Automatic Call Distributor  API: Application Programming Interface  AGI: Asterisk Gateway Interface  CTI : Couplage Téléphonie-Informatique  Dial Plan : C’est le plan de numérotation d’Asterisk  Mailbox : indique la boite vocale associée à ce compte.  Background : Lit un message audio de manière non bloquante. Autrement dit, une saisie d’une ou plusieurs touches par l’appelant est possible en parallèle. Dans ce cas, la lecture du message audio en cours est interrompue. L’extension correspondant aux touches saisies par l’appelant est automatiquement appelée.  Dial : Met en relation l’appelant et l’utilisateur ou le service spécifié en argument de l’application Dial. Cette commande est donc utilisée pour affecter un numéro de téléphone à un utilisateur, à un terminal ou à un service. En argument de l’application, il faut indiquer le nom du compte à contacter, préfixé par le protocole de signalisation que le compte utilise (IAX2, SIP, etc.). Cela permet au serveur Asterisk de déterminer dans quel fichier de configuration se trouvent les propriétés du compte appelé (iax.conf, sip.conf, etc.).  Answer : Répond à un appel téléphonique entrant.  Goto : Branchement inconditionnel vers un contexte, une extension et une priorité particuliers.  GotoIf : Branchement conditionnel vers un contexte, une extension et une priorité particuliers lorsqu’une condition est vérifiée.  Playback : Lit un message audio de manière bloquante. La lecture du message doit se faire intégralement, et l’appelant ne peut interrompre cette diffusion par une saisie de touche sur le clavier téléphonique.  Read : Lit une variable. L’appelant est invité à entrer une valeur qui est sauvegardée sous forme de variable par le système. Cela permet notamment de demander un mot de passe à l’utilisateur avant d’accéder à un service spécifique.  System : Exécute une commande système du système d’exploitation.  Wait : Attend pendant un certain délai spécifié en argument.  WaitExten : Attend une saisie d’une extension par l’utilisateur.
  • 65.
    UCAD/ESP/DGI Serigne FallouNDIAYE 65 Annexe 1 : Annexe 2 : Annexe 3 : Annexe 4 : ANNEXES
  • 66.
    UCAD/ESP/DGI Serigne FallouNDIAYE 66 Annexe 5 : Annexe 6 : Annexe 7 : Annexe 8 :
  • 67.
    UCAD/ESP/DGI Serigne FallouNDIAYE 67 Annexe 9 : Annexe 10
  • 68.
    UCAD/ESP/DGI Serigne FallouNDIAYE 68 Annexe 11 : Annexe 12 : Annexe 13 : Annexe 14 : code du menu précédent Annexe 15 :
  • 69.
    UCAD/ESP/DGI Serigne FallouNDIAYE 69 Annexe 16 Annexe 17 Annexe 18 : Annexe 19 :
  • 70.
    UCAD/ESP/DGI Serigne FallouNDIAYE 70 Annexe 20 : Annexe 21: Annexe 22:
  • 71.
    UCAD/ESP/DGI Serigne FallouNDIAYE 71 Annexe 23: Script permet de créer un compte utilisateur <?php require("connexion_bd.php"); $nom=$_POST['nom']; $prenom=$_POST['prenom']; $username=$_POST['username']; $numero=$_POST['numero']; $pass=$_POST['passwd']; $email=$_POST['email']; $context=$_POST['context']; $req=mysql_query("insert into users(username,nom,prenom,numero,mdp,email,context) values('$username','$nom','$prenom',$numero,'$pass','$email','$context')"); $sip="n[$username]ntype=friendncontext=$contextnsecret=$passnhost=dynamicndtmfmode=rfc2833ncallerid=$pre nom $nom<$numero>nmailbox=$numero@defaultncallgroup=1nqualify=yesndisallow=allnallow=alawnallow=ulawnallow =gsmnallow=g729nallow=h264nallow=h263nallow=h263pnicesupport=yesndirectmedia=nontransport=udpnavpf=n onencryption=no"; $extension="nnexten => $numero,1,Dial(SIP/$username,10,Ttr)nexten => $numero,n,VoiceMail($numero)nexten => $numero,n,Hangup()"; $voicemail="n$numero = 1234, $username, $email"; $cmd1="echo "$sip" >> /etc/asterisk/sip.conf"; $cmd2="echo "$extension" >> /etc/asterisk/extensions.conf"; $cmd3="echo "$voicemail" >> /etc/asterisk/voicemail.conf"; $cmd4=" /etc/init.d/asterisk reload"; exec($cmd1); exec($cmd2); exec($cmd3); exec($cmd4); header('Location: ajout_client.php'); ?>
  • 72.
    UCAD/ESP/DGI Serigne FallouNDIAYE 72 Script permet de notifier le client lorsqu’un RV est annulé Ce script est exécuté tous les jours à 12h00 par la tâche cron ci-dessous: En effet Cron est un daemon utilisé pour planifier/programmer des tâches devant être exécutées à un moment précis. Chaque utilisateur a un fichier crontab, lui permettant d'indiquer les actions et à quelles périodes, elles devront être exécutées. Pour éditer un cron dans le fichier de crontab, on exécute la commande suivante  crontab -e Pour voir le contenu du crontab on fait  crontab –l  Voici la tâche cron qui permet de lancer ce scripte de façon périodique (tous les jours à 12h) <?php require("connexion_bd.php"); //on regarde s'il y a des infos dans la liste d'attente $req=mysql_query("SELECT * FROM attente"); while($data=mysql_fetch_array($req)) { $id=$data['id']; $telephone=$data['telephone']; $code=$data['code']; $id_entreprise=$data['id_entreprise']; //on associe l'id_entreprise au nom de l'entreprise if($id_entreprise==1) $entreprise="EmC2-Group"; if($id_entreprise==2) $entreprise="ESP"; if($id_entreprise==3) $entreprise="Hopital Fann"; //on regarde s'il y a des rv disponibles dans l'agenda de l'entreprise $request=mysql_query("SELECT * FROM agenda2 WHERE id_proprietaire='$id_entreprise' AND etat=0 ORDER BY id DESC LIMIT 0,1"); if($don=mysql_fetch_array($request)) { $rv=$don['rv']; $heures=$don['heures']; $message="Votre rendez-vous a $entreprise est pour le $rv a $heures.Code RV=$code"; $tel="+221$telephone"; $text="Channel: LOCAL/answer@answernApplication: DongleSendSMSnData: dongle0,$tel,"$message""; $fp = fopen("/tmp/sms$id.call","w"); // ouverture du fichier en écriture fputs($fp, "$text"); // on écrit les commandes dans le fichier fclose($fp); //on place le fichier dans /var/spool/asterisk/outgoing $cmd="cp /tmp/sms$id.call /var/spool/asterisk/outgoing"; exec($cmd); //on marque le rv comme résérvé $requ=mysql_query("UPDATE agenda2 SET telephone='$telephone',code='$code',etat=1 WHERE rv='$rv' AND heures='$heures' AND id_proprietaire='$id_entreprise'"); //on spprime l'info de la liste d'attente $req1=mysql_query("DELETE FROM attente WHERE id='$id'"); } } ?> 0 12 * * 0-6 php /var/www/emc2/attente.php
  • 73.
    UCAD/ESP/DGI Serigne FallouNDIAYE 73 Le script qui s’exécute lorsqu’il n’y a pas de rendez-vous disponible (wait.php) <?php $d=date("d"); $m=date("m"); $y=date("Y"); $h=date("H"); $i=date("i"); $dates=$d.$m.$y.$h.$i; $choix=$_GET['choix']; $num=$_GET['num']; $jour=$_GET['day']; $date=$_GET['date']; $mois=$_GET['month']; $annee=$_GET['year']; $heure=$_GET['hour']; $minute=$_GET['min']; $rv="$jour $date $mois"; $hours="$heure:$minute"; //connexion à la base de données @mysql_connect('localhost','root','passer') or die("Echec de connexion"); @mysql_select_db('planning') or die("Echec de sélection de la base."); //on génére un code de 10 chiffres $characts = '1234567890'; $code = 'EMC2'; for($i=0;$i < 6;$i++) //6 est le nombre de caractères { $code.= substr($characts,rand()%(strlen($characts)),1); } //on enregistre le numero et le code dans la liste d'attente $req=mysql_query("INSERT INTO attente (telephone,code,id_entreprise) VALUES ('$num','$code','$choix')"); echo "bien enregistré"; ?>