50
- PROJET TUTORE - ToIP : Serveur de téléphonie Asterisk. Christopher Bourgeois Arnaud Carrein LP RMS Á l’attention de Chantal Labat 2007 /2008

Projet Tutore

Embed Size (px)

Citation preview

Page 1: Projet Tutore

- PROJET TUTORE -

ToIP : Serveur de téléphonie

Asterisk.

Christopher Bourgeois Arnaud Carrein LP RMS Á l’attention de Chantal Labat 2007 /2008

Page 2: Projet Tutore
Page 3: Projet Tutore

- PROJET TUTORE -

ToIP : Serveur de téléphonie

Asterisk.

Christopher Bourgeois Arnaud Carrein LP RMS Á l’attention de Chantal Labat 2007 /2008

Page 4: Projet Tutore

Remerciements

Tout d’abord, nos remerciements s’orientent vers Madame Chantal Labat qui nous a proposé ce sujet sur la ToIP. Elle nous a guidés tout au long de notre projet afin de nous orienter sur les points essentiels à étudier. Nous la remercions donc pour sa disponibilité et les précisions apportées aux différentes étapes de notre projet.

Nous tenons aussi à adresser nos remerciements à M. Mansalier, d’une part pour son soutien durant l’année, mais aussi pour ses renseignements concernant le serveur Asterisk. D’autre part nous tenons aussi à remercier Madame Caballero qui nous a aidés à travers ses cours et ses conseils pour la rédaction et la présentation du rapport écrit. Elle nous a également rappelé comment présenter oralement notre projet en évitant un maximum d’erreur. Merci également au personnel de l’IUT et plus particulièrement celui du département R&T pour nous avoir mis à disposition le matériel de réseau adapté au bon déroulement du projet.

Remerciement aussi à Jérémie Abeilhou qui nous a autorisé à utiliser la partie freephonie de sa freebox et nous a donc confié son identifiant et son mot de passe.

Page 5: Projet Tutore

Résumé

Durant la formation de la Licence Professionnelle Réseaux Mobiles et Sécurité, un projet sous le tutorat d’un professeur est proposé afin de compléter l’enseignement théorique. Notre sujet traite d’une technologie en voix d’expansion : la ToIP et l’installation d’un serveur de téléphonie. Nous avons suivit les principaux points énoncés pas Mme Chantal Labat, notre tutrice. Il a donc été question de mettre en œuvre un autocommutateur logiciel dans un environnement Open Source. Nous avons choisi la distribution libre AsteriskNOW en tant que serveur et des softphones X-Lite et Ekiga, logiciels gratuits, jouant le rôle de clients. Il a donc fallu mettre en place une architecture permettant à tous les clients de communiquer via la Téléphonie sur IP. Ayant validée cette première étape, nous avons testé les fonctionnalités offertes par notre IPBX comme la messagerie, le renvoi d’appel, les conférences et le standard automatique. La compatibilité avec le matériel CISCO a été testée et validée avec l’utilisation de téléphones IP 7912.

Le seul fait d’étudier cette nouvelle technologie qu’est la ToIP fut très intéressant. L’approfondissement avec les protocoles utilisés comme SIP et RTP nous a permit de comprendre le fonctionnement de cette méthode de communication. Nous nous sommes aussi rendu compte que cette installation pouvait être implémentée en entreprise sans l’investissement financier qu’impose l’achat d’un autocommutateur classique et présente une fiabilité équivalente voire supérieure.

Abstract

During the licence RMS, a personal project is compulsory to supplement the theoretical teaching. Our project deals with a new technology: Telephony over IP. We have followed Chantal Labat rules to install a soft PBX in an open source environment. We have chosen a Linux distribution which name is AstersikNow as a server and free soft phones such as X-lite and Ekiga as clients. We devoted the first part of our project to the setting up of a model to permit the communications between different clients. After that, the different functions were tested. For example, voice mails, call forwarding, Interactive Voice Response… Next, Cisco compatibility was validated using IP Phone 7912.

The opportunity to study this new and attractive technology was very interesting and motivating. The exploration of SIP and RTP protocols has improved our new knowledge in the field of ToIP. This technology with the Asterisk server doesn’t require financial investment. Now, we have a good command of this new communication process and can adapt to many companies which using it.

Page 6: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Sommaire

Christopher Bourgeois 6 LP RMS Arnaud Carrein 2007/2008

Sommaire

Lexique 07 Introduction 08

1. Présentation 09 1.1. La téléphonie IP 09 1.1.1. Fonctionnement 09 1.1.2. Intérêts 11 1.1.3. Différence PABX / IPBX 11

1.2. Les protocoles 12 1.2.1. SIP / H323 12 1.2.2. RTP / RTCP 15 1.2.3. IAX 17

2. Asterisk 18 2.1. Généralités 18 2.1.1. Présentation 18 2.2.2. Fonctionnalités 18

2.2. Mise en place du serveur 19 2.2.1. Carte FXO / FXS 19 2.2.2. Installation d'AsteriskNOW 20 2.2.3. Configuration de base 23

2.3. Les clients 24 2.3.1. Softphone 24 2.3.2. IP Phones 28

3. Applications 30 3.1. Architecture locale 30 3.2. Architecture étendue 31 3.2.1. Freephonie 31 3.2.2. Sécurité : Avec Firewall 32 3.3.3. Interconnexion de serveurs 34

3.3. Les difficultés rencontrées 35

Conclusion 36 Bibliographie 37 Annexes 38

Page 7: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Lexique

Christopher Bourgeois 7 LP RMS Arnaud Carrein 2007/2008

Lexique - ASCII : (American Standard Code for Information Interchange) est la norme de codage de caractères en informatique la plus connue et la plus largement compatible. -Chipset : jeu de composants électroniques intégré dans un circuit intégré préprogrammé permettant de gérer les flux de données numériques entre le ou les processeur(s), la mémoire et les périphériques. -Codecs : désigne un procédé capable de compresser ou de décompresser un signal, analogique ou numérique. -Firewall : élément du réseau informatique, logiciel et/ou matériel, qui a pour fonction de faire respecter la politique de sécurité du réseau, celle-ci définissant quels sont les types de communication autorisés ou interdits. -Freephonie : un service téléphonique de l'opérateur Free, c'est une offre de téléphonie sur IP. -FXO : l’interface Foreign eXchange Office est un port qui reçoit la ligne téléphonique. -FXS : l’interface Foreign eXchange Subscriber est un port qui raccorde la ligne téléphonique de l’abonné. -HTTP : HyperText Transfer Protocol, est un protocole de communication client-serveur développé pour le World Wide Web. -IP : Internet Protocol, est un protocole de communication de réseau informatique. -IPBX : système utilisé en entreprise qui assure l'acheminement de toute ou partie des communications en utilisant le protocole internet (IP), en interne sur le réseau local (LAN) ou le réseau étendu (WAN) de l'entreprise. -LAN : Local Area Network, désigne un réseau informatique d'échelle géographique restreinte. -PABX : Private Automatic Branch eXchange est un Multiplexeur Téléphonique privé. -RTC : Le réseau téléphonique commuté est le réseau du téléphone fixe et mobile. Soft phones -TCP : Transmission Control Protocol, est un protocole de transport fiable, en mode connecté. -UDP : User Datagram Protocol est un des principaux protocoles de télécommunication utilisé par Internet. Contrairement au protocole TCP, il travaille en mode non-connecté. -WAN : Wide Area Network, est un réseau informatique couvrant une grande zone géographique, typiquement à l'échelle d'un pays, d'un continent, voire de la planète entière. Le plus grand WAN est le réseau Internet.

Page 8: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Introduction

Christopher Bourgeois 8 LP RMS Arnaud Carrein 2007/2008

Introduction

La licence RMS propose un enseignement en alternance orienté particulièrement vers les réseaux. Dans le cadre de cette formation, un projet tuteuré vient s’ajouter à l’enseignement théorique. Nous avons réalisé ce projet en binôme sur le thème de la ToIP, où l'objectif était d'installer un serveur de téléphonie (Asterisk) et d'étudier les différents services offerts. Ce projet s’est réalisé avec la collaboration de Mme Chantal Labat, enseignante en réseau à l’IUT de Blagnac.

L'évolution des télécommunications fait que les centraux téléphoniques ont subi de nombreuses évolutions, notamment l'arrivée des IPBX qui à permis l'interconnexion du réseau téléphonique avec le réseau de données. Ceci permet aux entreprises de réduire les coûts et de faciliter l'administration. Notre but a donc été de mettre en place un IPBX dans un environnement « Open Source », c'est-à-dire qu’aucun investissement financier n’est nécessaire pour le fonctionnement de la maquette basique. Durant la réalisation du projet, nous avons appris à maitriser le logiciel et ainsi s’en servir de la façon la plus optimale. Le test de certaines fonctionnalités indispensables comme la messagerie ou le transfert d’appel a été réalisé et validé. La compatibilité avec des téléphones IP Cisco à aussi été approuvée. Au niveau de la sécurité, qui est un point fondamental de la licence, nous avons utilisé un firewall afin de protéger des attaques notre installation.

Nous avons décidé de diviser notre rapport en 3 parties distinctes. Dans un premier temps, nous allons vous parler de la téléphonie IP en la définissant et en présentant la différence avec la téléphonie classique. Les protocoles associés à la ToIP comme SIP et RTP seront ici aussi présentés. La seconde partie du document va présenter l’application qui nous a permit de réaliser notre projet. En effet, nous allons décrire le serveur Asterisk en détaillant son installation, sa configuration ainsi que ses fonctionnalités. La présentation des clients utilisés dans la maquette sera abordée dans cette partie. Pour terminer, la troisième partie va décrire les différents types d’architecture que nous avons pu tester. Il s’agit par exemple de l’utilisation de la freephonie, la simulation en entreprise avec firewall ou encore la topologie locale simple. Nous aborderons aussi les difficultés rencontrées durant le projet.

