tuto toip (trunk sip, iax, trunk cme - asterisk)

35
Dimitri LEMBOKOLO 1 I. Partie I : Présentation de la Voix sur IP Définition de la VoIP Les protocoles utilisés par la VoIP Partie II : Présentation d’Asterisk Qu’est-ce que asterisk Installation d’asterisk Configuration d’asterisk Mise en place de la boite vocale ; Accéder à la boite vocale ; Musique d’attende ; La conférence téléphonique. Partie III : Etude avec deux serveurs Asterisk Trunk SIP Réalisation Configuration de trunk SIP Description horaire Trunk IAX Partie IV : Trunk entre CME et Asterisk Introduction Prérequis Composants d’occasion Le protocole SIP CME SIP Trunk Relais DMTF pour les Trunk SIP Codecs et transcodages Mise en oeuvre Conclusion

Upload: dimitri-lembokolo

Post on 28-Nov-2014

22.569 views

Category:

Documents


31 download

DESCRIPTION

juste pour avoir une idée sur les trunk

TRANSCRIPT

Page 1: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

1

I. Partie I : Présentation de la Voix sur IP

Définition de la VoIP

Les protocoles utilisés par la VoIP

Partie II : Présentation d’Asterisk

Qu’est-ce que asterisk

Installation d’asterisk

Configuration d’asterisk

Mise en place de la boite vocale ;

Accéder à la boite vocale ;

Musique d’attende ;

La conférence téléphonique.

Partie III : Etude avec deux serveurs Asterisk

Trunk SIP

Réalisation

Configuration de trunk SIP

Description horaire

Trunk IAX

Partie IV : Trunk entre CME et Asterisk

Introduction

Prérequis

Composants d’occasion

Le protocole SIP

CME SIP Trunk

Relais DMTF pour les Trunk SIP

Codecs et transcodages

Mise en oeuvre

Conclusion

Page 2: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

2

I. Présentation de la Voix sur IP

1. Définition de la VoIP

La Voix sur IP ou VoIP (Voice Over Internet Protocol) est le transport de la voix sous forme de

paquets IP. On parle également de Téléphonie sur IP (ToIP).

Principe de fonctionnement :

La voix qui est un signal analogique est d’abord échantillonnée. C’est ce qu’on appelle la

numérisation de la voix. Puis, le signal numérique est compressé en utilisant des codecs. En

téléphonie classique, la bande passante est de 64 kbps (codec G711). Le codec G729, par exemple, a

une bande passante de 8 kbps. Certains mécanismes permettent de réduire la bande passante

nécessaire en détectant les silences lors d’une conversation.

Contrairement à la téléphonie traditionnelle qui utilise la commutation de circuits, le transport de la

voix sur IP est à commutation de paquets. La voix est transformée en paquets qui vont transiter sur le

réseau en utilisant le protocole UDP. UDP est un protocole de transport qui procure de meilleurs

délais d’envoi des paquets que TCP car il n’utilise pas de contrôle de réception (pas d’acquittement).

Le protocole RTP (Real Time Protocol) est utilisé pour les flux temps réel encapsulés dans des

paquets UDP. RTP permet que la perte de quelques paquets voix soit compensée par des algorithmes

de correction d’erreur.

La VoIP implique des contraintes sur les performances du réseau telles que :

Le délai de latence (RTD = Round Trip Delay) : c’est le temps que met un paquet IP pour

traverser le réseau. (Valeur acceptable : inférieur ou égal à 200 ms)

La gigue (ou Jitter): c’est la variation du délai de latence. (Valeur acceptable : inférieur ou égal

à 75 ms)

Le taux de perte de paquets : parfois, certains datagrammes UDP sont détruits (surtout à cause

de l’engorgement du réseau). Pour qu’une conversation soit compréhensible, la dégradation du

signal voix ne doit pas dépasser un certain seuil. (valeur acceptable : inférieur ou égal à 3%)

Dans un réseau, la qualité de service (QoS) va permettre d’accorder une priorité aux flux voix par

rapport aux flux datas.

Le phénomène d’écho va également dégrader la qualité de la conversation téléphonique. Il est dû à

des raisons techniques.

Un problème de l’utilisation de la ToIP se pose lors de l’appel vers les numéros d’urgence. En effet,

l’adresse IP est indépendante de la localisation géographique de l’utilisateur. Dans le cas de la

téléphonie traditionnelle, l’appel sera envoyé vers le service d’urgence le plus proche car l’usager

aura été localisé.

Page 3: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

3

2. Les protocoles utilisés pour la VoIP

Un protocole de signalisation est un protocole de la couche 5 (Session) du modèle OSI. Il gère une

communication téléphonique IP ainsi :

1) L’appelant indique les coordonnées de la personne qu’il veut joindre (composition du numéro)

