View
298
Download
2
Category
Preview:
Citation preview
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 calls/SMS/USSD in progress to continue. When call/SMS/USSD
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=friend\ncontext=$context\nsecret=$pass\nhost=dynamic\ndtmfmode=rfc2833\ncallerid=$prenom $nom<$numero>\nmailbox=$numero@default\ncallgroup=1\nqualify=yes\ndisallow=all\nallow=alaw\nallow=ulaw\nallow=gsm\nallow=g729\nallow=h264\nallow=h263\nallow=h263p\nicesupport=yes\ndirectmedia=no\ntransport=udp\navpf=no\nencryption=no";
$extension="\n\nexten => $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@answer\nApplication: DongleSendSMS\nData: 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é"; ?>
Recommended