Page 9: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 9 LP RMS Arnaud Carrein 2007/2008

1. Présentation

1.1. La téléphonie sur IP

1.1.1. Fonctionnement

La téléphonie sur IP est un service de transport de la voix afin d’effectuer des appels sur réseaux IP au lieu d’utiliser une ligne téléphonique traditionnelle. Ainsi la voix circule sur un réseau unique (voix, données, vidéos) permettant de réduire considérablement les coûts d’investissement. La téléphonie sur IP est une transmission de la voix en mode paquets au format TCP/UDP.

Fig. 1 : Le traitement de la voix

Lorsqu’un utilisateur veut entre en communication avec un autre, une connexion est alors établie entre les deux terminaux. L’utilisateur peut alors émettre un son par le biais d’un micro (signal analogique) qui est ensuite numérisé et compressé par la machine (signal par synthèse). Une fois les données encapsulées dans un paquet, il est envoyé au destinataire qui procèdera aux opérations inverses assurant ainsi la mise en forme d’un message audible. Les différentes étapes sont :

La numérisation

Les signaux de la voix (analogiques) doivent être convertis sous forme numérique suivant le format PCM (Pulse Code Modulation) à 64kbit/s. La modulation d’impulsion codée est une technique d’échantillonnage quantifiée sur une série de symbole dans un code numérique (binaire). L’ordinateur ne comprend que le code binaire, la numérisation est donc primordial.

La compression

Lors de la numérisation, le codage PCM se contente de mesurer des échantillons indépendamment des uns des autres. Un échantillon du signal n’est pas isolé, mais corrélé avec d’autres (précédent ou suivant). En tenant compte des informations, il est possible de prévoir la valeur du nouvel échantillon et donc de transmettre qu’une partie de l’information. C’est ce qu’on appel la prédiction. Cela permet de réduire la taille du paquet pour optimiser la bande passante.

Page 10: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 10 LP RMS Arnaud Carrein 2007/2008

Il existe deux grands types de compressions : le codage différentiel et le codage par synthèse. La norme de compression est variable selon les codecs utilisés. Les codecs sont des chipsets qui font office de codeurs/décodeurs. Certains terminaux IP-PHONES n'acceptent qu'une partie ou même un seul codec, tout dépend du modèle de terminal et du constructeur. Les principaux taux de compression de la voix sont les codecs officiels suivants :

Méthode de compression Débit en Kbits/s

G.711 PCM 64

G.726 AD PCM 32

G.728 LD CELP 16

G.729 CS ACELP 8

G.729 x 2 Encodings 8

G.729 x 3 Encodings 8

G.729a CS ACELP 8

G.723.1 MPMLQ 6,3

G.723.1 ACELP 5,3

Les différents codecs et taux de compression

Le transport

L’information voyage dans des datagrammes UDP ne garantissant pas la livraison car il n’effectue aucune vérification concernant la perte de paquet et ne transmet aucune information sur les configurations utilisés. Il a donc fallu définir un nouveau protocole fournissant plusieurs fonctionnalités :

- Le numéro de séquence pour la remise en ordre des paquets ; - Un champ horodatage (timestamp) pour la restauration de la base de temps ; - Détecte la perte de paquets pour informer la source dans des délais compatibles avec le

service ; - Identifier le contenu des données et permettre leur transmission ; - Intègre des solutions pour traverser des passerelles de certains réseaux locaux

Ce protocole est appelé RTP (Real-Time Transport Protocol) qui se complète par un protocole de contrôle qui transmet des rapports de réception RTCP (Real-Time Transport Control Protocol). Par exemple lors d’une conférence regroupant plusieurs participants, RTCP permet d’identifier différentes sources d’émissions contribuant à la session, mais il n’est cependant pas obligatoire.

L’établissement de la connexion

Avant de pouvoir communiquer directement, les membres de la discussion doivent établir un protocole pour la démarrer. Les principaux protocoles utilisés pour l’établissement de la communication sont :

- H323 ; - SIP ; - IAX (SIP amélioré, issu du projet de PABX Asterisk) ;

Page 11: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 11 LP RMS Arnaud Carrein 2007/2008

1.1.2. Son utilisation (Intérêts)

La convergence des services de communications données, vidéos et voix offre de nombreux avantages. En effet, le téléphone et le PC partagent le même câble Ethernet, les frais de câblage sont réduits, les frais d'administration du réseau sont également minimisés. Il est ainsi possible de réaliser des économies à court et à long terme sur de nombreux postes : administration d'un seul réseau, fournisseur d'accès unique, unique contrat de maintenance, câblage commun, gratuité des communications interurbaines, réduction de la complexité de l'intégration d'applications. Enfin, la migration de la solution actuelle vers la Téléphonie sur IP s'effectue en douceur. Les solutions de téléphonie sur IP sont conçues pour dégager une stratégie de migration à faible risque à partir de l'infrastructure existante. De plus, en positionnant la voix comme une application supplémentaire sur le réseau IP, l’entreprise ne va pas uniquement substituer un transport opérateur RTC à un transport IP, mais simplifié la gestion de la voix, des données et vidéo par ce seul transport. Aujourd’hui la position des opérateurs est menacée par l’arrivée massive de la téléphonie sur IP, dont la tarification tend vers la gratuité.

1.1.3. Différence PABX / IPBX

Dans une architecture avec PABXs, il est nécessaire d’avoir deux infrastructures différentes. La premières constituées du réseau de PABXs où sont reliés physiquement les téléphones. Ce réseau est ensuite connecté au Réseau Téléphonies Commuté (RTC) permettant de communiquer avec l’extérieur.

Fig. 2 : réseau de PABXs

Il y a ensuite le réseau de données classiques constitué d’ordinateurs, serveurs et firewall connecté au WAN / Internet.

Fig. 3 : réseau IP

Page 12: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 12 LP RMS Arnaud Carrein 2007/2008

Ces deux réseaux sont donc reliés afin de fournir un service complet de téléphonie et de données. C’est notamment pour cela que le coût d’une infrastructure comme celle-ci est plus élevée et l’administration plus complexe. Elle a par contre l’avantage d’une fiabilité plus élevée car les deux réseaux sont séparées, par exemple si le réseau IP ne fonctionne plus, les utilisateurs pourront continués à utiliser la téléphonie.

Fig. 4 : infrastructure générale

Dans une architecture avec un IPBX, il y a une unique infrastructure, où l’on intègre directement les téléphones IP et l’IPBX sur le réseau IP existant. Ce réseau peut ensuite être relié au Réseau Téléphonique Commuté en rajoutant une carte FXO / FXS sur le serveur de téléphonie. Mais ceci est facultatif car le grand avantage de ce type de communication est justement de pouvoir sortir sur le réseau Internet.

Fig. 5 : infrastructure IPBXs

Page 13: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 13 LP RMS Arnaud Carrein 2007/2008

1.2. Les protocoles

1.2.1. SIP / H323

Session Initiation Protocol (SIP) est un protocole standardisé et normalisé par l'IETF (RFC 3261). Il est de plus en plus utilisé actuellement dans le monde de la voix sur IP. Son but principal est d’établir, modifier et terminer des sessions multimédias. SIP n’a aucune connaissance concernant les détails d’une session ouverte. C’est grâce à lui que l’on va pouvoir authentifier et localiser des multiples participants dans une session. Pour toutes actions au niveau d’une session , SIP va utiliser le port 5060 via le protocole UDP qui offre une rapidité d’échange du fait qu’il n’y est pas l’établissement de la connexion contrairement à TCP. SIP ne s’occupe pas du transport des données échangées durant la session comme la voix ou la vidéo. Il est indépendant de la transmission des données, c’est en cela que tout type de données et de protocoles peut être utilisé pour cet échange. Cependant le protocole RTP (Real-time Transport Protocol) assure le plus souvent les sessions audio et vidéo. Dans notre cas c’est RTP qui se charge du transport de la voix. SIP est un protocole d'égal à égal (Peer-to-Peer). Dans une session, on appelle les extrémités des agents utilisateurs (User Agents). Un agent utilisateur peut avoir un des rôles suivants:

User-Agent Client (UAC) - Une application cliente qui initie une requête SIP.

User-Agent-Server (UAS) - Une application serveur qui contacte l'utilisateur quand une requête SIP est reçue et qui retourne une réponse à la demande de l'utilisateur.

Typiquement, une extrémité SIP est capable de fonctionner dans les modes UAC et UAS, mais fonctionne dans l'un ou l'autre mode. Les Clients SIP :

Des Soft phones.

Des téléphones IP. Les Serveurs SIP :

Proxy Server : Il reçoit les requêtes SIP d'un client et les achemine vers l'autre client.

Redirect Server : Il fournit au client l'information sur le ou les prochains sauts qu'un message doit atteindre. Ensuite le client contacte le serveur du prochain saut ou l'UAS directement.

Registrar Server : Il traite les requêtes des UACs pour l'enregistrement de leur localisation courante. Les serveurs d'enregistrement sont très souvent localisés avec le redirect server ou le proxy server.

Un utilisateur veut entrer en communication avec un autre via SIP. L’application qu’utilise ce client fait donc appel au protocole SIP en précisant la nature des échanges. SIP va par la suite définir le nombre de session à ouvrir et les ouvrir. (Pour échanger de la vidéo par exemple, l’ouverture de 2 sessions est nécessaire : une session pour l’image et une autre pour le son). SIP partage de nombreuses similitudes avec le protocole HTTP comme le codage en ASCII et les codes de réponse. Le client envoie des requêtes au serveur, qui lui renvoie une réponse. SIP utilise des requêtes et des réponses pour établir des communications parmi les divers composants d'un réseau.