2) Indication au correspondant d’un appel (le téléphone du correspondant sonne)

3) Acceptation de l’appel par le correspondant (le correspondant décroche)

4) Information aux tiers cherchant à joindre les deux interlocuteurs de leur indisponibilité (occupé)

5) Fin de la communication et disponibilité des lignes (raccroché)

Les principaux protocoles utilisés pour l'établissement de connexions en voix sur IP sont :

H.323 ;

SIP ;

MGCP ;

IAX (Asterisk);

H.323

H.323 a été élaboré par l’UIT (Union Internationale des Télécommunications) en 1996. Il est donc

issu du monde des télécoms.

Cette norme est pénalisée par sa complexité et son manque d’évolutivité pour l’ouverture vers les

systèmes d’information.

SIP

SIP (Session Initiation Protocol) est un protocole qui a été normalisé par l’IETF (Internet Engineering

Task Force) en 1999. Il est issu du monde de l’internet. Il se charge de l’authentification et de la

localisation des participants. Mais il ne transporte pas de données.

SIP remplace progressivement H.323 car il est plus souple et plus évolutif.

Fonctionnement de SIP :

SIP est un protocole de type requête/réponse comme http. Une adresse SIP se présente sous cette

forme :

sip:[email protected]

Page 4: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

4

100 est le numéro d’extension SIP et 192.168.1.130 l’adresse IP du serveur SIP.

Les utilisateurs (clients SIP) vont s’enregistrer auprès de serveurs proxy.

Schéma

1- Le Softphone A s'inscrit dans le proxy SIP il effectue une demande d'appel auprès de ce proxy

SIP Le proxy SIP transfère la demande au téléphone SIP B.

2- Le téléphone SIP B sonne et demande à l'utilisateur s'il souhaite répondre. La réponse positive

(200 OK) part alors vers le proxy et arrive sur le softphone A pour lui indiquer que l'appel est

accepté.

3- Le softphone A renvoie directement au téléphone B un accusé de réception (ACK), et la

communication est engagée.

MGCP (Media Gateway Control Protocol)

MGCP est implémenté dans les solutions de passerelle entre le monde de l’IP et le monde des télécoms. Il est complémentaire à H.323 et SIP. Il est surtout utilisé par les FAI (Fournisseur d’accès à Internet)

IAX (Inter-Asterisk eXchange)

L’IAX est un protocole de voix sur IP spécifique à Asterisk.

Il permet la communication entre un client et serveur Asterisk ainsi qu’entre deux serveurs Asterisk.

Il a été conçu pour la transmission de flux multimédia avec un débit plus faible (notamment pour la

voix). Par exemple, avec le codec de compression G.729 et en utilisant l’IAX, on peut « faire passer »

103 appels à travers 1 Mbits de bande passante.

Au lieu d’utiliser RTP (Real Time Protocol), IAX utilise UDP (User Datagram Protocol) et un seul

port (le port 5036 pour IAX1 et le port 4569 pour IAX2).

Contrairement à SIP, le protocole IAX2 peut s’implémenter simplement derrière un NAT et traverse

facilement les firewalls.

Il envoie constamment des requêtes pour savoir si la ligne est active.

IAX2 est à apparu longtemps après SIP qui s’est vite avéré être le protocole de référence par les

constructeurs et les fournisseurs de services VoIP. Avant le protocole SIP, il s’agissait du protocole

H323 qui était le plus utilisé.

Ce succès grandissant de IAX2 n’est cependant pas vraiment une menace pour SIP de la manière que

SIP l’a été pour H323. SIP est bien installé, mais nul doute qu‟IAX2 va s’imposer comme une

véritable alternative.

II. Présentation d’Asterisk

1. Qu’est-ce qu’Asterisk ?

Page 5: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

5

Asterisk est un logiciel qui, installé sur un PC, fait office de PABX.

C’est un logiciel libre (Open Source), publié sous licence GPL et crée par Mark Spencer de la société

Digium. Il tourne sur Linux, BSD et Mac OS X.

Les caractéristiques Asterisk offre tous les services de téléphonie « classiques » d’un PBX ainsi que des fonctions avancées :

Boîte vocale (avis par courriel de réception d’un message vocal, voyant indicateur de message en attente…) ;

Conférence téléphonique ;

Serveur vocal interactif ;

Applications CTI (ex : possibilité de composer un numéro de téléphone à partir du carnet d’adresses d’Outlook) ;

Visiophonie ;

Rapport détaillé sur les appels

Protocoles et codecs

Asterisk effectue une interconnexion transparente entre les divers protocoles voix sur IP et

l'équipement de téléphonie traditionnel. De plus, Asterisk effectue le transfert des appels d'un système

à un autre au moyen du protocole IAX.

Protocole IAX (Inter-Asterisk eXchange)

H.323

Protocole SIP (Session Initiation Protocol)

