Вы находитесь на странице: 1из 21

HEB-ESI 1

Rapport VOIP

Rapport du laboratoire VOIP

Passerelle PSTN via Hardware

Benhammadi Wiam et Jarradia Nizar


3éme R (11) 2008
HEB-ESI 2

Rapport VOIP

Sommaire
1- Introduction .............................................................................................................................................................. 3
2- Installation Trixbox.................................................................................................................................................... 3
2.1 La distribution Trixbox ...................................................................................................................................... 3
2.2 Pré-requis à l'installation .................................................................................................................................. 3
2.3 Configuration du réseau ................................................................................................................................... 5
3- Prise de connaissance du matériel............................................................................................................................ 5
3.1 Petite explication sur la syntaxe des cartes TDM ............................................................................................. 5
3.2 Explication sur FXO/FXS .................................................................................................................................... 5
3.3 Pré requis .......................................................................................................................................................... 5
3.4 Installation du module Zaptel ........................................................................................................................... 6
3.5 Problèmes rencontrés : ..................................................................................................................................... 7
4- La console Asterisk .................................................................................................................................................... 7
4.1 Connexion : ....................................................................................................................................................... 7
4.2 Commandes principales : .................................................................................................................................. 7
4.3 Prise en compte de nouvelles configurations : ................................................................................................. 7
5- Configuration Manuelle (en ligne de commande) .................................................................................................... 8
5.1 Création des comptes utilisateurs : .................................................................................................................. 8
5.2 Création du DialPlan.......................................................................................................................................... 8
5.3 La configuration du matériel téléphonique installé.......................................................................................... 9
6- Configuration d’ Asterisk via sa plate-forme web : ................................................................................................. 10
6.1 Installation des modules FreePBX ................................................................................................................... 10
6.2 Création des comptes utilisateurs : ................................................................................................................ 11
6.3 Configuration des trunks................................................................................................................................. 13
6.4 Etablissement d'une route de sortie (outbound route).................................................................................. 14
6.5 Listing des fichiers de configuration par interface graphic ............................................................................. 15
7- Outils de test de notre configuration...................................................................................................................... 17
8- Résultat ................................................................................................................................................................... 19
Toutes les possibilités d'appels ont fonctionnés : .......................................................................................................... 19
9- Manipulations sur une autre distribution ............................................................................................................... 19
9.1 Installation asterisk ......................................................................................................................................... 19
9.2 Création des comptes utilisateurs : ................................................................................................................ 20
9.3 Création du DialPlan........................................................................................................................................ 20
9.4 Problème rencontré ........................................................................................................................................ 20
10- Références .......................................................................................................................................................... 21
HEB-ESI 3

Rapport VOIP

1- Introduction
Trixbox : C'est une distribution GNU/Linux basée sur Cent OS . Elle integre asterisk , webmin ,
sendmail , freepbx.

Asterisk : Il permet de mettre en place un PBX ( Private Branch eXchange ), c'est un serveur Voip
( Voix Ip ).

Webmin : Est un outil qui permet d’administrer à distance et de manière plus intuitive le serveur sur lequel il
est mis en place et ce via une interface web.

Freepbx : Est un outil integrer dans trixbox, c'est une interface web utilisant le port 80 qui permet
de configurer à distance et de manière plus intuitive les configuration du serveur Asterisk.

Schéma d’architecture de notre projet :

2- Installation Trixbox
2.1 La distribution Trixbox
Comme dit plus haut, Trixbox anciennement appelé "Asterisk@Home" est une distribution Linux CentOS qui
fournit un package de téléphonie open source basé sur le fameux PBX Voix-sur-IP Asterisk.

L'installation est automatique. Il suffit de mettre le CD dans le lecteur et Trixbox s'installera tout seul sur
l’intégralité du disque dur. Une fois l'installation terminé, il rebootera et sera directement utilisable.

2.2 Pré-requis à l'installation

• Vérifiez que votre PC démarrera à partir du CD (dans le BIOS, ordre de chargement)