Page 14: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 14 LP RMS Arnaud Carrein 2007/2008

Les méthodes de bases utilisées par SIP afin d’établir une session sont :

REGISTER : UAC authentifié

au niveau du serveur

INVITE : Initiation de la

session

ACK : confirmation

l’établissement de la session

CANCEL : annule un INVITE

en suspens

BYE : Fin de la session

On rencontre plusieurs types de communication utilisant le protocole SIP :

Mode Point à point : on parle dans ce cas là « d’unicast » qui correspond à la communication entre 2 machines.

Mode diffusion : on parle dans ce cas là de « multicast ». Communication intégrant plusieurs participants.

Combinatoire : combine les deux modes précédents.

Fig. 6 : capture wireshark établissement d’une session SIP

On constate les différents paramètres sur une capture d’écran réalisée durant un appel : Ici c’est un appel du téléphone IP « tel_i p » vers le softphone « chris ». On visualise les trames bleues claires établissant la session entre les deux utilisateurs et via le serveur Asterisk : Méthode INVITE et ACK. Nous avons visualisé la trame n°12 montrant la fin de l’établissement de la session. Nous avons repéré ces différents champs : Champ « via » : Le serveur sur le port 5060 : 192.168.200.11:5060 Champ « From » : l’appelant : sip : [email protected] Champ « to »: l’appelé: sip: [email protected] Nous remarquons par la suite que c’est le protocole RTP qui prend le relais et va s’occuper de transporter la voix. Ce protocole va être abordé par la suite.

Page 15: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 15 LP RMS Arnaud Carrein 2007/2008

Il existe également un autre protocole de signalisation nommé H323 englobant un ensemble de normes utilisées pour l'envoi de données audio et vidéo sur Internet. Il existe depuis 1996 et a été initié par l'ITU (International Communication Union), un groupe international de téléphonie qui développe des standards de communication. H323 est un protocole assez daté qui est actuellement dépassé par le SIP. Un des avantages du SIP est sa simplicité et sa ressemblance aux protocoles HTTP. C’est pourquoi la plupart du matériel VoIP disponible aujourd’hui répond aux normes SIP. L’équipement plus ancien par contre suivra les normes du protocole H323.

1.2.2. RTP / RTCP

Real-Time Transport Protocol (RTP) est un protocole de communication informatique. RTP offre un moyen d’échanger de bout en bout, via le protocole IP, des données possédant des contraintes de temps réel (audio, vidéo, ...). Bien que ce protocole possède dans son acronyme le terme « transport », on ne peut pas réellement parler de protocole de transfert car RTP utilise un protocole de niveau 4 (transport) afin de véhiculer les données. En effet, il utilise le protocole UDP (User Datagramme Protocol). UDP est préféré à TCP car ce dernier ne peut pas utiliser la fonction multicast et ne permet pas un envoi immédiat de données. RTP peut donc être utilisé pour la diffusion de contenus vidéo en direct (multicast), pour des applications multimédia et dans notre cas pour la Voice Over IP utilisée par téléphonie sur Internet. Le protocole RTP ajoute aux paquets un en-tête fournissant les informations nécessaires à la synchronisation du flux temps réel et du type son et vidéo. L’entête RTP contient des champs spéciaux comme :

Le champ padding P : indique si le paquet contient des octets additionnels de bourrage.

Le champ extension X : précise si l'en-tête est suivi d'un paquet d'extension.

Le champ CSRC count CC : contient le nombre de CSRC qui suivent l'entête.

Le champ payload type PT : identifie le type du payload (audio, vidéo, image, texte, html, etc.)

Le champ séquence number : sa valeur initiale est aléatoire et il s'incrémente de 1 à chaque paquet envoyé, il peut servir à détecter des paquets perdus.

Le champ timestamp : 32 bits, reflète l'instant où le premier octet du paquet RTP à été échantillonné.

Le champ SSRC : identifie de manière unique la source, sa valeur est choisie de manière aléatoire par l'application.

Le champ CSRC : 32 bits, identifie les sources contribuant.

Fig. 7 : capture wireshark visualisation d’une trame RTP

Page 16: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 16 LP RMS Arnaud Carrein 2007/2008

Le protocole SRTP (acronyme de Secure Real-time Transport Protocol) est le pendant sécurisé (chiffré) de RTP. Nous ne l’avons pas mis en place ni étudier durant ce projet. Il doit être intéressant de l’implémenté dans une architecture requérant un fort niveau de confidentialité. Le protocole RTP fonctionne en étroite collaboration avec RTCP (Real-Time Transport Control Protocol). C'est un protocole de contrôle des flux RTP, permettant de véhiculer des informations basiques sur les participants d'une session, et sur la qualité de service. Il fonctionne grâce à l’envoi périodique de paquets de contrôle par tous les participants dans la session. RTCP est situé au dessus du protocole de transport UDP. Ce « feedback » apporté par RTCP, peut par exemple informer la source sur les propriétés temps-réel du canal, l'état du tampon du récepteur. Par contre il n'offre pas de garantie de transfert… En effet, pour une transmission correcte, il faut bien s'assurer dés le départ, que les liens de communications utilisés sont correctement dimensionnés par rapport à l'utilisation qui en est faite.

Fig. 8 : Fonctionnement de RTP et RTCP

L’utilisation simultané des protocoles SIP, RTP et RTCP est la base d’une communication en ToIP dans le cas de l’utilisation d’Asterisk. En effet, SIP permettra d’établir la session entre l’appelant et l’appelé via le serveur ; RTP entrera en jeu afin de transporter le « flux voix » entre les deux participants, RTCP lui fournira un contrôle ; SIP pourra intervenir à tout moment pour modifier la session (rajout d’un participant) et dans tous les cas clôturera la session lors de la fin de l’appel. Il est nécessaire d’identifier les deux types de protocoles. SIP est un protocole de signalisation il entre en jeu entre les clients et le serveur pour établir la session, tandis que RTP/RTCP est un protocole qui va servir au transport de la voix et opérera toujours entre les participants d’une session, jamais via le serveur.

Fig. 9 : Etablissement d’une communication (SIP RTP)

Page 17: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Présentation

Christopher Bourgeois 17 LP RMS Arnaud Carrein 2007/2008

1.2.3. IAX

Inter-Asterisk eXchange est un protocole qui permet la communication entre client et serveur ainsi qu'entre serveurs. Le nom IAX est souvent utilisé pour parler de la version 2 du protocole en effet la première version n'est pratiquement plus utilisée. Il est plus puissant que SIP car il a été conçu pour le contrôle et la transmission de flux multimédia avec un débit plus faible. IAX utilise le protocole UDP et le port 4569 pour la signalisation et les données. IAX supporte les authentifications de type PKI et le trunking. L’avantage qu’offre IAX est dans l’utilisation du trunking, en effet la bande passante allouée correspond exactement à celle utilisée. Le trunking permet à plusieurs flots de données vocales de partager un seul "trunk" avec un autre serveur, réduisant ainsi les congestions induites par le trafic IP. IAX est en train de rattraper son retard, de plus en plus d’opérateurs supportent ce protocole et de nombreux équipement commencent à faire leur apparition. Ce succès grandissant d’IAX n’est pas une réelle menace pour SIP de la manière que SIP l’a été pour H323.

Ayant étudié le principe de la ToIP, la comparaison avec une installation téléphonique standard ainsi que les différents protocoles utilisés comme SIP et RTP nous avons pu comprendre le fonctionnement de cette nouvelle technologie. Nous allons maintenant décrire le serveur et les clients utilisés pour la mise en œuvre d’une solution ToIP. Le serveur Asterisk ainsi que les différents matériels associés seront présentés dans cette partie.

Page 18: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 18 LP RMS Arnaud Carrein 2007/2008

2. Asterisk

2.1. Généralités

2.1.1. Présentation Asterisk Asterisk est un commutateur téléphonique privé à part entière mais d’implémentation logicielle, compatible linux, qui s’interconnecte avec quasiment tous les équipements de téléphonie de base standard et peu coûteux. C’est un logiciel « Open Source », qui a été développé par Mark Spencer à l’origine, de l’entreprise Digium, (anciennement Linux Support Services Inc.) et qui continue, grâce à de nombreux contributeurs, à évoluer régulièrement. Ce logiciel a été conçu pour une flexibilité maximale et reste un système ouvert à de nouvelles applications. Il fournit par exemple, des services de messagerie vocale, permet la conférence à plusieurs, l’identification de l’appelant, etc. Asterisk fournit donc toutes les fonctionnalités attendues d’un PABX mais aussi la voix sur IP et n’a besoin d’aucun matériel supplémentaire pour l’assurer. Dans l’interconnexion avec les équipements de téléphonie numériques et analogiques, Asterisk reconnaît une large gamme de dispositifs matériels, et notamment ceux fabriqués par ses sponsors, tels que digium, ou encore Quicknet. Digium propose une gamme de cartes d’interfaçage autorisant une à quatre liaisons de type T1 et/ou E1, permettant l’interconnexion à des liaisons de type PRI, ou à des banques de canaux, comme à un port unique d’une carte de type FXO, ou l’un des quatre ports de la carte modulaire FXS.

2.1.2. Fonctionnalités

Les solutions téléphoniques de base d’Asterisk offre une gamme importantes de

fonctionnalités. Asterisk offre à la fois les fonctionnalités d’un PABX classique et des fonctionnalités

innovantes.

Messagerie vocale ;

Transfert d’appel ;

Conférence téléphonique ;

Standard automatique ;

Renvoi d’appel ;

Mise en attente ; La mise en place de ces fonctionnalités est relativement intuitive, nous allons détailler la configuration du standard automatique qui nous a demandé un peu plus de réflexion. Cette fonctionnalité est très appréciée des entreprises, elle permet à l’appelant de choisir et de s’orienter vers le service qu’il désire. Ceci est pratique dans des grandes entreprises avec différents