Protocole MGCP (Media Gateway Control Protocol)

Fonctionne avec les systèmes de téléphonie traditionnels

Signalisation RBS (Robbed-bit Signaling)

FXS et FXO

Prise par bouclage

Déclenchement par la terre

Kew start

Émission-réception (E&M)

Signalisation d'émission-réception (E&M Wink)

Groupe de caractéristiques D

Protocoles PRI

4ESS

Lucent 5E

DMS100

National ISDN2

EuroISDN

BRI (ISDN4Linux)

Codecs :

Système GSM

Page 6: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

6

G.729 (sur l'achat de licences)

G.723.1 (fonction émulation)

Linéaire

Mu-Law

A-Law

ADPCM

G.726

ILBC

LPC-10

MP3 (décodage seulement)

2. Installer Asterisk

Nous allons marcher à travers l'installation d'Asterisk à partir du code source. Beaucoup de gens

répugnent à cette méthode, affirmant qu'il est trop difficile et de longue haleine. Notre objectif ici

est de démontrer que l'installation d'Asterisk à partir des sources n'est pas réellement si difficile à

faire. Plus important encore, nous voulons vous offrir la meilleure plate-forme Asterisk sur lequel

d'apprendre.

Installez les dépendances logicielles:

# yum install gcc gcc-c++ libxml2-devel ncurses-devel

Télécharment des paquets (tar.gz)

http://www.asterisk.org/downloads

Asterisk

asterisk 1.x.xx.tar.gz

Libpri

libpri-1.x.xx.tar.gz

DAHDI Linux / DAHDI Tools

dahdi-linux-complete-2.6.0+2.6.0.tar.gz

Asterisk Add-Ons

asterisk-addons-1.x.x.tar.gz

Page 7: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

7

Créer votre structure de répertoire:

mkdir -p ~/src/asterisk-complete/asterisk cd ~/src/asterisk-complete/asterisk

idem pour Libpri et Dahdi et asterisk add-ons

Outre l’installation à partir des paquets tar.gz, on peut aussi installer asterisk par commande.

commandes:

#yum install Asterisk

Manuellement:

# cd ../libpri-1.4.x

# make; make install

#cd …/asterisk-1.4.x

#tar -xvzf <nom_du_paquet>

#./configure

#make menuselect

#make

#make install &&make samples

Présentation de l’installation d’asterisk add-ons

# cd …/asterisk-addons-1.4.x

#. /configure

#make

#make install

3. Configuration d’Asterisk

Nous avons installé la version 1.4 d’Asterisk sur une Fedora 11 et Linux Mint 12 (pour le serveur

secondaire d’Asterisk).

Nous allons maintenant faire la configuration d’Asterisk. L'ensemble des fichiers de configuration se

trouve dans le dossier /etc/asterisk/

# cd /etc/asterisk/

La configuration nécessite la compréhension du principe de routage. Chaque extension est manipulée

depuis sa source (une ligne analogique ou numérique, un téléphone IP ou un softphone, l’appel en

provenance d‟un autre PABX) vers une destination via des règles de routage qui s’enchaînent. On

regroupe les règles dans des contextes permettant de séparer les utilisateurs, les usages ou les sources.

La configuration de base comporte au minimum les fichiers asterisk.conf et extensions.conf. Les

Page 8: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

8

sources sont dans différents fichiers en fonction de leur type: mgcp.conf, iax.conf, sip.conf

(protocoles) ou encore zapata.conf (matériel).

asterisk.conf

Par défaut on positionne certains chemins de base au fonctionnement du moteur asterisk, la présence

de ce fichier n’est pas obligatoire, mais voici un exemple de contenu:

sip.conf

Le fichier sip.conf, va définir l'ensemble de nos utilisateurs. Pour connaitre l'ensemble des fonctions utilisables, rendez-vous sur le site http://www.asteriskguru.com/tutorials/ et également sur le site http://www.voip-info.org/

Nous éditons le fichier sip.conf (avec vim, par exemple). A la fin du fichier nous allons créer deux utilisateurs ainsi :

[general]

Port=5060

Page 9: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

9

Port=5060 => port sur lequel Asterisk écoute pour recevoir les connexions SIP

username=dimi => si Asterisk agit entre un client SIP et un serveur SIP distant, ce champ est utilisé

pour authentifier le message INVITE envoyé par Asterisk au serveur

Type=friend => il existe 3 types d’utilisateurs :

user = peut appeler mais ne peut pas recevoir d’appel

peer = peut recevoir des appels

friend = peut appeler et recevoir des appels

secret= passer => définit le mot de passe de l’utilisateur

host=dynamic => permet de se connecter avec cet utilisateur depuis n'importe quelle adresse IP.

context=brazza => l'option "context" sera ensuite utilisée dans le fichier extensions.conf, lorsque

l'utilisateur émet un appel, il rentrera dans la zone "brazza", qu'on définira plus tard.

language=fr => permet d'utiliser les fichiers audio français.

callerid=”dimi” <1000> => permet d’afficher le nom de l’appelant sur le poste appelé

mailbox=10 => numéro de la boîte vocale associée

extensions.conf

Le fichier extensions.conf permet de définir les règles de routage c’est-à-dire les actions à faire lors

d'un appel sur un numéro de téléphone.

Dans le contexte brazza, nous définissons comment joindre les différents postes. Chaque extension de

Page 10: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

10

notre plan de numérotation interne va être interprété et acheminé vers des liens physiques (IAX ou

SIP dans notre cas).

Ajout d'extension

[brazza]

exten => 1000,1,Dial(SIP/dimi)

exten => 1001,1,Dial(SIP/crea)

Transfert d'appel

On utilise la fonction tTr. Par exemple:

exten => 1000,1,Dial(SIP/dimi,tTr)

exten => 1001,1,Dial(SIP/crea,tTr)

Le t permet à l’appelé de transférer l’appel et le T permet à l’appelant de transférer l’appel.

Les commandes utilisées pour la définition des extensions ont la forme suivante :

exten => <extension>,<priorité>,<application(paramètres)>

extension : numéro composé pour contacter Asterisk. Ce paramètre peut également prendre la

valeur d’une extension prédéfinie par Asterisk (a, i, s, t, etc.).

priorité : permet de définir l’ordre dans lequel plusieurs commandes pour une même

extension vont être exécutées. La priorité la plus élevée est 1, puis on incrémente de 1 pour la

priorité des commandes suivantes (1, 2, 3, etc.) ;

application : permet de définir l’action à réaliser pour l’extension en cours.

L’application Dial est utilisée pour l’acheminement de l’appel dans le contexte brazza, le premier

argument passé est la ligne préfixée par son type (IAX2 ou SIP).

Mise en place d'une boite vocale

La configuration se fait dans voicemail.conf.

Par exemple:

login => code,nom-utilisateur

On fait une mise à jour dans le fichier extensions.conf pour attribuer la messagerie vocale.

Par

Exemple:

Page 11: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

11

exten => 1000,1,Dial(SIP/dimi,10,tTr)

exten => 1000,2,VoiceMail(10@dimi,u)

exten => 1000,102,VoiceMail(10@dimi,b)

Et la traduction est la suivante : on compose le numéro 1000 pour appeler dimi. S'il ne décroche pas

après 10 secondes, transférer l'appel sur sa boite vocale. L'option u indique que le correspondant est

indisponible et l'option b indique qu'il est occupé.

Accéder à la boite vocale

Pour accéder à sa messagerie vocale, l'utilisateur compose 710(pour dimi) et 720(pour crea) .Puis il

entre son login et son mot de passe conformément à ceux qui lui sont fixer par le serveur dans

voicemail.conf

Musique d'attente

1) créer le dossier /var/lib/asterisk/mohmp3