• Démarrez votre PC trixbox avec le CD dans le lecteur et appuyez sur entrée. L'écran suivant
apparaît quelques instants plus tard. Pressez F2 pour voir les différentes options. Toutefois ce n'est
pas vraiment nécessaire. Pressez [entrée] pour commencer l'installation.
HEB-ESI 4

Rapport VOIP

• On vous demande de choisir la configuration clavier que vous utilisez. Utilisez les flèches pour
sélectionner le type de clavier choisi et utilisez la touche tabulation pour sélectionner OK ou Back.
Sélectionnez be and validez sur OK en appuyant sur [entrée].
• On vous demande ensuite de choisir votre fuseau horaire.
• Ensuite on vous demande d'entrer un mot de passe root. Il sert à administrer notre système.
Login : root
Passwd : system504
• L'installation commence dès la confirmation du mot de passe en formatant les disques durs.
Comptez 30 min à 1h pour une installation complète et configurable.
A la fin de l'installation, le CD est éjecté.

• Après le redémarrage, vous êtes devant cet écran

• Après un moment, le démarrage continue et une liste de lignes de code apparaît. Ça peut prendre un
moment : c'est la compilation d'Asterisk qui se fait. (seulement au premier démarrage)
• Quand la compilation d'Asterisk est terminée, ça redémarre tout seul. Une fois redémarré, trixbox
est prêt pour la suite de la configuration et à effectuer les changements du système par défaut.
HEB-ESI 5

Rapport VOIP

2.3 Configuration du réseau

Dans console taper : netconfig puis remplir les champs

IP address (Adresse IP): 192.168.210.3


Netmask (Masque de sous-réseau): 255.255.192.1
Default gateway (IP) (Passerelle par défaut): 192.168.192.1
Primary nameserver (serveur de nom primaire): 152.158.16.48

ou manuellement :

ifconfig eth0 192.168.210.3 netmask 255.255.192.0


route add default gw 192.168.192.1
route -n
vi /etc/resolv.conf // pour ajouter DNS

3- Prise de connaissance du matériel

3.1 Petite explication sur la syntaxe des cartes TDM

Le fabricant de ce type de carte est digium, la société qui développe Asterisk. Ce sont des cartes TDM400P,
modulables, c'est à dire que l'on peut y ajouter des modules FXO/FXS.

3.2 Explication sur FXO/FXS

FXS (Foreign eXchange Subscriber) est un port qui raccorde la ligne téléphonique de l’abonné. En d’autres
termes, la « prise murale » (la fiche 31 du labo 504) qui fournit la tonalité, le courant de charge et le voltage de
la sonnerie.

FXO (l’interface Foreign eXchange Office ) est un port qui reçoit la ligne téléphonique. C’est la prise de notre
réseau téléphonique analogue.

Le FXO et le FXS vont toujours de paire – similaire à la prise mâle et femelle.

3.3 Pré requis

On dispose à ce stade d'un ordinateur qui fonctionne, avec une distribution linux installée (trixbox), et asterisk
installé non configuré.
HEB-ESI 6

Rapport VOIP

Figure 1 : Une carte TDM400P wildcard à 4 ports. Deux ports sont utilisés (un FXO et un FXS), les
deux autres restant libres pour une utilisation ultérieure.

3.4 Installation du module Zaptel

Sous trixbox, l’équivalent à APT est YUM avec lequel nous avons pu récupérer et installer le module
zaptel.
Yum install zaptel-modules*.EL
Yum install oslec-modules*.EL
ztcfg –vv // afficher la config des canaux de la carte tdm400)(échec la premiere fois)
genzaptelconf //Permet de décharger les modules utilisés par astrisk et reconfigurer)
ztcfg –vv

Si problème de dépendances avec zaptel, aller chercher un script sur le site de trixbox et lancez le :
Wget http://yum.trixbox.org/fix/fix-zaptel.sh
./fix-zaptel.sh //(chmod+x requis)

Résultat après ztcfg –vv :


Channel map: Zaptel Configuration
======================
Channel map:

Channel 02: FXO Kewlstart (Default) (Slaves: 02)


