SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
REPUBLIQUE DU SENEGAL




    MINISTERE DE L’ENSEIGNEMENT SUPERIEUR, DES UNIVERSITAIRES ET DES CENTRES
               UNIVERSITAIRES REGIONAUX (CUR) ET DE LA RECHERCHE




                  ECOLE SUPERIEURE DE TECHNOLOGIE ET DE MANAGEMENT DE DAKAR


                      MEMOIRE DE FIN DE CYCLE EN LICENCE TELEINFORMATIQUE


                            PARCOURS : RESEAUX ET TELECOMMUNICATION

                                             THEME:


      ConCeption d’une interfaCe de management d’asterisk

Présenté et soutenu par :                                             Encadré par :


Ibrahima NDIAYE                                           Mr. Christian OUDANG


Moustapha NDIAYE


                                  Année Académique : 2011-2012
sept. 22

             Mémoire de fin de cycle                                            Année académique 2011-2012

                                                                                       Tables des matières
                                                      Table des Figures
                                                          Summary
                                                        Avant-propos
                                                      INTRODUCTION


                                      Chapitre 1 : Présentation d’Asterisk
             1. Historique................................................................................................13
             2. Définition…………………………………………………………………………......................13
             3. Rôles et fonctionnalités d’Asterisk…………………………………………………………14

                                     Chapitre 2 : Les protocoles et codecs
            I.     Les protocoles……………………………………………………………………………………..15

                           1. Les protocoles de signalisation :…………………………………………….15
                           2. Les protocoles de transports………………………………………...........17

           II.     Les Codecs :............................................................................................17

                           1.   G.711……………………………………………………………………………………..17
                           2.   G.723.1………………………………………………………………………………….18
                           3.   G.726……………………………………………………………………………………..18
                           4.   G.729……………………………………………………………………………………..18

                                    Chapitre 3 : L’écosystème de la VoIP
                           1.   Asterisk………………………………………………………………………………….19
                           2.   SipX……………………………………………………………………………………….19
                           3.   Kamailio…………………………………………………………........................19
                           4.   Trixbox…………………………………………………………………………………..20
                           5.   Freepbx………………………………………………………………………………….20

                 Chapitre 4 : Les principales étapes de la réalisation de notre
                 interface graphique de gestion à l’aide d’une base de données

             A. Installation et configuration d’Asterisk…………………………… ................21



                                                                                                                         2
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                                Année académique 2011-2012

                            1.    Installation du module DAHDI………………………………………22
                            2.    Installation de Libpri……………………………………………………..22
                            3.    Installation d’Asterisk……………………………………………………22
                            4.    Configuration d’Asterisk……………………………………………….25

             B. Interaction entre Asterisk et MySQL : fonctionnalité
                Realtime………………………………………………………………………………………………29

                             1. Installation et configuration de MySQL………………………..29
                             2. Installation et configuration d’asterisk-addons…………….29
                             3. Installation et configuration des soft phones : test de
                                fonctionnalité……………………………………………………………….38

             Chapitre 5 : Présentation et utilisation de l’interface graphique
                             1.   Le bouton Compte SIP:.....................................................42
                             2.   Le bouton Compte IAX:…………………………………………………43
                             3.   Le bouton Numéro de Téléphone:…………………………………44
                             4.   Le bouton Boite Vocale…………………………………………………45
                                              Conclusion
                                             Bibliographie
                                             Webographie




                                                                                                         3
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                 Année académique 2011-2012


                                                            Table des Figures
           Figure 1: Présentation de X-Lite………………………………………………………………………28
           Figure 2: Exécution de la commande ./configure…………………………………………….30
           Figure 3: Exécution de la commande make…………………………………………………….30
           Figure 4: Exécution de la commande make install…………………………………………..31
           Figure 5: Exécution de la commande make samples……………………………………….31
           Figure 6: Les différents paramètres dans res_mysql.conf……………………………….32
           Figure 7: Les différents paramètres dans extconfig.conf…………………………………33
           Figure 8: Insertion sql dans la base de données………………………………………………34
           Figure 9: Aperçu de la base de données avec phpmyadmin…………………………….38
           Figure 10: Régistration avec le soft phone Kphone………………………………………….39
           Figure 11: Régistration avec X-Lite………………………………………………………………….40
           Figure 12: L’interface de management ………………………………………………………….41
           Figure 13: Création de compte SIP………………………………………………………………….42
           Figure 14: Création de compte IAX………………………………………………………………….43
           Figure 15: Création d’un numéro de téléphone……………………………………………….44
           Figure 16: Numéro de boite vocale…………………………………………………………………45




                                                                              4
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012

                                                                                    SUMMARY
           This memory assumes a basic knowledge of Linux and telephony, though neither is strictly
           required. All commands that need to be run are provided and concepts that need to be
           understood are explained.
           This memory requires a server that is capable of running Linux, Asterisk. The hardware
           requirements for the server will depend upon how many calls the PBX will be routing, and
           which actions callers can perform once they reach the PBX (for example, a PBX that records
           every call will require more resources than one that does not). The server should not have any
           operating system on it to start with. Recommended installation options are provided for both
           CentOS and Ubuntu.


           Just as the underlying system packages are updated, Digium releases updates to Asterisk
           whenever necessary in order to fix bugs or patch security concerns. If Asterisk was installed
           from source, it will not be updated when the system packages are updated. Updating
           Asterisk versions is very similar to the process of installing Asterisk.
           Note that "updating" Asterisk in this context means to update Asterisk to a new release of
           the same major version that is currently running (for example, updating from 1.4.22 to
           1.4.24). It does not mean updating between major release versions (for example, 1.4 to 1.6).
           Major version upgrades may be required during the life of a PBX, but these types of upgrades
           require special planning due to new features or features that may be deprecated or non-
           existent in the upgraded version (causing Asterisk to stop routing calls properly).
           In order to make upgrades simple, Digium uses files that have the major version number
           suffixed with "-current" to denote the current version of Asterisk, Asterisk-Addons,
           Zaptel/DAHDI, and LibPRI. In the following examples, version 1.4 is being updated to the
           latest 1.4 release, but if the version on your PBX is different you can replace 1.4 with your
           major version release.




                                                                                                       5
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012

                                                                                  Avant-propos

                                           Présentation du lieu de stage
             I.   Présentation de L’ESTM


           L’École Supérieure de Technologie et de Management de Dakar est une école privée
           d’enseignement supérieur, universitaire et professionnel. Elle a été créée en 2002 par des
           professionnels des secteurs des nouvelles technologies de l’informatique, de la
           communication et de la gestion.
           Les enseignements dispensés s’inspirent des normes exigées par le CAMES (Centre Africain et
           Malgache pour l’Enseignement Supérieur) et sont donc superposables à ceux dispensés dans
           les meilleures écoles tant sur le continent africain que sur le continent européen et américain.
           Le programme est élaboré en fonction du monde professionnel et adapté à l’évolution de la
           technologie de manière à donner à l’étudiant des compétences aussi bien théoriques que
           pratique. L’école compte toujours rester à la pointe de la technologie dans un environnement
           qui se veut compétitif.
           L’ESTM participe en collaboration avec l’étudiant à la recherche de stage de fin d’étude. Le
           stage donne lieu à une soutenance d’un mémoire devant un jury.
           L’école forme des étudiants en Informatique de Gestion, en Réseaux Téléinformatique,
           Réseaux Télécommunication et Maintenance Informatique dans le premier cycle de son
           département des sciences de l’informatique. Elle forme en même temps des ingénieurs
           spécialisée en Réseaux Téléinformatiques, en Génie Logiciel et en Système de Gestion de Base
           de Données
           Dans son département des Sciences de Gestion, elle forme des diplômés de premier et second
           cycle en Marketing, en Comptabilité, en Tourisme et en Gestion. Elle est située à l’avenue
           Bourguiba prolongée X Front de Terre.


            II.   Présentation des départements
           L’école compte deux départements : le département de l’Informatique et Télécommunication
           et le département des Sciences de Gestion




                                                                                                       6
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                           Année académique 2011-2012

                       Département de l’Informatique et des Télécommunication


                       Les Filières sont :


                            Réseaux et Télécommunication
                            Réseaux et Téléinformatique
                            Informatique de Gestion
                            Maintenance informatique


                       Département des Sciences de Gestion


                       Les Filières sont :


                            Gestion des entreprises
                            Gestion des Ressources Humaines
                            Comptabilité et Finance
                            Management des projets
                            Marketing




                                                                                        7
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                       Année académique 2011-2012

           III.   Organigramme de L’ESTM :




                                   Organigramme de l’ESTM




                                                                                     8
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

                                                                                      Remerciement

           Nous tenons tout d’abord à remercier
                   DIEU, LE TOUT PUISSANT et LE MISERICORDIEUX, qui nous a donné la force et la
                   patience d’accomplir ce modeste travail.
                   Notre Prophète Moustapha(PSL) pour nous avoir appris à travers le coran le sens de
                   l’éthique, du partage et de l’amour de son prochain
                   A notre guide spirituel sur la voie DIEU, Serigne Touba Mbacké et toute sa
                   descendance plus particulièrement à Serigne Saliou Mbacké et à son khalife actuel
                   Cheikh Sydil AL Mouhtar (Yalla nafi yagu lolou té wér).
                   A tous les mourides (aspirants vers DIEU) disséminés à travers le monde à la
                   recherche de la vérité, notamment nos confrères du dahira Safinatoul Aman Touba
                   E.S.T.M.
                   Je remercie chaleureusement tous ceux qui de près ou de loin ont apporté leur
                   contribution pour l’élaboration de ce travail.
           En particulier,
                   Le Docteur Samuel OUYA, Monsieur Oudang et Mr Séne qui, se sont toujours
                   montrés à l’écoute et très disponible tout au long de la réalisation de ce mémoire,
                   ainsi pour l’inspiration, l’aide et le temps qu’ils ont bien voulu nous consacrer.
                   Ces remerciements s’adressent également au corps professoral et administratif de
                   l’ESTM, pour la richesse et la qualité de leur enseignement et qui déploient de grands
                   efforts pour assurer à leurs étudiants une formation compétitive sur le marché
                   international.
                   Nos remerciements aux membres du jury pour l’intérêt qu’ils ont porté à notre
                   recherche en acceptant d’examiner notre travail et de l’enrichir par leurs
                   propositions.
                   Nos dernières pensées iront vers nos familles, et surtout à nos parents, qui nous
                   auront permis de poursuivre nos études jusqu’à aujourd’hui.

                                                                                  MINAL KHADIMI
                                                                                      ILAL KHADIMI


                                                                                                         9
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                                 Année académique 2011-2012

                                                                    Dédicace Ibrahima Ndiaye

           Je dédie ce mémoire à,
                  Mon père qui a toujours été un model et une référence pour moi. IL a tant œuvré
                  pour la réussite de ses enfants.

                  Ma mère qui s’est toujours préoccupée de mon avenir. Tes prières continuent d’être
                  un réconfort.

                  Serigne Aboubacar Sylla mon guide spirituel. Que DIEU lui accorde une longue vie et
                  une Santé de fer.

                  Ma femme chérie, Soxna Mbathio Fall pour son dévouement et sa compréhension
                  pendants ces durs moments.

                  Notre fils, Serigne Saliou. Que ce travail soit pour toi une source d’inspiration, pour
                  toujours aller de l’avant.

                  Mes sœurs : Aminata, Mame Diarra, Ndèye Ngoné, Aissatou et Mada.
                  Mes frères : S.Abdou Lahad, S.Fallou, S.Saliou.

                  Tous les Ndongas Tarbiyyah de khelcom de Serigne Saliou Mbacké.

                  Ma grande famille de Darou Ridah en particulier, Mame Elimane, Mame Ngoné et
                  Mame Khady Fall.
                  Tous les étudiants de la promotion Licence Téléinformatique parcours télécoms et
                  réseaux 2011/2012.




                                                                                                       10
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012

                                                                  Dédicace Moustapha Ndiaye


           Je dédie ce travail à :

                   Mes parents Elhadji et Dior Fall. Je ne vous remercierai jamais assez pour m’avoir
                   donné la vie, pour votre amour, votre soutien, vos prières et la bonne éducation que
                   vous m’avez donnés. Puisse Allah vous récompenser pour tout ce que vous avez fait
                   pour moi, vous prête longue vie et vous donne la santé afin que je puisse faire pour
                   vous tout ce que vous méritez.
                   Mes cousins Ousmane Ba et Ndiogou Mbodj pour avoir contribués moralement et
                   financièrement à ma formations.
                   Mes frères et sœurs pour leur soutient inconditionné particulièrement à ma grande
                   sœur Codou qui occupe pleinement sa place d’ainé de la famille.
                   La famille Sylla de Sodida pour m’avoir mise dans de bonnes conditions pour bien
                   faire mes études. Je ne vous remercierez jamais aussi pour m’avoir ouvert votre
                   maison et vos cœurs. Merci de tout mon cœur.
                   Mes amis dont la liste est non exostive mais je citerais quand même Badara Diallo,
                   Gorgui Dieng, Fallou Ndiaye, Mballo Ka, ainsi que tous les autres avec qui j’ai grandis.
                   Mes défunts défunt grand frères Talla et Galass et ma défunte grand-mère Awa Dia
                   Ka. Si la solitude ne m’a pas rongé c’est parce que garde toujours en tête vos
                   enseignements et conseils. Je ne vous oublierais jamais et je pris chaque jour pour
                   vous.
                   Mes promotionnaires pour m’avoir appris le sens du travail de groupe et la solidarité.
                   Mais je fais une dédicace spéciale à Mouhamed Ndao, Pape Mamadou Khouma,
                   Ibrahima Ndiaye, Abdoulaye Aw, Tabara Boubou Niang, Elhadji Dame Cissé et tous les
                   autres.
                   Mes professeurs plus particulièrement Mr Cheikh Séne, mon frère et professeur Mr
                   Madiagne Diouf et tout le corps professorale de l’ESTM. Grand merci




                                                                               Ina lahou manna




                                                                                                      11
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012




           I
                    NTRODUCTION
                   Le monde de la téléphonie a considérablement évolué depuis une dizaine d’années.
                   La principale raison de cette évolution est technique et tient à l’émergence de la
                   téléphonie sur IP (ToIP). En effet, de la même façon qu’il s’est imposé comme
                   protocole de base des réseaux de télécommunications, IP (Internet Protocol) se situe
                   désormais aussi au centre des services et architectures téléphoniques actuels.


           Parallèlement, profitant notamment de l’interface IP vers la téléphonie comme canal de
           développement d’applications, le monde des logiciels libres de télécommunications connaît
           depuis la même période un essor important. Plusieurs logiciels libres ont constitué autour
           d’eux des communautés très actives.
           Parmi eux, le plus célèbre et le plus riche est sans aucun doute Asterisk. Le succès d’Asterisk
           tient à mon sens en trois éléments fondamentaux :
           • ses nombreuses implémentations de protocoles de télécommunications, tant standards que
           propriétaires (RNIS, SIP, H.323, SCCP, etc.) ;
           • les services téléphoniques intégrés (IPBX, messagerie vocale, audioconférences) ;
           • ses interfaces vers les applications informatiques, essentielles ou non (web, e-mail,
           messagerie instantanée, etc.).
           Ces éléments font d’Asterisk l’outil idéal, non seulement pour gérer un ensemble de postes
           téléphoniques de taille quelconque (chez un particulier ou dans une entreprise de taille
           moyenne), mais aussi pour développer des                         services avancés.
           La configuration d’Asterisk se fait généralement à travers des fichiers. Ce qui peut être un
           frein à la généralisation de son utilisation car beaucoup d’utilisateurs sont beaucoup plus
           habitués à l’utilisation d’environnements graphiques que d’environnements textes. C’est dans
           cette optique qu’on a jugé nécessaire de mettre en place un outil graphique de gestion et
           d’administration d’Asterisk.


           Pour mener à bien ce travail, nous l’avons subdivisé en cinq chapitres: Le premier chapitre
           contient une présentation générale d’Asterisk et de ses possibilités d’utilisation. Dans le
           deuxième chapitre nous aurons à faire une étude sur les différents protocoles et codecs
           supportés par Asterisk. Dans le troisième chapitre nous verrons l’écosystème de la VoIP pour
           avoir un aperçu sur les autres solutions de téléphonie sur IP. Dans le troisième chapitre nous
           vous montrerons les différentes étapes de la conception de notre interface graphique. C’est
           dans le dernier chapitre qu’on aura à faire la présentation et l’utilisation de l’interface.




                                                                                                      12
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012



                                             Chapitre 1 : Présentation d’Asterisk
                                   1. Historique

           Développé en 2001 par Mark Spencer, de la société américaine Digium, il continue d’être
           fortement soutenu par cette dernière.
           Asterisk étant un logiciel libre d’utilisation, ses sources sont téléchargeables sous licence GNU
           GPL (General Public License). Cela permet à une importante communauté de contribuer à son
           développement. Des forums libres et actifs enrichissent, testent, mettent à jour et améliorent
           en permanence le logiciel. Bien qu’initialement conçu pour fonctionner sous Linux, il est
           aujourd’hui multi plate-forme et s’installe aussi bien sur OpenBSD que FreeBSD, Sun Solaris,
           MacOs X ou Windows.
           Les grandes entreprises sont dotées de centraux téléphoniques, appelés autocommutateurs,
           PABX (Private Automatic Branch eXchange) ou plus simplement PBX.
           Un PBX est une entité logique, presque toujours gérée par un équipement matériel physique
           dont la fonction est au moins triple : router les appels au sein d’un réseau privé,
           interconnecter les réseaux et gérer les services de téléphonie.
           Ce chapitre se penche sur un PBX d’un genre nouveau, le logiciel Asterisk, qui remplit les
           mêmes fonctions qu’un PBX professionnel de haut niveau. Aucun équipement spécifique n’est
           nécessaire, et il suffit d’installer le logiciel sur un ordinateur, librement et gratuitement. Ce
           type de logiciel est appelé IPBX, ou PBX-IP.
           Grâce à son architecture modulaire, à sa facilité de mise en œuvre rapide et à son
           fonctionnement simplifié, Asterisk peut même être installé par des particuliers, qui peuvent
           ainsi exploiter les ressources gigantesques dont il dispose.

                                   2. Définition

           Dans la plupart des langages informatiques, l’astérisque (dont le symbole est *) est utilisé
           comme caractère générique (en anglais wildcard), pour remplacer n’importe quel autre
           caractère ou ensemble de caractères. Il s’agit en quelque sorte d’un joker, la carte ou valeur
           qui remplace toutes les autres. C’est de ce concept de généricité, évoquant à la fois la
           souplesse, l’adaptabilité et la puissance, que tire son nom le logiciel Asterisk.
           Asterisk est un PBX-IP, ou IP PBX ou encore IPBX. Complet et performant, il offre une plate-
           forme personnalisable et modulable pour la mise en œuvre de services de téléphonie. Il
           garantit une très large interconnexion avec plusieurs serveurs PBX, mais aussi avec des
           réseaux de téléphonie non-IP.
           L’enjeu d’une offre telle qu’Asterisk est colossal. Pour peu que l’on dispose des connaissances
           requises, il devient possible de remplacer une lourde et très onéreuse mise en œuvre d’un
           équipement PBX par un simple ordinateur équipé du logiciel gratuit, éventuellement muni de
           cartes d’interfaces pour l’interconnexion avec différents types de réseaux non-IP. Le logiciel
           se pose en rival viable et robuste dans un marché dominé par les géants Alcatel, Nortel,
           Cisco, 3Com, Avaya ou Siemens, pour ne citer que quelques-uns des équipementiers les plus
           connus.




                                                                                                       13
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012


                                  3. Rôles et fonctionnalités d’Asterisk


           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, notamment les suivants :
                 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.
                 Double appel.
                 Mise en attente.
                 Journalisation des appels.
                 Facturation détaillée.
                 Enregistrement des appels.
           Le logiciel peut être utilisé comme une passerelle ToIP hétérogène. Par exemple, des
           utilisateurs utilisant différents protocoles de signalisation, comme H.323 ou SIP, peuvent être
           mis en relation. C’est le logiciel qui se charge d’effectuer les conversions de signalisation.
           De la même manière, il peut servir de passerelle pour joindre des correspondants dans le
           réseau téléphonique RTC. Enfin, le logiciel est modulable et extensible au moyen de scripts et
           de modules implémentés en langage C ou Perl.




                                                                                                     14
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

                                                       Chapitre 2 : Les protocoles et codecs
                                                  I.     Les protocoles

           Au sens définition, un protocole est une formalisation standardisée permettant la
           communication entre plusieurs processus ; autrement dit, c’est un ensemble de procédures et
           de règles qui servent à l’émission et à la réception des données sur un réseau.
           Dans le milieu des télécoms et réseaux, chaque applicatif à son protocole. Le plus célèbre et
           le plus utilisé est le protocole TCP /IP (Transmission Control Protocol/Internet Protocol).
           Toute la difficulté de la VoIP est de transformer un flux voix de type audio en numérique
           (découpage en paquets de l’information) afin de le faire transiter sur les réseaux IP et
           d’effectuer l’opération inverse dans le bon ordre afin que le correspondant comprenne
           parfaitement le flux voix audio, et ceci en temps réel (moins de 300ms).

                          1. Les protocoles de signalisation :

                  Le protocole SIP:

           SIP (Session Initiation Protocol) a été normalisé par le groupe de travail WG MMUSIC (Work
           Group Multiparty Multimedia Session Control) de l’IETF. La version 1 est sortie en 1997, et
           une seconde version majeure a été proposée en mars 1999 (RFC 2543). Cette dernière a elle-
           même été largement revue, complétée et corrigée en juin 2002 (RFC 3261). Des compléments
           au protocole ont été définis dans les RFC 3262 à 3265.
           SIP est au sens propre un protocole de signalisation hors bande pour l’établissement, le
           maintien, la modification, la gestion et la fermeture de sessions interactives entre utilisateurs
           pour la téléphonie et la vidéoconférence, et plus généralement pour toutes les
           communications multimédias.
           Le protocole n’assure pas le transport des données utiles, mais a pour fonction d’établir la
           liaison entre les interlocuteurs. Autrement dit, il ne véhicule pas la voix, ni la vidéo, mais
           assure simplement la signalisation. Il se situe au niveau de la couche applicative du modèle
           de référence OSI et fonctionne selon une architecture client-serveur, le client émettant des
           requêtes et le serveur exécutant en réponse les actions sollicitées par le client. SIP fournit des
           fonctions annexes évoluées, comme la redirection d’appel, la modification des paramètres
           associés à la session en cours ou l’invocation de services. En fait, SIP ne fournit pas
           l’implémentation des services, mais propose des primitives génériques permettant de les
           utiliser. De cette manière, l’implémentation des services est laissée libre, et seul le moyen
           d’accéder aux services est fourni.

                  Le Protocole H.323

           Le protocole H.323 a été développé par l’UIT en 1996, afin de fournir un mécanisme de
           transport IP pour la vidéoconférence.
           Le protocole H.323 figure parmi les plus réputés des protocoles de signalisation pour la
           téléphonie sur IP. H.323 n’est en réalité que la référence du protocole. Son nom complet est
           Packet-based Multimedia Communications Systems, ou « Systèmes de communication




                                                                                                        15
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012

           multimédia fonctionnant en mode paquet ». Comme ce nom l’indique, il peut être utilisé pour
           tous les réseaux à commutation de paquets, en particulier IP.
           Ce protocole est spécifié pour le traitement de la signalisation des données multimédias avec
           de fortes contraintes temporelles, comme la voix ou la vidéo.
           Il est à noter qu’Asterisk supporte H.323 (module chan_h323.so).

                  Protocole IAX

           Le protocole Inter-Asterisk eXchange (prononcé "X") a été mis au point par la société Digium
           uniquement pour permettre à plusieurs serveurs Asterisk de communiquer entre eux. IAX est
           un protocole peer-to-peer de signalisation et de transport de la voix.
           IAX2 utilise un port UDP unique (port 4569) pour la signalisation (flux de contrôle) et les
           données (flux RTP) (alors qu’IAX1 utilisait le port 5036).
           IAX est apparu après SIP et est en train de devenir une véritable alternative, au point que bon
           nombre de constructeurs et opérateurs l’ont implémenté dans leurs équipements. Il permet
           d’économiser de la bande passante en agrégeant plusieurs sessions dans un seul flux de
           données.
           Enfin, il permet de fonctionner parfaitement derrière du NAT.

                  Protocole MGCP

           Le protocole MGCP (Media Gateway Control Protocol) est défini dans la RFC 3435.
           L’intelligence, contrairement à SIP, n’est pas dans le client de téléphonie mais dans le cœur
           du réseau. Les téléphones MGCP ne peuvent pas s’appeler entre eux mais doivent passer
           obligatoirement par un contrôleur central : la Gateway. Bien qu’Asterisk supporte MGCP
           (mgcp.conf et chan_mgcp.so), il est peut-être préférable d’avoir un parc homogène et donc
           de migrer les téléphones IP MGCP en SIP.
           Il est à noter que MGCP est en perte de vitesse face à SIP et IAX.

                  Le protocole Skinny/SCCP

           Le protocole SCCP (Skinny Client Control Protocol) est le protocole propriétaire de Cisco.
           C’est le protocole utilisé dans tous les téléphones IP Cisco et dans l’autocom Cisco Call
           Manager.
           Bien qu’Asterisk supporte Skinny, il est préférable de migrer les téléphones Cisco en SIP.

                  Le protocole UNISTIM


           Le support pour le protocole VOIP propriétaire de Nortel, UNISTIM, a été ajouté récemment à
           Asterisk. Cette étape remarquable signifie qu’Asterisk est le premier PABX de l’histoire à
           supporter nativement les terminaux IP propriétaires des deux plus grands de la VOIP, Nortel
           et Cisco.




                                                                                                     16
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012

                         2. Les protocoles de transports


           Il existe plusieurs protocoles de transports tels que TCP (Transport Control Protocol) et UDP
           (User Datagrame Protocol). Il n’est pas souhaitable d’utiliser TCP compte tenue des fortes
           contraintes temporelles qu’est confrontée la téléphonie. Utilisant aussi UDP, il n’ya ni
           contrôle ni fiabilité. C’est ainsi qu’il est préférable d’utiliser le protocole RTP (Real-time
           Transport Protocol) et le protocole RTCP (Real-time Transport Control Protocol). Ces deux
           derniers sont chargés de transporter une information multimédia en temps réel au travers
           d'un réseau IP.


                  Le protocole RTP

           Le RTP (Real Time Transport Protocol) est créé en 1996 dans la RFC 1889, rendu obsolète et
           standardisé par l'IETF par la RFC 3550 en 2003. Le RTP a été conçu pour transporter des flux
           IP ayant de fortes contraintes temporelles, typiquement, des flux multimédias, il permet de
           reconstituer les flux IP multimédia en temps réel en agissant à deux niveaux :
                 La synchronisation des flux
                 La reconstitution de l'ordre des paquets
           Il est important de noter que les protocoles de signalisation comme les protocoles de
           transport peuvent être utilisés entre les terminaux IP et l'IPBX, mais aussi directement entre
           les terminaux, si ces derniers peuvent communiquer en IP.

                  Le protocole RTCP


           Le RTCP (RealTime Transport Control Protocol) lui aussi publié par l'IETF dans la RFC 3550 en
           2003, permet un contrôle des flux RTP afin de garantir leurs intégrités ainsi qu'une
           supervision du réseau en agissant comme une sonde qui informe l'utilisateur de l'état du
           réseau en temps réel. Les protocoles RTP et RTCP sont indépendants mais néanmoins, leur
           association apporte une cohérence dans le traitement de l'information en temps réel afin
           d'optimiser les conditions de transport des flux IP multimédia ainsi que la qualité de service
           générale.


                                                 II.   Les Codecs


           Un codec est un algorithme qui permet de COmpresser/DECompresser les flux numériques en
           flux analogiques et inversement. Il peut se présenter sous la forme logicielle (programme à
           installer sur Asterisk ou déjà présent) ou matérielle (carte spécifique à installer dans le
           serveur).


              1. G.711


           Dans Asterisk, ce codec prend le nom de ulaw (µ­law) pour l’Amérique du Nord et alaw pour
           le reste du monde; Le codec G.711 alaw est donc employé en France. G711 utilise une bande



                                                                                                    17
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                  Année académique 2011-2012

           passante élevée à 64kp/s (il faut rajouter l’overhead, lié aux flux RTP), mais consomme peu
           de CPU sur le serveur puisqu’il n’est pratiquement pas compressé. La qualité de G.711 est
           excellente et égale celle du RTC classique. Ce codec est à utiliser de préférence dans un LAN
           (Local Area Network) où la ressource en bande passante ne pose pas de problème particulier.
           Autres points importants à ne pas négliger, G711 est gratuit et est implémenté dans la
           majorité des équipements de T-VoIP


              2. G.723.1


           Ce codec payant est utilisé uniquement en cas de transcodage, G.723.1 fonctionne à 5,3 Kb/s
           ou 6,3 Kb/s donc est très intéressant dans le cas de faibles bandes passantes.

              3. G.726

           Il s’agit d’un codec gratuit qui utilise différents débits : 16, 24 ou 32 Kb/s. Il est supporté par
           Asterisk uniquement dans sa version 32 bits. C’est un très bon rapport qualité
           sonore/utilisation CPU.


              4. G.729


           Ce codec réduit à 8 Kb/s la consommation d’un appel, auquel il faut ajouter l’overhead IP,
           cela fait un débit réel de 40Kb/s environ. L’intérêt principal de G729, utilisé avec Asterisk, est
           de réduire la bande passante nécessaire donc est source de gain. Asterisk supporte
           seulement le G.729 Annexe A (G.729a). L’overhead IP dépend de la configuration matérielle
           du serveur. Par exemple, un Xeon 1.8 GHz permet environ 60 appels simultanés en G729 alors
           qu’un Xeon 2.8 Ghz en permet 80. La licence est payante et s’installe sur le serveur Asterisk. Il
           faut une licence par communication qui utilise le transcodage. Si le serveur ne fait pas de
           transcodage, il n’y a pas besoin de licences. Par contre, si le serveur fait du codage/décodage
           (client en G711a, Asterisk en G711a/G729, opérateur en G729), il faut autant de licence que
           l’on souhaite avoir de communications simultanées. Les performances de ce codec sont
           impressionnantes mais cela nécessite beaucoup de ressource processeur sur le serveur. Pour
           avoir 30 communications simultanées sur Asterisk en G729, il faut acheter un pool de 30
           licences, soit environ 300 $ US. Chaque pool est dédié à un serveur Asterisk.




                                                                                                         18
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

                                                    Chapitre 3 : L’écosystème de la VoIP

                              1. Asterisk

           Asterisk est un autocommutateur téléphonique privé (PABX) open source pour systèmes
           UNIX. Il permet, entre autres, la messagerie vocale, les files d'attente, les agents d'appels, les
           musiques d’attente, les mises en garde d'appels, la distribution des appels et la gestion de
           conférences.
           Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu'un protocole spécifique
           nommé IAX (Inter-Asterisk eXchange). Asterisk peut également jouer le rôle de registrar et de
           passerelle avec les réseaux publics. Il est utilisé par certains opérateurs comme cœur de
           réseau téléphonique du fait de son interopérabilité et de sa sociabilité. Associé à SugarCRM
           ou Vtiger on le retrouve également souvent comme outil de gestion de centre d'appels.
           Dans son utilisation classique comme plateforme de téléphonie IP, Asterisk est généralement
           associé à Freepbx, une IHM permettant de piloter l'ensemble de ses fonctionnalités. On
           retrouve Asterisk et Freepbx dans de nombreuses distributions dont les plus populaires sont
           Elastix et Trixbox.
           Asterisk est distribué sous la licence GPL.

                              2. SipX

           SipX fut tout d’abord un produit commercial de la société PingTel. En 2004, PingTel adopte un
           modèle Open Source et offre tous les codes sources à la communauté Open Source
           SIPFoundry. Cette communauté développe alors sipXpbx, mais aussi d’autres produits basés
           sur SIP comme sipXphone, sipXregistry ou sipXvxml. Elle met aussi gratuitement à disposition
           des «User Agent Software Development Kit» permettant aux développeurs de programmer
           leur propre softphone, hardphone ou logiciel de messagerie instantanée. Elle offre aussi des
           «SIP protocol stack» permettant d’implémenter le protocole SIP dans des Gateway ou proxy.
           Avec SipX, Asterisk n'est plus le seul projet IPBX open source en course. SipX est en effet le
           plus gros concurrent d’Asterisk.
           Une brève comparaison avec son aîné Asterisk révèle que SipX dispose d'une interface
           graphique d'administration complète, qui faisait défaut à Asterisk. Il est certain que
           désormais avec l’interface graphique FreePBX a largement rattrapé ce retard.
           L’implémentation de SIP est très fidèle aux RFC (Request for Comments) de l’IETF (Internet
           Engineering Task Force). SIPFoundry participe activement au développement de SIP auprès
           de l’IETF.

                              3. Kamailio

           Kamailio est un Server SIP open source. Ce fork du projet OpenSER (en 2005) est l'un des PBX
           les plus complets. Il supporte des transactions asynchrones TCP, UDP et SCTP, l'encryptage
           des communications via TLS, la répartition de charge, un mécanisme natif de fail-over,
           l'authentification sur des backend Radius, Mysql, LDAP ou via transport XMLRCP. Il est utilisé
           aussi bien par des opérateurs télécoms comme plate-forme de service VoIP que pour les
           solutions classiques de téléphonie d'entreprise. C'est une alternative à Freeswitch et Asterisk
           les deux autres poids lourds du domaine.


                                                                                                        19
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012

           Kamili est distribué sous licence GPL.

                               4. Trixbox

           Trixbox est un ensemble d'outils et d'utilitaires de télécommunication compilés pour devenir
           un véritable IP PBX. Les principales caractéristiques de TRIXBOX sont :
                   Asterisk, le cœur du système téléphonique
                   Gestion des relations clients
                   A2Billing – Calling Card platform (tarification des appels)
                   Flash Operator Panel, a screen-based operator’s console web conference outils de
                   configuration utilisateurs de Trixbox.

                               5. Freepbx

           Freepbx est un outil de configuration graphique très convivial du logiciel de téléphonie libre
           Asterisk.
           C'est également le logiciel utilisé dans la distribution Trixbox et Elastix.
           Sur la page d’accueil nous avons :
                Voicemail & Recording (ARI) : Permet d'accéder à la messagerie vocale.
                Flash Operator Panel (FOP) : Une interface permettant de visualiser les extensions, la
                   file d'attente, la conférence, les trunks actifs, etc...
                FreePBX Administration : Page d'administration




                                                                                                    20
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012

                Chapitre 4 : Les principales étapes de la réalisation de notre interface
                                      graphique de gestion à l’aide d’une base de données
              A. Installation et configuration d’Asterisk

               Installation des modules et des dépendances spécifiques à Asterisk

           Installez les dépendances nécessaires qui vous permettront de compiler et d’installer Asterisk
           ainsi que d’ajouter certains modules dont nous aurons besoins par la suite: Tapez la
           commande suivante : apt-get install linux-headers-$(uname -r) bison openssl libssl-dev
           libeditline0 libeditline-dev libedit-dev gcc make g++ mc php5-cli libxml2-dev libspandsp-
           dev


                 Téléchargement de différentes sources nécessaires à l’installation


           Créer un dossier nommé asterisk dans le dossier /usr/src à l’aide de la commande suivante :
                               mkdir /usr/src/asterisk


           Déplacez-vous dans le dossier à l’aide de la commande suivante :
                               cd /usr/src/asterisk


           Lancez le téléchargement des sources en tapant les commandes suivantes :


           wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-
           1.6.2.13.tar.gz
           wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-
           1.6.2.1.tar.gz


           wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-
           complete-2.4.0+2.4.0.tar.gz

           La source asterisk va vous permettre d’installer le module asterisk sur votre serveur. La
           source asterisk-addons contient des addons pour le support mysql.


           Le module dahdi remplace le module zaptel utilisé sur les anciennes versions d’asterisk. Ce
           module permet entre autres de gérer le timer pour les conférences dans une architecture full
           IP.




                                                                                                       21
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012

              1. Installation du module DAHDI


           Vérifiez que vous êtes bien dans le dossier /usr/src/asterisk.
           Décompresser le module Dahdi à l’aide de la commande suivante :
           tar zxvf dahdi-linux-complete-2.4.0+2.4.0.tar.gz
           Déplacer vous dans le répertoire afin de le compiler à l’aide de la commande suivante :
           cd dahdi-linux-complete-2.4.0+2.4.0
           Compiler le code à l’aide des commandes suivantes :                             make all
           make install
           Après la commande « make install » vous devez obtenir ce résultat :
           ###################################################
           ###
           ### DAHDI tools installed successfully.
           ### If you have not done so before, install init scripts with:
           ###
           ### make config
           ###
           ###################################################

           Installer les scripts d’initialisation à l’aide de la commande suivante :
           make config
           Le module dahdi est aussi utiliser pour configurer les cartes permettant de rattacher l’IPBX au
           réseau téléphonique public (par le biais de ligne RTC ou Bri ou Pri). Dans notre mise en
           situation nous travaillons sur un réseau full IP. Nous n’avons donc pas besoin de carte. Il est
           donc judicieux de modifier le fichier « /etc/dahdi/modules ». Commentez toutes lignes de ce
           fichier en mettant un # devant chaque ligne.
           Lancez le module dahdi-dummy à l’aide de la commande suivante :
           modprobe dahdi_dummy
           Redémarrez le serveur à l’aide de la commande « reboot ».

              2. Installation de Libpri
           Libpri est un module utilisé par les fabricants de cartes de communication qui permet
           aux interfaces PRI d’être utilisées par Asterisk.
                   # wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-
                   1.4.10.2.tar.gz
                   # cd /usr/src/
                   # tar zxvf libpri-1.4.10.2.tar.gz
                   # chown -R root:root libpri-1.4.10.2/
                   # cd libpri-1.4.10.2/
                   # make clean
                   # make
                   # make install

              3. Installation d’Asterisk

           Déplacez-vous dans le dossier « /usr/src/asterisk/asterisk-1.6.2.1 ».



                                                                                                      22
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012

           Compiler les sources à l’aide de la commande suivante : «./configure »
           Vous devez obtenir l’affichage ci-dessous :
           configure: Package configured for:
           configure: OS type: linux-gnu
           configure: Host CPU: i686
           configure: build-cpu: vendor: os: i686: pc: linux-gnu:
           configure: host-cpu:vendor:os: i686 : pc : linux-gnu :
           Tapez la commande « make »
           Vous devez obtenir l’affichage ci-dessous :
           Asterisk Build Complete ---------+
           + Asterisk has successfully been built, and +
           + can be installed by running: +
           ++
           + make install +
           +-------------------------------------------+

           Tapez la commande « make install »
           Vous devez obtenir l’affichage ci-dessous :
           +---- Asterisk Installation Complete -------+
            +                              +
            + YOU MUST READ THE SECURITY DOCUMENT
            +                              +
            + Asterisk has successfully been installed. +
            + If you would like to install the sample +
            + configuration files (overwriting any +
            + existing config files), run:               +
            +                              +
            +           make samples                  +
            +                              +
            +----------------- or ---------------------+
            +                              +
            + You can go ahead and install the asterisk +
            + program documentation now or later run: +
            +                              +
            +          make progdocs                  +
            +                              +
            + **Note** This requires that you have +
            + doxygen installed on your local system +
            +-------------------------------------------
           Tapez la commande « make samples », cette commande va permettre de créer les
           fichiers d’exemples.
           Il ne vous reste plus qu’à définir asterisk en tant que service sur votre serveur par le biais
           de la commande suivante : « make config »
           Voici l’architecture des fichiers installés d’Asterisk sur notre système avec une brève
           explication de la fonction de chacun d’eux :



                                                                                                     23
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

                        o /etc/asterisk : contient tous les fichiers nécessaires à configurer.
                        o /etc/asterisk/sip.conf : ici, on définit les options du protocole SIP à Asterisk.
                            Ce dernier contient l’identification des entités (utilisateur, secret, numéro
                            téléphone…).
                        o /etc/asterisk/extensions.conf : constitue le moyen par lequel, on indique à
                            Asterisk comment gérer les appels. Donc on définit le plan de numérotation.
                        o /etc/asterisk/voicemail.conf : contrôle le système de boite vocale d’Asterisk.
                        o /etc/asterisk/cdr.conf : sert à rendre possible d’enregistrer les détails d’un
                            appel(CDR). Permet d’activer le système de facturation dans Asterisk.
                        o /usr/lib/asterisk/modules : contient tous les modules chargeables d’Asterisk.
                            Par défaut, Asterisk charge tous ces modules lors de son démarrage.
                        o /var/lib/asterisk : contient le fichier astdb et des sous répertoires. Cet astdb
                            contient la base de données d’informations locale d’Asterisk. Les sous-
                            répertoires sont agi-bin/ contient des scripts qui s’interfacent avec Asterisk
                            par les divers applications AGI intégrées.
                           Firmware/ contient les firmwares de divers appareils compatibles
                          Asterisk
                        Keys/ peut contenir les clés privées/publiques pour authentifier les utilisateurs.
                        Sounds/ contient les annonces vocales pour Asterisk.
                        Les contenus des annonces de base incluses avec Asterisk sont dans le fichier
           sound.txt.
                     o Var/log/asterisk : c’est dans cet endroit, Asterisk enregistre les erreurs
                       concernant son fonctionnement dans le fichier messages et d’autres fichiers
                       de bugs.
                     o Var/log/asterisk/cdr_csv : c’est ici, on trouve le stockage des CDR dans un
                       fichier de format texte portant le nom Master.csv.
                 Redémarrer manuellement le service asterisk comme suit :
                           /etc/init.d/asterisk restart

                                           Visualiser les fichiers de configurations

                Visualiser le contenu du répertoire asterisk se trouvant dans /etc/asterisk
           Les fichiers de configurations d’asterisk sont remplis d’exemple, il est donc important de les
           sauvegardez si vous veniez à réaliser de mauvaise manipulations.
                Sauvegardez les fichiers sip.conf, extensions.conf, voicemail.conf, meetme.conf et
                   musiconhold.conf en tapant les commandes suivantes :
           cp extensions.conf extensions.conf.bkp
           cp sip.conf sip.conf.bkp
           cp voicemail.conf voicemail.conf.bkp
           cp meetme.conf meetme.conf.bkp

                  La console asterisk.
           Lancez la console avec la commande suivante :
           asterisk –rvvvv
           (L’argument -vvvvv est pour le mode extra verbeux, ainsi on obtient plus de détails sur la
           réussite ou non des divers événements).



                                                                                                        24
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012

           La console d’administration d’Asterisk permet de voir en temps réel les actions réalisées par
           le serveur. Cela permet entre autre de débugger certains problèmes mais aussi de
           redémarrer proprement le service. Pour connaitre les commandes disponibles sous la console
           vous pouvez tapez help.
           Pour sortir de la console tapez la commande « exit »
           La console vous permettra à chaque fois que vous aurez modifiez les fichiers de configuration
           de rechargez les nouvelles configurations.
           Exemple : si vous avez modifié le fichier sip.conf dans la console il vous suffira de tapez la
           commande sip reload.
           Si vous avez modifié le fichier extensions.conf dans la console il vous suffira de tapez la
           commande dialplan reload, cette commande rechargera le plan de routage des appels.
           Pour recharger totalement le service Asterisk tapez la commande reload
           show dialplan : voir les différents contextes et extensions
           sip show peers : voir les téléphones et fournisseurs SIP
           sip show registry : voir les enregistrements à des fournisseurs SIP
           dial 1500@estm : appeler le numéro 1500 du contexte colobane
           Par la suite, il est préférable d’automatiser le lancement du processus serveur à l’aide de la
           variable RUNASTERISK du fichier /etc/default/asterisk : RUNASTERISK=yes. Dans ce cas, on
           connecte des clients CLI à l’aide de l’option -r : « asterisk –r »

                                             4. Configuration d’Asterisk

           Par défaut les fichiers de configurations se trouvent dans le répertoire /etc/asterisk/. En effet
           en faisant le make samples lors de la compilation, des fichiers de configuration ont été
           générés dans ce répertoire et serviront de configurer votre propre PABX. Le répertoire de
           configuration fait l’objet d’une multitude de fichiers.

                                                         sip.conf
           Le fichier sip.conf est le fichier de création de comptes SIP. Chaque compte est imbriqué dans
           un bloque où sont énuméré tous les paramètres qui lui sont liés.
           Syntaxe générale :
           [utilisateur1] ; début du bloc de création de compte SIP.
           type=friend ; type de compte
           host=dynamic ; adresse IP adresse du serveur (PABX)
           user=utilisateur1 ; nom d’utilisateur
           secret=mysecret ; mot de passe en clair
           context=entreprise ; contexte dans lequel le compte est associé.
           mailbox=102@context ; numéro de la boîte vocale associée.
           nat=yes ; activation du nat (Network adress translation) sur le réseau.
                                                         iax.conf
           Le fichier iax.conf est le fichier de création de compte IAX. Sa syntaxe est sensiblement
           identique au fichier de configuration sip.conf.
           Syntaxe générale
           [utilisateur1] ; début du bloc de création de compte SIP.
           type=friend ; type de compte
           host=dynamic ; adresse IP adresse du serveur (PABX)
           user=utilisateur1 ; nom d’utilisateur


                                                                                                       25
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

           secret=mysecret ; mot de passe en clair
           context=entreprise ; contexte dans lequel le compte est associé.
           mailbox=102 ; numéro de la boîte vocale associée.

                                                        extensions.conf
           Le fichier extensions.conf permet de définir les règles de routage. Dans ce fichier on définit les
           contextes et les plans de numérotation. Chaque extension a un plan de numérotation interne
           qui va être interprété et acheminé vers des liens physiques (IAX ou SIP).
           Syntaxe générale :
           [nom_contexte]
           exten => numéro de l’appel, numéro de priorité, application ()
                   numéro de l’appel : c’est l’extension ;
                   numéro de priorité : une extension peut inclure plusieurs étapes donc il faut donner
                      des priorités ;
                   application () : c’est la fonction qui est déclenché lorsque l’extension est appelée.

                                          Plan de numérotation

           Le plan de numérotation se compose d'un ou plusieurs contextes d’extension. Chaque
           contexte est une collection d’extensions. Chaque extension dans un plan de numérotation
           possède un ensemble d’options permettant de spécifier un enregistrement unique.
                                                         création des comptes sip
            Editer le fichier /etc/asterisk/sip.conf et ajouter au bas du fichier des comptes comme dans
           cet exemple :
           [ibrahima]
           username=ibrahima
           secret=passer; mot de passe
           type=friend ; va définir que votre utilisateur est un "ami" est-il sera autorisé à passer des
           appels sortant
           host=dynamic; permet de se connecter avec cet utilisateur depuis n'importe quel téléphone
           context=Touba; contexte
           callerid="ibrahima"<1000>; numéro d’appel

           [moustapha]
           username=moustapha
           secret=passer
           type=friend
           host=dynamic
           context=Touba
           callerid="moustapha"<1001>

                                                       création des comptes iax

           Editer le fichier /etc/asterisk/iax.conf et ajouter au bas du fichier des comptes comme dans
           cet exemple :
           [ibrahima]



                                                                                                        26
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

           type=friend
           secret=passer
           host=dynamic
           context=Xelcom

           [moustapha]
           type=friend
           secret=passer
           host=dynamic
           context=Xelcom
                                                       Création des contexts

           Editer le fichier /etc/asterisk/extensions.conf et créer en bas de ce fichier les contextes que
           vous allez utiliser. Dans cet exemple on a créé deux contextes Touba et Xelcom.
           [Touba]
           exten => 1000,1,Dial(SIP/ibrahima,40,tr)
           exten => 1000,2,Hangup
           exten => 1001,1,Dial(SIP/moustapha,40,tr)
           exten => 1001,2,Hangup
           exten => 1002,1,Dial(SIP/fatay,40,tr)
           exten => 1002,2,Hangup
           [Xelcom]
           exten => 1500,1,Dial(IAX2/moustapha,40,tr)
           exten => 1500,2,Hangup
           exten => 1501,1,Dial(IAX2/soda,40,tr)
           exten => 1501,2,Hangup
           exten => 1502,1,Dial(IAX2/tabara,40,tr)
           exten => 1502,2,Hangup
           Sans aucune autre configuration supplémentaire, seuls les clients d’un même contexte
           pourront communiquer entre eux. Les clients de Touba ne pourront appeler que ceux de
           Touba idem pour ceux de Xelcom.
                          Installation de x-lite
           Cette source est téléchargeable à partir de ce lien
           http://www.counterpath.com/index.php?menu=download
           Après avoir installé X-Lite voici une image détaillée de ce que l’on doit avoir :




                                                                                                        27
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012




                                         Figure 1: Présentation de X-Lite


               Configuration de x-lite pour les deux utilisateurs SIP

           Il y a 2 principaux changements à les faire dans le menu de x-lite
                    Aller dans Menu>Advanced System settings>Audio Settings> Transmit Silence et
                    mettre ce paramètre a yes au lieu de no.
                    Aller dans Menu>System Settings> SIP Proxy> Default pour user1 et Menu>System
                    Settings> SIP Proxy> Proxy1 pour user2 et entrer les paramètres nécessaires pour
                    chacun d’eux.
           Les changements consistent à introduire ces paramètres dans le menu SIP Proxy.
                 Enabled : toujours à la valeur yes au lieu de no.
                 Display Name, Username, Authorization User : prennent la valeur de username de
                    notre fichier sip.conf.
                 Password : prend la valeur secret de notre fichier sip.conf pour chaque utilisateur
                    enregistre.
                 Domain/Realm : on met l’adresse IP de notre serveur Asterisk.
                 SIP Proxy : on met aussi l’adresse IP de notre serveur Asterisk suivi de son numéro se
                    port.
           Si tous ces paramètres ont été introduits correctement et se concordent avec les paramètres
           SIP de notre fichier sip.conf. On aura un message login in dans la fenêtre de x-lite. Ceci
           implique que l’authentification via asterisk pour les deux utilisateurs est réussie.




                                                                                                     28
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

              B. Interaction entre Asterisk et MySQL : fonctionnalité Realtime

                                 1. Installation et configuration de MySQL

           L’installation du serveur MySQL est effectuée avec la commande : apt-get install mysql-
           server. Lors de l’installation de mysql-server on nous demande le nom d’utilisateur de la base
           de données et son mot de passe. On peut sauter ces étapes pour créer après un super
           utilisateur ayant tous les droits sur la base. Ceci se fait avec la commande sql GRANT ALL
           PRIVILEGES ON *nom_de_la_base* TO 'killah'@'localhost' IDENTIFIED BY 'mot-de-passe'
           WITH GRANT OPTION;
            L’installation du serveur mysql requiert aussi l’installation d’autres paquets nécessaires pour
           faire fonctionner le web, on peut avoir :
           -Php5-cli
           -php-pear
           -php5-mysql
           -php-deb
           -Libapache2-mod-php5
           - Php5-gd
           -libmysqlclient15
           -libmysqlclient15-dev
           On peut ensuite connecter un client CLI au serveur MySQL en administrateur : mysql -u root –
           p, après avoir démarré le serveur mysql par la commande /etc/init.d/mysql restart

                                 2. Installation et configuration d’asterisk-addons

                 Installation des add-ons :

           Les distributions actuelles d’asterisk ne viennent pas avec les fonctionnalités Realtime qui
           permet à Asterisk d’interagir avec des bases de données. Pour avoir cette fonctionnalité donc
           on est obligé d’installer asterisk-addons
           Après avoir téléchargé asterisk-addons sur le site officiel de Asterisk, on le désarchive dans le
           dossier /usr/src à l’aide de la commande tar –xvzf asterisk-addons-1.6.2.4.tar .gz –C
           /usr/src.
           Une fois désarchivé, on se déplace dans le dossier /usr/src/asterisk-addons-1.6.2.4 et puis
           on tape les commandes suivantes :




                                                                                                        29
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                             Année académique 2011-2012

                . /configure: Si la commande se termine bien vous devez avoir à l’écran:




                              Figure 2: Exécution de la commande ./configure

                make




                                 Figure 3: Exécution de la commande make




                                                                                           30
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012

                  make install




                                 Figure 4: Exécution de la commande make install


                  make samples




                                 Figure 5: Exécution de la commande make samples



           Redémarrer le serveur à l’aide de la commande « reboot ».

           Ensuite il faut copier les fichier suivant comme suit:

                cp res_config_mysql.so /usr/lib/asterisk/modules/
                cp configs/res_mysql.conf.sample /etc/asterisk/res_mysql.conf
           La connexion d’Asterisk à MySQL est définie dans le fichier res_mysql.conf. La configuration
           dans ce fichier se fait comme dans cette capture:




                                                                                                    31
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                Année académique 2011-2012




                             Figure 6: Les différents paramètres dans res_mysql.conf

           dbhost: définit le nom de la machine locale.
           dbname:définit le nom de la base de données.
           dbuser: définit l’utilisateur qui se connecte à la base de données.
           dbpass: définit le mot de passe fournit lors de la connexion au serveur MySQL.
           dbport: c’est le numéro de port utilisé lors de la connexion.
           dbsock: définit le socket utilisé.
           NB : la valeur de dbsock qui est dans ce fichier res_mysql.conf doit être la même que celle
           qui est dans le fichier : /etc/mysql/my.cnf.

                                 3. Migration des fichiers de configuration d’Asterisk

           Pour indiquer à Asterisk que les informations sipusers, sippeers, iaxusers, iaxpeers,
           extensions, voicemail, queues, meetme sont dans la base de données MySQL, il est
           nécessaire:
                  d’ajouter les lignes suivantes à la fin du fichier extconfig.conf de la manière suivante
                  :
                  Structure: <config_file> => <pilote>, <entree_dans_fichier_conf>,
                  <nom_de_la_table>




                                                                                                      32
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                                  Année académique 2011-2012




                             Figure 7: Les différents paramètres dans extconfig.conf


                  D’ajouter la ligne suivante à la fin du fichier extensions.conf pour indiquer que la
                  suite des informations à prendre en compte se trouve dans la base : switch =>
                  Realtime/@ . Il est aussi important de décommenter dans le fichier sip.conf la ligne
                  où il y’a rtcachefriend=yes pour lui dire à SIP qu’il va utiliser l’application realtime :
                  De créer la base de donnée, par la commande sql “CREATE database asterisk;” et les
                  tables correspondantes dans la base nouvellement créée.

                    Création de la table sip:
           CREATE TABLE sip(
           id int(11) NOT NULL auto_increment,
           name varchar(80) NOT NULL default '',
           accountcode varchar(20) default NULL,
           amaflags varchar(13) default NULL,
           callgroup varchar(10) default NULL,
           callerid varchar(80) default NULL,
           canreinvite char(3) default 'yes',
           context varchar(80) default NULL,
           defaultip varchar(15) default NULL,
           dtmfmode varchar(7) default NULL,
           fromuser varchar(80) default NULL,
           fromdomain varchar(80) default NULL,
           fullcontact varchar(80) default NULL,
           host varchar(31) NOT NULL default '',
           insecure varchar(4) default NULL,
           language char(2) default NULL,
           mailbox varchar(50) default NULL,
           md5secret varchar(80) default NULL,
           nat varchar(5) NOT NULL default 'no',



                                                                                                        33
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                              Année académique 2011-2012

           deny varchar(95) default NULL,
           permit varchar(95) default NULL,
           mask varchar(95) default NULL,
           pickupgroup varchar(10) default NULL,
           port varchar(5) NOT NULL default '',
           qualify char(3) default NULL,
           restrictcid char(1) default NULL,
           rtptimeout char(3) default NULL,
           rtpholdtimeout char(3) default NULL,
           secret varchar(80) default NULL,
           type varchar(6) NOT NULL default 'friend',
           username varchar(80) NOT NULL default '',
           disallow varchar(100) default 'all',
           allow varchar(100) default 'g729;ilbc;gsm;ulaw;alaw',
           musiconhold varchar(100) default NULL,
           regseconds int(11) NOT NULL default '0',
           ipaddr varchar(15) NOT NULL default '',
           regexten varchar(80) NOT NULL default '',
           cancallforward char(3) default 'yes',
           setvar varchar(100) NOT NULL default '',
           PRIMARY KEY (id),
           UNIQUE KEY name (name),
           KEY name_2 (name)
           ) TYPE=MyISAM ROW_FORMAT=DYNAMIC;

           On peut maintenant inserer dans la tables sip, en ligne de commande, des enregistrements à
           l’aide de la commande sql suivante:




                                  Figure 8: Insertion sql dans la base de données


                  Création de la table extensions
           CREATE TABLE extensions(
           id int(11) NOT NULL auto_increment,
           context varchar(20) NOT NULL default '',
           exten varchar(20) NOT NULL default '',
           priority tinyint(4) NOT NULL default '0',


                                                                                                 34
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                             Année académique 2011-2012

           app varchar(20) NOT NULL default '',
           appdata varchar(128) NOT NULL default '',
           PRIMARY KEY (context,exten,priority),
           KEY id (id)
           ) TYPE=MyISAM;

           Insersion avec les commandes sql:
           insert into extensions (context,exten,priority,app,appdata) values
           ('default','1989','1','Dial','SIP/tafa');
                    Création de la table iax
           CREATE TABLE iax(
           name varchar(30) primary key NOT NULL,
           username varchar(30),
           type varchar(6) NOT NULL,
           secret varchar(50),
           md5secret varchar(32),
           dbsecret varchar(100),
           notransfert varchar(100),
           inkeys varchar(100),
           outkeys varchar(100),
           auth varchar(100),
           accountcode varchar(100),
           amaflags varchar(100),
           callerid varchar(100),
           context varchar(100),
           defaultip varchar(15),
           host varchar(31) NOT NULL default 'dynamic',
           language char(5),
           mailbox varchar(50),
           deny varchar(95),
           permit varchar(95),
           quality varchar(4),
           disallow varchar(100),
           allow varchar(100),
           ipaddr varchar(15),
           port integer default 0,
           regseconds integer default 0
           );
                    Création de la table voicemail
           CREATE TABLE voicemail(
           uniqueid int(11) NOT NULL auto_increment,
           customer_id int(11) NOT NULL default '0',
           context varchar(50) NOT NULL default '',
           mailbox int(5) NOT NULL default '0',
           password varchar(4) NOT NULL default '0',
           fullname varchar(50) NOT NULL default '',



                                                                                           35
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                           Année académique 2011-2012

           email varchar(50) NOT NULL default '',
           pager varchar(50) NOT NULL default '',
           stamp timestamp(14) NOT NULL,
           attach varchar(3) NOT NULL default 'no',
           saycid varchar(3) NOT NULL default 'yes',
           PRIMARY KEY(uniqueid),KEY mailbox_context(mailbox,context)
           ) TYPE=MyISAM;

                    Création de la table queue_table
           CREATE TABLE queue_table(
           name VARCHAR(128) PRIMARY KEY,
           musiconhold VARCHAR(128),
           announce VARCHAR(128),
           context VARCHAR(128),
           timeout INT(11),
           monitor_join tinyint(1),
           monitor_format VARCHAR(128),
           queue_youarenext VARCHAR(128),
           queue_thereare VARCHAR(128),
           queue_callswaiting VARCHAR(128),
           queue_holdtime VARCHAR(128),
           queue_minutes VARCHAR(128),
           queue_seconds VARCHAR(128),
           queue_lessthan VARCHAR(128),
           queue_thankyou VARCHAR(128),
           queue_reporthold VARCHAR(128),
           announce_frequency INT(11),
           announce_round_seconds INT(11),
           announce_holdtime VARCHAR(128),
           retry INT(11),
           wrapuptime INT(11),
           maxlen INT(11),
           servicelevel INT(11),
           strategy VARCHAR(128),
           joinempty VARCHAR(128),
           leavewhenempty VARCHAR(128),
           eventmemberstatus tinyint(1),
           eventwhencalled tinyint(1),
           reportholdtime tinyint(1),
           memberdelay INT(11),
           weight INT(11),
           timeoutrestart tinyint(1),
           ringinuse tinyint(1),
           setinterfacevar tinyint(1)
           );
                    Création de la table queue_member_table



                                                                                        36
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                           Année académique 2011-2012

           CREATE TABLE queue_member_table(
           uniqueid INT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
           membername varchar(40),
           queue_name varchar(128),
           interface varchar(128),
           penalty INT(11),
           paused INT(11),
           UNIQUE KEY queue_interface (queue_name, interface)
           );
                     Création de la table cdr
           CREATE TABLE cdr(
            calldate datetime NOT NULL default '0000-00-00 00:00:00',
            clid varchar(80) NOT NULL default '',
            src varchar(80) NOT NULL default '',
            dst varchar(80) NOT NULL default '',
            dcontext varchar(80) NOT NULL default '',
            channel varchar(80) NOT NULL default '',
            dstchannel varchar(80) NOT NULL default '',
            lastapp varchar(80) NOT NULL default '',
            lastdata varchar(80) NOT NULL default '',
            duration int(11) NOT NULL default '0',
            billsec int(11) NOT NULL default '0',
            disposition varchar(45) NOT NULL default '',
            amaflags int(11) NOT NULL default '0',
            accountcode varchar(20) NOT NULL default '',
            userfield varchar(255) NOT NULL default '',
            uniqueid VARCHAR(32) NOT NULL default '',
            linkedid VARCHAR(32) NOT NULL default '',
            sequence VARCHAR(32) NOT NULL default '',
            peeraccount VARCHAR(32) NOT NULL default '' );

           Voici un apercu en image de notre base de donnée:




                                                                                        37
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012




                            Figure 9: Aperçu de la base de données avec phpmyadmin


                                  4. Installation et configuration des soft phones : test de
                                     fonctionnalité

           Le softphone est un logiciel qui assure toutes les fonctions téléphoniques et qui utilise la
           carte son et le micro du PC de l’utilisateur, et aussi la carte Ethernet du PC. Il est géré soit
           par le call manager soit par le PABX-IP. Il en existe plusieurs parmi les quels: X-lite, Ekiga,
           Kphone,Twinkle, ZoIper etc…
           En ce qui nous concerne, nous avons installé et configuré X-Lite sous windows et Kphone
           sous Lunix pour en faire les tests de fonctionnalité. Pour installer Kphone il suffit de taper le
           nom de l’application dans le Logitheque Ubuntu et de cliquer sur le bouton installer.
           Un bon enrégistrement avec Kphone nous donne l’image ci-dessous:




                                                                                                         38
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                          Année académique 2011-2012




                            Figure 10: Régistration avec le soft phone Kphone




                                                                                       39
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                                 Année académique 2011-2012

           Avec X-Lite aussi on s’est registré et tout ceci donne l’image ci-après :




                                         Figure 11: Régistration avec X-Lite




                                                                                               40
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012

                         Chapitre 5 : Présentation et utilisation de l’interface
                                                                                         graphique
           La réalisation de notre interface graphique a nécessité l’utilisation de quelques outils de
           programmation du genre html5, php, requête SQL et des quelques serveurs (Apache, mysql-
           server)
           Le répertoire /var/www/, se trouvant dans le serveur apache, est celui qui permet d’héberger
           en local des sites sous linux.
           Dans ce répertoire on a créé un dossier asterisk qui contient toutes les pages de notre
           interface et ensuite pour accéder à la page d’accueil on tape sur un navigateur l’url suivant
           127.0.0.1/asterisk et nous voilà dans l’interface
            Une fois sur la page d’accueil de cette interface on peut voir les quatre boutons qui sont les
           suivant :




                                 Figure 12: L’interface de management d’Asterisk




                                                                                                      41
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                           Année académique 2011-2012

             1. Le bouton Compte SIP:




                                     Figure 13: Création de compte SIP




              Nom : Il correspond à ce qu’on met entre crochet au début de la création d’un
               compte. Exemple [tafa]
              Nom d’utilisateur : Il correspond à username
              Mot de passe : C’est le mot de passe du compte
              Numéro de boite vocale : Il correspond à mailbox
              Context : C’est le contexte de création d’un compte
              Identifiant du téléphone : C’est le callerid du compte




                                                                                               42
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

              Mémoire de fin de cycle                               Année académique 2011-2012




              2. Le bouton Compte IAX:




                                        Figure 14: Création de compte IAX




           Ici les champs sont les mêmes que ceux précédents. Il n’ya que le fichier de configuration qui
           change (iax.conf).




                                                                                                     43
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                              Année académique 2011-2012




             3. Le bouton Numéro de Téléphone:




                                Figure 15: Création d’un numéro de téléphone

              Entrer un context : C’est le contexte déclaré dans les comptes sip ou iax
              Entrer un numéro de téléphone : C’est le callerid déclaré dans les comptes sip ou iax
              Entrer la priorité : Il s’agit de préciser le rang de l’action à effectuée
              Entrer l’action à effectuer : Sur Asterisk il y’a plusieurs actions qui chacune quelques
               chose de spécifique. Il s’agira ici de préciser une action à effectuer.
              Entrer les applications : Après avoir choisi une option, il mettre les arguments et c’est
               ici qu’on le fait.




                                                                                                    44
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                              Année académique 2011-2012




             4. Le bouton Boite Vocale:




                                      Figure 16: Numéro de boite vocale

              Entrer votre context : C’est le même context dans lequel on a déclaré le compte et le
               numéro de téléphone
              Entrer votre numéro de boite vocale : C’est le mailbox qu’on doit entrer lors de la
               consultation de la boite vocale
              Entrer votre mot de passe : En chiffre : C’est le mot de passe à renseigner lors de la
               consultation de la boite vocale. Il doit impérativement être en chiffre.
              Entrer votre nom complet : Ici vous pouvez mettre votre nom complet (optionnel)
              Entrer votre email : Taper votre email dans ce champs pour être informé de la
               réception d’un message vocal avec un mail (optionnel).




                                                                                                   45
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22




           C
              Mémoire de fin de cycle                                  Année académique 2011-2012

                          Onclusion:
                            Asterisk est une puissante plate-forme de téléphonie. Cette puissance n’a
                            toutefois d’intérêt que dans la mesure où elle peut être mise en œuvre par
                            tout utilisateur final. Ainsi donc, une interface graphique présente un très
                            grand intérêt pour Asterisk.
                            C’est en cela qu’a porté le sujet de notre mémoire, où, après deux mois de
           recherche, nous avons réussi à gérer les configurations du serveur Asterisk dans une base de
           données MySQL. Pour ce faire, nous avons installé le serveur Asterisk, les pilotes tels que
           Libpri et dahdi qui permettent de compléter son installation, mais aussi les différents outils
           nécessaires à sa compilation. De la même manière, nous avons installé le serveur MySQL
           ainsi que les différents outils web permettant l’interaction PHP/MySQL. Nous avons aussi
           installé asterisk-addons qui dispose la fonctionnalité Realtime qui est indispensable pour la
           connexion entre Asterisk et MySQL. Et c’est dans le fichier /etc/asterisk/res_mysql.conf que
           nous avons défini les paramètres utilisés pour se connecter à la base de données nommée
           asterisk depuis le serveur MySQL. Après avoir montré un exemple de gestion de l’interface
           graphique d’Asterisk, grâce aux langages HTML, PHP et SQL nous avons écrit des scripts qui
           nous ont permis de créer graphiquement des comptes SIP, des numéros de téléphone, des
           numéros de boîte vocale, un centre d’appels, et la gestion conférence qui sont directement
           stockés dans les tables sip, extensions, voicemail, meetme, queue_table et
           queue_member_table de la base de données asterisk. Pour les tests de fonctionnalités, nous
           avons installé et configuré deux softphones qui sont X-lite et Kphone avec des comptes qui
           sont créés dans la base de données.
            Il est important de remarquer qu’une interface graphique pour gérer Asterisk est d’intérêt
           général, mais il existe un compromis naturel entre, d’une part, la facilité et la simplicité
           d’utilisation, et d’autre part, le nombre de fonctions disponibles. Ainsi, l’interface requise par
           un administrateur expérimenté sera probablement différente de celle pour l’administrateur
           seulement responsable, d’ajouts ou de modifications simples.




                                                                                                         46
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
sept. 22

             Mémoire de fin de cycle                              Année académique 2011-2012

                                                    Bibliographie et webographie
                                                Bibliographie

                                Titre : Asterisk la téléphonie Open Source
                                           Edition: O’REILLY
                          Auteur: Jim Van Meggelen, Jared Smith et Leif Madsen

                              Titre: VoIP et ToIP Asterisk La téléphonie sur IP
                                                Edition : eni
                                         Auteur : Sébastien DEON

                                             Webographie

                               Site officiel d’Asterisk : http://www.asterisk.org

                    Site de téléchargements d’Asterisk: http://www.asterisk.org/downloads

                               Site officiel de VoIP : http://www.voip-info.org

                            Site officiel de Wikipédia : http://www.wikipedia.org




                                                                                            47
           Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye

Contenu connexe

Tendances

Moussasambe projet de securite zabbix
Moussasambe projet de securite zabbixMoussasambe projet de securite zabbix
Moussasambe projet de securite zabbixmoussa sambe
 
Voip simulation
Voip simulation Voip simulation
Voip simulation Anas ABANA
 
Asterisk to ip_rapport
Asterisk to ip_rapportAsterisk to ip_rapport
Asterisk to ip_rapportGilles Samba
 
Implémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - PrésentationImplémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - PrésentationRihab Chebbah
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sakka Mustapha
 
Projet haute disponibilité asterisk pdf
Projet haute disponibilité asterisk pdfProjet haute disponibilité asterisk pdf
Projet haute disponibilité asterisk pdfAbderahim Amine Ali
 
Rapport nagios miniprojet
Rapport nagios miniprojetRapport nagios miniprojet
Rapport nagios miniprojetAyoub Rouzi
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
 
mémoire la légitimité des ONGs vue à travers la question de l'eau
mémoire la légitimité des ONGs vue à travers la question de l'eaumémoire la légitimité des ONGs vue à travers la question de l'eau
mémoire la légitimité des ONGs vue à travers la question de l'eauRobin Abric
 
Projet stage : Mise en place d'un système générique de sauvegarde et de rest...
Projet stage : Mise en place d'un système générique  de sauvegarde et de rest...Projet stage : Mise en place d'un système générique  de sauvegarde et de rest...
Projet stage : Mise en place d'un système générique de sauvegarde et de rest...Gedeon AGOTSI
 