Puis on copie une musique, pour notre cas c’est zik.mp3

2) éditer le fichier musiconhold.conf

Page 12: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

12

3) créer une classe de musique

m=option permettant de jouer la musique d'attente

pn=la classe de la musique dans musiconhold.conf

La visiophonie

Elle est l’association de la téléphonie et la vidéo initiée par deux interlocuteurs. On passe à la notion

de visioconférence lorsqu’un troisième interlocuteur se pressente. Pour activer la

visiophonie on édite le fichier /etc/asterisk/sip.conf et on décommette videosupport=yes.

Optionnellement, vous pouvez ajouter un certain nombre de codecs sur un compte SIP.

Dans le fichier sip.conf

Page 13: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

13

Idem pour les autres utilisateurs

Teste Polycom X-Lite

Remarque : lors des captures, je travaillais avec les numéros (5000), puis changea mon plan de

numérotation en utilisant les numéros (2000).

Page 14: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

14

La conférence téléphonique

Page 15: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

15

Vous êtes en communication avec un collègue de travail et vous avez besoin d’obtenir rapidement

une information d’un troisième collaborateur. La conférence de déclencher quand il a au moins trois

interlocuteurs. Le softphone X-lite peut héberger des conférences sans aucune configuration des

fichiers du serveur. Les conférences sur Asterisk sont configurées dans le fichier

/etc/asterisk/meetme.conf. Toutes les conférences sont déclarées dans le context room.

- Editer le fichier /etc/asterisk/meetme.conf

III. Asterisk Etude avec deux serveurs Asterisk

Page 16: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

16

1. Trunk SIP

Introduction

L’un des principaux arguments pour la migration d’un réseau RTC vers la VOIP est la réduction des

coûts. L’une des méthodes pour réduire les coûts est d’abandonner l’opérateur historique et de