Channel 04: FXS Kewlstart (Default) (Slaves: 04)
2 channels configured.
HEB-ESI 7

Rapport VOIP

3.5 Problèmes rencontrés :


Compilation du module zaptel :

Quand le module zaptel n'est pas bien compilé, on peut avoir les erreurs suivantes :
# ztcfg
Notice: Configuration file is /etc/zaptel.conf
line 0: Unable to open master device '/dev/zap/ctl'
line 0: Unable to open configuration file '/etc/zaptel.conf'
2 error(s) detected
_ __ ___ ____ ___ ___ ___ ___ __ __ __ __
server-asterisk:/etc# zttool
Unable to open /dev/zap/ctl: No such device or address

4- La console Asterisk
4.1 Connexion :

asterisk -rc
– options supplémentaires
• -v niveau dedebug (plusieurs spécifiables)
• -n texte seulement

4.2 Commandes principales :

Commande Description
Help et help commande aideinterne
sip show peers voir les téléphones et fournisseurs SIP

sip show registry voir les enregistrements à des fournisseurs SIP


stop now arrêt (voir aussi help stop pour les variantes)
show channels voir les communications en cours
show channel XXXX Détails sur un canal donné
zap show channels Canaux Zaptel
pri show span 1 Détails sur un canal Zaptel (ISDN)donné
show codecs voir les numérosde codecs

show dialplan voir les différents contexteset extensions

4.3 Prise en compte de nouvelles configurations :

Commande Description
reload Reconfiguration globale
reload CONFIG Reconfiguration d’une configuration
particulière
sip reload Reconfiguration SIP
HEB-ESI 8

Rapport VOIP

5- Configuration Manuelle (en ligne de commande)

Les différents fichiers de configuration d'Asterisk se trouvent dans le dossier /etc/asterisk :


• extensions.conf
Permet d’associer à chaque numéro de téléphone une suite de commandes.
• sip.conf
Répertorie de tous les utilisateurs pouvant se connecter au serveur Asterisk via un soft
phone ou un hard phone via le protocole SIP
• zapata.conf :
Sert à spécifier à Asterisk les paramètres et la configuration du matériel téléfonique installé (ici notre
carte tdm410).

Pour éditez l'un de ces fichiers il suffit de tapez la commande :


vi /etc/asterisk/<nomdufichier>.conf

5.1 Création des comptes utilisateurs :

Il faut éditez le fichier sip.conf et y ajoutez tous les utilisateurs.


Pour déclarer nos deux utilisteurs, il faut simplement ajouter les lignes suivantes à la fin de ce fichier :
[wiam] ; nom du téléphone
type=friend ; type de téléphone
host=dynamic ;
username=wiam ; nom d’utilisateur associé
secret=1234 ; mot de passe
context= interne ; permet de recevoir des appels entrants
disallow=all ; interdit tous les codecs
allow=ulaw ; autorise uniquement le codec G711 loi µ

[nizar] ; nom du téléphone


type=friend ; type de téléphone
host=dynamic ;
username=nizar ; nom d’utilisateur associé
secret=1234 ; mot de passe
context=interne ; permet de recevoir des appels entrants
disallow=all ; interdit tous les codecs
allow=ulaw ; autorise uniquement le codec G711 loi µ

Rem : Il existe trois types de comptes dans Asterisk :


• peer : Compte permettant uniquement d'appeler
• user : Compte permettant d'être appeler uniquement
• friend : Compte permettant d'appeler et d'être appeler

5.2 Création du DialPlan

Principe de fonctionnement :
Quand un utilisateur fait appel, il se connecte d'abord à Asterisk. Asterisk regarde dans un premier temps le
context de cet utilisateur appelant, ensuite il regarde le n° d'extention appelé et son « context ». Puis va voir
dans le fichier /etc/asterisk/extensions.conf si le n° appelé est bien disponible depuis le context de l'appelant. Il
va ensuite voir au context approprié et executer ce qu'il y a écrit pour l'extension qui est appelé.
HEB-ESI 9

Rapport VOIP

Exemple :