Supervision d'un réseau informatique avec Nagios
Supervision d'un réseau informatique avec NagiosSupervision d'un réseau informatique avec Nagios
Supervision d'un réseau informatique avec Nagioschristedy keihouad
 
Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...
Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...
Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...Stephen Salama
 
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Saadaoui Marwen
 
Présentation de nagios
Présentation de nagiosPrésentation de nagios
Présentation de nagiosilyassin
 

Tendances (20)

Moussasambe projet de securite zabbix
Moussasambe projet de securite zabbixMoussasambe projet de securite zabbix
Moussasambe projet de securite zabbix
 
Voip simulation
Voip simulation Voip simulation
Voip simulation
 
Voip FreeSwitch
Voip FreeSwitchVoip FreeSwitch
Voip FreeSwitch
 
Asterisk to ip_rapport
Asterisk to ip_rapportAsterisk to ip_rapport
Asterisk to ip_rapport
 
Implémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - PrésentationImplémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - Présentation
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
 
Projet haute disponibilité asterisk pdf
Projet haute disponibilité asterisk pdfProjet haute disponibilité asterisk pdf
Projet haute disponibilité asterisk pdf
 
Rapport nagios miniprojet
Rapport nagios miniprojetRapport nagios miniprojet
Rapport nagios miniprojet
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
mémoire la légitimité des ONGs vue à travers la question de l'eau
mémoire la légitimité des ONGs vue à travers la question de l'eaumémoire la légitimité des ONGs vue à travers la question de l'eau
mémoire la légitimité des ONGs vue à travers la question de l'eau
 
