47
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 Présenté et soutenu par : Encadré par : Ibrahima NDIAYE Mr. Christian OUDANG Moustapha NDIAYE Année Académique : 2011-2012 THEME: ConCeption d’une interfaCe de management d’asterisk

Mémoire fin de cycle1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Mémoire fin de cycle1

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

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

Ibrahima NDIAYE Mr. Christian OUDANG

Moustapha NDIAYE

Année Académique : 2011-2012

THEME:

ConCeption d’une interfaCe de management d’asterisk

Page 2: Mémoire fin de cycle1

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

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

sept. 22

2

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

Page 3: Mémoire fin de cycle1

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

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

sept. 22

3

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

Page 4: Mémoire fin de cycle1

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

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

sept. 22

4

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

Page 5: Mémoire fin de cycle1

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

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

sept. 22

5

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.

Page 6: Mémoire fin de cycle1

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

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

sept. 22

6

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

Page 7: Mémoire fin de cycle1

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

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

sept. 22

7

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

Page 8: Mémoire fin de cycle1

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

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

sept. 22

8

III. Organigramme de L’ESTM :

Organigramme de l’ESTM

Page 9: Mémoire fin de cycle1

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

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

sept. 22

9

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

Page 10: Mémoire fin de cycle1

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

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

sept. 22

10

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.

Page 11: Mémoire fin de cycle1

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

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

sept. 22

11

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

Page 12: Mémoire fin de cycle1

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

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

sept. 22

12

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.

I

Page 13: Mémoire fin de cycle1

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

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

sept. 22

13

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.

Page 14: Mémoire fin de cycle1

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

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

sept. 22

14

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.

Page 15: Mémoire fin de cycle1

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

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

sept. 22

15

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

Page 16: Mémoire fin de cycle1

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

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

sept. 22

16

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.

Page 17: Mémoire fin de cycle1

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

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

sept. 22

17

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

Page 18: Mémoire fin de cycle1

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

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

sept. 22

18

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.

Page 19: Mémoire fin de cycle1

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

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

sept. 22

19

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.

Page 20: Mémoire fin de cycle1

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

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

sept. 22

20

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

Page 21: Mémoire fin de cycle1

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

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

sept. 22

21

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.

Page 22: Mémoire fin de cycle1

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

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

sept. 22

22

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

Page 23: Mémoire fin de cycle1

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

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

sept. 22

23

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 :

Page 24: Mémoire fin de cycle1

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

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

sept. 22

24

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

Page 25: Mémoire fin de cycle1

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

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

sept. 22

25

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

Page 26: Mémoire fin de cycle1

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

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

sept. 22

26

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]

Page 27: Mémoire fin de cycle1

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

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

sept. 22

27

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 :

Page 28: Mémoire fin de cycle1

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

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

sept. 22

28

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.

Page 29: Mémoire fin de cycle1

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

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

sept. 22

29

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 :

Page 30: Mémoire fin de cycle1

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

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

sept. 22

30

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

Page 31: Mémoire fin de cycle1

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

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

sept. 22

31

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:

Page 32: Mémoire fin de cycle1

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

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

sept. 22

32

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>

Page 33: Mémoire fin de cycle1

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

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

sept. 22

33

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',

Page 34: Mémoire fin de cycle1

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

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

sept. 22

34

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',

Page 35: Mémoire fin de cycle1

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

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

sept. 22

35

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 '',

Page 36: Mémoire fin de cycle1

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

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

sept. 22

36

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

Page 37: Mémoire fin de cycle1

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

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

sept. 22

37

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:

Page 38: Mémoire fin de cycle1

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

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

sept. 22

38

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:

Page 39: Mémoire fin de cycle1

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

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

sept. 22

39

Figure 10: Régistration avec le soft phone Kphone

Page 40: Mémoire fin de cycle1

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

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

sept. 22

40

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

Figure 11: Régistration avec X-Lite

Page 41: Mémoire fin de cycle1

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

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

sept. 22

41

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

Page 42: Mémoire fin de cycle1

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

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

sept. 22

42

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

Page 43: Mémoire fin de cycle1

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

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

sept. 22

43

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

Page 44: Mémoire fin de cycle1

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

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

sept. 22

44

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.

Page 45: Mémoire fin de cycle1

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

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

sept. 22

45

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

Page 46: Mémoire fin de cycle1

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

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

sept. 22

46

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.

C

Page 47: Mémoire fin de cycle1

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

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

sept. 22

47

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