21
HEB-ESI Rapport VOIP 1 Rapport du laboratoire VOIP Passerelle PSTN via Hardware Benhammadi Wiam et Jarradia Nizar 3 éme R (11) 2008

Passerelle PSTN via Hardware

  • Upload
    wiamben

  • View
    442

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

1

Rapport du laboratoire VOIP

Passerelle PSTN via Hardware

Benhammadi Wiam et Jarradia Nizar

3éme

R (11) 2008

Page 2: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

2

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

Page 3: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

3

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.

Page 4: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

4

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

Page 5: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

5

2.3 Configuration du réseau

Dans console taper : netconfig puis remplir les champs

ou manuellement :

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

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

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

Page 6: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

6

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.

Si problème de dépendances avec zaptel, aller chercher un script sur le site de trixbox et lancez le :

Résultat après ztcfg –vv :

Wget http://yum.trixbox.org/fix/fix-zaptel.sh ./fix-zaptel.sh //(chmod+x requis)

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 astr isk et reconfigurer)

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.

Page 7: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

7

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 :

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

# 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/zap tel.conf' 2 error(s) detected _ __ ___ ____ ___ ___ ___ ___ __ __ __ __ server-asterisk:/etc# zttool Unable to open /dev/zap/ctl: No such device or addr ess

Page 8: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

8

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 :

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 :

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

[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 µ

vi /etc/asterisk/<nomdufichier>.conf

Page 9: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

9

Exemple :

Il faut donc éditez le fichier extensions.conf ( vi /etc/asterisk/extensions.conf) et y ajouter les lignes suivantes :

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.

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

[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 => 100,1,Dial(Zap/2)

;;;;;;[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 extensi ons.conf signalling=fxo_ks channel=>2 ; indique le port FXOde la carte TDM400P sur lequel la ligne téléphonique est connectée

Page 10: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

10

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.

Page 11: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

11

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

Page 12: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

12

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.

Page 13: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

13

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.

Page 14: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

14

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.

Page 15: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

15

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 i s 5060) …… …… include sip_additionnal.conf

Page 16: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

16

extensions.conf

sip_additionnal.conf Extension_additionnal.conf

Le fichier étant grand, nous n’afficherons ici que la partie configuraton pour sortir de notre centrale avec le

numéro 2.

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

; include extension contexts generated from AMP #include extensions_additional.conf Plein d’autres config par défaut. [...]

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

Page 17: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

17

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

Page 18: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

18

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

Le softphone est maintenant authentifié par Asterisk.

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

Page 19: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

19

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 :

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.

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.

# apt-get install <nom_paquet>

# 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

fxoks=2 fxsks=4 loadzone = be defaultzone = be

Page 20: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

20

On vérifie que les modules sont reconnus avec la commande « ztcfg –vv »

9.2 Création des comptes utilisateurs :

9.3 Création du DialPlan

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.

[wiam] ; nom du téléphone type=friend ; type de téléphone host=dynamic ; enregistrement dynamique de l’adres se 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’adres se 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 µ

[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 l e téléphone philippe exten => 100,1,Dial(Zap/2)

Channel map: Zaptel Configuration ====================== Channel map: Channel 02: FXO Kewlstart (Default) (Slaves: 02) Channel 04: FXS Kewlstart (Default) (Slaves: 04) 2 channels configured.

Page 21: Passerelle PSTN via Hardware

HEB-ESI

Rapport VOIP

21

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