Projet stage : Mise en place d'un système générique de sauvegarde et de rest...
Projet stage : Mise en place d'un système générique  de sauvegarde et de rest...Projet stage : Mise en place d'un système générique  de sauvegarde et de rest...
Projet stage : Mise en place d'un système générique de sauvegarde et de rest...
 
Mini projet Zabbix
Mini projet ZabbixMini projet Zabbix
Mini projet Zabbix
 
Rapport PFE VoIP
Rapport PFE VoIPRapport PFE VoIP
Rapport PFE VoIP
 
Supervision d'un réseau informatique avec Nagios
Supervision d'un réseau informatique avec NagiosSupervision d'un réseau informatique avec Nagios
Supervision d'un réseau informatique avec Nagios
 
Etude de la VoIP
Etude de la VoIPEtude de la VoIP
Etude de la VoIP
 
Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...
Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...
Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et Ope...
 
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
 
VoIP
VoIPVoIP
VoIP
 
Présentation VOIP
Présentation  VOIPPrésentation  VOIP
Présentation VOIP
 
Présentation de nagios
Présentation de nagiosPrésentation de nagios
Présentation de nagios
 

Similaire à Mémoire fin de cycle1

Android VoIP/SIP Softphone
Android VoIP/SIP SoftphoneAndroid VoIP/SIP Softphone
Android VoIP/SIP SoftphoneHamza Lazaar
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsUniversité de Rennes 1
 