Il faut donc éditez le fichier extensions.conf ( vi /etc/asterisk/extensions.conf) et y ajouter les lignes suivantes :
[interne ]
exten => 101,1,Dial(SIP/wiam) ;101 appelle le téléphone wiam
exten => 102,1,Dial(SIP/nizar) ;102 appelle le téléphone nizar

Cette zone « interne », définit plusieurs choses :


Dans un premier temps, lorsqu'un appel arrive sur wiam, on le redirige vers le numero interne 101, priorité 1.
Même principe pour un appel qui arrive sur nizar.

Pour le téléphone analogique il suffit de rajouter la ligne suivante à ce même fichier.


exten => 100,1,Dial(Zap/2)

On spécifie ici que l’on redirige les appels du numéro 100 vers le channel 2 de la carte Zaptel.

5.3 La configuration du matériel téléphonique installé

Zapata se charge de controler les diverses fonctionnalité associées au canal matériel telles que la
présentation du matériel, la mise en attente d'appels, la suppression d'echo.

A chaque modification du fichier zapata.conf il faut faire un reload dans la console Asterisk
;;;;;;[100]
record_out=Adhoc
record_in=Adhoc
mailbox=100@device
immediate=no ; indique au cannal FXS de produire une tonalité lorsque le poste est décroché et d'attendre l'entrée du user
echotraining=yes
echocancelwhenbridged=no
echocancel=yes ; suppresseur d'écho
dial=ZAP/2
callprogress=no
callerid=device <100>
busydetect=no
busycount=7
accountcode=
context=interne ;les appels entrant vont dans [incoming] de extensions.conf
signalling=fxo_ks
channel=>2 ;indique le port FXOde la carte TDM400P sur lequel la ligne téléphonique est connectée
HEB-ESI 10

Rapport VOIP

La ligne context=interne indique que tous les appels entrant sont associés à ce contexte. Les deux lignes
suivantes décrivent la signalisation (fxo_ks) pour ce canal zapata (channel => 2).

Une fois ce nouveau type de canal configuré (canal zapata), nous sommes proches de pouvoir recevoir et passer
des appels vers et depuis le PSTN.

6- Configuration d’ Asterisk via sa plate-forme web :


La configuration se fait par interface web en se connectant à l'adresse IP de l'IPBX : http://192.168.210.3

Vous devez basculer en mode admin pour configurer trixbox. Cliquez sur le lien Internet "switch" dans le coin
en haut à droite de l'écran. Un popup vient, entrez l'identifiant et le mot de passe suivant:
utilisateur : maint
mot de passe : password

Une fois que vous avez validé, l’écran suivant s’affiche :

6.1 Installation des modules FreePBX

Lors de la première utilisation de FreePBX, il faut ajouter les modules nécessaires. En cliquant sur l’onglet « Tools »
puis sur « Module Admin ».

On peut ensuite ajouter l’ensemble des modules.

En clair, les modules sont des paquets logiciels que Asterisk utilise pour différentes applications.
HEB-ESI 11

Rapport VOIP

6.2 Création des comptes utilisateurs :

On doit créer une extension, SIP le plus souvent, pour chaque terminal logiciel/matériel :
Sélectionnez Asterisk -> FreePBX

Clique sur l'onglet the setup pour configurer les extensions qui sont les numéros de téléphone.
Onglet Setup -> section extensions

Dans la fenêtre "add an extension"


On clique donc sur
• Generic SIP device pour les clients
• Generic zap device pour le téléphone analogique
HEB-ESI 12

Rapport VOIP

et on crée une nouvelle extension avec les différents paramètres :

Clique sur le bouton "submit" (soumettre) en bas de la page pour créer une extension.

Une fois toutes les extensions crées, nous devions cliquer sur le bouton rouge "Apply Configuration Changes"
(Appliquez les changements de configuration) sur la gauche pour appliquer nos nouveaux paramètres
d'extension.
HEB-ESI 13

Rapport VOIP

6.3 Configuration des trunks

Les trunks sont les « fournisseurs de téléphonie ». Ce sont eux qui nous permettent de joindre une
ligne extérieure. Notre ligne Belgacom analogique est un trunk (ZAP).

