73
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 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

Memoire finale sfallou

Embed Size (px)

Citation preview

Page 1: Memoire finale sfallou

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

Page 2: Memoire finale sfallou

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

Page 3: Memoire finale sfallou

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

Page 4: Memoire finale sfallou

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

Page 5: Memoire finale sfallou

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

Page 6: Memoire finale sfallou

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

Page 7: Memoire finale sfallou

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

Page 8: Memoire finale sfallou

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

Page 9: Memoire finale sfallou

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

Page 10: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

10

CHAPITRE I : PRESENTATION GENERALE

Page 11: Memoire finale sfallou

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 :

[email protected]

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

Page 12: Memoire finale sfallou

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

Page 13: Memoire finale sfallou

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.

Page 14: Memoire finale sfallou

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.

Page 15: Memoire finale sfallou

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.

Page 16: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

16

CHAPITRE II : ANALYSE DE L’EXISTANT ET

ETUDE PREALABLE

Page 17: Memoire finale sfallou

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.

Page 18: Memoire finale sfallou

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.

Page 19: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

19

CHAPITRE III : ETUDE GLOBALE DE LA

TELEPHONIE SUR IP

Page 20: Memoire finale sfallou

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

Page 21: Memoire finale sfallou

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

Page 22: Memoire finale sfallou

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.

Page 23: Memoire finale sfallou

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

Page 24: Memoire finale sfallou

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

Page 25: Memoire finale sfallou

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.

Page 26: Memoire finale sfallou

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.

Page 27: Memoire finale sfallou

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-

Page 28: Memoire finale sfallou

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

Page 29: Memoire finale sfallou

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.

Page 30: Memoire finale sfallou

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.

Page 31: Memoire finale sfallou

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

Page 32: Memoire finale sfallou

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

Page 33: Memoire finale sfallou

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

Page 34: Memoire finale sfallou

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.

Page 35: Memoire finale sfallou

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

Page 36: Memoire finale sfallou

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.

Page 37: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

37

CHAPITRE IV : DESCRIPTION ET MISE EN

PLACE DE LA PLATEFORME

Page 38: Memoire finale sfallou

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.

Page 39: Memoire finale sfallou

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

Page 40: Memoire finale sfallou

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

Page 41: Memoire finale sfallou

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

Page 42: Memoire finale sfallou

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

Page 43: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

43

register => trunkemc2 :[email protected] 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)

Page 44: Memoire finale sfallou

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

Page 45: Memoire finale sfallou

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

Page 46: Memoire finale sfallou

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

Page 47: Memoire finale sfallou

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.

Page 48: Memoire finale sfallou

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

Page 49: Memoire finale sfallou

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

Page 50: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

50

Pour voir si la passerelle est active on va taper la commande suivante

Page 51: Memoire finale sfallou

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

Page 52: Memoire finale sfallou

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].

Page 53: Memoire finale sfallou

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

Page 54: Memoire finale sfallou

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;

}

?>

Page 55: Memoire finale sfallou

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')");

}

?>

Page 56: Memoire finale sfallou

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 ‘{}’ \;

Page 57: Memoire finale sfallou

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 ‘{}’ \;

Page 58: Memoire finale sfallou

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

Page 59: Memoire finale sfallou

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

Page 60: Memoire finale sfallou

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

Page 61: Memoire finale sfallou

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).

Page 62: Memoire finale sfallou

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

Page 63: Memoire finale sfallou

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

Page 64: Memoire finale sfallou

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.

Page 65: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

65

Annexe 1 :

Annexe 2 :

Annexe 3 :

Annexe 4 :

ANNEXES

Page 66: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

66

Annexe 5 :

Annexe 6 :

Annexe 7 :

Annexe 8 :

Page 67: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

67

Annexe 9 :

Annexe 10

Page 68: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

68

Annexe 11 :

Annexe 12 :

Annexe 13 :

Annexe 14 : code du menu précédent

Annexe 15 :

Page 69: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

69

Annexe 16

Annexe 17

Annexe 18 :

Annexe 19 :

Page 70: Memoire finale sfallou

UCAD/ESP/DGI Serigne Fallou NDIAYE

70

Annexe 20 :

Annexe 21:

Annexe 22:

Page 71: Memoire finale sfallou

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'); ?>

Page 72: Memoire finale sfallou

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

Page 73: Memoire finale sfallou

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é"; ?>