Asterisk report
Asterisk reportAsterisk report
Asterisk reporttatbirt
 
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...Bassirou Dime
 
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauRapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauNicolas Roulleau
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"étudesMohamed Boubaya
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
 
Projet de-recherche-Tuteuré
Projet de-recherche-TuteuréProjet de-recherche-Tuteuré
Projet de-recherche-TuteuréRullier Anthony
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRouâa Ben Hammouda
 
Contributions aux environnements de développement de services de télécoms da...
Contributions aux environnements de développement de  services de télécoms da...Contributions aux environnements de développement de  services de télécoms da...
Contributions aux environnements de développement de services de télécoms da...Kokou Gaglo
 
rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...
rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...
rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...yosra fraiji
 

Similaire à Mémoire fin de cycle1 (20)

Android VoIP/SIP Softphone
Android VoIP/SIP SoftphoneAndroid VoIP/SIP Softphone
Android VoIP/SIP Softphone
 
siem.pdf
siem.pdfsiem.pdf
siem.pdf
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objets
 
Asterisk report
Asterisk reportAsterisk report
Asterisk report
 
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
 
Rapport de fin d'etude
Rapport  de fin d'etudeRapport  de fin d'etude
Rapport de fin d'etude
 
Deploy automatic in the cloud
Deploy automatic in the cloudDeploy automatic in the cloud
Deploy automatic in the cloud
 
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauRapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Projet de-recherche-Tuteuré
Projet de-recherche-TuteuréProjet de-recherche-Tuteuré
Projet de-recherche-Tuteuré
 
B1
B1B1
B1
 
Asterisk
AsteriskAsterisk
Asterisk
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master Recherche
 
Fourth year internship report
Fourth year internship reportFourth year internship report
Fourth year internship report
 
vanderpypendaniel_msc
vanderpypendaniel_mscvanderpypendaniel_msc
vanderpypendaniel_msc
 
Contributions aux environnements de développement de services de télécoms da...
Contributions aux environnements de développement de  services de télécoms da...Contributions aux environnements de développement de  services de télécoms da...
Contributions aux environnements de développement de services de télécoms da...
 
Rapport
RapportRapport
Rapport
 
Reseaux
ReseauxReseaux
Reseaux
 
rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...
rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...
rapport de mémoire de mastère : sécurisation du réseau nan au sein des smart ...
 