Dans la section Trunks de freePBX, nous avons crée un nouveau trunk ZAP.
Par défaut, nous laisserons passer tous les appels.

• La case “Maximum Channels” indique le nombre de lignes VoIP prises chez l'opérateur.
• La ligne allow donne les codecs autorisés par ordre de préférence d'utilisation.
HEB-ESI 14

Rapport VOIP

6.4 Etablissement d'une route de sortie (outbound route)

Dans freePBX cliquez sur setup=>Outbound routes=>Add route

Par défaut, Trixbox a crée un trunk pour sortir par le port FXO de notre carte digium TDM400 (trunk
Zap/g0), et a déjà crée une route qui oblige l'utilisateur a tapé le préfixe 9 pour avoir une ligne
extérieure. (09_outside).
Nous avons choisi de modifier le dial pattern en éditant la route 0 9_outside sur la droite de l'écran et en
changeant le nom de la routre ainsi que d’autres caractéristiques.

Le seul dial pattern jusqu'à maintenant devrait être '2|.' Nos utilisateurs pressent 2 pour avoir une ligne
extérieure.
HEB-ESI 15

Rapport VOIP

Comme pour les groupes ayant abordé ce thémé l’année derniere et après plusieurs labos, configurations
diverses et appels dans toute l’école, cette manipulation n'a pas fonctionné.
Apparement avec l’aide du professeur, ces étudiants on dû utiliser un oscilloscope pour vérifier le signal qui
sortait de la carte, ils ont remarqué qu’il était légèrement différent que le signal qui sortait directement du
téléphone point de vue tonalité. Nous supposons que le problème vienne de là.

6.5 Listing des fichiers de configuration par interface graphic

L’interface web génère des fichiers *_additionnal.conf

sip.conf

[general]
bindport = 5060 ; Port to bind to (SIP is 5060)
……
……
include sip_additionnal.conf
HEB-ESI 16

Rapport VOIP

extensions.conf
; include extension contexts generated from AMP
#include extensions_additional.conf

Plein d’autres config par défaut.


[...]

sip_additionnal.conf

; do not edit this file, this is an auto-generated file by freepbx


; all modifications must be done from the web gui
[101]
type=friend
secret=1234
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
mailbox=101@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/101
context=from-internal
canreinvite=no
callerid=device <101>

[102]
type=friend
secret=1234
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
mailbox=102@default
host=dynamic
dtmfmode=rfc2833
dial=SIP/102
context=from-internal
canreinvite=no
callerid=device <102>

Extension_additionnal.conf

[…………]
[outrt-001-2_outside]
include => outrt-001-2_outside-custom
exten => _2.,1,Macro(dialout-trunk,1,${EXTEN:1},,)
exten => _2.,n,Macro(outisbusy,)

[…………]

Le fichier étant grand, nous n’afficherons ici que la partie configuraton pour sortir de notre centrale avec le
numéro 2.
HEB-ESI 17

Rapport VOIP

7- Outils de test de notre configuration

Notre serveur trixbox est maintenant configuré avec trois extensions ou numéros de téléphone.

Des téléphones logiciels (softphones) SIP sont utilisés sur deux ordinateurs portables, deux Windows.
Un téléphone logiciel (softphone) est un téléphone installé sur un ordinateur pendant qu'un téléphone matériel
(hardphone) est un téléphone physique semblable à un téléphone traditionnel.

Nous avons choisi le softphone X-Lite.

Sélection de "SIP Account Settings ...".


Dans la fenêtre "SIP Accounts" (Acomptes SIP):

Clique sur le bouton "Add..." (Ajouter).


HEB-ESI 18

Rapport VOIP