souscrire un abonnement chez un provider SIP. Vous pourrez alors choisir un provider qui vous

fournira des tarifs en fonction de vos besoins.

Pour arriver à ce résultat, il faut mettre en place un trunk SIP. Un trunk SIP est une liaison entre deux

serveurs VOIP. Une autre application de ce trunk SIP est la création d’un lien entre deux sites

distants. Dans ce cas, les coûts de communication entre sites se réduisent aux coûts d’abonnement

d’Internet.

Page 17: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

17

2. Réalisation

Dans un premier temps, il faut configurer les deux serveurs en local avec deux plans de numérotation

distincts. En effet, il va falloir permettre aux serveurs de différencier les téléphones de l’agence A de

ceux de l’agence B. Dans notre cas, les numéros compris entre 1000 et 1999 seront dans l’agence A et

les numéros compris entre 2000 et 2999 seront dans l’agence B.

Sur le serveur de l’agence A :

- Modifiez le fichier sip.conf et ajouter les extensions de franck et dimi.

- Configurez les téléphones pour qu’ils s’enregistrent sur le serveur.

- Modifiez le fichier extensions.conf pour « router » les appels vers les téléphones.

- Vérifiez la configuration en passant des appels de franck vers dimi et vice versa.

Faites de même sur le serveur de l’agence B en respectant le plan de numérotation

3. Configuration de trunk SIP

sip.conf sur Serveur A

Dans un premier temps, il faut ajouter un utilisateur dans le fichier sip.conf sur le serveur A. Cet

utilisateur est de la même forme que les autres utilisateurs.

Sip.conf sur Serveur B

Page 18: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

18

sip.conf sur Serveur B

Une fois l’utilisateur créé sur le serveur A, il faut que le serveur B s’enregistre. Dans le fichier

sip.conf du serveur B il faut ajouter la ligne suivante.

Cette ligne permet au serveur B de s’enregistrer sur le serveur A à l’adresse 192.168.1.130 avec le

login trunk_A_vers_B et le mot de passe passer.

Sip.conf sur Serveur A

Cette ligne permet au serveur A de s’enregistrer sur le serveur B à l’adresse 192.168.1.186 avec le

login trunk_B_vers_A et le mot de passe passer.

extentions.conf sur serveur A

Quand le serveur B s’est bien enregistré, le serveur A pourra rediriger les appels compris entre 1000

et 1999, vers le serveur B avec cette ligne dans le fichier extentions.conf

Page 19: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

19

extentions.conf sur serveur B

Quand le serveur A s’est bien enregistré, le serveur B pourra rediriger les appels compris entre 2000

et 2999, vers le serveur A avec cette ligne dans le fichier extentions.conf

Pour vérifier la bonne configuration, il faut afficher les utilisateurs enregistrés sur le serveur et l’état

de la ligne avec les commandes suivantes :

Page 20: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

20

Teste des appels (1000 vers 2000)

Page 21: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

21

Teste des appels (2000 vers 1000)

4. Discrimination horaire

La discrimination horaire permet d’autoriser les appels dans une plage de temps définie. On peut

définir cette plage de temps en fonction :

du jour de la semaine

de l’heure

du jour du mois

du mois

La syntaxe est la suivante :

include => context|days|times|days of month|months of year

Dans l’exemple suivant, les appels ne seront possible que du lundi au vendredi de 8h à 17h, peu

importe le jour ou le mois.

Page 22: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

22

On fait la même chose pour le context (pn)

5. Trunk IAX

Coopération

Dès qu'un utilisateur du serveur A composera un numéro entre 1000 et 1999

Il sera directement redirigé vers le serveur B.

Dès qu'un utilisateur du serveur B composera un numéro entre 2000 et 2999

Il sera directement redirigé vers le serveur A.

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 (Rivest Shamir Adleman) utilise deux clés partagées, une clé

Page 23: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

23

publique ainsi qu'une clé privée. Généralement, ces clés ont une longueur entre 1024 et

2048 bits.

Génération de clés RSA :

Pour générer des clés de cryptage RSA, Asterisk nous fournit un utilitaire: astgenkey.

Les clés RSA doivent se trouver dans le répertoire /var/lib/asterisk/keys.

L'utilitaire "astgenkey" génère deux clés, une clé publique à mettre sur le(s) poste(s) client(s) et une

clé privée à garder sur le serveur.

Note: Il est important que la clé privée ne soit accessible que par Asterisk, car si quelqu'un arrive à

prendre cette clé il pourra décrypter la clé plus facilement.

Pour générer une clé il suffit de se déplacer dans le répertoire de stockage des clés d'Asterisk et de

lancer l'application "astgenkey"

# cd var/lib/asterisk/keys

Lorsque nous lançons astgenkey nous mettons le paramètres "-n" car par défaut "astgenkey"