Mémoire fin de cycle1

  • 1. REPUBLIQUE DU SENEGAL MINISTERE DE L’ENSEIGNEMENT SUPERIEUR, DES UNIVERSITAIRES ET DES CENTRES UNIVERSITAIRES REGIONAUX (CUR) ET DE LA RECHERCHE ECOLE SUPERIEURE DE TECHNOLOGIE ET DE MANAGEMENT DE DAKAR MEMOIRE DE FIN DE CYCLE EN LICENCE TELEINFORMATIQUE PARCOURS : RESEAUX ET TELECOMMUNICATION THEME: ConCeption d’une interfaCe de management d’asterisk Présenté et soutenu par : Encadré par : Ibrahima NDIAYE Mr. Christian OUDANG Moustapha NDIAYE Année Académique : 2011-2012
  • 2. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Tables des matières Table des Figures Summary Avant-propos INTRODUCTION Chapitre 1 : Présentation d’Asterisk 1. Historique................................................................................................13 2. Définition…………………………………………………………………………......................13 3. Rôles et fonctionnalités d’Asterisk…………………………………………………………14 Chapitre 2 : Les protocoles et codecs I. Les protocoles……………………………………………………………………………………..15 1. Les protocoles de signalisation :…………………………………………….15 2. Les protocoles de transports………………………………………...........17 II. Les Codecs :............................................................................................17 1. G.711……………………………………………………………………………………..17 2. G.723.1………………………………………………………………………………….18 3. G.726……………………………………………………………………………………..18 4. G.729……………………………………………………………………………………..18 Chapitre 3 : L’écosystème de la VoIP 1. Asterisk………………………………………………………………………………….19 2. SipX……………………………………………………………………………………….19 3. Kamailio…………………………………………………………........................19 4. Trixbox…………………………………………………………………………………..20 5. Freepbx………………………………………………………………………………….20 Chapitre 4 : Les principales étapes de la réalisation de notre interface graphique de gestion à l’aide d’une base de données A. Installation et configuration d’Asterisk…………………………… ................21 2 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 3. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 1. Installation du module DAHDI………………………………………22 2. Installation de Libpri……………………………………………………..22 3. Installation d’Asterisk……………………………………………………22 4. Configuration d’Asterisk……………………………………………….25 B. Interaction entre Asterisk et MySQL : fonctionnalité Realtime………………………………………………………………………………………………29 1. Installation et configuration de MySQL………………………..29 2. Installation et configuration d’asterisk-addons…………….29 3. Installation et configuration des soft phones : test de fonctionnalité……………………………………………………………….38 Chapitre 5 : Présentation et utilisation de l’interface graphique 1. Le bouton Compte SIP:.....................................................42 2. Le bouton Compte IAX:…………………………………………………43 3. Le bouton Numéro de Téléphone:…………………………………44 4. Le bouton Boite Vocale…………………………………………………45 Conclusion Bibliographie Webographie 3 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 4. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Table des Figures Figure 1: Présentation de X-Lite………………………………………………………………………28 Figure 2: Exécution de la commande ./configure…………………………………………….30 Figure 3: Exécution de la commande make…………………………………………………….30 Figure 4: Exécution de la commande make install…………………………………………..31 Figure 5: Exécution de la commande make samples……………………………………….31 Figure 6: Les différents paramètres dans res_mysql.conf……………………………….32 Figure 7: Les différents paramètres dans extconfig.conf…………………………………33 Figure 8: Insertion sql dans la base de données………………………………………………34 Figure 9: Aperçu de la base de données avec phpmyadmin…………………………….38 Figure 10: Régistration avec le soft phone Kphone………………………………………….39 Figure 11: Régistration avec X-Lite………………………………………………………………….40 Figure 12: L’interface de management ………………………………………………………….41 Figure 13: Création de compte SIP………………………………………………………………….42 Figure 14: Création de compte IAX………………………………………………………………….43 Figure 15: Création d’un numéro de téléphone……………………………………………….44 Figure 16: Numéro de boite vocale…………………………………………………………………45 4 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 5. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 SUMMARY This memory assumes a basic knowledge of Linux and telephony, though neither is strictly required. All commands that need to be run are provided and concepts that need to be understood are explained. This memory requires a server that is capable of running Linux, Asterisk. The hardware requirements for the server will depend upon how many calls the PBX will be routing, and which actions callers can perform once they reach the PBX (for example, a PBX that records every call will require more resources than one that does not). The server should not have any operating system on it to start with. Recommended installation options are provided for both CentOS and Ubuntu. Just as the underlying system packages are updated, Digium releases updates to Asterisk whenever necessary in order to fix bugs or patch security concerns. If Asterisk was installed from source, it will not be updated when the system packages are updated. Updating Asterisk versions is very similar to the process of installing Asterisk. Note that "updating" Asterisk in this context means to update Asterisk to a new release of the same major version that is currently running (for example, updating from 1.4.22 to 1.4.24). It does not mean updating between major release versions (for example, 1.4 to 1.6). Major version upgrades may be required during the life of a PBX, but these types of upgrades require special planning due to new features or features that may be deprecated or non- existent in the upgraded version (causing Asterisk to stop routing calls properly). In order to make upgrades simple, Digium uses files that have the major version number suffixed with "-current" to denote the current version of Asterisk, Asterisk-Addons, Zaptel/DAHDI, and LibPRI. In the following examples, version 1.4 is being updated to the latest 1.4 release, but if the version on your PBX is different you can replace 1.4 with your major version release. 5 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 6. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Avant-propos Présentation du lieu de stage I. Présentation de L’ESTM L’École Supérieure de Technologie et de Management de Dakar est une école privée d’enseignement supérieur, universitaire et professionnel. Elle a été créée en 2002 par des professionnels des secteurs des nouvelles technologies de l’informatique, de la communication et de la gestion. Les enseignements dispensés s’inspirent des normes exigées par le CAMES (Centre Africain et Malgache pour l’Enseignement Supérieur) et sont donc superposables à ceux dispensés dans les meilleures écoles tant sur le continent africain que sur le continent européen et américain. Le programme est élaboré en fonction du monde professionnel et adapté à l’évolution de la technologie de manière à donner à l’étudiant des compétences aussi bien théoriques que pratique. L’école compte toujours rester à la pointe de la technologie dans un environnement qui se veut compétitif. L’ESTM participe en collaboration avec l’étudiant à la recherche de stage de fin d’étude. Le stage donne lieu à une soutenance d’un mémoire devant un jury. L’école forme des étudiants en Informatique de Gestion, en Réseaux Téléinformatique, Réseaux Télécommunication et Maintenance Informatique dans le premier cycle de son département des sciences de l’informatique. Elle forme en même temps des ingénieurs spécialisée en Réseaux Téléinformatiques, en Génie Logiciel et en Système de Gestion de Base de Données Dans son département des Sciences de Gestion, elle forme des diplômés de premier et second cycle en Marketing, en Comptabilité, en Tourisme et en Gestion. Elle est située à l’avenue Bourguiba prolongée X Front de Terre. II. Présentation des départements L’école compte deux départements : le département de l’Informatique et Télécommunication et le département des Sciences de Gestion 6 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 7. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Département de l’Informatique et des Télécommunication Les Filières sont :  Réseaux et Télécommunication  Réseaux et Téléinformatique  Informatique de Gestion  Maintenance informatique Département des Sciences de Gestion Les Filières sont :  Gestion des entreprises  Gestion des Ressources Humaines  Comptabilité et Finance  Management des projets  Marketing 7 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 8. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 III. Organigramme de L’ESTM : Organigramme de l’ESTM 8 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 9. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Remerciement Nous tenons tout d’abord à remercier DIEU, LE TOUT PUISSANT et LE MISERICORDIEUX, qui nous a donné la force et la patience d’accomplir ce modeste travail. Notre Prophète Moustapha(PSL) pour nous avoir appris à travers le coran le sens de l’éthique, du partage et de l’amour de son prochain A notre guide spirituel sur la voie DIEU, Serigne Touba Mbacké et toute sa descendance plus particulièrement à Serigne Saliou Mbacké et à son khalife actuel Cheikh Sydil AL Mouhtar (Yalla nafi yagu lolou té wér). A tous les mourides (aspirants vers DIEU) disséminés à travers le monde à la recherche de la vérité, notamment nos confrères du dahira Safinatoul Aman Touba E.S.T.M. Je remercie chaleureusement tous ceux qui de près ou de loin ont apporté leur contribution pour l’élaboration de ce travail. En particulier, Le Docteur Samuel OUYA, Monsieur Oudang et Mr Séne qui, se sont toujours montrés à l’écoute et très disponible tout au long de la réalisation de ce mémoire, ainsi pour l’inspiration, l’aide et le temps qu’ils ont bien voulu nous consacrer. Ces remerciements s’adressent également au corps professoral et administratif de l’ESTM, pour la richesse et la qualité de leur enseignement et qui déploient de grands efforts pour assurer à leurs étudiants une formation compétitive sur le marché international. Nos remerciements aux membres du jury pour l’intérêt qu’ils ont porté à notre recherche en acceptant d’examiner notre travail et de l’enrichir par leurs propositions. Nos dernières pensées iront vers nos familles, et surtout à nos parents, qui nous auront permis de poursuivre nos études jusqu’à aujourd’hui. MINAL KHADIMI ILAL KHADIMI 9 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 10. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Dédicace Ibrahima Ndiaye Je dédie ce mémoire à, Mon père qui a toujours été un model et une référence pour moi. IL a tant œuvré pour la réussite de ses enfants. Ma mère qui s’est toujours préoccupée de mon avenir. Tes prières continuent d’être un réconfort. Serigne Aboubacar Sylla mon guide spirituel. Que DIEU lui accorde une longue vie et une Santé de fer. Ma femme chérie, Soxna Mbathio Fall pour son dévouement et sa compréhension pendants ces durs moments. Notre fils, Serigne Saliou. Que ce travail soit pour toi une source d’inspiration, pour toujours aller de l’avant. Mes sœurs : Aminata, Mame Diarra, Ndèye Ngoné, Aissatou et Mada. Mes frères : S.Abdou Lahad, S.Fallou, S.Saliou. Tous les Ndongas Tarbiyyah de khelcom de Serigne Saliou Mbacké. Ma grande famille de Darou Ridah en particulier, Mame Elimane, Mame Ngoné et Mame Khady Fall. Tous les étudiants de la promotion Licence Téléinformatique parcours télécoms et réseaux 2011/2012. 10 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 11. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Dédicace Moustapha Ndiaye Je dédie ce travail à : Mes parents Elhadji et Dior Fall. Je ne vous remercierai jamais assez pour m’avoir donné la vie, pour votre amour, votre soutien, vos prières et la bonne éducation que vous m’avez donnés. Puisse Allah vous récompenser pour tout ce que vous avez fait pour moi, vous prête longue vie et vous donne la santé afin que je puisse faire pour vous tout ce que vous méritez. Mes cousins Ousmane Ba et Ndiogou Mbodj pour avoir contribués moralement et financièrement à ma formations. Mes frères et sœurs pour leur soutient inconditionné particulièrement à ma grande sœur Codou qui occupe pleinement sa place d’ainé de la famille. La famille Sylla de Sodida pour m’avoir mise dans de bonnes conditions pour bien faire mes études. Je ne vous remercierez jamais aussi pour m’avoir ouvert votre maison et vos cœurs. Merci de tout mon cœur. Mes amis dont la liste est non exostive mais je citerais quand même Badara Diallo, Gorgui Dieng, Fallou Ndiaye, Mballo Ka, ainsi que tous les autres avec qui j’ai grandis. Mes défunts défunt grand frères Talla et Galass et ma défunte grand-mère Awa Dia Ka. Si la solitude ne m’a pas rongé c’est parce que garde toujours en tête vos enseignements et conseils. Je ne vous oublierais jamais et je pris chaque jour pour vous. Mes promotionnaires pour m’avoir appris le sens du travail de groupe et la solidarité. Mais je fais une dédicace spéciale à Mouhamed Ndao, Pape Mamadou Khouma, Ibrahima Ndiaye, Abdoulaye Aw, Tabara Boubou Niang, Elhadji Dame Cissé et tous les autres. Mes professeurs plus particulièrement Mr Cheikh Séne, mon frère et professeur Mr Madiagne Diouf et tout le corps professorale de l’ESTM. Grand merci Ina lahou manna 11 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 12. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 I NTRODUCTION Le monde de la téléphonie a considérablement évolué depuis une dizaine d’années. La principale raison de cette évolution est technique et tient à l’émergence de la téléphonie sur IP (ToIP). En effet, de la même façon qu’il s’est imposé comme protocole de base des réseaux de télécommunications, IP (Internet Protocol) se situe désormais aussi au centre des services et architectures téléphoniques actuels. Parallèlement, profitant notamment de l’interface IP vers la téléphonie comme canal de développement d’applications, le monde des logiciels libres de télécommunications connaît depuis la même période un essor important. Plusieurs logiciels libres ont constitué autour d’eux des communautés très actives. Parmi eux, le plus célèbre et le plus riche est sans aucun doute Asterisk. Le succès d’Asterisk tient à mon sens en trois éléments fondamentaux : • ses nombreuses implémentations de protocoles de télécommunications, tant standards que propriétaires (RNIS, SIP, H.323, SCCP, etc.) ; • les services téléphoniques intégrés (IPBX, messagerie vocale, audioconférences) ; • ses interfaces vers les applications informatiques, essentielles ou non (web, e-mail, messagerie instantanée, etc.). Ces éléments font d’Asterisk l’outil idéal, non seulement pour gérer un ensemble de postes téléphoniques de taille quelconque (chez un particulier ou dans une entreprise de taille moyenne), mais aussi pour développer des services avancés. La configuration d’Asterisk se fait généralement à travers des fichiers. Ce qui peut être un frein à la généralisation de son utilisation car beaucoup d’utilisateurs sont beaucoup plus habitués à l’utilisation d’environnements graphiques que d’environnements textes. C’est dans cette optique qu’on a jugé nécessaire de mettre en place un outil graphique de gestion et d’administration d’Asterisk. Pour mener à bien ce travail, nous l’avons subdivisé en cinq chapitres: Le premier chapitre contient une présentation générale d’Asterisk et de ses possibilités d’utilisation. Dans le deuxième chapitre nous aurons à faire une étude sur les différents protocoles et codecs supportés par Asterisk. Dans le troisième chapitre nous verrons l’écosystème de la VoIP pour avoir un aperçu sur les autres solutions de téléphonie sur IP. Dans le troisième chapitre nous vous montrerons les différentes étapes de la conception de notre interface graphique. C’est dans le dernier chapitre qu’on aura à faire la présentation et l’utilisation de l’interface. 12 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 13. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Chapitre 1 : Présentation d’Asterisk 1. Historique Développé en 2001 par Mark Spencer, de la société américaine Digium, il continue d’être fortement soutenu par cette dernière. Asterisk étant un logiciel libre d’utilisation, ses sources sont téléchargeables sous licence GNU GPL (General Public License). Cela permet à une importante communauté de contribuer à son développement. Des forums libres et actifs enrichissent, testent, mettent à jour et améliorent en permanence le logiciel. Bien qu’initialement conçu pour fonctionner sous Linux, il est aujourd’hui multi plate-forme et s’installe aussi bien sur OpenBSD que FreeBSD, Sun Solaris, MacOs X ou Windows. Les grandes entreprises sont dotées de centraux téléphoniques, appelés autocommutateurs, PABX (Private Automatic Branch eXchange) ou plus simplement PBX. Un PBX est une entité logique, presque toujours gérée par un équipement matériel physique dont la fonction est au moins triple : router les appels au sein d’un réseau privé, interconnecter les réseaux et gérer les services de téléphonie. Ce chapitre se penche sur un PBX d’un genre nouveau, le logiciel Asterisk, qui remplit les mêmes fonctions qu’un PBX professionnel de haut niveau. Aucun équipement spécifique n’est nécessaire, et il suffit d’installer le logiciel sur un ordinateur, librement et gratuitement. Ce type de logiciel est appelé IPBX, ou PBX-IP. Grâce à son architecture modulaire, à sa facilité de mise en œuvre rapide et à son fonctionnement simplifié, Asterisk peut même être installé par des particuliers, qui peuvent ainsi exploiter les ressources gigantesques dont il dispose. 2. Définition Dans la plupart des langages informatiques, l’astérisque (dont le symbole est *) est utilisé comme caractère générique (en anglais wildcard), pour remplacer n’importe quel autre caractère ou ensemble de caractères. Il s’agit en quelque sorte d’un joker, la carte ou valeur qui remplace toutes les autres. C’est de ce concept de généricité, évoquant à la fois la souplesse, l’adaptabilité et la puissance, que tire son nom le logiciel Asterisk. Asterisk est un PBX-IP, ou IP PBX ou encore IPBX. Complet et performant, il offre une plate- forme personnalisable et modulable pour la mise en œuvre de services de téléphonie. Il garantit une très large interconnexion avec plusieurs serveurs PBX, mais aussi avec des réseaux de téléphonie non-IP. L’enjeu d’une offre telle qu’Asterisk est colossal. Pour peu que l’on dispose des connaissances requises, il devient possible de remplacer une lourde et très onéreuse mise en œuvre d’un équipement PBX par un simple ordinateur équipé du logiciel gratuit, éventuellement muni de cartes d’interfaces pour l’interconnexion avec différents types de réseaux non-IP. Le logiciel se pose en rival viable et robuste dans un marché dominé par les géants Alcatel, Nortel, Cisco, 3Com, Avaya ou Siemens, pour ne citer que quelques-uns des équipementiers les plus connus. 13 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 14. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 3. Rôles et fonctionnalités d’Asterisk 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, notamment les suivants :  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.  Double appel.  Mise en attente.  Journalisation des appels.  Facturation détaillée.  Enregistrement des appels. Le logiciel peut être utilisé comme une passerelle ToIP hétérogène. Par exemple, des utilisateurs utilisant différents protocoles de signalisation, comme H.323 ou SIP, peuvent être mis en relation. C’est le logiciel qui se charge d’effectuer les conversions de signalisation. De la même manière, il peut servir de passerelle pour joindre des correspondants dans le réseau téléphonique RTC. Enfin, le logiciel est modulable et extensible au moyen de scripts et de modules implémentés en langage C ou Perl. 14 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 15. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Chapitre 2 : Les protocoles et codecs I. Les protocoles Au sens définition, un protocole est une formalisation standardisée permettant la communication entre plusieurs processus ; autrement dit, c’est un ensemble de procédures et de règles qui servent à l’émission et à la réception des données sur un réseau. Dans le milieu des télécoms et réseaux, chaque applicatif à son protocole. Le plus célèbre et le plus utilisé est le protocole TCP /IP (Transmission Control Protocol/Internet Protocol). Toute la difficulté de la VoIP est de transformer un flux voix de type audio en numérique (découpage en paquets de l’information) afin de le faire transiter sur les réseaux IP et d’effectuer l’opération inverse dans le bon ordre afin que le correspondant comprenne parfaitement le flux voix audio, et ceci en temps réel (moins de 300ms). 1. Les protocoles de signalisation : Le protocole SIP: SIP (Session Initiation Protocol) a été normalisé par le groupe de travail WG MMUSIC (Work Group Multiparty Multimedia Session Control) de l’IETF. La version 1 est sortie en 1997, et une seconde version majeure a été proposée en mars 1999 (RFC 2543). Cette dernière a elle- même été largement revue, complétée et corrigée en juin 2002 (RFC 3261). Des compléments au protocole ont été définis dans les RFC 3262 à 3265. SIP est au sens propre un protocole de signalisation hors bande pour l’établissement, le maintien, la modification, la gestion et la fermeture de sessions interactives entre utilisateurs pour la téléphonie et la vidéoconférence, et plus généralement pour toutes les communications multimédias. Le protocole n’assure pas le transport des données utiles, mais a pour fonction d’établir la liaison entre les interlocuteurs. Autrement dit, il ne véhicule pas la voix, ni la vidéo, mais assure simplement la signalisation. Il se situe au niveau de la couche applicative du modèle de référence OSI et fonctionne selon une architecture client-serveur, le client émettant des requêtes et le serveur exécutant en réponse les actions sollicitées par le client. SIP fournit des fonctions annexes évoluées, comme la redirection d’appel, la modification des paramètres associés à la session en cours ou l’invocation de services. En fait, SIP ne fournit pas l’implémentation des services, mais propose des primitives génériques permettant de les utiliser. De cette manière, l’implémentation des services est laissée libre, et seul le moyen d’accéder aux services est fourni. Le Protocole H.323 Le protocole H.323 a été développé par l’UIT en 1996, afin de fournir un mécanisme de transport IP pour la vidéoconférence. Le protocole H.323 figure parmi les plus réputés des protocoles de signalisation pour la téléphonie sur IP. H.323 n’est en réalité que la référence du protocole. Son nom complet est Packet-based Multimedia Communications Systems, ou « Systèmes de communication 15 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 16. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 multimédia fonctionnant en mode paquet ». Comme ce nom l’indique, il peut être utilisé pour tous les réseaux à commutation de paquets, en particulier IP. Ce protocole est spécifié pour le traitement de la signalisation des données multimédias avec de fortes contraintes temporelles, comme la voix ou la vidéo. Il est à noter qu’Asterisk supporte H.323 (module chan_h323.so). Protocole IAX Le protocole Inter-Asterisk eXchange (prononcé "X") a été mis au point par la société Digium uniquement pour permettre à plusieurs serveurs Asterisk de communiquer entre eux. IAX est un protocole peer-to-peer de signalisation et de transport de la voix. IAX2 utilise un port UDP unique (port 4569) pour la signalisation (flux de contrôle) et les données (flux RTP) (alors qu’IAX1 utilisait le port 5036). IAX est apparu après SIP et est en train de devenir une véritable alternative, au point que bon nombre de constructeurs et opérateurs l’ont implémenté dans leurs équipements. Il permet d’économiser de la bande passante en agrégeant plusieurs sessions dans un seul flux de données. Enfin, il permet de fonctionner parfaitement derrière du NAT. Protocole MGCP Le protocole MGCP (Media Gateway Control Protocol) est défini dans la RFC 3435. L’intelligence, contrairement à SIP, n’est pas dans le client de téléphonie mais dans le cœur du réseau. Les téléphones MGCP ne peuvent pas s’appeler entre eux mais doivent passer obligatoirement par un contrôleur central : la Gateway. Bien qu’Asterisk supporte MGCP (mgcp.conf et chan_mgcp.so), il est peut-être préférable d’avoir un parc homogène et donc de migrer les téléphones IP MGCP en SIP. Il est à noter que MGCP est en perte de vitesse face à SIP et IAX. Le protocole Skinny/SCCP Le protocole SCCP (Skinny Client Control Protocol) est le protocole propriétaire de Cisco. C’est le protocole utilisé dans tous les téléphones IP Cisco et dans l’autocom Cisco Call Manager. Bien qu’Asterisk supporte Skinny, il est préférable de migrer les téléphones Cisco en SIP. Le protocole UNISTIM Le support pour le protocole VOIP propriétaire de Nortel, UNISTIM, a été ajouté récemment à Asterisk. Cette étape remarquable signifie qu’Asterisk est le premier PABX de l’histoire à supporter nativement les terminaux IP propriétaires des deux plus grands de la VOIP, Nortel et Cisco. 16 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 17. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 2. Les protocoles de transports Il existe plusieurs protocoles de transports tels que TCP (Transport Control Protocol) et UDP (User Datagrame Protocol). Il n’est pas souhaitable d’utiliser TCP compte tenue des fortes contraintes temporelles qu’est confrontée la téléphonie. Utilisant aussi UDP, il n’ya ni contrôle ni fiabilité. C’est ainsi qu’il est préférable d’utiliser le protocole RTP (Real-time Transport Protocol) et le protocole RTCP (Real-time Transport Control Protocol). Ces deux derniers sont chargés de transporter une information multimédia en temps réel au travers d'un réseau IP. Le protocole RTP Le RTP (Real Time Transport Protocol) est créé en 1996 dans la RFC 1889, rendu obsolète et standardisé par l'IETF par la RFC 3550 en 2003. Le RTP a été conçu pour transporter des flux IP ayant de fortes contraintes temporelles, typiquement, des flux multimédias, il permet de reconstituer les flux IP multimédia en temps réel en agissant à deux niveaux :  La synchronisation des flux  La reconstitution de l'ordre des paquets Il est important de noter que les protocoles de signalisation comme les protocoles de transport peuvent être utilisés entre les terminaux IP et l'IPBX, mais aussi directement entre les terminaux, si ces derniers peuvent communiquer en IP. Le protocole RTCP Le RTCP (RealTime Transport Control Protocol) lui aussi publié par l'IETF dans la RFC 3550 en 2003, permet un contrôle des flux RTP afin de garantir leurs intégrités ainsi qu'une supervision du réseau en agissant comme une sonde qui informe l'utilisateur de l'état du réseau en temps réel. Les protocoles RTP et RTCP sont indépendants mais néanmoins, leur association apporte une cohérence dans le traitement de l'information en temps réel afin d'optimiser les conditions de transport des flux IP multimédia ainsi que la qualité de service générale. II. Les Codecs Un codec est un algorithme qui permet de COmpresser/DECompresser les flux numériques en flux analogiques et inversement. Il peut se présenter sous la forme logicielle (programme à installer sur Asterisk ou déjà présent) ou matérielle (carte spécifique à installer dans le serveur). 1. G.711 Dans Asterisk, ce codec prend le nom de ulaw (µ­law) pour l’Amérique du Nord et alaw pour le reste du monde; Le codec G.711 alaw est donc employé en France. G711 utilise une bande 17 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 18. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 passante élevée à 64kp/s (il faut rajouter l’overhead, lié aux flux RTP), mais consomme peu de CPU sur le serveur puisqu’il n’est pratiquement pas compressé. La qualité de G.711 est excellente et égale celle du RTC classique. Ce codec est à utiliser de préférence dans un LAN (Local Area Network) où la ressource en bande passante ne pose pas de problème particulier. Autres points importants à ne pas négliger, G711 est gratuit et est implémenté dans la majorité des équipements de T-VoIP 2. G.723.1 Ce codec payant est utilisé uniquement en cas de transcodage, G.723.1 fonctionne à 5,3 Kb/s ou 6,3 Kb/s donc est très intéressant dans le cas de faibles bandes passantes. 3. G.726 Il s’agit d’un codec gratuit qui utilise différents débits : 16, 24 ou 32 Kb/s. Il est supporté par Asterisk uniquement dans sa version 32 bits. C’est un très bon rapport qualité sonore/utilisation CPU. 4. G.729 Ce codec réduit à 8 Kb/s la consommation d’un appel, auquel il faut ajouter l’overhead IP, cela fait un débit réel de 40Kb/s environ. L’intérêt principal de G729, utilisé avec Asterisk, est de réduire la bande passante nécessaire donc est source de gain. Asterisk supporte seulement le G.729 Annexe A (G.729a). L’overhead IP dépend de la configuration matérielle du serveur. Par exemple, un Xeon 1.8 GHz permet environ 60 appels simultanés en G729 alors qu’un Xeon 2.8 Ghz en permet 80. La licence est payante et s’installe sur le serveur Asterisk. Il faut une licence par communication qui utilise le transcodage. Si le serveur ne fait pas de transcodage, il n’y a pas besoin de licences. Par contre, si le serveur fait du codage/décodage (client en G711a, Asterisk en G711a/G729, opérateur en G729), il faut autant de licence que l’on souhaite avoir de communications simultanées. Les performances de ce codec sont impressionnantes mais cela nécessite beaucoup de ressource processeur sur le serveur. Pour avoir 30 communications simultanées sur Asterisk en G729, il faut acheter un pool de 30 licences, soit environ 300 $ US. Chaque pool est dédié à un serveur Asterisk. 18 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 19. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Chapitre 3 : L’écosystème de la VoIP 1. Asterisk Asterisk est un autocommutateur téléphonique privé (PABX) open source pour systèmes UNIX. Il permet, entre autres, la messagerie vocale, les files d'attente, les agents d'appels, les musiques d’attente, les mises en garde d'appels, la distribution des appels et la gestion de conférences. Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu'un protocole spécifique nommé IAX (Inter-Asterisk eXchange). Asterisk peut également jouer le rôle de registrar et de passerelle avec les réseaux publics. Il est utilisé par certains opérateurs comme cœur de réseau téléphonique du fait de son interopérabilité et de sa sociabilité. Associé à SugarCRM ou Vtiger on le retrouve également souvent comme outil de gestion de centre d'appels. Dans son utilisation classique comme plateforme de téléphonie IP, Asterisk est généralement associé à Freepbx, une IHM permettant de piloter l'ensemble de ses fonctionnalités. On retrouve Asterisk et Freepbx dans de nombreuses distributions dont les plus populaires sont Elastix et Trixbox. Asterisk est distribué sous la licence GPL. 2. SipX SipX fut tout d’abord un produit commercial de la société PingTel. En 2004, PingTel adopte un modèle Open Source et offre tous les codes sources à la communauté Open Source SIPFoundry. Cette communauté développe alors sipXpbx, mais aussi d’autres produits basés sur SIP comme sipXphone, sipXregistry ou sipXvxml. Elle met aussi gratuitement à disposition des «User Agent Software Development Kit» permettant aux développeurs de programmer leur propre softphone, hardphone ou logiciel de messagerie instantanée. Elle offre aussi des «SIP protocol stack» permettant d’implémenter le protocole SIP dans des Gateway ou proxy. Avec SipX, Asterisk n'est plus le seul projet IPBX open source en course. SipX est en effet le plus gros concurrent d’Asterisk. Une brève comparaison avec son aîné Asterisk révèle que SipX dispose d'une interface graphique d'administration complète, qui faisait défaut à Asterisk. Il est certain que désormais avec l’interface graphique FreePBX a largement rattrapé ce retard. L’implémentation de SIP est très fidèle aux RFC (Request for Comments) de l’IETF (Internet Engineering Task Force). SIPFoundry participe activement au développement de SIP auprès de l’IETF. 3. Kamailio Kamailio est un Server SIP open source. Ce fork du projet OpenSER (en 2005) est l'un des PBX les plus complets. Il supporte des transactions asynchrones TCP, UDP et SCTP, l'encryptage des communications via TLS, la répartition de charge, un mécanisme natif de fail-over, l'authentification sur des backend Radius, Mysql, LDAP ou via transport XMLRCP. Il est utilisé aussi bien par des opérateurs télécoms comme plate-forme de service VoIP que pour les solutions classiques de téléphonie d'entreprise. C'est une alternative à Freeswitch et Asterisk les deux autres poids lourds du domaine. 19 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 20. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Kamili est distribué sous licence GPL. 4. Trixbox Trixbox est un ensemble d'outils et d'utilitaires de télécommunication compilés pour devenir un véritable IP PBX. Les principales caractéristiques de TRIXBOX sont : Asterisk, le cœur du système téléphonique Gestion des relations clients A2Billing – Calling Card platform (tarification des appels) Flash Operator Panel, a screen-based operator’s console web conference outils de configuration utilisateurs de Trixbox. 5. Freepbx Freepbx est un outil de configuration graphique très convivial du logiciel de téléphonie libre Asterisk. C'est également le logiciel utilisé dans la distribution Trixbox et Elastix. Sur la page d’accueil nous avons :  Voicemail & Recording (ARI) : Permet d'accéder à la messagerie vocale.  Flash Operator Panel (FOP) : Une interface permettant de visualiser les extensions, la file d'attente, la conférence, les trunks actifs, etc...  FreePBX Administration : Page d'administration 20 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 21. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Chapitre 4 : Les principales étapes de la réalisation de notre interface graphique de gestion à l’aide d’une base de données A. Installation et configuration d’Asterisk  Installation des modules et des dépendances spécifiques à Asterisk Installez les dépendances nécessaires qui vous permettront de compiler et d’installer Asterisk ainsi que d’ajouter certains modules dont nous aurons besoins par la suite: Tapez la commande suivante : apt-get install linux-headers-$(uname -r) bison openssl libssl-dev libeditline0 libeditline-dev libedit-dev gcc make g++ mc php5-cli libxml2-dev libspandsp- dev  Téléchargement de différentes sources nécessaires à l’installation Créer un dossier nommé asterisk dans le dossier /usr/src à l’aide de la commande suivante : mkdir /usr/src/asterisk Déplacez-vous dans le dossier à l’aide de la commande suivante : cd /usr/src/asterisk Lancez le téléchargement des sources en tapant les commandes suivantes : wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk- 1.6.2.13.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons- 1.6.2.1.tar.gz wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux- complete-2.4.0+2.4.0.tar.gz La source asterisk va vous permettre d’installer le module asterisk sur votre serveur. La source asterisk-addons contient des addons pour le support mysql. Le module dahdi remplace le module zaptel utilisé sur les anciennes versions d’asterisk. Ce module permet entre autres de gérer le timer pour les conférences dans une architecture full IP. 21 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 22. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 1. Installation du module DAHDI Vérifiez que vous êtes bien dans le dossier /usr/src/asterisk. Décompresser le module Dahdi à l’aide de la commande suivante : tar zxvf dahdi-linux-complete-2.4.0+2.4.0.tar.gz Déplacer vous dans le répertoire afin de le compiler à l’aide de la commande suivante : cd dahdi-linux-complete-2.4.0+2.4.0 Compiler le code à l’aide des commandes suivantes : make all make install Après la commande « make install » vous devez obtenir ce résultat : ################################################### ### ### DAHDI tools installed successfully. ### If you have not done so before, install init scripts with: ### ### make config ### ################################################### Installer les scripts d’initialisation à l’aide de la commande suivante : make config Le module dahdi est aussi utiliser pour configurer les cartes permettant de rattacher l’IPBX au réseau téléphonique public (par le biais de ligne RTC ou Bri ou Pri). Dans notre mise en situation nous travaillons sur un réseau full IP. Nous n’avons donc pas besoin de carte. Il est donc judicieux de modifier le fichier « /etc/dahdi/modules ». Commentez toutes lignes de ce fichier en mettant un # devant chaque ligne. Lancez le module dahdi-dummy à l’aide de la commande suivante : modprobe dahdi_dummy Redémarrez le serveur à l’aide de la commande « reboot ». 2. Installation de Libpri Libpri est un module utilisé par les fabricants de cartes de communication qui permet aux interfaces PRI d’être utilisées par Asterisk. # wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri- 1.4.10.2.tar.gz # cd /usr/src/ # tar zxvf libpri-1.4.10.2.tar.gz # chown -R root:root libpri-1.4.10.2/ # cd libpri-1.4.10.2/ # make clean # make # make install 3. Installation d’Asterisk Déplacez-vous dans le dossier « /usr/src/asterisk/asterisk-1.6.2.1 ». 22 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 23. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Compiler les sources à l’aide de la commande suivante : «./configure » Vous devez obtenir l’affichage ci-dessous : configure: Package configured for: configure: OS type: linux-gnu configure: Host CPU: i686 configure: build-cpu: vendor: os: i686: pc: linux-gnu: configure: host-cpu:vendor:os: i686 : pc : linux-gnu : Tapez la commande « make » Vous devez obtenir l’affichage ci-dessous : Asterisk Build Complete ---------+ + Asterisk has successfully been built, and + + can be installed by running: + ++ + make install + +-------------------------------------------+ Tapez la commande « make install » Vous devez obtenir l’affichage ci-dessous : +---- Asterisk Installation Complete -------+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + make samples + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +------------------------------------------- Tapez la commande « make samples », cette commande va permettre de créer les fichiers d’exemples. Il ne vous reste plus qu’à définir asterisk en tant que service sur votre serveur par le biais de la commande suivante : « make config » Voici l’architecture des fichiers installés d’Asterisk sur notre système avec une brève explication de la fonction de chacun d’eux : 23 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 24. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 o /etc/asterisk : contient tous les fichiers nécessaires à configurer. o /etc/asterisk/sip.conf : ici, on définit les options du protocole SIP à Asterisk. Ce dernier contient l’identification des entités (utilisateur, secret, numéro téléphone…). o /etc/asterisk/extensions.conf : constitue le moyen par lequel, on indique à Asterisk comment gérer les appels. Donc on définit le plan de numérotation. o /etc/asterisk/voicemail.conf : contrôle le système de boite vocale d’Asterisk. o /etc/asterisk/cdr.conf : sert à rendre possible d’enregistrer les détails d’un appel(CDR). Permet d’activer le système de facturation dans Asterisk. o /usr/lib/asterisk/modules : contient tous les modules chargeables d’Asterisk. Par défaut, Asterisk charge tous ces modules lors de son démarrage. o /var/lib/asterisk : contient le fichier astdb et des sous répertoires. Cet astdb contient la base de données d’informations locale d’Asterisk. Les sous- répertoires sont agi-bin/ contient des scripts qui s’interfacent avec Asterisk par les divers applications AGI intégrées. Firmware/ contient les firmwares de divers appareils compatibles Asterisk Keys/ peut contenir les clés privées/publiques pour authentifier les utilisateurs. Sounds/ contient les annonces vocales pour Asterisk. Les contenus des annonces de base incluses avec Asterisk sont dans le fichier sound.txt. o Var/log/asterisk : c’est dans cet endroit, Asterisk enregistre les erreurs concernant son fonctionnement dans le fichier messages et d’autres fichiers de bugs. o Var/log/asterisk/cdr_csv : c’est ici, on trouve le stockage des CDR dans un fichier de format texte portant le nom Master.csv. Redémarrer manuellement le service asterisk comme suit : /etc/init.d/asterisk restart  Visualiser les fichiers de configurations  Visualiser le contenu du répertoire asterisk se trouvant dans /etc/asterisk Les fichiers de configurations d’asterisk sont remplis d’exemple, il est donc important de les sauvegardez si vous veniez à réaliser de mauvaise manipulations.  Sauvegardez les fichiers sip.conf, extensions.conf, voicemail.conf, meetme.conf et musiconhold.conf en tapant les commandes suivantes : cp extensions.conf extensions.conf.bkp cp sip.conf sip.conf.bkp cp voicemail.conf voicemail.conf.bkp cp meetme.conf meetme.conf.bkp  La console asterisk. Lancez la console avec la commande suivante : asterisk –rvvvv (L’argument -vvvvv est pour le mode extra verbeux, ainsi on obtient plus de détails sur la réussite ou non des divers événements). 24 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 25. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 La console d’administration d’Asterisk permet de voir en temps réel les actions réalisées par le serveur. Cela permet entre autre de débugger certains problèmes mais aussi de redémarrer proprement le service. Pour connaitre les commandes disponibles sous la console vous pouvez tapez help. Pour sortir de la console tapez la commande « exit » La console vous permettra à chaque fois que vous aurez modifiez les fichiers de configuration de rechargez les nouvelles configurations. Exemple : si vous avez modifié le fichier sip.conf dans la console il vous suffira de tapez la commande sip reload. Si vous avez modifié le fichier extensions.conf dans la console il vous suffira de tapez la commande dialplan reload, cette commande rechargera le plan de routage des appels. Pour recharger totalement le service Asterisk tapez la commande reload show dialplan : voir les différents contextes et extensions sip show peers : voir les téléphones et fournisseurs SIP sip show registry : voir les enregistrements à des fournisseurs SIP dial 1500@estm : appeler le numéro 1500 du contexte colobane Par la suite, il est préférable d’automatiser le lancement du processus serveur à l’aide de la variable RUNASTERISK du fichier /etc/default/asterisk : RUNASTERISK=yes. Dans ce cas, on connecte des clients CLI à l’aide de l’option -r : « asterisk –r » 4. Configuration d’Asterisk Par défaut les fichiers de configurations se trouvent dans le répertoire /etc/asterisk/. En effet en faisant le make samples lors de la compilation, des fichiers de configuration ont été générés dans ce répertoire et serviront de configurer votre propre PABX. Le répertoire de configuration fait l’objet d’une multitude de fichiers.  sip.conf Le fichier sip.conf est le fichier de création de comptes SIP. Chaque compte est imbriqué dans un bloque où sont énuméré tous les paramètres qui lui sont liés. Syntaxe générale : [utilisateur1] ; début du bloc de création de compte SIP. type=friend ; type de compte host=dynamic ; adresse IP adresse du serveur (PABX) user=utilisateur1 ; nom d’utilisateur secret=mysecret ; mot de passe en clair context=entreprise ; contexte dans lequel le compte est associé. mailbox=102@context ; numéro de la boîte vocale associée. nat=yes ; activation du nat (Network adress translation) sur le réseau.  iax.conf Le fichier iax.conf est le fichier de création de compte IAX. Sa syntaxe est sensiblement identique au fichier de configuration sip.conf. Syntaxe générale [utilisateur1] ; début du bloc de création de compte SIP. type=friend ; type de compte host=dynamic ; adresse IP adresse du serveur (PABX) user=utilisateur1 ; nom d’utilisateur 25 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 26. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 secret=mysecret ; mot de passe en clair context=entreprise ; contexte dans lequel le compte est associé. mailbox=102 ; numéro de la boîte vocale associée.  extensions.conf Le fichier extensions.conf permet de définir les règles de routage. Dans ce fichier on définit les contextes et les plans de numérotation. Chaque extension a un plan de numérotation interne qui va être interprété et acheminé vers des liens physiques (IAX ou SIP). Syntaxe générale : [nom_contexte] exten => numéro de l’appel, numéro de priorité, application ()  numéro de l’appel : c’est l’extension ;  numéro de priorité : une extension peut inclure plusieurs étapes donc il faut donner des priorités ;  application () : c’est la fonction qui est déclenché lorsque l’extension est appelée.  Plan de numérotation Le plan de numérotation se compose d'un ou plusieurs contextes d’extension. Chaque contexte est une collection d’extensions. Chaque extension dans un plan de numérotation possède un ensemble d’options permettant de spécifier un enregistrement unique.  création des comptes sip Editer le fichier /etc/asterisk/sip.conf et ajouter au bas du fichier des comptes comme dans cet exemple : [ibrahima] username=ibrahima secret=passer; mot de passe type=friend ; va définir que votre utilisateur est un "ami" est-il sera autorisé à passer des appels sortant host=dynamic; permet de se connecter avec cet utilisateur depuis n'importe quel téléphone context=Touba; contexte callerid="ibrahima"<1000>; numéro d’appel [moustapha] username=moustapha secret=passer type=friend host=dynamic context=Touba callerid="moustapha"<1001>  création des comptes iax Editer le fichier /etc/asterisk/iax.conf et ajouter au bas du fichier des comptes comme dans cet exemple : [ibrahima] 26 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 27. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 type=friend secret=passer host=dynamic context=Xelcom [moustapha] type=friend secret=passer host=dynamic context=Xelcom  Création des contexts Editer le fichier /etc/asterisk/extensions.conf et créer en bas de ce fichier les contextes que vous allez utiliser. Dans cet exemple on a créé deux contextes Touba et Xelcom. [Touba] exten => 1000,1,Dial(SIP/ibrahima,40,tr) exten => 1000,2,Hangup exten => 1001,1,Dial(SIP/moustapha,40,tr) exten => 1001,2,Hangup exten => 1002,1,Dial(SIP/fatay,40,tr) exten => 1002,2,Hangup [Xelcom] exten => 1500,1,Dial(IAX2/moustapha,40,tr) exten => 1500,2,Hangup exten => 1501,1,Dial(IAX2/soda,40,tr) exten => 1501,2,Hangup exten => 1502,1,Dial(IAX2/tabara,40,tr) exten => 1502,2,Hangup Sans aucune autre configuration supplémentaire, seuls les clients d’un même contexte pourront communiquer entre eux. Les clients de Touba ne pourront appeler que ceux de Touba idem pour ceux de Xelcom.  Installation de x-lite Cette source est téléchargeable à partir de ce lien http://www.counterpath.com/index.php?menu=download Après avoir installé X-Lite voici une image détaillée de ce que l’on doit avoir : 27 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 28. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Figure 1: Présentation de X-Lite  Configuration de x-lite pour les deux utilisateurs SIP Il y a 2 principaux changements à les faire dans le menu de x-lite Aller dans Menu>Advanced System settings>Audio Settings> Transmit Silence et mettre ce paramètre a yes au lieu de no. Aller dans Menu>System Settings> SIP Proxy> Default pour user1 et Menu>System Settings> SIP Proxy> Proxy1 pour user2 et entrer les paramètres nécessaires pour chacun d’eux. Les changements consistent à introduire ces paramètres dans le menu SIP Proxy.  Enabled : toujours à la valeur yes au lieu de no.  Display Name, Username, Authorization User : prennent la valeur de username de notre fichier sip.conf.  Password : prend la valeur secret de notre fichier sip.conf pour chaque utilisateur enregistre.  Domain/Realm : on met l’adresse IP de notre serveur Asterisk.  SIP Proxy : on met aussi l’adresse IP de notre serveur Asterisk suivi de son numéro se port. Si tous ces paramètres ont été introduits correctement et se concordent avec les paramètres SIP de notre fichier sip.conf. On aura un message login in dans la fenêtre de x-lite. Ceci implique que l’authentification via asterisk pour les deux utilisateurs est réussie. 28 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 29. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 B. Interaction entre Asterisk et MySQL : fonctionnalité Realtime 1. Installation et configuration de MySQL L’installation du serveur MySQL est effectuée avec la commande : apt-get install mysql- server. Lors de l’installation de mysql-server on nous demande le nom d’utilisateur de la base de données et son mot de passe. On peut sauter ces étapes pour créer après un super utilisateur ayant tous les droits sur la base. Ceci se fait avec la commande sql GRANT ALL PRIVILEGES ON *nom_de_la_base* TO 'killah'@'localhost' IDENTIFIED BY 'mot-de-passe' WITH GRANT OPTION; L’installation du serveur mysql requiert aussi l’installation d’autres paquets nécessaires pour faire fonctionner le web, on peut avoir : -Php5-cli -php-pear -php5-mysql -php-deb -Libapache2-mod-php5 - Php5-gd -libmysqlclient15 -libmysqlclient15-dev On peut ensuite connecter un client CLI au serveur MySQL en administrateur : mysql -u root – p, après avoir démarré le serveur mysql par la commande /etc/init.d/mysql restart 2. Installation et configuration d’asterisk-addons  Installation des add-ons : Les distributions actuelles d’asterisk ne viennent pas avec les fonctionnalités Realtime qui permet à Asterisk d’interagir avec des bases de données. Pour avoir cette fonctionnalité donc on est obligé d’installer asterisk-addons Après avoir téléchargé asterisk-addons sur le site officiel de Asterisk, on le désarchive dans le dossier /usr/src à l’aide de la commande tar –xvzf asterisk-addons-1.6.2.4.tar .gz –C /usr/src. Une fois désarchivé, on se déplace dans le dossier /usr/src/asterisk-addons-1.6.2.4 et puis on tape les commandes suivantes : 29 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 30. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 . /configure: Si la commande se termine bien vous devez avoir à l’écran: Figure 2: Exécution de la commande ./configure make Figure 3: Exécution de la commande make 30 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 31. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 make install Figure 4: Exécution de la commande make install make samples Figure 5: Exécution de la commande make samples Redémarrer le serveur à l’aide de la commande « reboot ». Ensuite il faut copier les fichier suivant comme suit:  cp res_config_mysql.so /usr/lib/asterisk/modules/  cp configs/res_mysql.conf.sample /etc/asterisk/res_mysql.conf La connexion d’Asterisk à MySQL est définie dans le fichier res_mysql.conf. La configuration dans ce fichier se fait comme dans cette capture: 31 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 32. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Figure 6: Les différents paramètres dans res_mysql.conf dbhost: définit le nom de la machine locale. dbname:définit le nom de la base de données. dbuser: définit l’utilisateur qui se connecte à la base de données. dbpass: définit le mot de passe fournit lors de la connexion au serveur MySQL. dbport: c’est le numéro de port utilisé lors de la connexion. dbsock: définit le socket utilisé. NB : la valeur de dbsock qui est dans ce fichier res_mysql.conf doit être la même que celle qui est dans le fichier : /etc/mysql/my.cnf. 3. Migration des fichiers de configuration d’Asterisk Pour indiquer à Asterisk que les informations sipusers, sippeers, iaxusers, iaxpeers, extensions, voicemail, queues, meetme sont dans la base de données MySQL, il est nécessaire: d’ajouter les lignes suivantes à la fin du fichier extconfig.conf de la manière suivante : Structure: <config_file> => <pilote>, <entree_dans_fichier_conf>, <nom_de_la_table> 32 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 33. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Figure 7: Les différents paramètres dans extconfig.conf D’ajouter la ligne suivante à la fin du fichier extensions.conf pour indiquer que la suite des informations à prendre en compte se trouve dans la base : switch => Realtime/@ . Il est aussi important de décommenter dans le fichier sip.conf la ligne où il y’a rtcachefriend=yes pour lui dire à SIP qu’il va utiliser l’application realtime : De créer la base de donnée, par la commande sql “CREATE database asterisk;” et les tables correspondantes dans la base nouvellement créée.  Création de la table sip: CREATE TABLE sip( id int(11) NOT NULL auto_increment, name varchar(80) NOT NULL default '', accountcode varchar(20) default NULL, amaflags varchar(13) default NULL, callgroup varchar(10) default NULL, callerid varchar(80) default NULL, canreinvite char(3) default 'yes', context varchar(80) default NULL, defaultip varchar(15) default NULL, dtmfmode varchar(7) default NULL, fromuser varchar(80) default NULL, fromdomain varchar(80) default NULL, fullcontact varchar(80) default NULL, host varchar(31) NOT NULL default '', insecure varchar(4) default NULL, language char(2) default NULL, mailbox varchar(50) default NULL, md5secret varchar(80) default NULL, nat varchar(5) NOT NULL default 'no', 33 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 34. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 deny varchar(95) default NULL, permit varchar(95) default NULL, mask varchar(95) default NULL, pickupgroup varchar(10) default NULL, port varchar(5) NOT NULL default '', qualify char(3) default NULL, restrictcid char(1) default NULL, rtptimeout char(3) default NULL, rtpholdtimeout char(3) default NULL, secret varchar(80) default NULL, type varchar(6) NOT NULL default 'friend', username varchar(80) NOT NULL default '', disallow varchar(100) default 'all', allow varchar(100) default 'g729;ilbc;gsm;ulaw;alaw', musiconhold varchar(100) default NULL, regseconds int(11) NOT NULL default '0', ipaddr varchar(15) NOT NULL default '', regexten varchar(80) NOT NULL default '', cancallforward char(3) default 'yes', setvar varchar(100) NOT NULL default '', PRIMARY KEY (id), UNIQUE KEY name (name), KEY name_2 (name) ) TYPE=MyISAM ROW_FORMAT=DYNAMIC; On peut maintenant inserer dans la tables sip, en ligne de commande, des enregistrements à l’aide de la commande sql suivante: Figure 8: Insertion sql dans la base de données  Création de la table extensions CREATE TABLE extensions( id int(11) NOT NULL auto_increment, context varchar(20) NOT NULL default '', exten varchar(20) NOT NULL default '', priority tinyint(4) NOT NULL default '0', 34 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 35. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 app varchar(20) NOT NULL default '', appdata varchar(128) NOT NULL default '', PRIMARY KEY (context,exten,priority), KEY id (id) ) TYPE=MyISAM; Insersion avec les commandes sql: insert into extensions (context,exten,priority,app,appdata) values ('default','1989','1','Dial','SIP/tafa');  Création de la table iax CREATE TABLE iax( name varchar(30) primary key NOT NULL, username varchar(30), type varchar(6) NOT NULL, secret varchar(50), md5secret varchar(32), dbsecret varchar(100), notransfert varchar(100), inkeys varchar(100), outkeys varchar(100), auth varchar(100), accountcode varchar(100), amaflags varchar(100), callerid varchar(100), context varchar(100), defaultip varchar(15), host varchar(31) NOT NULL default 'dynamic', language char(5), mailbox varchar(50), deny varchar(95), permit varchar(95), quality varchar(4), disallow varchar(100), allow varchar(100), ipaddr varchar(15), port integer default 0, regseconds integer default 0 );  Création de la table voicemail CREATE TABLE voicemail( uniqueid int(11) NOT NULL auto_increment, customer_id int(11) NOT NULL default '0', context varchar(50) NOT NULL default '', mailbox int(5) NOT NULL default '0', password varchar(4) NOT NULL default '0', fullname varchar(50) NOT NULL default '', 35 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 36. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 email varchar(50) NOT NULL default '', pager varchar(50) NOT NULL default '', stamp timestamp(14) NOT NULL, attach varchar(3) NOT NULL default 'no', saycid varchar(3) NOT NULL default 'yes', PRIMARY KEY(uniqueid),KEY mailbox_context(mailbox,context) ) TYPE=MyISAM;  Création de la table queue_table CREATE TABLE queue_table( name VARCHAR(128) PRIMARY KEY, musiconhold VARCHAR(128), announce VARCHAR(128), context VARCHAR(128), timeout INT(11), monitor_join tinyint(1), monitor_format VARCHAR(128), queue_youarenext VARCHAR(128), queue_thereare VARCHAR(128), queue_callswaiting VARCHAR(128), queue_holdtime VARCHAR(128), queue_minutes VARCHAR(128), queue_seconds VARCHAR(128), queue_lessthan VARCHAR(128), queue_thankyou VARCHAR(128), queue_reporthold VARCHAR(128), announce_frequency INT(11), announce_round_seconds INT(11), announce_holdtime VARCHAR(128), retry INT(11), wrapuptime INT(11), maxlen INT(11), servicelevel INT(11), strategy VARCHAR(128), joinempty VARCHAR(128), leavewhenempty VARCHAR(128), eventmemberstatus tinyint(1), eventwhencalled tinyint(1), reportholdtime tinyint(1), memberdelay INT(11), weight INT(11), timeoutrestart tinyint(1), ringinuse tinyint(1), setinterfacevar tinyint(1) );  Création de la table queue_member_table 36 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 37. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 CREATE TABLE queue_member_table( uniqueid INT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT, membername varchar(40), queue_name varchar(128), interface varchar(128), penalty INT(11), paused INT(11), UNIQUE KEY queue_interface (queue_name, interface) );  Création de la table cdr CREATE TABLE cdr( calldate datetime NOT NULL default '0000-00-00 00:00:00', clid varchar(80) NOT NULL default '', src varchar(80) NOT NULL default '', dst varchar(80) NOT NULL default '', dcontext varchar(80) NOT NULL default '', channel varchar(80) NOT NULL default '', dstchannel varchar(80) NOT NULL default '', lastapp varchar(80) NOT NULL default '', lastdata varchar(80) NOT NULL default '', duration int(11) NOT NULL default '0', billsec int(11) NOT NULL default '0', disposition varchar(45) NOT NULL default '', amaflags int(11) NOT NULL default '0', accountcode varchar(20) NOT NULL default '', userfield varchar(255) NOT NULL default '', uniqueid VARCHAR(32) NOT NULL default '', linkedid VARCHAR(32) NOT NULL default '', sequence VARCHAR(32) NOT NULL default '', peeraccount VARCHAR(32) NOT NULL default '' ); Voici un apercu en image de notre base de donnée: 37 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 38. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Figure 9: Aperçu de la base de données avec phpmyadmin 4. Installation et configuration des soft phones : test de fonctionnalité Le softphone est un logiciel qui assure toutes les fonctions téléphoniques et qui utilise la carte son et le micro du PC de l’utilisateur, et aussi la carte Ethernet du PC. Il est géré soit par le call manager soit par le PABX-IP. Il en existe plusieurs parmi les quels: X-lite, Ekiga, Kphone,Twinkle, ZoIper etc… En ce qui nous concerne, nous avons installé et configuré X-Lite sous windows et Kphone sous Lunix pour en faire les tests de fonctionnalité. Pour installer Kphone il suffit de taper le nom de l’application dans le Logitheque Ubuntu et de cliquer sur le bouton installer. Un bon enrégistrement avec Kphone nous donne l’image ci-dessous: 38 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 39. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Figure 10: Régistration avec le soft phone Kphone 39 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 40. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Avec X-Lite aussi on s’est registré et tout ceci donne l’image ci-après : Figure 11: Régistration avec X-Lite 40 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 41. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Chapitre 5 : Présentation et utilisation de l’interface graphique La réalisation de notre interface graphique a nécessité l’utilisation de quelques outils de programmation du genre html5, php, requête SQL et des quelques serveurs (Apache, mysql- server) Le répertoire /var/www/, se trouvant dans le serveur apache, est celui qui permet d’héberger en local des sites sous linux. Dans ce répertoire on a créé un dossier asterisk qui contient toutes les pages de notre interface et ensuite pour accéder à la page d’accueil on tape sur un navigateur l’url suivant 127.0.0.1/asterisk et nous voilà dans l’interface Une fois sur la page d’accueil de cette interface on peut voir les quatre boutons qui sont les suivant : Figure 12: L’interface de management d’Asterisk 41 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 42. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 1. Le bouton Compte SIP: Figure 13: Création de compte SIP  Nom : Il correspond à ce qu’on met entre crochet au début de la création d’un compte. Exemple [tafa]  Nom d’utilisateur : Il correspond à username  Mot de passe : C’est le mot de passe du compte  Numéro de boite vocale : Il correspond à mailbox  Context : C’est le contexte de création d’un compte  Identifiant du téléphone : C’est le callerid du compte 42 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 43. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 2. Le bouton Compte IAX: Figure 14: Création de compte IAX Ici les champs sont les mêmes que ceux précédents. Il n’ya que le fichier de configuration qui change (iax.conf). 43 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 44. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 3. Le bouton Numéro de Téléphone: Figure 15: Création d’un numéro de téléphone  Entrer un context : C’est le contexte déclaré dans les comptes sip ou iax  Entrer un numéro de téléphone : C’est le callerid déclaré dans les comptes sip ou iax  Entrer la priorité : Il s’agit de préciser le rang de l’action à effectuée  Entrer l’action à effectuer : Sur Asterisk il y’a plusieurs actions qui chacune quelques chose de spécifique. Il s’agira ici de préciser une action à effectuer.  Entrer les applications : Après avoir choisi une option, il mettre les arguments et c’est ici qu’on le fait. 44 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 45. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 4. Le bouton Boite Vocale: Figure 16: Numéro de boite vocale  Entrer votre context : C’est le même context dans lequel on a déclaré le compte et le numéro de téléphone  Entrer votre numéro de boite vocale : C’est le mailbox qu’on doit entrer lors de la consultation de la boite vocale  Entrer votre mot de passe : En chiffre : C’est le mot de passe à renseigner lors de la consultation de la boite vocale. Il doit impérativement être en chiffre.  Entrer votre nom complet : Ici vous pouvez mettre votre nom complet (optionnel)  Entrer votre email : Taper votre email dans ce champs pour être informé de la réception d’un message vocal avec un mail (optionnel). 45 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 46. sept. 22 C Mémoire de fin de cycle Année académique 2011-2012 Onclusion: Asterisk est une puissante plate-forme de téléphonie. Cette puissance n’a toutefois d’intérêt que dans la mesure où elle peut être mise en œuvre par tout utilisateur final. Ainsi donc, une interface graphique présente un très grand intérêt pour Asterisk. C’est en cela qu’a porté le sujet de notre mémoire, où, après deux mois de recherche, nous avons réussi à gérer les configurations du serveur Asterisk dans une base de données MySQL. Pour ce faire, nous avons installé le serveur Asterisk, les pilotes tels que Libpri et dahdi qui permettent de compléter son installation, mais aussi les différents outils nécessaires à sa compilation. De la même manière, nous avons installé le serveur MySQL ainsi que les différents outils web permettant l’interaction PHP/MySQL. Nous avons aussi installé asterisk-addons qui dispose la fonctionnalité Realtime qui est indispensable pour la connexion entre Asterisk et MySQL. Et c’est dans le fichier /etc/asterisk/res_mysql.conf que nous avons défini les paramètres utilisés pour se connecter à la base de données nommée asterisk depuis le serveur MySQL. Après avoir montré un exemple de gestion de l’interface graphique d’Asterisk, grâce aux langages HTML, PHP et SQL nous avons écrit des scripts qui nous ont permis de créer graphiquement des comptes SIP, des numéros de téléphone, des numéros de boîte vocale, un centre d’appels, et la gestion conférence qui sont directement stockés dans les tables sip, extensions, voicemail, meetme, queue_table et queue_member_table de la base de données asterisk. Pour les tests de fonctionnalités, nous avons installé et configuré deux softphones qui sont X-lite et Kphone avec des comptes qui sont créés dans la base de données. Il est important de remarquer qu’une interface graphique pour gérer Asterisk est d’intérêt général, mais il existe un compromis naturel entre, d’une part, la facilité et la simplicité d’utilisation, et d’autre part, le nombre de fonctions disponibles. Ainsi, l’interface requise par un administrateur expérimenté sera probablement différente de celle pour l’administrateur seulement responsable, d’ajouts ou de modifications simples. 46 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye
  • 47. sept. 22 Mémoire de fin de cycle Année académique 2011-2012 Bibliographie et webographie Bibliographie Titre : Asterisk la téléphonie Open Source Edition: O’REILLY Auteur: Jim Van Meggelen, Jared Smith et Leif Madsen Titre: VoIP et ToIP Asterisk La téléphonie sur IP Edition : eni Auteur : Sébastien DEON Webographie Site officiel d’Asterisk : http://www.asterisk.org Site de téléchargements d’Asterisk: http://www.asterisk.org/downloads Site officiel de VoIP : http://www.voip-info.org Site officiel de Wikipédia : http://www.wikipedia.org 47 Présenté et soutenu par Moustapha Ndiaye et Ibrahima Ndiaye