services. Nous avons donc testé cette fonctionnalité en décomposant comme présenté ci-dessous :

Page 19: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 19 LP RMS Arnaud Carrein 2007/2008

Fig. 10 : standard automatique

Lors de l’appel du numéro, un 1er message vocal est diffusé, il s’agit du Message Vocal de Bienvenue. Il accueille les personnes et introduit un autre message qui va permettre de choisir le service vers lequel on veut s’orienter (Message Vocal de choix des services). Ce message annonce donc qu’en tapant la touche 1 ,2 ou 3 l’utilisateur va être respectivement dirigé vers le service Comptabilité, le service Informatique et pour finir au service Production. Selon la touche pressée, l’utilisateur va être orienté vers le poste 5555, 5545, 5556.

2.2. Mise en place du serveur

2.2.1 Carte FXO / FXS

La carte TDM 400P permet d’interconnecter le serveur Asterisk avec le réseau LAN (IP) et le reseau RTC (Réseau Téléphonique Commuté). Cette carte est distribuée par la société « Digium ». Nous avons choisi une carte possédant un module FXO et un module FXS afin de connecter une ligne et un téléphone analogique. C’est une carte PCI qui se présente comme ceci :

Fig. 11 : Carte FXO / FXS

On utilise les termes FXS et FXO pour nommer les ports utilisés par des lignes téléphoniques analogiques. (Réseau Téléphonique Commuté (RTC) en français, Plain Old Telephone Service (POTS) en anglais.)

Page 20: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 20 LP RMS Arnaud Carrein 2007/2008

FXS (Foreign Exchange Station) : permet le branchement de téléphones analogiques. L’utilisation des téléphones analogiques nécessite la génération d’une tonalité. Pour la tonalité il faut donc un courant de sortie. C’est pour cela que l’on branche la carte sur un connecteur 12V de l’alimentation. Le module FXS est VERT sur la carte.

FXO (Foreign Exchange Office) : permet la connexion au RTC France Télécom donc pas de tonalité à générer. Le module FXO est ROUGE sur la carte. Selon les besoins ressentis, on peut rajouter des modules. Par exemple, un module FXO pour connecter une nouvelle ligne RTC ou le module FXS pour la connexion d’un nouveau téléphone analogique. Cette carte n’est pas nécessaire au fonctionnement d’Asterisk. L’installation peut fonctionner sans cette carte mais les utilisateurs n’accèderont pas au RTC. Le moyen pour accéder au RTC sans cette carte est d’utiliser le service freephonie.net que l’on expliquera par la suite.

2.2.2 Installation d’AstersikNOW

Nous avons choisi d’utiliser AsteriskNOW qui est une distribution Linux conçue spécialement pour être un serveur de téléphonie.

A l’aide d’un navigateur Internet, se connecter au site suivant : http://www.asterisknow.org/

Fig. 12 : site AstersikNOW

Page 21: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 21 LP RMS Arnaud Carrein 2007/2008

Ensuite cliquer, sur le lien AsteriskNOW 1.0.2 dans la partie Download ;

Une nouvelle fenêtre s’ouvre, il faut choisir la version à télécharger ; Choisir la version selon les performances du PC :

Fig. 13 : téléchargement d’AstersikNOW

Après avoir choisi la version et cliquer dessus, il faut enregistrer le fichier .iso sur le disque dur.

Une fois le téléchargement terminé, il suffit de graver cette image .iso sur un CD.

Après avoir gravé l’image sur un CD il suffit d’insérer ce CD dans la machine qui servira de serveur. L’installation n’est pas compliquée, mais il faut bien faire attention à avoir installé les cartes réseaux car la configuration des adresses IP se fait à ce moment là et n’est pas facile à modifier par la suite. L’installation se déroule en quelques étapes incontournables :

1ere étape : La première image qui apparait lors de l’insertion du CD est une image qui propose d’installer ou de mettre à jour AsteriskNOW. Pour une installation simple, il faut simplement appuyer sur « ENTRER ».

Le choix de l’installation : Express, Custom, Expert.

Le partitionnement : Cette partie permet à l’utilisateur de choisir la place à réserver pour installer son serveur. Il y’a la possibilité de formater tout le disque dur, de supprimer seulement les distributions Linux installées sur l’ordinateur ou utiliser l’espace libre restant et garder les précédentes installations. Ne pas oublier le point de montage en : /, le formatage de la partition comme : ext3 et la création de la partition Swap à partir de l’espace libre.

La configuration Réseau : C’est ici que l’on va configurer les cartes réseau du serveur. Notre serveur ayant 2 cartes réseaux (Réseau local et Vers Internet) nous lui avons attribué une adresse IP en 192.168.200.11/24 pour le réseau local et une autre en 192.168.106.3/24 avec une passerelle par défaut en 192.168.106.254 et un serveur DNS 192.168.100.2 pour accéder au réseau de la salle et donc à internet.

Page 22: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 22 LP RMS Arnaud Carrein 2007/2008

Le choix du fuseau horaire : On va renseigner le fuseau horaire sur lequel nous travaillons. Il faut cliquer sur Paris et vérifier l’exactitude dans le menu déroulant du bas.

Le renseignement du mot de passe « administrateur » : Phase importante de l’installation, l’activation du mot de passe administrateur se fait à ce stade là. Ce mot de passe est utile pour, comme son nom l’indique, administrer le système. Il est donc conseiller de s’en souvenir ou de le noter si nécessaire. Valider les quelques étapes suivantes avec la touche « Next » et attendre que l’installation se termine. Les paramètres renseignés durant l’installation peuvent être modifié ultérieurement. En effet, si après l’installation, des changements doivent être apportés, il suffit de cliquer sur le lien « System Configuration » de la page html : https://192.168.200.11.

Fig. 14 : Gestion du système

Dans cette partie de configuration du système, on peut par exemple facilement effectuer les tâches suivantes :

Mise en place d’une sauvegarde su système.

Modification de la configuration réseau : adresse IP et masque des cartes réseau du serveur.

Modification du mot de passe root et du mot de passe user.

Modification du fuseau horaire.

Possibilité de stopper ou de démarrer les services du système (network, nfs, nfslock, …)

Paramétrage d’un reboot programmé du serveur.

Paramétrage des mises à jour programmées du serveur. Voir en annexe pour les impressions d’écran de l’installation d’AsteriskNow.

Page 23: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 23 LP RMS Arnaud Carrein 2007/2008

2.2.3 Configuration de base Le fonctionnement d’Asterisk nécessite la configuration de plusieurs fichiers, tout d’abord le fichier sip.conf qui permet de configurer les comptes utilisateurs

[general] ; nom du contexte context=default srvlookup=yes [arno] type=friend ; permet d’appeler et de recevoir des appels host=dynamic ; cet appareil s'enregistre chez nous username=arno ; définit le nom de l’utilisateur secret=arno1 ; définit le mot de passe quality=yes ; Surveille la latence [fournisseursip] type=friend inscure=very host=freephonie.net ; le fournisseur SIP username=0807060504 ; nom d’utilisateur chez le fournisseur SIP secret=1234567890 ; mot de passe chez le fournisseur SIP fromuser=0807060504 fromdomain=freephonie.net context=fournisseursip-entrant ; le contexte ou diriger les appels entrants

Il y a ensuite le fichier extensions.conf qui permet de définir le numéro de téléphone associé à un utilisateur.

[general] static=yes writeprotect=no ; modification possible depuis la CLI clearglobalvars=no

[default] exten=8500,1,VoicemailMain ; 8500 est le n° pour accéder à la messagerie vocale exten=8500,n,Hangup ; raccroche la ligne exten=5556,1,Dial(SIP/arno,,tT) ; 5556 est le n° de telephone pour l’utilisateur arno, tT permet d’autoriser le transfert d’appel exten=5556,2,Voicemail(b5556) ; permet de définir le mot de passe pour accéder à la messagerie exten=_0.,1,Dial(SIP/${EXTEN :1}@fournisseursip) ; définit le préfixe 0 pour sortir via la freephonie [fournisseursip-entrant] exten=s,1,Dial(SIP/arno&SIP/chris) ; permet de diriger les appels entrants vers les utilisateurs

arno et chris

Page 24: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 24 LP RMS Arnaud Carrein 2007/2008

Le fichier Zapata.conf sert à spécifier à Asterisk les paramètres et la configuration du matériel téléphonique installé. Il permet de spécifier les fonctionnalités associées aux canaux matériels (présentation numéro, mise en attente...). Le contexte « channels » permet de configurer dans un premier temps les options de ligne puis définit les canaux ainsi que leurs rattachements.

[channels] usecallerid=yes ; Présentation du numéro hidecallerid=yes ; Nom cache pour les appels sortants callwaiting=no ; Désactivation de la mise en attente d'appel pour une ligne FXO threewaycalling=yes ; Conversation a trois transfer=yes ; Transfert d'appel permis echocancel=yes ; Suppression de l'echo echotraining=yes ; Apprentissage de l'echo pour mieux le supprimer Définition des canaux : language=fr ; Langage par défaut 'FR' Signalling=fxs_ks Signalisation fxs pour un canal fxo pour Asterisk group=2 ; Définition d'un groupe channel=2 ;utilisation du port 2 callerid=telanalog signalling=fxo_ks ; Signalisation fxo pour recevoir la ligne group=1 channel=4 ; utilisation du port 4

2.3. Les clients

2.3.1. Softphones

Un softphone est un téléphone logiciel qui s’installe sur un PC afin de communiquer sur le réseau. Nous avons utilisés deux types de softphones : X-Lite et Ekiga. Softphone X-Lite : Il faut tout d’abord télécharger gratuitement le logiciel sur un site internet par exemple Clubic : http://www.clubic.com/telecharger-fiche38749-x-lite.html