demande une "passphrase" à chaque démarrage d'Asterisk.

Avec le paramètres "-n"' il enregistre la clé sans "passphrase"

# astgenkey -n

Page 24: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

24

Nous avons créé 2 clefs dans le serveur B:

dimi_iax.pub qui est la clef publique

dimi_iax.key qui est la clef privée

Maintenant, il faut transférer la clef publique dans l’autre serveur.

Pour cela, nous allons nous positionner sur le serveur A et utiliser ssh avec la commande suivante :

scp user@IPserveur:/répertoire/nom_du_fichier /destination/nom_du_fichier

Page 25: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

25

Il faudra répéter l’opération dans l’autre sens afin de créer une interconnexion bidirectionnelle.

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

[VOIP1] et [VOIP2]

Configuration du fichier iax.conf pour le serveur B :

Note : le trunk entres clients IAX peut aussi se faire sans partage de clés, mais comme plus avec

SIP en décommandant (register) et faire une configuration par mot de passer et host à dynamic.

Page 26: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

26

On fait de même sur le serveur A

Définition du “dialplan”

Nous devons maintenant créer les contextes dans le fichier extensions.conf dans le serveur A.

[pn]

include => voip1

[voip2]

exten => _1XX,1,Dial(IAX2/${EXTEN})

exten => _2XX,1,Dial(IAX2/voip2/${EXTEN})

Ce qui signifie que dans le contexte [pn] est inclus le contexte [voip1] qui définit que pour les

extensions commençant par 1, l’appel sera acheminé en interne et pour les appels commençant par 2,

l’appel sera transmis au serveur B.

Nous faisons de même sur le serveur B.

[brazza]

include => voip2

[voip1]

exten => _2XX,1,Dial(IAX2/${EXTEN})

exten => _1XX,1,Dial(IAX2/voip1/${EXTEN})

IV. Trunk entre un CME et Asterisk

1. Introduction

Aujourd'hui, l'industrie des télécommunications est en train de faire la transition à long établissant

Techonologies de commutation et de transport pour le transport basé sur IP et de dispositifs de bord.

La révolution de la communication IP a commencé à créer un impact énorme commercial dans les

entreprises petites et moyennes. Ces petites et moyennes entreprises se rendent compte que

l'utilisation de la propriété intellectuelle est très efficace car la propriété intellectuelle peut utiliser les

fonctions vocales, vidéo et données sur un réseau unique, au lieu d'utiliser les opérations distinctes à

vocation spéciale réseaux. La figure montre un déploiement de téléphonie IP trunking IP tendre vers.

Page 27: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

27

IPBX commencent à prédominer dans les affaires de la technologie vocale, et les PBX TDM ne sont

plus la principale source de la liaison permanente entre deux réseaux vocaux. L'utilisation du PBX

TDM a diminué au cours des deux dernières années, et l'utilisation de l'IPBX est de devenir un bon

investissement dans IP LAN et WAN. Afin de se connecter au réseau PSTN, PBX besoin d'une sorte

de goulotte tel que le TDM (T1/E1) ou des lignes analogiques. IPBX qui peuvent accéder au RTPC

en utilisant ces types de troncs, mais il faut une passerelle multimédia qui convertit le trafic voix sur

IP à RTC traditionnelle, qui peut parfois donner lieu à une traduction successive à partir du domaine

IP TDM de domaine. Ces traductions successives d'augmenter les coûts de maintenance des

passerelles, augmente la latence, et réduit la qualité de voix.

Afin d'éviter ces problèmes, les IPBX utilisent des protocoles pour initiation de session et de gestion,

le plus important est celui de Session Initiation Protocol (SIP). Ce document fournit une description

de la SIP trunking et Cisco CallManager Express (CME), et une configuration à mettre en œuvre un

système de téléphonie sur IP avec les MEC en utilisant SIP trunking pour les appels entrants et

sortants.

Prérequis

Exigences

Assurez-vous que vous répondez à ces exigences avant de tenter cette configuration:

CME version 4.1 est installé

Une image de Cisco IOS ® Software T sortie 12.4 (11) XJ ou IOS 12.4 (6e) est sur le routeur

Un module NM-CUE est installé avec la version 2.3.4 CUE

Page 28: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

28

Composants d'occasion

Les informations contenues dans ce document sont basé sur ces versions logicielles et matérielles:

Cisco 3825 routeur sur le logiciel Cisco IOS 12.4 de sortie (11) XJ

Cisco Catalyst 3550 Commutateur sur le logiciel Cisco IOS Release 12.4

Téléphone IP Cisco 7960

Cisco CallManager Express 4.1

Cisco Unity Express 2.3.4

2. Le protocole SIP

SIP est un ASCII basé sur le protocole de contrôle de la couche application qui peut être utilisé pour

établir, maintenir et terminer les appels entre deux ou plusieurs points de terminaison. SIP a