Nous avons configuré la fenêtre "Properties of Account1" (propriétés de l'accompte1):


Display name (Nom d'affichage): wiam
User name (Nom d'utilisateur): 101
Password (Mot de passe): 1234
Domain (Domaine): 192.168.210.3

Le softphone est maintenant authentifié par Asterisk.


HEB-ESI 19

Rapport VOIP

8- Résultat
Toutes les possibilités d'appels ont fonctionnés :
• SIP à SIP
• ZAP à SIP
• SIP à ZAP

9- Manipulations sur une autre distribution


Comme expliqué au point 6.4 nous avons rencontré un problème pour avoir la ligne exterieure.

Nous avons effectué les mêmes manipulations sur un autre os qui est Debian.

9.1 Installation asterisk


Il a fallu installer Asterisk et les sources du module "zaptel" (drivers de la carte tdm).

Pour installer les paquets sur notre distribution linux debian, il faut taper la commande suivante :

# apt-get install <nom_paquet>

Pour les paquets libpri, zaptel et asterisk, il faut procéder différemment à l’installation en décompressant
l’archive et en recompilant les sources. Cette manipulation est expliquée ci-dessous.
# tar xzvf libpri.tar.gz ; Décompression des archives
# tar xzvf zaptel.tar.gz
# tar xzvf asterisk.tar.gz
# mv libpri zaptel asterisk /usr/src/asterisk
# cd /usr/src/asterisk/libpri
# make ; Utilitaire de recompilation de sources
# make install
# cd /usr/src/asterisk/zaptel
# make install
# cd /usr/src/asterisk/asterisk
# make mpg123
# make
# make install

Le module chargé en mémoire et les LEDs sur la carte tdm allumées, il ne restait plus qu'a paramétrer le fichier
/etc/zaptel.conf afin de préciser quels ports on utilise et quel type de signalisation sera utilisé par les modules FXS et
FXO connectés à la carte.
fxoks=2
fxsks=4
loadzone = be
defaultzone = be
HEB-ESI 20

Rapport VOIP

On vérifie que les modules sont reconnus avec la commande « ztcfg –vv »
Channel map: Zaptel Configuration
======================
Channel map:

Channel 02: FXO Kewlstart (Default) (Slaves: 02)


Channel 04: FXS Kewlstart (Default) (Slaves: 04)
2 channels configured.

9.2 Création des comptes utilisateurs :

[wiam] ; nom du téléphone


type=friend ; type de téléphone
host=dynamic ; enregistrement dynamique de l’adresse IP du téléphone
username=wiam ; nom d’utilisateur associé
secret=1234 ; mot de passe
context= interne ; permet de recevoir des appels entrants
disallow=all ; interdit tous les codecs
allow=ulaw ; autorise uniquement le codec G711 loi µ

[nizar] ; nom du téléphone


type=friend ; type de téléphone
host=dynamic ; enregistrement dynamique de l’adresse IP du téléphone
username=nizar ; nom d’utilisateur associé
secret=1234 ; mot de passe
context=interne ; permet de recevoir des appels entrants
disallow=all ; interdit tous les codecs
allow=ulaw ; autorise uniquement le codec G711 loi µ

9.3 Création du DialPlan


[interne ]
exten => 101,1,Dial(SIP/wiam) ;101 appelle le téléphone wiam
exten => 102,1,Dial(SIP/nizar) ;102 appelle le téléphone nizar
exten => 103,1,Dial(SIP/philippe) ;103 appelle le téléphone philippe
exten => 100,1,Dial(Zap/2)

Nous avons effectué des tests entre les diffèrentes machines « client » équipés du X-Lite.
Le test s’est bien déroulé. Il nous reste la configuration du téléphone analogique.

9.4 Problème rencontré

Tout semblait parfait, les logs nous affirmaient que la carte était parfaitement configurée, mais après avoir connecté
un téléphone sur la carte nous n'avions pas de tonalité. Nous avons dû consacrer 2 séances pour chercher d'où
venait le problème.
HEB-ESI 21

Rapport VOIP

10- Références
Nous nous sommes essentiellement basés sur des sources venant d’internet :

• http://www.voip-info.org/

• http://www.asterisk-france.net/

• http://www.asteriskguru.com/

• http://www.asterisk.org/

• http://www.unixgarden.com/index.php/administration-systeme/voix-sur-ip%C2%A0-serveur-de-telephonie-
asterisk

Вам также может понравиться