Description du logiciel par le site Clubic : X-lite est un excellent client SIP pour Windows. Egalement connus sous le nom de « softphones », ces programmes devraient notamment intéresser les Freenautes .

Installation : Après avoir téléchargé le logiciel, il faut l’installer. L’installation ne pose pas de problèmes. Il n’ya aucun paramètre à spécifier lors de l’installation. Le client SIP X-Lite n’est pas volumineux (27 Mo). Après l’installation le client X-Lite démarre et se présent de la façon suivante :

Page 25: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 25 LP RMS Arnaud Carrein 2007/2008

Configuration du softphone : Nous visualisons sur l’écran principal le message : « No SIP accounts are enabled ». En effet il faut spécifier au softphone les paramètres du compte client configurés sur le serveur. Ces paramètres seront le nom et le mot de passe du client et surtout l’adresse IP du serveur qui authentifiera notre client. Pour ce faire, il faut cliquer sur le triangle pointant en bas situé en haut à gauche du softphone. Ce bouton va nous permettre d’accéder aux menus et différents réglages. Pour le paramétrage du compte SIP il faut cliquer sur SIP Account Settings.

Fig. 15 : softphone X-Lite

Fig. 16 : configuration X-Lite

La fenêtre de configuration des comptes SIP s'ouvre, il faut cliquer sur"Add…" pour ajouter les paramètres du client.

Fig. 17 : configuration compte SIP X-Lite

Page 26: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 26 LP RMS Arnaud Carrein 2007/2008

Les paramètres à renseigner sont les suivants :

Display Name Indépendant du compte SIP : le nom, le pseudo …

User name Doit absolument être le Login SIP

Password Doit absolument être le mot de passe SIP

Authorization user name Si renseigné, doit absolument être le Login SIP

Domain Adresse IP du serveur Asterisk

Domain Proxy ne rien modifier

Après avoir cliqué sur Appliquer le softphone est bien authentifié au niveau du serveur. On le visualise sur l’écran de celui-ci via le message : « Ready ».

Fig. 18 : authentification de l’utilisateur

Le deuxième softphone utilisé est Ekiga et est installé par défaut sous Ubuntu. On peut aussi le télécharger en toute légalité sur le site « officiel » d’Ekiga : http://www.ekiga.org/

Installation : La version d’Ubuntu que nous avons utilisé implémenté par défaut le client Ekiga. Nous n’avons pas eu à l’installer. Il a juste fallu renseigner les paramètres SIP.

Configuration du softphone : Le softphone Ekiga fonctionne de la même manière que X-Lite. Après lui avoir renseigné un nom (Username) et un numéro de téléphone (Extension), il faut lui indiquer l’adresse IP du serveur afin que ce dernier authentifie notre client. Pour renseigner ces paramètres, il faut cliquer sur le bouton « Edition » de la barre de menu supérieure, puis sur « comptes ». Par la suite, « ajouter un compte » et éditer ses informations.

Page 27: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 27 LP RMS Arnaud Carrein 2007/2008

Fig. 19 : configuration compte SIP Ekiga

On renseigne donc les informations du compte SIP que l’on a éditées sur le serveur. Ici on a attribué le compte chris. Le nom du compte demandé dans le 1er champ n’est pas dépendant du compte SIP, il a une valeur d’information et peut-être le nom, le pseudo de l’utilisateur. La case « Registrar » doit absolument être remplie avec l’adresse IP du serveur. Les deux derniers champs sont obligatoirement identique au compte SIP : il s’agit de « l’username » et du « password » SIP. Pour confirmer, il suffit de cliquer sur « valider » et attendre que l’état du compte soit passé à « inscrit ». Cela signifiera que le serveur aura bien authentifié le client. Le softphone Ekiga se présente comme ceci, l’impression d’écran a été réalisée durant une communication. En effet on visualise la phrase « Connecté avec tel_ip ».

Fig. 20 : authentification de l’utilisateur

Page 28: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 28 LP RMS Arnaud Carrein 2007/2008

2.3.2. Les téléphones IP Nous ne pouvions pas, au court de ce projet, passer à coté de l’intégration et l’utilisation d’un matériel appartenant à une des marques leader dans le monde des réseaux : CISCO … Petite remarque quant à l’utilisation d’un téléphone IP Cisco : le coût. En effet, notre maquette initiale fonctionnait sans investissement financier : serveur Asterisk (Distribution Linux libre) ainsi que les softphones (Téléchargement légal et gratuit). L’IUT possédant des téléphones IP de la fameuse marque, nous n’avons pas eu de problème d’argent et avons donc pu tester la compatibilité de la marque. Résultat positif et concluant pour l’IP Phone 7912 de chez CISCO.

Fig. 21 : téléphone IP 7912 Cisco

Configuration du téléphone : Après avoir branché l’alimentation et le câble Ethernet, il faut accéder aux menus et configurer le téléphone.

Pour cela, il faut appuyer sur le bouton rond à droite des flèches verticales centrales. Ce bouton permet l’accès aux services du téléphone. Par la suite nous avons la possibilité d’accéder à 2 menus : 1 Directories 2 Settings

Directories : Le menu Directories liste les appels reçus, les appels manqués et les appels passés. La configuration de ce menu n’est pas nécessaire pour le fonctionnement du téléphone.

Settings : C’est ici que l’on va renseigner les paramètres IP et SIP, réglages minimaux mais essentiel pour pouvoir téléphoner

Page 29: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Asterisk

Christopher Bourgeois 29 LP RMS Arnaud Carrein 2007/2008

- Pour préciser l’adresse IP du téléphone, il faut se placer dans le menu « 4 Network Configuration » et renseigner via le pavé numérique le champ « 5 IP Address » ainsi que le « 6 Subnet Mask ».

Application :

Adresse IP Masque

192.168.100.20 255.255.255.0

- Pour préciser les paramètres SIP, il faut accéder au menu « 5 SIP Configuration » et renseigner l’adresse IP du serveur (1 SIP Proxy), l’identifiant du compte SIP (2 User ID) et le mot de passe (3 Password). Application :

SIP Proxy User ID Password

192.169.100.11 Tel_ip Tel_ip

Après avoir vu la configuration du serveur ainsi que des différents clients utilisés comme X-Lite et Ekiga nous allons désormais simuler les utilisations que l’on peut réaliser avec une installation ToIP. Nous verrons une application restreinte qui permet de communiquer localement. Nous aborderons par la suite une utilisation étendue avec la mise en place du service freephonie. Pour finir un point orienté sur la sécurité sera étudié avec l’utilisation d’un firewall.

Page 30: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Applications

Christopher Bourgeois 30 LP RMS Arnaud Carrein 2007/2008

3. Applications

3.1. Architecture locale

Fig. 22 : architecture locale

La première maquette testée et validée fut une utilisation locale entre les différents softphones et téléphones IP. Cette installation permet de contacter via téléphones les différents participants connectés au réseau local situé par exemple dans une entreprise. Les softphones doivent être installé sur les postes ayant une adresse IP dans le même plan d’adressage du réseau, pour notre cas en 192.168.200.0/24. Les IP phones doivent aussi avoir une adresse IP dans ce plan d’adressage. C’est ainsi que cette technologie est très intéressante car elle s’installe sur un réseau déjà existant et ne nécessite que l’installation d’un serveur. Il n’y a pas besoin de revoir toute l’infrastructure afin de déployer une solution ToIP utilisant Asterisk. Nous avons aussi testé la messagerie vocale, le transfert d’appel et la conférence.

Page 31: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Applications

Christopher Bourgeois 31 LP RMS Arnaud Carrein 2007/2008

3.2. Architecture étendue

3.2.1. Freephonie

Fig. 23 : interconnexion freephonie

Afin de pouvoir passer des appels vers le RTC, l’utilisation d’un fournisseur SIP est une méthode de plus en plus utilisée. Nous avons choisi d’utiliser le service du fournisseur d’accés Free qui propose sur la freebox le service freephonie.net. Cette option est supplémentaire mais son activation n’est pas payante. Les appels émis sont facturés de la même manière que les appels normaux via la freebox. La freephonie nous a donc permit de faire le lien entre notre installation et le RTC et ainsi tester la compatibilité et valider son fonctionnement. Ce service va permettre la convergence entre la téléphonie classique (RTC), le réseau GSM et le réseau IP. Les utilisateurs présents sur le réseau local ont donc pu passer des appels vers l’extérieur. Il a suffit de connecter notre serveur Asterisk à Internet afin que celui-ci puisse accéder au serveur freephonie.net.

Page 32: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Applications

Christopher Bourgeois 32 LP RMS Arnaud Carrein 2007/2008

3.2.2. Sécurité : Avec Firewall

Pour simuler une situation en entreprise, nous avons réalisé notre maquette en y insérant un firewall réalisé avec une distribution Linux Ubuntu ; En effet de nos jours toutes les entreprises possédant un réseau local disposent aussi d’un accès à Internet, afin d’avoir à portée, toutes les informations nécessaires, et pouvoir communiquer avec l'extérieur. Cette ouverture vers l'extérieur est dangereuse. Ouvrir l'entreprise via Internet signifie aussi laisser l’accès aux étrangers qui essayent de pénétrer le réseau local de l'entreprise. Cette action est considérée comme une attaque et peut se définir comme ceci : « Accomplir des actions douteuses, parfois gratuites, de destruction, vol d'informations confidentielles… » Il a donc fallu mettre en place une architecture sécurisée pour parer à ces attaques. Pour cela, on utilise un firewall. Cet outil va essayer au maximum de sécuriser le réseau local de l'entreprise. Il va dans un premier temps, « filtrer » le trafic arrivant à partir d’internet sur le réseau local.