rapidement émergé comme le protocole standard utilisé dans les communications IP, car il est un

protocole multimédia qui peut être utilisé pour les sessions vidéo et la messagerie instantanée, en plus

de voix. En outre, SIP peut gérer des sessions de conférences et d'émissions, ainsi que d'une des

séances individuelles. SIP a un grand potentiel dans la transformation et le développement de la façon

de communiquer les gens. Pour cette raison, Cisco a été et continue à jouer un rôle important dans la

prise d'un leadership pour créer de nouvelles technologies qui rendent SIP et ses applications à la

norme de communications IP.

SIP sont similaires à une ligne téléphonique, sauf que les SIP d'utiliser le réseau IP et non le RTPC.

En outre, SIP permet la convergence de la voix et des données sur tous les courants-connexions IP.

Afin d'accéder au réseau IP en utilisant une liaison SIP il est nécessaire que les configurations être

faite au prestataire de services, ainsi que sur le côté client. Les clients ont besoin pour établir et

configurer CME, qui est le PBX qui va interpréter le signal SIP de manière adéquate et passer le trafic

avec succès. Le prestataire de services a besoin pour configurer un serveur proxy SIP. Cependant, SIP

sont plus compliqués à établir que les troncs RTPC ordinaires. La raison en est que le client fait face à

des défis dans le traitement de l'interprétation différente et les implémentations de SIP par les

fournisseurs d'équipement, la prestation de sécurité, la qualité de gestion de service (QoS), ce qui

permet la traduction d'adresses réseau (NAT) et de pare-feu de traversée, et d'assurer la fiabilité de

classe transporteur et de la continuité de service.

Ces points de décrire pourquoi SIP deviennent si apparente dans les entreprises petites et

moyennes:

Déploiement rapide et facile

Amélioration de l'utilisation de la capacité de réseau

Potentiel de consolidation et réduire les coûts de téléphonie

Économique Direct Dial l'arrivée (SDA)

business Continuity

Page 29: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

29

3. CME SIP Trunk

Cisco CME est une solution de téléphonie IP qui est intégré directement dans le logiciel Cisco IOS.

CME permet aux entreprises petites et moyennes de déployer voix, données et vidéo sur une seule

plate-forme. Un réseau de téléphonie IP est simple à installer, car CME fonctionne sur un seul

routeur, qui offre une fonctionnalité PBX pour les entreprises. Par conséquent, en utilisant CME,

petites et moyennes entreprises peuvent offrir la téléphonie IP et de données de routage à l'aide d'une

solution unique convergé à un coût minime.

4. Relais DMTF pour les Trunks SIP

CME supporte le protocole SIP à partir du CME 3.1 a été publié. Cependant, certains problèmes

existaient déjà lorsque un téléphone SIP appelé un téléphone CSPC ou essayé d'accéder à la

messagerie vocale. Le problème est que les téléphones SCCP connectés à CME nécessitent

l'utilisation d'out-of-band relais DTMF au transport DTMF (chiffres) à travers les connexions VoIP,

et les téléphones SIP utilisent dans la bande Transports. Une distorsion DTMF existait entre les deux

appareils. Lorsque CME 3.2 a été publié, le soutien a été ajouté au relais DTMF. Chiffres DTMF de

SCCP pourrait être converti en in-band mécanisme de relais DTMF par RFC2833 ou prévenir

méthodes.

CME prend actuellement en charge de cette liste de DTMF d'interconnexion pour les appels SIP SIP:

Avertissez <---> Notify depuis 12.4 (4) T

RFC2833 <---> Notify depuis 12.4 (4) T

Avertissez <---> RFC2833 depuis 12.4 (4) T

Intrabande G711 <---> depuis 12.4 (11) T [Nécessite Transcoder]

CME prend actuellement en charge de cette interconnexion de réseaux DTMF pour les appels SIP

SCCP:

SCCP hors-bande SIP NOTIFY / RFC2833 depuis 12.4 (4) T

5. Codec et transcodage

Un autre aspect important à considérer lorsque vous mis en place un réseau SIP est les codecs pris en

charge. Codecs représentent l'échantillon de modulation d'impulsions de code pour les signaux à

fréquences vocales. SIP soutenir ces codecs: G.711 et G.729. Toutefois, pour les différentes

caractéristiques telles que Cisco Unity Express (CUE) et la musique d'attente (MOH), seulement

codec G.711 est pris en charge. Cela signifie que les appels vocaux qui utilisent SIP en utilisant le

codec G.729 ne peut pas accéder CUE, sauf si un transcodeur existe pour permettre à la compression

et la décompression des flux de voix pour correspondre aux capacités CUE. Ministère de la Santé

Page 30: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

30

peut également utiliser le codec G.729 pour économiser la bande passante, mais le codec ne contient

pas suffisamment de flux de MS de qualité. Cela est dû au fait que G.729 est optimisée pour la parole.

Par conséquent, vous devez forcer MS à utiliser G.711.

6. Mise en oeuvre

Etape 1 : Configuration du CME

Type de routeur CISCO utilisé est le C3700 avec l’IOS : c3745-ipvoicek9-mz.124-9.T

Attribution d’une adresse IP à l’interface FastEternet 0/0

Configuration de l’interface

R3>en

#conf t

#interface fa 0/0

#ip address 192.168.1.70 255.255.255.0

#no shutdown

#exit

Configuration DHCP

#conf t

#ip dhcp pool voip

#network 192.168.1.0

//*ici on peut autorise tout comme on peut interdire exemple inter les adresses de 1 7

#ip dhcp excluded-address 192.168.1.1 192.168.1.7

#exit

Configuration du routeur come serveur sip

#voice service voip

#allow-connection sip to sip

#sip

#registrar server expires max 3600 min 500

#exit

#exit

Page 31: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

31

Définir l'adresse et port d'écoute - nombre maximum de numéros et nombre maximum

de téléphone - création de profil définition de type d'authentification

voice register global

mode cme

source-address 192.168.1.70 port 5060

max-dn 10

max-pool 10

authenticate realm 192.168.1.70

create profile sync 0000819220144413

!

Création de numéros de téléphones

voice register dn 1

number 4001

name charwel

!

voice register dn 2

number 4002

name martial

!

voice register dn 3

number 4003

name espoir

!

Attribution des numéros aux téléphones et les codecs voice register pool 1

id mac 0000.0000.4001

number 1 dn 1

username 4001 password passer

codec g711ulaw

!

voice register pool 2

id mac 0000.0000.4002

number 1 dn 2

username 4002 password passer

codec g711ulaw

!

Page 32: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

32

voice register pool 3

id mac 0000.0000.4003

number 1 dn 3

username 4003 password passer

codec g711ulaw

exit

!

! ainsi de suite

!

#copy running-config startup-config

Étape 2: Trunk entre le CME et le serveur SIP

Sur le serveur :

7. Création du compte CME

Dans sip.conf

Dans extensions.conf

Page 33: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

33

Sur le routeur Cisco

#voice service voip

#sip

#allow-connections sip to sip

!---Active SIP et autorise les connections entre clients SIP---

#exit

#voice class codec 1

#codec preference 1 g711ulaw

#codec preference 2 g711alaw

#exit

#sip-ua

#authentication username cme-dimitri password passer

#retry register 10

#retry invite 2

#no remote-party-id

#timers register 100

#registrar ipv4:192.168.1.130 expires 3600

#sip-server ipv4:192.168.1.130!-- Permet de spécifier l’@ IP de l’interface du serveur Asterisk

#exit

Cas des Appels Entrants

Page 34: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

34

#dial-peer voice 1 voip

#description **Appels entrants du trunk SIP**

# voice-class codec 1

# session protocol sipv2

# session target sip-server

# incoming called-number .%

# voice-class sip dtmf-relay force rtp-nte

# dtmf-relay rtp-nte

!--- Comme expliquer précèdement, cette commande permet de forcer CME à utiliser la

RFC2833 pour les codes DTMF en mode « Inband », c'est-à-dire à transporter dans le même

flux RTP que la voix les codes DTMF ---

#no vad

!--- Beaucoup d’IP-Phone utilise en Voice Activity Detector (VAD) pour détecter les périodes

de silence dans le signal voix. Ainsi le signal n’est plus transmis, temporairement, pendant la

durée du signal. Pour nos test et capture de trames nous avons préféré, dans un premier temps,

de désactiver cette fonctionnalité avec la commande ci-dessus. ---

Cas des Appels Sortants

#dial-peer voice 2 voip

# description **Appel sortant trunk SIP**

# destination-pattern 2[0-9]0 !--- Cette commande indique que ce dial-peer est utilisé pour les

appels sortant dont les numéros sont

# voice-class codec 1

# session protocol sipv2

# session target sip-server

# voice-class sip dtmf-relay force rtp-nte

# dtmf-relay rtp-nte

# no vad

Plan de numérotation pour acheminer les appels vers les utilisateurs de Asterisk et

Page 35: Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)

Dimitri LEMBOKOLO

35

activation de codec

dial-peer voice 10 voip

destination-pattern 2...

session protocol sipv2

session target sip-server

codec g711ulaw

!

!

telephony-service

max-ephones 5

max-dn 5

ip source-address 192.168.1.70 port 2000

auto assign 1 to 5

max-conferences 8 gain -6

transfer-system full-consult

!

!

ephone-dn 1

number 3000

!

!

ephone-dn 2

number 3001

!

!

ephone-dn 3

number 3002

!

To be continued