Fig. 24 : interconnexion avec un firewall

De plus, il peut permettre de restreindre l'accès interne vers l'extérieur. En plaçant un firewall limitant ou interdisant l'accès à des services, l'entreprise peut donc avoir un contrôle sur les activités se déroulant dans son enceinte. La politique par défaut de l’utilisation d’un firewall est de bloquer tout le trafic et autoriser seulement les protocoles et surtout les ports que l’on souhaite et sur des interfaces précises. Avant d’écrire les iptables qui vont nous servir à restreindre le trafic, il faut s’assurer qu’aucune ne soit déjà renseignée en vidant toutes les tables et supprimant les règles utilisateurs.

Réinitialisation des tables :

>iptables -F -t filter >iptables -F -t nat >iptables -X

Page 33: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Applications

Christopher Bourgeois 33 LP RMS Arnaud Carrein 2007/2008

Blocage de tout le trafic :

Pour notre maquette de test, nous avons voulu valider l’utilisation du port 5060 par le protocole SIP. Nous avons dans un premier temps bloqué tout le trafic entre notre réseau local et l’extérieur. Pour cela, on ignore tous les paquets transitant via le pare-feu. Il faut donc ignorer dans les 3 cas possible de traitement des paquets : INPUT : paquets entrant dans un processus local OUTPUT : paquets sortants d’un processus local FORWARD : paquets traversant la machine

>iptables -P INPUT DROP >iptables -P OUTPUT DROP >iptables -P FORWARD DROP

En affichant les tables de notre firewall via la commande iptables -L, nous visualisons bien que toutes les tables sont vides et que le trafic et bloqué (policy DROP).

Fig. 25 : visualisation des iptables avant les règles

En bloquant tout le trafic, même le ping (protocole ICMP) vers internet ne fonctionnait pas. Le test d’un appel vers l’extérieur était aussi négatif. En interne les appels fonctionnaient correctement vu que le firewall n’a pas à traiter ces paquets. Le serveur étant sur le réseau local l’échange s’effectuait localement.

Natage :

Nous avons aussi réalisé aussi une opération de translation d’adresse pour toutes les machines en 192.168.200.0 /24 qui traversent le firewall vers internet en sortant par eth0.

>iptables -t nat -A POSTROUTING -s 192.168.200.0 / 255.255.255.0 -o eth0 -j MASQUERADE

Ouvrir le port 5060 SIP: Pour terminer, nous avons ouvert le port 5060 et vérifié que les communications fonctionnaient. En effet, le protocole SIP fonctionnait correctement mais il a aussi fallu ouvrir une plage de port afin que le protocole RTP puisse transmettre la voix. Pour notre test nous avons ouvert une plage assez grande (10000 à 20000). En réalité, il faudrait restreindre cette plage pour ne pas avoir une faille importante dans notre pare-feu.

>iptables -A FORWARD -p udp --dport 5060 -j ACCEPT >iptables -A FORWARD -p udp --dport 10000 :20000 -j ACCEPT

Page 34: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Applications

Christopher Bourgeois 34 LP RMS Arnaud Carrein 2007/2008

Fig. 26 : visualisation des iptables après les règles

3.2.3. Interconnexion de serveurs

Fig. 27 : interconnexion de serveur Astersik

Cette interconnexion permet d’établir un lien entre deux sites différents possédant un serveur Asterisk. On pourrait penser à une entreprise constituées de plusieurs sites distants séparés et désirant communiquer entre eux. Les différents sites posséderaient un plan de numérotation différent, par exemple 5xxx pour le site A et 6xxx pour le site B. La communication entre les deux serveurs est assurée par le protocole IAX et permet une totale compatibilité.

Page 35: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Applications

Christopher Bourgeois 35 LP RMS Arnaud Carrein 2007/2008

3.3. Les difficultés rencontrées

Lors du déroulement du projet, nous avons rencontrés différentes difficultés. La première fut au niveau des fichiers de configuration car il a fallu comprendre comment les fichiers étaient structurés et liés les uns aux autres. Il a fallu s’adapter au langage utilisé par Asterisk pour comprendre la politique utilisée et l’appliquer par la suite. Un autre problème est intervenu lors de l’utilisation de la carte FXO/FXS plus particulièrement pour le module FXO servant à nous relier au Réseau Téléphonique Commuté. Nous avons suivi les procédures de configuration de la carte mais n’avons pas pu valider cette étape. Par contre le module FXS permettant de relier le téléphone analogique à bien fonctionnait. Sachant que la ligne passe par l’intermédiaire du PABX de l’IUT, nous pensons que le fonctionnement du module peut –être compromis par cette architecture. Une autre étape du projet fut le test de la compatibilité avec des téléphones IP Cisco. Nous avons rencontré un problème lors la configuration de ceux-ci. En effet les téléphones étaient verrouillés par l’utilisateur précédent (mot de passe). Il a fallu chercher une procédure afin de le déverrouiller et pouvoir le configurer. La dernière difficulté rencontrée fut l’utilisation des voix enregistrées pour la mise en place du standard automatique. L’enregistrement fonctionnait mais nous n’arrivions pas à les utiliser dans le déroulement de ce processus.

Page 36: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Conclusion

Christopher Bourgeois 36 LP RMS Arnaud Carrein 2007/2008

Conclusion Ce projet tuteuré traitant d’une technique de communication qui va être où qui est désormais dominante sur le marché nous aura été parfaitement bénéfique. La réalisation de cet exposé sera venue compléter précisément la formation de la licence sur le plan technique. Au niveau humain, le travail en binôme et l’adaptation mutuelle ne peut être que profitable. L’utilisation finale d’une architecture de téléphonie sur IP passe par certaines étapes principales à valider comme le choix du ou des serveurs ainsi que des clients. Nous avons durant ce projet, installé, configuré et utilisé un serveur de téléphonie Asterisk. Nous avons aussi testé les services qu’il offrait comme la messagerie, le transfert d’appel et validé sa compatibilité avec d’autres matériels (softphones et téléphones IP) et services (freephonie). L’étude du principe de conversion de la voix nous a permit de mieux cerner cette technologie et comprendre comment elle pouvait fonctionner sur un réseau de type IP. Ayant fait cela, nous nous sommes penché sur les protocoles utilisés comme SIP et RTP qui ne sont pas excessivement compliqué mais très performant et quasi incontournables dans ces architectures. L’utilisation d’un serveur Asterisk, de softphones gratuit et en libre téléchargement sur internet, ainsi que du service freephonie.net a rendu totalement gratuite la structure ToIP mise en place et donc répondu au cahier des charges. Le serveur de téléphonie AsteriskNow aura répondu positivement au test que l’on a réalisé. L’interface graphique qui permet de gérer les fichiers de configuration ainsi que les différents services est plaisante et très intuitive. La répartition des tâches durant l’année aura été un moyen de se responsabiliser mais a aussi impliqué d’avoir une certaine autonomie pour le bon déroulement du projet et sa réalisation finale. La demande d’informations autour de nous, que ce soit au sein de l’iut ou via un forum sur internet, nous a permit de communiquer et ainsi découvrir de nouvelles notions à propos de cette technologie. Tout au long de l’année, des professionnels via leur témoignage nous ont confirmé qu’aujourd’hui de plus en plus d’entreprises migrent vers des solutions ToIP afin de limiter l’investissement financier et faciliter l’administration. Ayant réalisé ce projet, nous avons maintenant un savoir faire intéressant à ce niveau et, sommes capables pourquoi pas, de proposer dans notre future société une solution de téléphonie sur IP fiable et quasi gratuite.

Page 37: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Bibliographie

Christopher Bourgeois 37 LP RMS Arnaud Carrein 2007/2008

Bibliographie Sites WEB :

Site WEB Asterisk : http://www.asterisk.org/

Site WEB AsteriskNOW : http://www.asterisknow.org/

Site WEB Asterisk GURU : http://www.asteriskguru.com/tutorials/

Forum Asterisk : http://www.asterisk-france.net/community/

Site WEB Digium : http://www.digium.com/en/

Site WEB VOip :http://www.voip-info.org/wiki/index.php?page=Asterisk

Site WEB Freephonie : http://www.freephonie.org/portal.php

Site WEB O’Reilly Asterisk : http://fr.calameo.com/books/000002056c09824404ae9

Site WEB des RFC : http://www.ietf.org/rfc/

Sites WEB documentation IP Phone Cisco 7912 http://www.cisco.com/web/FR/documents/pdfs/datasheet/iptel/FP_7912G_fr.pdf

Documentations:

LINUX MAGAZINE / FRANCE N° 90 p.34 Janvier 2007

IPT Theory, Julien Martinez, Airbus France

Page 38: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 38 LP RMS Arnaud Carrein 2007/2008

Rapport d’annexes

Annexe I 39 Annexe II 40 Annexe III 43

Annexe IV 46

Page 39: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 39 LP RMS Arnaud Carrein 2007/2008

Annexe I

Manipulation de l’IP Phone Cisco 792

Procédure pour réinitialiser la configuration de l’IP Phone : - Appuyer sur le bouton « menu ». - Aller dans le menu « Settings », et appuyer sur la touche « select ». - Appuyer sur **2. Le téléphone va afficher:

"Do you want to reset all system settings to default values?" - Appuyer sur la touche « yes ».

Procédure pour déverrouiller le téléphone IP : - Appuyer sur **# afin de rentrer le mot de passe.

Procédure pour rebooter le téléphone : - Appuyer sur **#** et appuyer sur « yes » suite au message affiché.

Page 40: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 40 LP RMS Arnaud Carrein 2007/2008

Annexe II

Procédure de configuration du standard automatique : Le serveur Asterisk présente une fonctionnalité très appréciée des entreprises. Il s’agit du « Menu Vocal Interactif » en anglais « Interactive Voice Response ». Il s’agit d’un standard automatique qui permet à l’appelant de choisir et de s’orienter vers le service qu’il désire. Ceci est pratique dans des grandes entreprises avec différents services. Nous avons donc testé cette fonctionnalité en

décomposant comme présenté ci-dessous :

Fig. 28 : description standard automatique

Lors de l’appel du numéro, un 1er message vocal est diffusé, il s’agit du Message Vocal de Bienvenue. Il accueille les personnes et introduit un autre message qui va permettre de choisir le service vers lequel on veut s’orienter (Message Vocal de choix des services). Ce message annonce donc qu’en tapant la touche 1 ,2 ou 3 l’utilisateur va être respectivement dirigé vers le service Comptabilité, le service Informatique et pour finir au service Production. Selon la touche pressée, l’utilisateur va être orienté vers le poste 5555, 5545, 5556. Dans un premier temps, nous avons enregistré des messages vocaux afin de réaliser notre standard. Le premier message vocal souhaite la bienvenue sur notre serveur Asterisk. Le second message indique à l’utilisateur sur quelles touches appuyer pour être dirigé vers le service souhaité. Pour enregistrer les messages vocaux, nous pouvons choisir le téléphone dans lequel nous allons parler. Pour cela, et comme le montre l’image ci-dessous, il faut dans un premier temps renseigner le nom du fichier que nous voulons enregistrer. Par la suite, dans la partie « Extension used for recording », nous pouvons choisir l’extension (numéro de téléphone) sur lequel nous allons enregistrer le message. En cliquant sur « Record », le téléphone ayant pour numéro 5545 va sonner et lorsque l’on va décrocher, une voix va nous demander d’enregistrer notre message après un bip et raccrocher à la fin de notre annonce.

Fig. 29 : enregistrement d’un fichier audio

Page 41: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 41 LP RMS Arnaud Carrein 2007/2008

Les fichiers audio enregistrés sont stockés dans un répertoire du serveur Asterisk : var/lib/asterisk/sounds/record et sont au format gsm. Dans la partie VoiceMenu, nous visualisons la liste des messages vocaux enregistré, avec la possibilité de les enregistrer à nouveau (Record Again), de les écouter (Play) ou les supprimer (Delete). Pour réécouter un message au préalable enregistré, il faut donc appuyer sur le bouton « Play ». Une fenêtre va apparaitre et demander de renseigner l’extension du poste téléphonique où l’on veut écouter le message. On peut donc choisir n’importe quel téléphone, par exemple en renseignant l’extension 5557, le téléphone ayant le numéro 5557 sonnera et nous pourrons écouter la voix enregistrée.

Fig. 30 : visualisation des fichiers enregistrés

Comme nous l’avons vu au début de cette partie, nous avons réalisé 2 menus vocaux, le

premier souhaitant la bienvenue et le second orientant vers les différents services. Nous avons créé le premier menu vocal « 1Standard » via le bouton New en bas à gauche de la fenêtre. L’Extension à renseigner va être le numéro que l’utilisateur composera pour tomber sur le standard. Dans notre cas, nous avons choisi l’extension 5500. Pour préciser les actions à réaliser par le serveur, il faut sélectionner une étape dans le menu déroulant « Add a new step ». Nous pouvons rajouter autant d’étape que nous le désirons. On va donc décrire un algorithme linéaire. Les étapes se réaliseront les unes à la suite des autres avec possibilité de saut conditionnel. Dans ce cas, la condition pour passer à une autre étape, est l’appui sur une touche du téléphone. On renseigne les conditions dans la partie « Keypress Events » en choisissant l’action à réaliser dans le menu déroulant en face chaque touche. Le déroulement du menu vocal « 1Standard » se passe comme ceci :

- Lecture du fichier audio « bienvenue.gsm » précédemment enregistré. - Attendre 1 seconde - Aller au menu « 2Choix »

Fig. 31 : configuration du menu vocal 1

Page 42: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 42 LP RMS Arnaud Carrein 2007/2008

Le second menu vocal « 2 Choix » va permettre à l’utilisateur d’être orienté vers le service qu’il désire. Il se déroule comme ceci :

- Lecture du fichier audio « choix.gsm » qui propose de taper 1 ,2 ou 3. - Lecture du fichier audio « music.gsm » qui joue le rôle de musique d’attente. - Attente d’un chiffre tapé au clavier pendant 10 secondes à partir du moment où le

fichier music.gsm démarre.

Dans la partie « Keypress Events », nous avons paramétré les numéros afin d’être orienté correctement. En effet la touche 1 orientera vers le 5555, la 2 vers le 5545 et la 3 vers le 5556. Pour toutes les autres touches appuyées, un message d’erreur sera diffusé pour annoncer que la touche pressée n’est pas correcte et invite à recommencer. Nous remarquons que dans la partie Extension en haut à droite nous n’avons rien rempli vu que le menu « 2Choix » est un sous-menu et que l’on y accède seulement en étant passé par le premier menu vocal (1Standard).

Fig. 32 : configuration du menu vocal 2

Page 43: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 43 LP RMS Arnaud Carrein 2007/2008

Annexe III

Procédure de configuration du protocole IAX : Sécurité de l'authentification Le protocole IAX permet 3 types de mots de passe pour l'authentification des clients / serveurs Il n'est pas possible de crypter les données transmises via le protocole IAX, seul l'authentification permet plusieurs types de mots de passes plus ou moins sécurisés.

- Plain text Cette méthode est déconseillée, car les mots de passe sont écrits en clair dans les fichiers de configuration.

- MD5 Les mots de passe sont écrits cryptés à l'aide de la méthode MD5 dans les fichiers de configurations, donc difficilement décryptables (difficile mais pas impossible)

- RSA L'authentification RSA utilise deux clés partagées, une clé publique ainsi qu'une clé privée

Configuration des paramètres IAX sur chaque serveur La configuration des paramètres IAX se fait dans le fichier iax.conf se trouvant dans le répertoire /etc/asterisk/ Sur chaque serveur nous allons configurer un utilisateur IAX qui servira à l'authentification avec le serveur opposé. Explication des paramètres utilisés pour configurer les utilisateurs IAX [VOIP1] et [VOIP2] Le nom d'utilisateur utilisé dans le fichier extensions.conf pour créer le "dialplan" est écris entre crochet "*…+" type= Avec les comptes SIP ou IAX il existe trois sortes d'utilisateurs

- peer Pour désigner un utilisateur qui pourra s'authentifier que vers un autre serveur - user Pour désigné un utilisateur qui pourra être authentifié que depuis un autre serveur ou

téléphone compatible IAX - friend Un utilisateur qui pourra être authentifié vers ou depuis un autre serveur Dans notre cas nous allons créer un utilisateur de type "friend" se qui nous permettra de configurer qu'un seul utilisateur par serveur En général les comptes de type "user" ou "peer" ne sont utilisé que pour les liens mono directionnels

host= Le paramètre host désigne l'adresse IP ou le nom de domaine de l'utilisateur distant, ce qui permet de s'authentifier vers le serveur opposé. Nous pouvons aussi mettre host=dynamic dans le cas ou on ne connaît pas l'adresse du serveur distant, mais dans ce cas l'utilisateur distant devra s'authentifier vers notre serveur. En cas d'utilisation d'un nom de domaine mis a jour dynamiquement comme dyndns.org il faudra modifier le fichier dnsmgr.conf pour qu'Asterisk vérifie les entrées DNS du serveur distant à intervalles réguliers. Définition du type d'authentification. Lorsque nous utilisons une clé partagée de type RSA

- auth=rsa - inkey=clés publiques distantes - outkey=clé privé locale

Lorsque nous utilisons un mot de passe de type MD5 - username= nom d'utilisateur - md5secret= mot de passe crypter en MD5

Lorsque nous utilisons un mot de passe de type "plain text" - username= nom d'utilisateur - secret= mot de passe non crypté

Page 44: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 44 LP RMS Arnaud Carrein 2007/2008

context= Défini le contexte dans lequel les appels distants arrivent trunk= Le paramètre trunk défini si nous voulons créer un "trunk" avec le serveur distant Un "trunk" est une façon de limiter la bande passante utilisée par le protocole IAX vers un serveur distant. Si vous avez 10 communications IAX simultanées vers le même serveur avec le protocole Ulaw, le total de bande passante ne sera pas 10 X 64Kb/s. En effet, le trunk va permettre de regrouper les paquets tcp pour consommer moins de bande passante qualify= Le paramètre qualify=yes ou qualify=<milisecondes> permet de savoir si le serveur distant est toujours joignable. Par défaut Asterisk envoie des requêtes ping toutes les 2000ms pour savoir si le serveur distant répond. Se paramètres permet aussi à certaines applications de gestion d'Asterisk de savoir si le lien est connecté ou mort Configuration du fichier iax.conf pour le serveur voip1.domaine.com [VOIP2] type=friend host=voip2.domaine.com auth=rsa inkey=voip1 outkey=voip2 context=FROM_VOIP2 qualify=yes trunk=yes Configuration du fichier iax.conf pour le serveur voip2.domaine.com [VOIP1] type=friend host=voip1.domaine.com auth=rsa inkey=voip2 outkey=voip1 context=FROM_VOIP1 qualify=yes trunk=yes Configuration du "dialplan" dans le fichier extensions.conf Nous allons configurer le dialplan de chaque serveur Asterisk pour que les appels passent d'un serveur à l'autre.

Définition du "diaplan" pour les appels entrants. Dans les fichiers de configuration iax.conf nous avons définit le context pour les appels entrants depuis l'autre serveur. Nous devons créer le même context dans le fichier extensions.conf Exemple pour le "dialplan" du serveur voip1.domaine.com: [FROM_VOIP2] include => VOIP1 [VOIP1] exten => 1XX,1,Dial(${EXTEN}) ; notre context local Exemple pour le "dialplan" du serveur voip2.domaine.com: [FROM_VOIP1] include => VOIP2 [VOIP2] exten => 2XX,1,Dial(${EXTEN}) ; notre context local

Page 45: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 45 LP RMS Arnaud Carrein 2007/2008

Définition du "diaplan" pour les appels sortants. Pour configurer les appels sortants nous allons simplement créer une extension qui inclut toutes les extensions qui se trouve sur le serveur opposé. Nous allons passer le protocole IAX2 ainsi que l'utilisateur IAX à la commande Dial. Exemple pour le "dialplan" du serveur voip1.domaine.com: [FROM_VOIP2] include => VOIP1 [VOIP1] exten => 1XX,1,Dial(${EXTEN}) ; notre context local exten => 2XX,1,Dial(IAX2/VOIP2/${EXTEN}) Exemple pour le "dialplan" du serveur voip2.domaine.com: [FROM_VOIP1] include => VOIP2 [VOIP2] exten => 2XX,1,Dial(${EXTEN}) ; notre context local exten => 1XX,1,Dial(IAX2/VOIP1/${EXTEN})

Page 46: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 46 LP RMS Arnaud Carrein 2007/2008

Annexe IV

Extensions.conf

[general] static=yes

writeprotect=no

clearglobalvars=no

[globals] CONSOLE=Console/dsp

IAXINFO=guest

TRUNK=Zap/g2

TRUNKMSD=1

[dundi-e164-canonical]

[dundi-e164-customers]

[dundi-e164-via-pstn]

[dundi-e164-local] include=dundi-e164-canonical

include=dundi-e164-customers

include=dundi-e164-via-pstn

[dundi-e164-switch] switch=DUNDi/e164

[dundi-e164-lookup] include=dundi-e164-local

include=dundi-e164-switch

[macro-dundi-e164] exten=s,1,Goto(${ARG1},1)

include=dundi-e164-lookup

[iaxtel700] exten=_91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@

iaxtel)

[iaxprovider]

[trunkint] exten=_9011.,1,Macro(dundi-e164,${EXTEN:4})

exten=_9011.,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[trunkld] exten=_91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})

exten=_91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[trunklocal] exten=_9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[trunktollfree] exten=_91800NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

exten=_91888NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

exten=_91877NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

exten=_91866NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[international] ignorepat=9

include=longdistance

include=trunkint

[longdistance] ignorepat=9

include=local

include=trunkld

[local] ignorepat=9

include=default

Page 47: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 47 LP RMS Arnaud Carrein 2007/2008

include=trunklocal

include=iaxtel700

include=trunktollfree

include=iaxprovider

include=parkedcalls

[macro-trunkdial] exten=s,1,Dial(${ARG1})

exten=s,n,Goto(s-${DIALSTATUS},1)

exten=s-NOANSWER,1,Hangup

exten=s-BUSY,1,Hangup

exten=_s-.,1,NoOp

[macro-stdexten] exten=s,1,Dial(${ARG2},20)

exten=s,2,Goto(s-${DIALSTATUS},1)

exten=s-NOANSWER,1,Voicemail(${ARG1},u)

exten=s-NOANSWER,2,Goto(default,s,1)

exten=s-BUSY,1,Voicemail(${ARG1},b)

exten=s-BUSY,2,Goto(default,s,1)

exten=_s-.,1,Goto(s-NOANSWER,1)

exten=a,1,VoicemailMain(${ARG1})

[macro-stdPrivacyexten] exten=s,1,Dial(${ARG2},20|p)

exten=s,2,Goto(s-${DIALSTATUS},1)

exten=s-NOANSWER,1,Voicemail(${ARG1},u)

exten=s-NOANSWER,2,Goto(default,s,1)

exten=s-BUSY,1,Voicemail(${ARG1},b)

exten=s-BUSY,2,Goto(default,s,1)

exten=s-DONTCALL,1,Goto(${ARG3},s,1)

exten=s-TORTURE,1,Goto(${ARG4},s,1)

exten=_s-.,1,Goto(s-NOANSWER,1)

exten=a,1,VoicemailMain(${ARG1})

[macro-page] exten=s,1,ChanIsAvail(${ARG1}|js)

exten=s,n,GoToIf([${AVAILSTATUS} = "1"]?autoanswer:fail)

exten=s,n(autoanswer),Set(_ALERT_INFO="RA")

exten=s,n,SIPAddHeader(Call-Info: Answer-After=0)

exten=s,n,NoOp()

exten=s,n,Dial(${ARG1}||)

exten=s,n(fail),Hangup

[page] exten=_X.,1,Macro(page,SIP/${EXTEN})

[numberplan-custom-1] plancomment=DialPlan1

include=default

exten=_91XXXXXXXXXX.,1,Macro(trunkdial,${}/${EXTEN:1})

comment=_91XXXXXXXXXX.,1,Longdistance,standard

exten=_91700XXXXXXX.,1,Macro(trunkdial,${}/${EXTEN:1})

comment=_91700XXXXXXX.,1,IAXTEL,standard

exten=_9256XXXXXXX.,1,Macro(trunkdial,${}/${EXTEN:4})

comment=_9256XXXXXXX.,1,Local,standard

exten=_9011XXXXXXX.,1,Macro(trunkdial,${}/${EXTEN:1})

comment=_9011XXXXXXX.,1,International,standard

exten=_9XXXXXXX.,1,Macro(trunkdial,${}/${EXTEN:1})

comment=_9XXXXXXX.,1,Local,standard

exten=_911.,1,Macro(trunkdial,${}/${EXTEN:0})

comment=_911.,1,911,standard

[asterisk_guitools] exten=executecommand,1,System(${command})

exten=executecommand,n,Hangup()

exten=record_vmenu,1,Answer

exten=record_vmenu,n,Playback(vm-intro)

Page 48: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 48 LP RMS Arnaud Carrein 2007/2008

exten=record_vmenu,n,Record(${var1})

exten=record_vmenu,n,Playback(vm-saved)

exten=record_vmenu,n,Playback(vm-goodbye)

exten=record_vmenu,n,Hangup

exten=play_file,1,Answer

exten=play_file,n,Playback(${var1})

exten=play_file,n,Hangup

hasbeensetup=Y

[fournisseursip-entrant] exten=s,1,Dial(SIP/chris&SIP/bubu&SIP/arno)

[timebasedrules]

[voicemenu-custom-3] comment=2Choix

alias_exten=

exten=s,1,Background(/var/lib/asterisk/sounds/record/choix)

exten=0,1,Playback(invalid)

exten=1,1,Goto(default|5555|1)

exten=2,1,Goto(default|5545|1)

exten=3,1,Goto(default|5556|1)

exten=4,1,Playback(invalid)

exten=5,1,Playback(invalid)

exten=6,1,Playback(invalid)

exten=7,1,Playback(invalid)

exten=8,1,Playback(invalid)

exten=9,1,Playback(invalid)

exten=*,1,Hangup

exten=#,1,Playback(invalid)

exten=t,1,Playback(invalid)

exten=

exten=s,n,Background(/var/lib/asterisk/sounds/record/music)

exten=s,n,WaitExten(10)

exten=s,n,Wait(10)

[default] exten=8500,1,VoicemailMain

exten=8500,n,Hangup

include=voicemenu-custom-1

exten=5555,1,Dial(SIP/chris,,tT)

exten=5555,2,Voicemail(b5555)

exten=5556,1,Dial(SIP/arno,,tT)

exten=5556,2,Voicemail(b5556)

exten=5557,1,Dial(SIP/bubu,,tT)

exten=5557,2,Voicemail(b5557)

exten=5559,1,Dial(SIP/loic,,tT)

exten=5559,2,Voicemail(b5559)

exten=5570,1,Dial(SIP/philjfry,,tT)

exten=5570,2,Voicemail(b5570)

exten=5545,1,Dial(SIP/tel_ip,,tT)

include=parkedcalls

exten=_9.,1,Dial(SIP/freephonie-out/${EXTEN:1})

exten=5500,1,Goto(voicemenu-custom-2|s|1)

[FROM_VOIP2] include=VOIP1

[VOIP1] exten=5XXX,1,Dial(${EXTEN})

[voicemenu-custom-2] comment=1Standard

alias_exten=5500

exten=s,1,Background(/var/lib/asterisk/sounds/record/bienvenue)

exten=s,n,Wait(1)

exten=s,n,Goto(voicemenu-custom-3|s|1)

Page 49: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 49 LP RMS Arnaud Carrein 2007/2008

SIP.conf

[authentication]

[arno] type=friend

host=dynamic

username=arno

secret=arno1

disallow=all

allow=ulaw

[chris] type=friend

host=dynamic

username=chris

secret=chris1

disallow=all

allow=ulaw

nat=yes

[loic] type=friend

host=dynamic

username=loic

secret=geek

disallow=all

allow=ulaw

nat=yes

[general] context=default

allowoverlap=no

bindport=5060

bindaddr=0.0.0.0

srvlookup=yes

defaultexpirey=1800

dtmfmode=auto

qualify=yes

disallow=all

allow=ulaw

allow=speex

register=0954314317:[email protected]

[freephonie-out] type=peer

host=freephonie.net

Page 50: Projet Tutore

ToIP : Installation d’un serveur de téléphonie Asterisk Rapport d’annexes

Christopher Bourgeois 50 LP RMS Arnaud Carrein 2007/2008

username=0954314317

fromuser=0954314317

secret=1234567890

nat=yes

[tel_ip] type=friend

host=dynamic

username=tel_ip

secret=tel_ip

disallow=all

allow=ulaw