Upload
cheick-ismael-maiga
View
3.628
Download
20
Embed Size (px)
DESCRIPTION
Document explicatif sur la voix sur ip précisement asterisk logiciel open source. Je vous laisse le soin de savourer ses merveilles
Citation preview
Presenté par Encadré par
Maiga Cheick Ismael Mr OUMSIS
Année universitaire 2010-2011
2
Remerciements
Je remercie du fonds du cœur mon encadrant et professeur
Mr OUMSIS qui a bien voulu m’encadrer tous le long de mon projet .Je le
remercie pour tout ses conseils et soutiens
Je remercie egalement mes Mrs Kalmogo stéphane , Mrs Guéné Mahamadi,
Zongo Boubacar, Zaongo Stanilas ,Ilboudo Hyacinthe , Balma Cynda
,Sanné Naty ,Sow ibrahim, Sagno Delphin ,Bah Ibrahima ,Nympaye
Eric,Gouda Abder Rayane , Moulongui Davy donal ,Mouchetou Mouchetou
Cedric lionel ,toute la commuanuté burkinabé de fes ,
3
TABLE DES MATIERES
Introduction ……………………………………………………………..….….6
Chapitre 1 : Contexte général et présentation du projet…………………….6
1.1 Présentation de la filière Science Mathématique Informatique …….……….…….6
1.2 Présentation du projet……………………….…………………………………7
1.2.1 Cadre et Objectif du projet…………..…………………………….…………7
1.2.2 Planification du projet …….…………….…………………………….….....7
1.3 Conclusion…………………………………………………………………………………7
Chapitre II: Théorie de la Voip…………………………...…………………...8
2.1Problématique de la Voip………………...……………………………………………….8
2.1.1 La teléphonie par circuit et par parquet ..………………………………………….….8
2.1.2 La problematique de base de la téléphonie ..………...….………………….…………9
2.1.3 Comparaison avec la téléphonie classique ...………...………………………..…….10
2.1.4 Avantage de la Toip …………………..…………...…………………...……………12
2.1.5 Conclsusion …………...………………………..………………………………...… 12
2.2 Signalisation H323……...…………………………………………………....................12
2.2.1 Protocoles de normalisation …………….…………………………………..……….13
2.2.2 Architecture et fonctionnalité du protocoles H323 …………….…………..……….14
2.2.3 Fonctionnalitées avancées …………..……………………………….………………15
2.2.4 Conclusion ………………..…………………………………………………………17
2.3 Protocoles SIP……………………………………………………………………………17
4
2.3.1 Standardisation SIP (Session Initial Protocol) ….……………………………………18
2.3.2 Architecture de SIP …….…………………………………………………………….19
2.3.3 L’adressage SIP………..………………………………………………..……………19
2.3.4 Fonctionnement …….………………………………………………………………..20
2.3.5 Comparaison avec H323…….…….………………………………………………….23
2.3.6 Conclusion ……………………..……………………………………………………24
2.4 Qualité de Service et sécurité………...…………………………………………………24
2.4.1 Qualité de service………….………………………………………………………….24
2.4.2 La Sécurité…...…..……………………………………….…………………….…….26
2.4.2.1 Les attaques …..……..……….………………………..……………….………. ..27
2.4.2.2 Les sécurités à mettre en place ……………..………………………………….....28
2.4.2.3 Les infrastructures de sécurité…...………..…..…..…..………………… ..……...29
2.4.2.4 La sécurité dans la téléphonie par Wi-Fi...………….…………………………….30
2.4.3 Conclusion………..………………………………..…………………………….…...30
Chapitre 3: Pratique de la Voip : Asterisk ..………………………………………32
3.1 Historique & Presentation ………………………………………………………...……32
3.2 Fonctionnalité……………………………………………………………..
3.3 Téléchargements des modules………………………………………………………
3.3.1 Se connecter au réseau traditionnel………………………………………
3.3.2 Télécharger les composants utiles …………………………………..
3. 4 Installation et configuration ……………………………………………..
3.4.1 Installation ………………………………………………………………
3.4.1.1 Installation à apartir de l’outi apt…………………………………………………
5
3.4.1.2 Installation à apartir des modules téléchargers…………………………………..
3.4.2 Configuration………………………………………………………………………..
3.4.2.1 Sip.conf…………………………………………………………………………..
3.4.2.2 extension.conf…………………………………………………………………….
3.4.2.3 voicemail.conf…………………………………………………………………..
3. 5 Client ………………………………………………………………………………….
3.5.1 Xlite …………………………………………………………
3.5.2 Windows Messenger ……………………………………
3.5.3SJPhone…………………………………………………..
3.5.4 Linphone…………………………………………………
3.5.5 Les logociels Sip Mobile……………………………………………
3. 6 Ajout de Nouveaux Services ……………………………………………..
3. 7 CallBack avec Asterisk ……………………………………………..
3. 8 Conclusion ……………………………………………..
Chapitre 4: Réalisation du projet……………………………………………
4. 1 Departament d’informatique …………………………………………….. ………..
4.2 Mise en place de l’architecture …………………………………………….. ………
4.3 Conclusion ……………………………………………………………………………
Conclusion générale…………………………………………………………..
Bibliographie……………………………………………………………………
Glossaire des acronymes………………………………………………………
Liste des figures
6
Figure 1 :Diagramme de Gantt……………………………………………………………8
Figure 2 : La technique de transfert de paquets…………………………………………9
Figure 3 : Un flot de paquets téléphoniques ……………………………………………..9
Figure 4 : Équipements à traverser par une communication téléphonique sur IP….11
Figure 5 : Mode point à point…………………………………………………………….1
Figure 6 :Mode diffusif…………………………………………………………………..22
Figure 7 : Architecture d'Asterisk…………………………………………………….32
Figure 8 :Exemple d’un architecture avec Asterisk …………………………………33
Figure 9 :XLite………………………………………………………………………….45
Figure 10: Windows Messenger………………………………………………………..46
Figure 11 : SJPhone……………………………………………………………………..46
Figure 11 : Linphone ……………………………………………………………………47
Figure 12 Architecture du systeme de communication………………………………….58
Figure 13 : exécution de commande permettant de se placer dans le repertoire
"etc/asterisk" ………………………………………………………………………………59
Figure 14:commande pour éditer le fichier "sip.conf" …………………………………59
Figure 15:fichier Sip.conf……………………………………………………………………
Figure 16 : Exemple de configuration de clients…………………………………………..
Figure 17:fichier extensions .conf…………………………………………………………
Figure 18:Lancement du serveur………………………………………………………….
Figure 19:figure obtenue avec la commande "Sip show peers"...................................................
Figure 20 : Exécution de la commande Help…………………………………………..
Figure 21 : Figure obtenue après exécution de la commande "Help"…………….
7
Figure 22:réponse du serveur suit à un clic sur Register……………………………..
Figure 23:Deux softphones en mode communication…………………………………..
Figure 24 :Softphone effectuant une communication…………………………………..
Figure 25 : Arrêt du serveur……………………………………………………………
Liste des tableaux……………………………………………………………
Tableau 1 : comparaison………………………………………………….23
Tableau 2 :Classe n° Délai par sens……………………………………………….24
Tableau 3 : composants utiles…………………………………………………….34
Tableau 4 :paramètres pour configurer un compte utilisateur……………………..39
8
Tableau 5 :applications classique de extensions.conf………………………………43
Tableau 6 : Options de l’application Meetme……………………………………………52
Introduction
Lorsque, le 2 juin 1875, le Canadien Alexandre Graham Bell tente de transformer des ondes
sonores en impulsions électromagnétiques, nul n’imagine que ce professeur de physiologie
vocale, spécialisé dans l’enseignement du langage pour sourds et muets, allait inventer le
téléphone. Accompagné de son assistant Thomas Watson, Bell expérimente le premier modèle
de téléphone à distance limitée et à correspondance réduite : placés dans deux pièces
9
distinctes, les deux physiciens disposent entre eux un fil conducteur dont une extrémité est
munie d’une lamelle reliée à un électroaimant. L’expérience consiste à écarter cette lamelle de
l’électroaimant puis à la relâcher. Le résultat est prodigieux : un son se propage sur le fil
conducteur jusqu’à parvenir à l’autre extrémité du fil. Il faudra moins d’un an au scientifique
Bell, tout juste âgé de 28 ans, pour perfectionner son prototype et rendre les transmissions
d’un bout à l’autre d’un fil conducteur parfaitement intelligibles pour l’oreille humaine.
Le 10 mars 1876, à Boston, Bell communique à distance avec son assistant en prononçant sa
célèbre phrase : « Monsieur Watson, veuillez venir dans mon bureau, je vous prie. »
La téléphonie est devenue l’un des moyens de communication préférés des êtres humains, et
le nombre de terminaux téléphoniques vendus dans le monde ne cesse d’augmenter. La
téléphonie a été une véritable poule aux œufs d’or pour les opérateurs, qui ont longtemps
maintenu leurs tarifs à des niveaux assez élevés.
Aujourd’hui, la position de ces opérateurs est rapidement menacée par l’arrivée massive de la
téléphonie sur IP, dont la tarification tend vers la gratuité. L’avantage incontesté de cette
technologie est sa possibilité d’intégrer la voix, la vidéo et les données sur une même
infrastructure Internet existante déjà. Grâce à cette technologie les coûts des communications
interurbaines ont chuté de manière considérable ce qui laisse croire qu’elle a encore de beaux
jours devant elle.
Le travail présenté dans ce rapport entre dans le cadre de notre projet de fin d’études licence
option informatique le thème principal étant la mise en pratique de la Voip avec asterisk.
Apres une présentation sommaire du contexte de générale et la présentation du projet, nous
développerons les chapitres suivants: dans le chapitre II nous parlerons de la théorie de la
Voip, puis nous présenterons une pratique de voip avec Asterisk dans le chapitre III, ensuit
nous parlerons de la réalisation du projet. Nous finirons par une conclusion suivie du glossaire
et de la bibliographie.
Chapitre 1 : Contexte Générale et Présentation du projet
Ce chapitre présente d’une manière générale le contexte de travail et les objectifs de ce
présent projet.
Nous allons d’abord faire une présentation de la filière Science Mathématique informatique
puis nous donnerons une vue générale du projet c'est-à-dire une description du projet.
1.1 Présentation de la filière Science Mathématique Informatique
10
La filière Science Mathématique Informatique est une filière qui se veux novatrice et
pluridisciplinaire Elle permet aux étudiants d’acquérir de bonnes bases dans les domaines des
mathématiques et informatiques .A travers son programme riche et la qualité de
l’enseignement les étudiant acquiert à la fin de leur formation de connaissance solides en
informatique fondamentale, mathématique physique et langues.
Les connaissances acquises leurs permettront de poursuivre des études en Master, Doctorat,
Ecoles d’ingénieur .Ils pourront accéder aux emplois dans les différentes secteurs ou les
mathématique et l’informatique sont valorisées.
1.2 Présentation du projet
1.2.1 Cadre et Objectif du projet
L’ère nouvelle, ouverte par la forte émergence de systèmes électroniques, informatiques,
conduit à réaliser des dispositifs autonomes en forte interaction avec les utilisateurs.
La voix sur IP (en anglais, Voice over IP ou VoIP) , une technologie de communication
vocale en plein essor qui amorce un véritable tournant dans le monde de la communication
dans la mesure où elle permet la convergence données - voix - vidéos.
Comme toute innovation technologique digne de ce nom, la VoIP doit non seulement
simplifier le travail mais permettre d'économiser de l'argent. Les prix des communications de
la téléphonie sur IP, passant par internet donc, sont dérisoires comparés aux prix habituels et
cela particulièrement pour les communications longue distance. L’objectif principale de ce
projet est place un des services de communication au niveau du département d’informatique
de la faculté des Sciences Dhar El Marhaz basé sur les techniques de la voip afin de proposer
aux différents bureaux du département un poste de téléphone VoIP afin de joindre
directement n'importe quel autre bureau, via internet et dans un perspective étendre la
possibilité aux appels vers des postes téléphonique classiques
1.2.2 Planification du projet
La planification est parmi les phases d’avant projet les plus importantes. Elle consiste à
déterminer et à ordonnancer les tâches du projet et à estimer leurs charges respectives.
Parmi les outils de planification de projet, nous avons utilisé le diagramme de GANTT, c’est
un outil qui permet de planifier le projet et de rendre plus simple le suivi de son avancement.
11
Ce diagramme permet aussi de visualiser l’enchainement et la durée des différentes tâches
durant le projet comme il est illustré par la figure qui suit :
Figure 1:Diagramme de Gantt
1.3 Conclusion
Ce chapitre introductif a été consacré essentiellement à la présentation de
l’environnement dans lequel projet de fin d’études a été effectué. Elle a aussi mis l’accent sur
la présentation du contexte du projet, ses objectifs et sa planification.
Chapitre 2: Théorie de la Voip
2.1 .1 La teléphonie par circuit et par parquet
Dans la communication à transfert de paquets, toutes les informations à transporter
sont découpées en paquets pour être acheminées d’une extrémité à une autre du réseau.
Cette technique est illustrée à la figure 1 ci dessus.
L’équipement terminal A souhaite envoyer un message à B. Le message est découpé en
trois paquets, qui sont émis de l’équipement terminal vers le premier nœud du réseau,
12
lequel les envoie à un deuxième nœud, et ainsi de suite, jusqu’à ce qu’ils arrivent à
l’équipement terminal B. Dans l’équipement terminal les paquets rassemblés reconstituent le
message de départ.
Le paquet peut en fait provenir de différents médias. Sur la figure, nous supposons
que la source est un message composé de données, comme une page de texte préparée au
moyen d’un traitement de texte. Le terme message est cependant beaucoup plus vaste et
recoupe toutes les formes sous lesquelles de l’information peut se présenter. Cela va
d’une page Web à un flot de parole téléphonique représentant une conversation.
Dans la parole téléphonique, l’information est regroupée pour être placée dans un paquet,
comme illustré à la figure 2. Le combiné téléphonique produit des octets, provenant de
la numérisation de la parole, c’est-à-dire le passage d’un signal analogique à un signal
sous forme de 0 et de 1, qui remplissent petit à petit le paquet. Dès que celui-ci est plein,
il est émis vers le destinataire. Une fois le paquet arrivé à la station terminale, le processus
inverse s’effectue, restituant les éléments binaires régulièrement à partir du paquet
pour reconstituer la parole téléphonique.
Le réseau de transfert est lui-même composé de nœuds, appelés nœuds de transfert, reliés
entre eux par des lignes de communication, sur lesquelles sont émis les éléments binaires
constituant les paquets. Le travail d’un nœud de transfert consiste à recevoir des paquets
et à déterminer vers quel nœud suivant ces derniers doivent être acheminés.
Figure 2 La technique de transfert de paquets
13
Figure 26 Un flot de paquets téléphoniques
2.1.2 La problematique de base de la téléphonie
La voix sur IP adresse deux types d’applications : celles qui, comme la téléphonie,
mettent en jeu une interaction humaine, laquelle implique un temps de transit très court, et
celles qui transportent des paroles unidirectionnelles, qui n’exigent pas de temps réel. Cette
dernière catégorie rassemble essentiellement des transferts de fichiers contenant de la parole.
La téléphonie transportée par paquets, et plus particulièrement par paquet IP, permet
d’intégrer dans un même réseau les services de données et la téléphonie. Les entreprises sont
de plus en plus nombreuses à intégrer leur environnement téléphonique dans leur réseau à
transfert de paquets. Les avantages de cette intégration sont, bien sûr, la baisse des frais de
communication, mais aussi la simplification de la maintenance de leurs réseaux, qui passent
de deux (téléphonie et données) à un seul (données).
La difficulté de la téléphonie par paquets réside dans la très forte contrainte temporelle
due à l’interaction entre individus. Le temps de latence doit être inférieur à 300 ms si l’on
veut garder une interaction humaine acceptable. Si l’on souhaite une bonne qualité de la
conversation, la latence ne doit pas dépasser 150 ms.
Un cas encore plus complexe se produit lorsqu’il y a un écho, c’est-à-dire un signal qui
revient dans l’oreille de l’émetteur. L’écho se produit lorsque le signal rencontre un
obstacle, comme l’arrivée sur le combiné téléphonique. L’écho qui repart en sens inverse
est numérisé par un codec (codeur-décodeur) et traverse sans problème un réseau numérique.
La valeur normalisée de la latence de l’écho étant de 56 ms, pour que l’écho ne soit pas
gênant à l’oreille, il faut que le temps aller ne dépasse pas 28 ms, en supposant un réseau
symétrique prenant le même temps de transit à l’aller qu’au retour. Il faut donc que, dans les
équipements terminaux, les logiciels extrémité soient capables de gérer les retards et de
14
resynchroniser les octets qui arrivent. Les équipements modernes, comme les terminaux
GSM, possèdent des suppresseurs d’écho évitant cette contrainte temporelle forte.
Une autre caractéristique essentielle de la téléphonie provient du besoin d’avertir par une
sonnerie la personne qui est appelée. La communication téléphonique est pour cela
décomposée en deux phases : une première permettant d’avertir le destinataire, et une seconde
correspondant au transport de la parole proprement dite. Il existe en réalité une troisième
phase , qui consiste en la finalisation de la communication lorsqu’un des deux terminaux
raccroche. Cette phase utilise le même type de protocole que la première : un protocole
de signalisation.
2.1.3 Comparaison avec la téléphonie classique
La téléphonie classique, dite par circuit, présente les mêmes contraintes temporelles que la
téléphonie par paquet. Le temps de transit doit être limité pour satisfaire le besoin
d’interactivité entre individus.
La limitation du temps de transit entre l’émetteur et le récepteur est relativement simple à
réaliser dans une technologie circuit. Les ressources étant réservées, la voie est toujours
dégagée sur le circuit, et les ressources appartiennent uniquement aux signaux qui transitent
entre l’émetteur et le récepteur. En revanche, dans un transfert de paquets, aucune
ressource n’est réservée, et il est impossible de savoir quel sera le temps d’attente des
paquets dans les nœuds de transfert.
Dans la première génération de téléphonie, les signaux étaient analogiques. Ils parcouraient le
circuit sous la même forme que le son sortant de la bouche et n’utilisaient que 3 200 Hz de
bande passante. Ils sont ensuite devenus numériques.
Dans la téléphonie traditionnelle numérique, le signal analogique est numérisé grâce à un
codeur-décodeur, appelé codec. Le codec transforme le signal analogique en une suite de
0 et de 1. Le temps de transit est du même ordre de grandeur que le transfert du signal
analogique, car le signal ne s’arrête nulle part. La seule perte de temps pourrait provenir
du codec, mais ces équipements très rapides ne modifient pas fondamentalement le temps
de transit. En revanche, dans un réseau à transfert de paquets, de nombreux obstacles se
dressent tout au long du cheminement des informations binaires.
L’élément le plus contraignant de l’application de téléphonie par paquet reste le délai
pour aller d’une extrémité à l’autre, puisqu’il faut traverser les deux terminaux, émetteur
et récepteur, de type PC par exemple, ainsi que les modems, les réseaux d’accès, les
15
passerelles, les routeurs, etc.
On peut considérer que le temps de traversée d’un PC et de son codec demande quelques
millisecondes, la paquétisation de 5 à 16 millisecondes, la traversée d’un modem quelques
millisecondes également, celui d’un routeur ou d’une passerelle de l’ordre de la milliseconde
(s’il n’y a aucun paquet en attente) et celui d’un réseau IP quelques dizaines de millisecondes.
L’addition de ces temps montre que la limite maximale de 300 ms permettant l’interactivité
est rapidement atteinte le déroulement d’une communication téléphonique sur IP parcourt les
cinq grandes étapes
suivantes :
1.Mise en place la communication. Une signalisation démarre la session. Le premier
élément à considérer est la localisation du récepteur (User Location). Elle s’effectue par une
conversion de l’adresse du destinataire (adresse IP ou adresse téléphonique classique) en une
adresse IP d’une machine qui puisse joindre le destinataire (qui peut être le destinataire lui-
même). Le récepteur peut être un combiné téléphonique classique sur un réseau d’opérateur
télécoms ou une station de travail (lorsque la communication s’effectue d’un combiné
téléphonique vers un PC). Le protocole DHCP (Dynamic Host Configuration Protocol) et les
passerelles spécialisées (gatekeeper) sont employés à cette fin.
Figure 4 : Équipements à traverser par une communication téléphonique sur IP
2. Établissement de la communication. Cela passe par une acceptation du terminal
destinataire, que ce dernier soit un téléphone, une boîte vocale ou un serveur Web.
Plusieurs protocoles de signalisation sont utilisés pour cela, en particulier le protocole
SIP (Session Initiation Protocol) de l’IETF. Une requête SIP contient un ensemble d’en-têtes,
qui décrivent l’appel, suivis du corps du message, qui contient la description de la demande de
session. SIP est un protocole client-serveur, qui utilise la syntaxe et la sémantique de HTTP.
Le serveur gère la demande et fournit une réponse au client.
Trois types de serveurs gèrent différents éléments : un serveur d’enregistrement
(Registration Server), un serveur relais (Proxy Server) et un serveur de redirection
16
(Redirect Server). Ces serveurs travaillent à trouver la route : le serveur proxy détermine
le prochain serveur (Next-Hop Server), qui, à son tour, trouve le suivant, et ainsi de suite. Des
champs supplémentaires de l’en-tête gèrent des options, comme le transfert d’appel ou la
gestion des conférences téléphoniques.
3. Transport de l’information téléphonique. Le protocole RTP (Real-time Transport
Protocol) prend le relais pour transporter l’information téléphonique proprement dite. Son rôle
est d’organiser les paquets à l’entrée du réseau et de les contrôler à la sortie de façon à
reformer le flot avec ses caractéristiques de départ (vérification du synchronisme, des pertes,
etc.). C’est un protocole de niveau transport, qui essaye de corriger les défauts apportés par le
réseau.
4. Changement de réseau. Un autre lieu de transit important de la voIP est constitué
par les passerelles, qui permettent de passer d’un réseau à transfert de paquets à un réseau à
commutation de circuits, en prenant en charge les problèmes d’adressage, de signalisation et
de transcodage que cela pose. Ces passerelles ne cessent de se multiplier entre FAI et
opérateurs télécoms.
5. Arrivée au destinataire. De nouveau, le protocole SIP envoie une requête à la passerelle
pour déterminer si elle est capable de réaliser la liaison circuit de façon à atteindre le
destinataire. En théorie, chaque passerelle peut appeler n’importe quel numéro de téléphone.
Cependant, pour réduire les coûts, mieux vaut choisir une passerelle locale, qui garantit que la
partie du transport sur le réseau téléphonique classique est le moins cher possible.
2.1.4 Avantage de la Toip
La téléphonie n’a jamais été une application simple. Les contraintes temps réel et de
synchronisation pèsent lourdement sur sa mise en œuvre, et la téléphonie par paquet ne fait
que compliquer le transport.
Cependant, plusieurs raisons expliquent le succès de la téléphonie par paquet, et plus
spécifiquement de la téléphonie sur IP :
• Convergence. Quel que soit le type de données véhiculées, le réseau est unique :
les flux de voix, de vidéo, de textes et d’applicatifs transitent sur le même réseau.
Les communications deviennent plus riches, et sans avoir besoin de multiplier les canaux de
transport.
17
• Optimisation des ressources. Le réseau IP utilisant un transfert de paquets, l’utilisation des
ressources est optimisée en comparaison des solutions de type commutation de circuits. Dans
le réseau RTC, qui est à commutation de circuits, des ressources sont dédiées pour toute la
durée de la communication, qu’elles soient utilisées ou non.
Or les très nombreux silences d’une conversation téléphonique rendent le dimensionnement
du canal réservé systématiquement trop grand. Pour que la voix supporte simultanément la
superposition des deux paroles correspondant aux deux intervenants d’une communication
téléphonique (full-duplex), les réseaux RTC doivent allouer pour chaque intervenant des
canaux différents, l’un en émission, l’autre en réception.
Dans la pratique, lors d’une conversation téléphonique, une seule personne parle en même
temps. Les ressources sont donc globalement gaspillées. C’est pourquoi la réservation
effectuée dans les réseaux RTC représente un coût nettement supérieur à celui des réseaux IP.
• Coût de transport quasiment nul. Grâce à l’intégration de la téléphonie parmi de
nombreuses autres applications, le coût du transport devient pratiquement nul. Le réseau
permettant d’effectuer le transport est le réseau cœur des opérateurs, celui qui effectue tous les
transports de données. Ces opérateurs, qui étaient auparavant obligés de maintenir au moins
deux réseaux, celui de téléphonie et celui de données, n’en ont plus qu’un seul à maintenir.
L’intégration supplémentaire de la télévision dans le réseau de données fait également chuter
les coûts de transport de cette application.
• Services exclusifs. Certains services sont propres aux réseaux IP. Par exemple, le service de
présence, consistant à détecter si un utilisateur est connecté au réseau ou non, ne nécessite
aucune réservation de ressources dans un réseau IP, à la différence du réseau RTC. De façon
analogue, pour le nomadisme des utilisateurs, il est plus simple de passer, partout dans le
monde, par le réseau IP plutôt que par le réseau RTC.
• Disparition des commutateurs locaux. Liée à la précédente, cette nouvelle donne résulte
de la possibilité de gérer les téléphones depuis le réseau de l’opérateur (système Centrex). Des
solutions intermédiaires, comme les PBX-IP, permettent de passer petit à petit des circuits
numériques aux liaisons paquet IP.
2.2.5 Conclusion
La téléphonie reste une des applications dominantes du monde des réseaux, et ce pour encore
de nombreuses années, en raison notamment de l’émergence de nouveaux et immenses
18
marchés, comme celui de la Chine. La VoIP reste aujourd’hui majoritairement prise en charge
par les réseaux à commutation de circuits, mais une forte concurrence s’exerce avec les
réseaux à transfert de paquets.
Le passage vers le tout-IP téléphonique, permettant d’intégrer les services de données et la
téléphonie dans un même réseau, paraît inéluctable.
2.2 : Signalisation H323
La signalisation désigne la transmission d’un ensemble de signaux et d’informations de
contrôle échangés entre les intervenants d’une communication. Ces intervenants peuvent
être des entités en bout de liaison (terminaux) ou des entités intermédiaires de contrôle et
de gestion des communications. Leurs échanges permettent l’initiation, la négociation,
l’établissement, le maintien et la fermeture de la connexion.
Il convient de distinguer deux types de transferts pour comprendre à quoi correspond la
signalisation :
• le transfert de données brutes ;
• le transfert d’informations de contrôle.
Le transfert de données brutes concerne les échanges de données binaires d’un poste vers un
autre. L’objectif de ce transfert est de reproduire à l’identique des données en le faisant
transiter par un réseau.
2.2.1 Protocoles et normalisation
1996 a été une année charnière et un tournant particulièrement important pour l’essor de la
VoIP. Si cette dernière suscitait de l’intérêt auparavant, ce n’est qu’à partir de cette
année-là qu’elle commença à prendre son envol en revêtant un caractère normalisé.
Le handicap majeur qui freinait jusqu’alors le développement de la téléphonie IP résidait dans
l’incompatibilité des protocoles utilisés pour mettre en œuvre une communication audio ou
vidéo. Lorsque deux opérateurs distincts utilisent des normes de communication différentes, il
est impossible pour un utilisateur exploitant le réseau d’un opérateur de communiquer avec un
utilisateur affilié à l’autre opérateur. Pour assurer la compatibilité des communications, il était
indispensable de se fonder sur des bases communes. Pendant longtemps, un très grand nombre
de constructeurs ont tenté d’imposer leur propre protocole comme standard. Aucun de ces
19
protocoles propriétaires, le plus souvent coûteux et sans légitimité particulière vis-à-vis des
autres, n’a réussi à s’imposer. Chaque constructeur cultivait ainsi sa différence, se montrant
réfractaire aux autres propositions et cherchant sans cesse à améliorer le sien.
De leur côté, les entreprises se montraient sceptiques et plus que réservées à l’idée
d’installer des réseaux de téléphonie fondés sur des protocoles instables. Du reste, l’utilisation
d’Internet demeurait encore modeste à l’époque, et l’on ne parlait, dans le meilleur des cas,
que d’exploiter la téléphonie IP dans un réseau local.
En 1996, l’éditeur de logiciel Netscape, qui possédait une part de marché de 80 % avec
son navigateur Web Navigator, annonça la sortie prochaine de son logiciel de téléphonie
CoolTalk. Netscape nourrit l’attente, mais il ne put tenir la vedette. La conception d’un
protocole fédérateur devait passer par une institution, pas par une entreprise.
Cette même année 1996, l’ITU (International Télécommunications Union) proposa la
famille de protocoles H.32x, très fortement soutenu par Microsoft et Intel. L’ITU parvint
rapidement à convaincre les différents équipementiers et fournisseurs de services de la
nécessité d’adopter pour norme commune ces protocoles H.32x.
Sans être précurseurs ni de la téléphonie, ni de la vidéo, ni même de la conférence, ces
protocoles constituent immanquablement l’initiative la plus aboutie et la plus marquante
des débuts de la signalisation multimédia. La généralisation progressive et systématique
de H.323 finit par faire céder les plus récalcitrants des acteurs du multimédia, qui
abandonnèrent leurs solutions propriétaires, pourtant très évoluées. La VoIP venait de trouver
son protocole fédérateur et pouvait prendre son envol.
Depuis, le protocole H.323 a été adopté, implémenté ou supporté Sans être précurseurs ni de
la téléphonie, ni de la vidéo, ni même de la conférence, ces protocoles constituent
immanquablement l’initiative la plus aboutie et la plus marquante des débuts de la
signalisation multimédia. La généralisation progressive et systématique de H.323 finit par
faire céder les plus récalcitrants des acteurs du multimédia, qui abandonnèrent leurs solutions
propriétaires, pourtant très évoluées. La VoIP venait de trouver son protocole fédérateur et
pouvait prendre son envol.
La normalisation UIT : Fondée en 1865, l’ITU, en français UIT (Union internationale des
télécommunications), est une des organisations internationales de normalisation les plus
anciennes. Son rôle est de proposer des modèles de communication afin de favoriser les
télécommunications et les services associés, tout en réglementant au niveau mondial les
20
usages des protocoles. L’organisation comporte les trois comités suivants, dont les noms ont
été modifiés en 1993 à fins d’unification :
• UIT-T, pôle de standardisation des télécommunications. Ce comité normalise tout ce
qui a trait aux transmissions, au transport et aux télécommunications. Il reprend l’activité
de l’ancien CCITT (Comité consultatif international des télégraphes et des téléphones).
• UIT-R, pôle des radiocommunications. Ce comité normalise tout ce qui a trait aux
signaux vidéo et télévisuels, avec la radio analogique et numérique. Il reprend l’activité
de l’ancien CCIR (Comité consultatif international des radiocommunications).
• UIT-D, pôle de développement des télécommunications. Ce comité est chargé de
promouvoir l’assistance technique vers les pays en voie de développement. Il reprend
l’activité de l’ancien BDT (Bureau de développement des télécommunications).
• L’UIT-T a notamment défini des standards classés et référencés selon une codification
particulière. La lettre indique la série (de la première à la dernière lettre de l’alphabet) et
est suivie d’un chiffre identifiant chacune des recommandations de la série.
On retiendra notamment les séries de recommandations suivantes :
• série E pour les recommandations liées aux généralités des réseaux, des services et des
opérations, par exemple E.164 pour le plan de numérotation de la téléphonie publique
internationale ;
• série G pour les recommandations liées aux systèmes et supports de transmission
multimédia, par exemple G.711 pour le codage audio avec compression ;
• série H pour les recommandations liées aux systèmes audiovisuels et multimédias ;
• série Q pour les recommandations liées aux commutations et aux signaux ;
• série V pour les recommandations liées aux communications sur un réseau téléphonique
commuté, par exemple V.90 pour les communications avec des modems à 56 Kbit/s en
lien descendant et 33,6 Kbit/s en lien montant ;
• série X pour les recommandations liées aux réseaux de données et aux communications
entre systèmes ouverts, par exemple X.25 pour les communications en mode
point-à-point par commutation de paquets.
2.2.2 Architecture et fonctionnalité du protocoles H323
Avec le développement du multimédia sur les réseaux, il est devenu nécessaire de créer des
protocoles qui supportent ces nouvelles fonctionnalités, telles que la visioconférence : l’envoi
21
de son et de vidéo avec un soucis de données temps réel. Le protocole H.323 est l’un d’eux. Il
permet de faire de la visioconférence sur des réseaux IP.
H.323 est un protocole de communication 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. Concrètement, il est utilisé dans des programmes tels que
Microsoft NetMeeting, ou encore dans des équipements tels que les routeurs Cisco. Il existe
un projet Open H.323 qui développe un client H.323 en logiciel libre afin que les utilisateurs
et les petites entreprises puissent avoir accès à ce protocole sans avoir à débourser beaucoup
d’argent.
Le protocole s’articule autour d’une architecture particulière ,cette architecture concentre les
fonctionnalités autour d’entités, ce qui explique pourquoi le protocole H.323 est considéré
comme fortement centralisé.
Les quatre entités d’une architecture H.323
Le protocole H.323 axe très fortement ses communications sur une typologie
d’équipements.
Une architecture H.323 est généralement composée des quatre catégories d’entités
suivantes :
•Terminaux (au minimum deux). Ce sont les équipements de traitement destinés aux
utilisateurs, leur permettant d’émettre et de recevoir des appels.
• Gatekeeper, ou garde-barrière. C’est l’équipement permettant la localisation des
utilisateurs. Ces derniers peuvent s’identifier entre eux par des noms, auxquels il faut
attribuer l’adresse IP correspondante dans le réseau ou, si l’appelé n’est pas situé dans
un réseau IP, la localisation de l’entité intermédiaire à joindre pour l’appel. Outre cette
fonction primordiale, un gatekeeper remplit tout un ensemble de fonctions complémentaires
de gestion et de contrôle des communications, certaines étant indispensables
et d’autres facultatives.
• Passerelle, ou gateway. C’est l’équipement permettant à des utilisateurs du réseau IP de
joindre les utilisateurs qui sont actifs sur d’autres types de réseaux téléphoniques,
RTC, RNIS ou ATM. On peut avoir autant de passerelles différentes que nécessaire, suivant
la nature des réseaux non-IP à interconnecter.
• MCU (Multipoint Control Unit), ou unité de contrôle multipoint, parfois appelée pont
multipoint. C’est l’équipement permettant la gestion des conférences, c’est-à-dire les
22
communications multimédias mettant en jeu plus de deux interlocuteurs. Ces derniers
doivent préalablement se connecter à la MCU, sur laquelle s’établissent les demandes
et négociations des paramètres à utiliser lors de la conférence.
Il convient de donner, la définitions des deux termes suivantes ,employé dans l’architecture
H32 3 :
• Points de terminaison. Terminaux, gateway et MCU sont des entités auxquelles les
émetteurs peuvent s’adresser directement pour communiquer. Contrairement au gatekeeper,
qui joue un rôle intermédiaire de contrôle et de gestion, ces entités sont des
points de terminaison des appels (aussi appelés endpoints).
• Zone et système H.323. La nomenclature H.323 définit deux notions qu’il convient de
bien connaître et différencier :
– Un système H.323 est défini comme un ensemble de deux terminaux au minimum,
d’autres éléments pouvant être ajoutés.
– Une zone H.323 est un ensemble de deux terminaux avec un gatekeeper au minimum,
d’autres éléments pouvant être ajoutés.
2.2.3 Fonctionnalitées avancées
Dans cette secttion nous présentons quelque fonctionnalitées complémentaire du protocle
H323 .Ces fonctionnalités ne sont pas obligatoire mais elles sont fortement recomandées.
La procédure Early H.245 : En principe, le tunnel H.245 permettant la négociation d’appel
n’est établi qu’après le message H.225.0/Q.931 SETUP. Ce message contient les paramètres
permettant la mise en place du canal H.245.
L’idée à la base de ce choix est qu’il ne sert à rien de négocier des paramètres de
communication tant que la personne appelée n’a pas accepté l’appel. Les négociations
effectuées s’avéreraient totalement inutiles si la communication ne devait pas être établie. Si
l’appel aboutit effectivement, les négociations de paramètres qui interviennent entre les
intervenants retardent sensiblement le temps d’établissement de la communication. Par
conséquent, anticiper ces actions se relève pratique. Avec la procédure Early H.245, il est
possible d’avancer l’établissement du canal H.245. Pour cela, il faut inclure les paramètres de
mise en place du canal H.245 dans un message précédant la requête SETUP. Typiquement, on
utilise la requête ALERTING pour donner ces informations.
23
Dès que cette dernière est reçue, l’établissement du canal H.245 peut commencer
parallèlement à la signalisation H.225.0. Globalement, cela accélère sensiblement l’étape de
négociation des paramètres effectuée avec le protocole H.245, et l’appel est plus rapidement
établi. Cette optimisation particulièrement utile est souvent disponible en complément de la
procédure FastConnect.
La procédure FastConnect : En principe, le canal H.245 permettant la négociation des
paramètres d’appel est nécessaire pour l’établissement d’une communication. On constate
cependant que l’ouverture d’un tunnel de contrôle H.245 est relativement longue et
pénalisante pour l’établissement d’une communication (de l’ordre de 15 à 30 secondes dans
l’implémentation de la première version de H.323, ce qui est excessivement long).
Tous les paramètres négociés par ce canal ne sont pas indispensables. Partant de ce
constat, à partir de la version 2 de la recommandation H.323, l’ouverture du canal H.245
a été simplifiée et rendue optionnelle, tandis que d’autres moyens ont été proposés pour
échanger les paramètres négociés par ce tunnel.
Avec la procédure FastConnect, il est possible d’inclure dans l’invitation d’appel des
informations de canal de contrôle. De cette manière, l’établissement d’un appel peut se
faire en seulement deux messages.
L’inconvénient de cette méthode est qu’elle ne permet pas la transmission d’informations
DTMF. Il s’agit néanmoins d’une optimisation indispensable à l’établissement d’appels dans
des délais raisonnables.
La procédure H.245 tunneling : Pour chaque appel, il est en principe nécessaire d’avoir
deux connexions séparées . L’une pour les messages de signalisation d’appel Q.931, l’autre
pour la mise en place du canal de contrôle H.245. Avec la procédure H.245 tunneling, il est
possible de n’avoir qu’un seul canal. Pour cela, les messages de contrôle H.245 doivent être
encapsulés dans des messages H.225.0.
La sécurité
Absents de la première version du protocole, les mécanismes de sécurité ont été ajoutés
dès la seconde avec la recommandation H.235.
En juin 2006, à l’occasion de la sixième version du protocole, la recommandation H.235 a été
totalement remaniée et restructurée autour d’une série de documents numérotés de
H.235.0 à H.235.9. Ces documents détaillent les mécanismes de sécurité ajoutés à la
norme en les répartissant en plusieurs volets, notamment les suivants :
• Authentification. Ce mécanisme permet de s’assurer de l’identité des correspondants.
24
Tout utilisateur doit s’authentifier auprès du gatekeeper avant d’être autorisé à émettre
ou recevoir un appel. C’est également indispensable pour garantir la bonne gestion des
facturations d’appels.
• Contrôle d’intégrité. Ce mécanisme permet de s’assurer que les données sont transmises
sans avoir été altérées ni corrompues pendant leur transfert.
• Confidentialité. Cet aspect couvre les méthodes de cryptage de données empêchant les
écoutes clandestines d’une communication.
• Non-répudiation. Ce mécanisme permet de s’assurer de la provenance d’un message
(empêchant l’émetteur de nier ultérieurement son envoi). Le protocole H.323 supporte aussi la
sécurisation des échanges multimédias via le protocole SRTP (Secure RTP).
Gatekeeper alternatif et gatekeeper affecter
Dans l’architecture H.323, les gatekeepers jouent un rôle prépondérant et sont relativement
souvent sollicités par les autres équipements, ce qui en fait des entités particulièrement
sensibles.Deux mécanismes, appelés gatekeeper alternatif et gatekeeper affecté, ont été prévus
pour améliorer la stabilité et la robustesse du réseau, même en cas de panne d’un gatekeeper.
« Gatekeeper alternatif » :Si un gatekeeper tombe en panne, un autre, le gatekeeper
alternatif, peut prendre dynamiquement le relais et traiter les appels en cours. Cette possibilité
a été introduite dans la version 2 du protocole H.323. Les terminaux qui la supportent peuvent
basculer vers un nouveau gatekeeper dès qu’ils détectent une panne de leur gatekeeper initial.
Les gatekeepers ainsi placés en redondance procurent une meilleure stabilité au réseau.
En outre, il devient possible d’effectuer de la répartition de charge afin qu’un gatekeeper
trop sollicité puisse se faire relayer par un autre.
Pour les opérateurs, cette fonctionnalité assure une meilleure disponibilité et une continuité
de services, même en cas de défaillances matérielles ou logicielles.
« Gatekeeper affecté »:Avec ce mécanisme, chaque terminal dispose par défaut d’un
gatekeeper de référence,auprès duquel il cherche systématiquement et préférentiellement à
s’enregistrer. Ce gatekeeper est appelé gatekeeper affecté. Si, à la suite d’une panne, d’une
saturation ou pour toute autre raison, la connexion avec celui-ci s’avère impossible, le
terminal doit basculer vers un gatekeeper alternatif pour continuer à communiquer
normalement.
Tout en étant sous le contrôle d’un autre gatekeeper que celui affecté, le terminal continue
à surveiller périodiquement son gatekeeper affecté afin de vérifier sa disponibilité.
25
En cas d’activité détectée, le terminal se réoriente vers lui pour s’y enregistrer. Cela permet de
répartir au mieux les utilisateurs entre les gatekeepers et par voie de conséquence
de disposer d’une meilleure gestion des ressources disponibles.
Cette fonctionnalité a été introduite dans la version 6 du protocole H.323.
2.2.4 Conclusion
Le standard H.323 est omniprésent dans les communications multimédia en temps réel Et il
est utilisé par plusieurs compagnies telles que Intel, Microsoft, Cisco, IBM, etc. Son
Indépendance des plates formes permet le concevoir des applications multimédia sans changer
l’infrastructure des réseaux. Nous allons étudier un autre protocole de signalisation concurrent
du H.323 appelé protocole d’initiation de session. Nous présenterons aussi une comparaison
entre ces deux protocoles.
2.3 Protocoles SIP
SIP (Session Initiation Protocol) a été normalisé par le groupe de travail WG MMUSIC(Work
Group Multiparty Multimedia Session Control). SIP est au sens propre un protocole de
signalisation hors bande pour l’établissement, le maintien, la modification, la gestion et la
fermeture de sessions interactives entre utilisateurs pour la téléphonie et la vidéoconférence,
et plus généralement pour toutes les communications multimédias. Il se situe au niveau de la
couche applicative du modèle de référence OSI et fonctionne selon une architecture client-
serveur, le client émettant des requêtes et le serveur exécutant en réponse les actions
sollicitées par le client.
Le protocole SIP a été conçu pour s’adapter à Internet, en particulier pour que le réseau
supporte des montées en charge du nombre d’utilisateurs. Pour cela, l’architecture SIP
repose sur plusieurs serveurs distincts, qui distribuent la charge du réseau en communiquant
entre eux, un peu à la manière des serveurs DNS sur Internet. Lorsque le nombre d’utilisateurs
croît, il suffit d’ajouter des serveurs disposant de fonctions dédiées pour collaborer avec ceux
déjà en place.
Cette approche se révèle hautement évolutive et flexible puisque de nouvelles fonctionnalités
peuvent à tout moment être déployées, sans avoir à modifier les composants existants.
Compatibilité : L’un des grands atouts de SIP est sa capacité à s’intégrer à d’autres
protocoles standards du monde IP. En tant que standard ouvert, il offre un service modulaire,
26
prévu pour fonctionner avec différentes applications, telles que la téléphonie, la messagerie
instantanée, la vidéoconférence, la réalité virtuelle ou même le jeu vidéo.
Le protocole s’insère comme une partie d’un ensemble plus générique, intitulé Internet
Multimedia Conferencing Suite. À l’image de H.323, SIP est peu à peu devenu un protocole
dit parapluie, qui encadre et rassemble plusieurs autres protocoles.
SIP peut notamment se déployer ou s’intégrer aux protocoles suivants :
• RTP (Real-time Transport Protocol), RFC 3550, qui se charge du transport des flux
temps réel.
• RTCP (Real-time Transport Control Protocol), RFC 3550, qui fournit des informations
dynamiques sur l’état du réseau.
• RTSP (Real-time Streaming Protocol), RFC 2326, pour contrôler la diffusion de flux
multimédias en temps réel.
• SDP (Session Description Protocol), RFC 2327, qui fournit la description d’une
session, c’est-à-dire les paramètres utilisés dans une communication SIP.
• SAP (Session Advertisement Protocol), RFC 2974, pour les communications multicast,
qui permet d’ajouter les spécifications d’une nouvelle session.
• MIME (Multipurpose Internet Mail Extension), RFC 2045, standard pour les
descriptions de contenus, utilisé sur Internet.
• RSVP (Resource reSerVation Protocol), RFC 2205, pour obtenir des garanties de
qualité de service et effectuer des réservations de ressources.
• HTTP (HyperText Transfer Protocol), RFC 2616, pour le traitement des pages Web sur
Internet (on peut inclure des adresses SIP directement dans des pages Web).
• MGCP (Media Gateway Control Protocol), RFC 3435, pour le contrôle des passerelles
assurant la connectivité entre un réseau IP et un réseau téléphonique.
Tous ces protocoles sont d’une nature différente de celle de SIP, et ils n’interfèrent pas
avec la signalisation. Leur utilisation conjointe est possible, voire recommandée pour
certains d’entre eux.
Cela dit, aucun d’eux n’est indispensable au bon fonctionnement de SIP, qui reste totalement
indépendant à leur égard et autorise a priori n’importe quel autre protocole. Dans
la pratique, nous verrons cependant que SIP est classiquement utilisé avec les mêmes
protocoles.
2.3.1 Architecture de SIP
27
L’architecture de SIP s’articule principalement autour des cinq entités suivantes :
• terminal utilisateur ;
• serveur d’enregistrement ;
• serveur de localisation ;
• serveur de redirection ;
• serveur proxy.
Terminal est l’élément dont dispose l’utilisateur pour appeler et être appelé. Il doit
donc permettre de composer des numéros de téléphone. Il peut se présenter sous la forme
d’un composant matériel (un téléphone) ou d’un composant logiciel (un programme
lancé à partir d’un ordinateur).
Serveur d’enregistrement (Registrar Server) offre un moyen de localiser un correspondant
avec souplesse, tout en gérant la mobilité de l’utilisateur. Il peut en outre supporter
l’authentification des abonnés
Serveur de localisation (Location Server) joue un rôle complémentaire par rapport au
serveur d’enregistrement en permettant la localisation de l’abonné.
Ce serveur contient la base de données de l’ensemble des abonnés qu’il gère. Cette base
est renseignée par le serveur d’enregistrement. Chaque fois qu’un utilisateur s’enregistre
auprès du serveur d’enregistrement, ce dernier en informe le serveur de localisation.
Serveur de redirection (Redirect Server) agit comme un intermédiaire entre le terminal
client et le serveur de localisation. Il est sollicité par le terminal client pour contacter le
serveur de localisation afin de déterminer la position courante d’un utilisateur.
L’appelant envoie une requête de localisation d’un correspondant (il s’agit en réalité d’un
message d’invitation, qui est interprété comme une requête de localisation) au serveur de
redirection. Celui-ci joint le serveur de localisation afin d’effectuer la requête de localisation
du correspondant à joindre. Le serveur de localisation répond au serveur de
redirection, lequel informe l’appelant en lui fournissant la localisation trouvée. Ainsi,
l’utilisateur n’a pas besoin de connaître l’adresse du serveur de localisation.
Serveur proxy (parfois appelé serveur mandataire) permet d’initier une communication
à la place de l’appelant. Il joue le rôle d’intermédiaire entre les terminaux des interlocuteurs
et agit pour le compte de ces derniers.
Le serveur proxy remplit les différentes fonctions suivantes :
• localiser un correspondant ;
28
• réaliser éventuellement certains traitements sur les requêtes ;
• initier, maintenir et terminer une session vers un correspondant.
2.3.2 L’adressage SIP
L’objectif de l’adressage est de localiser les utilisateurs dans un réseau. C’est une des
étapes indispensables pour permettre à un utilisateur d’en joindre un autre.
Pour localiser les utilisateurs, il faut pouvoir les identifier de manière univoque. SIP
propose des moyens très performants pour nommer les utilisateurs, grâce au concept
d’URI. Un URI définit une syntaxe permettant de désigner de manière unique, formelle et
normalisée une ressource, qu’il s’agisse d’un document textuel, audio, vidéo ou plus
généralement d’une entité logique ou physique.
Une ressource décrite par un URI peut être déplacée ou même supprimée. L’URI
correspondant n’en conserve pas moins de manière permanente la valeur descriptive de la
ressource.
Un URI est formé d’une chaîne de caractères.Tout utilisateur SIP dispose d’un identifiant
unique. Cet identifiant constitue l’adresse de l’utilisateur permettant de le localiser.
Le format d’une adresse SIP (ou URL SIP) respecte la RFC 3986 (nommée Uniform
Resource Identifier: Generic Syntax) et se présente sous la forme suivante :
sip : identifiant[:mot_de_passe]@serveur[?paramètres]
Les parties entre crochets sont optionnelles. On distingue dans cette adresse plusieurs parties :
• Le mot-clé sip spécifie le protocole à utiliser pour la communication. Par analogie avec
le Web (où une page est référencée par une adresse de type http://monsite), le mot-clé
sip précise que ce qui va suivre est l’adresse d’un utilisateur.
• La partie identifiant définit le nom ou le numéro de l’utilisateur. Cet identifiant est
nécessairement unique pour désigner l’utilisateur de manière non ambiguë.
• La partie mot_ de_passe est facultative. Le mot de passe peut être utile pour s’authentifier
auprès du serveur, notamment à des fins de facturation. C’est aussi un moyen pour joindre un
utilisateur qui a souhaité s’enregistrer sur l’équivalent d’une liste rouge : sans la connaissance
de ce mot de passe, le correspondant n’est pas joignable. De manière générale, cette
possibilité offre le moyen de restreindre l’utilisation de certains services.
29
• La partie serveur spécifie le serveur chargé du compte SIP dont l’identifiant précède
l’arobase. Le serveur est indiqué par son adresse IP ou par un nom qui sera résolu par DNS.
Des paramètres URI peuvent être associés à ce nom. C’est ce serveur qui sera
contacté pour joindre l’abonné correspondant. Un port peut être spécifié à la suite du serveur.
• La partie paramètres est facultative. Les paramètres permettent soit de modifier le
comportement par défaut (par exemple, en modifiant les protocoles de transport ou les
ports, ou encore le TTL par défaut), soit de spécifier des informations complémentaires
(par exemple, l’objet d’un appel qui sera envoyé à l’appelé en même temps que l’indication
d’appel, à la manière d’un e-mail précisant l’objet du message).
2.2.3 Fonctionnement
SIP permet donc de mettre en place une communication. Pour cela avant que la connexion
soit établie, il se charge d’envoyer plusieurs paquets entre les postes afin de définir le début et
la fin de la conversation, son type, et sa composante (type d’encodage utilisé pour l’audio).
Ces requêtes sont répertoriées sous divers codes :
— 1xx : Information - La requête a été reçue par le destinataire et continue à être traitée (ex :
180 = 'en train de sonner')
2xx : Succès (ex : 200 ='OK', 202='acceptée')
3xx : Redirection - Une autre action doit avoir lieue afin de valider la requête
4xx : Erreur du client - La requête contient une syntaxe fausse ou bien elle ne peut pas
être traitée par ce serveur (ex : 404 = 'Not found')
5xx : Erreur du serveur - Le serveur n’a pas réussi à traiter une requête qui semble être
correcte
6xx : Echec général, la requête ne peut être traitée par aucun serveur
On distingue également 2 modes précis d’ouverture de sessions avec SIP que l’on va détailler
:
Mode Point à point : communication entre deux postes ;
Mode diffusif : Plusieurs postes membre d’un serveur.
Mode Point à point :
Le mode point à point est donc une communication simple entre deux sans passer par une
passerelle.
30
Figure 5 Mode point à point
Pour ouvrir une session, un utilisateur émet une invitation transportant un descripteur de
session permettant aux utilisateurs souhaitant communiquer de s’accorder sur la comptabilité
de leur média.
L’appelant et l’appelé doivent être identifiés via son URL SIP qui est du même type qu’une
URL mailto (utilisateur@machine). Pour le mode point à point on utilise donc l’adresse IP du
poste à joindre dans le logiciel de communication : sip:nom@adresseip.
Pour ouvrir une session, l’appelant envoie une requête contenant l’URL SIP du destinataire.
Lors de la mise en place de cette communication, plusieurs paquets sont échangés entre les
deux postes :
Invite : Permet d’informer le destinataire qu’une communication veut être
établie avec lui et l’appelant.
Trying : Essai d’établir la connexion,
Ringing : Emet une sonnerie en attendant le décrochage du combiné distant.
OK : Permet d’acquitter une fois le combiné distant décroché.
ACK : Cette requête permet de confirmer que le terminal appelant a bien reçu
une réponse définitive à une requête Invite.
RTP : Retrouver les explications de ce protocole dans la partie VoIP.
BYE : Cette requête est utilisée par le terminal de l’appelé à fin de signaler
qu’il souhaite mettre un terme à la session.
31
Mode diffusif : Le mode diffusif, contrairement au mode point à point, utilise une passerelle
pour réaliser une communication entre deux éléments. Les clients sont enregistrés sur un
serveur appelé M.C.U.[5] qui va les identifier par rapport à un numéro. Lorsqu’un client veut
appeler quelqu’un, il ne va donc plus utiliser l’adresse IP mais sont identifiant.
Figure : Mode de diffusif
Figure 6 Mode diffusif Figure 6 :Mode diffusif
32
2.2.3.5 Comparaison avec H323
Le protocole H.323 présente les avantages suivants :
Il existe de nombreux produits (plus de 30) utilisant ce standard adopté par de grandes
entreprises telles Cisco, IBM, Intel, Microsoft, Netscape, etc.
Les cinq principaux logiciels de visioconférence Picturel 550, Proshare 500, Trinicon 500,
Smartstation et Cruiser 150 utilisent sur IP la norme H.323.Un niveau d’interopérabilité très
élevé, ce qui permet à plusieurs utilisateurs d'échanger des données audio et vidéo sans faire
attention aux types de média qu'ils utilisent.
Si telle sont les avantages de H323 ,ceux de Sip ne sont pas reste ,ainsi voici les avantages du
protocoles SIP
Sip est un protocole plus rapide. La séparation entre ses champs d’en-tête et son corps du
message facilite le traitement des messages et diminue leur temps de transition dans le
réseau.Nombre des en-têtes est limité (36 au maximum et en pratique, moins d'une dizaine
d'en-têtes sont utilisées simultanément), ce qui allège l'écriture et la lecture des requêtes et
réponses. Sip est un protocole indépendant de la couche transport. Il peut aussi bien s’utiliser
avec TCP que UDP.De plus, il sépare les flux de données de ceux la signalisation, ce qui rend
33
plus souple l'évolution "en direct" d'une communication (arrivée d'un nouveau participant,
changement de paramètres…).Pour mieux cerné la comparaison nous résumons cette dernière
dans le tableau suivant :
SIP H.323
Nombre échange pour
Etablir la connexio
1 ,5 aller Retour 6 â 7 aller retour
Maintenance du code
Protocolaire
simple Complexe et
nécessitant un
compilateur
Evolution du protocole
Protocole ouvert Ajout d’extension
propriétaire
Fonction de conférence distribuée Centralisée par le MCU
Fonction de téléservice Oui H323 V2 + H450
Detection d’un appel en
boucle
Oui Non
Signalisation multicast Oui Non
Tableau 1 : Comparaison
2.2.3.5 Conclusion
SIP a aujourd’hui les faveurs des industriels et s’impose progressivement auprès des acteurs
de la VoIP, tandis que H.323 se marginalise dans les nouveaux produits et installations. Ainsi,
des fournisseurs d’accès ADSL, tels que Free et Neuf Telecom, l’ont choisi pour assurer la
signalisation de leur service de téléphonie IP.
De même, Microsoft utilise SIP dans son serveur unifié de communications multimédias
LCS (Live Communications Server).
Le protocole SIP constitue donc un solide concurrent de H.323 : il repose sur des bases
saines et solides, que devront conforter d’importants développements pour compléter les
fonctionnalités de SIP attendues dans le futur.
2.4 Qualité de Service et sécurité
Pour transporter de la parole téléphonique, il faut que le temps de transport de bout en bout
soit limité puisque nous avons affaire à une application avec interaction humaine. Cette
limitation est d’une centaine de millisecondes pour obtenir une très bonne qualité et jusqu’à
300 ms pour une conversation passant par un satellite géostationnaire.
34
Pour obtenir ces temps de réponse, il faut que le réseau offre une qualité de service.
La sécurité de l’application de téléphonie sur IP n’est pas vraiment différente de celle des
autres applications du monde IP. Nous allons dans un premier temps examiner la qualité du
service qu’offre la Voip puis nous examinerons le coté sécurité de la Voip.
2.4.1 Qualité de service
Latence : La maîtrise du délai de transmission est un élément essentiel pour bénéficier d'un
véritable mode conversationnel et minimiser la perception d'écho .Or la durée de traversée
d'un réseau IP dépend de nombreux facteurs:
Le débit de transmission sur chaque lien, le nombre d’éléments réseaux traversés ,le temps de
traversée de chaque élément, qui est lui même fonction de la puissance et la charge de ce
dernier, du temps de mise en file d'attente des paquets, et du temps d'accès en sortie de
l’élément .Le délai de propagation de l'information, qui est non négligeable si on
communique à l'opposé de la terre. Une transmission par fibre optique, à l'opposé de la terre,
dure environ 70 ms.
Noter que le temps de transport de l'information n'est pas le seul facteur responsable de la
durée totale de traitement de la parole. Le temps de codage et la mise en paquet de la voix
contribuent aussi de manière importante à ce délai.
Il est important de rappeler que sur les réseaux IP actuels (sans mécanismes de garantie de
qualité de service), chaque paquet IP « fait sont chemin » indépendamment des paquets qui le
précèdent ou le suivent: c'est ce qu'on appelle grossièrement le « Best effort » pour signifier
que le réseau ne contrôle rien. Ce fonctionnement est fondamentalement différent de celui du
réseau téléphonique où un circuit est établi pendant toute la durée de la communication.
Les chiffres suivants (tirés de la recommandation UIT-T G114) sont donnés à titre indicatif
pour préciser les classes de qualité et d'interactivité en fonction du retard de transmission dans
une conversation téléphonique. Ces chiffres concernent le délai total de traitement, et pas
uniquement le temps de transmission de l'information sur le réseau.
Classe n°Délai par sens Commentaires
1 0 à 150 ms Acceptable pour la plupart des
conversations
35
Tableau 2: Classe n° Délai par sens
En conclusion, on considère généralement que la limite supérieure "acceptable" , pour une
communication téléphonique, se situe entre 150 et 200 ms par sens de transmission (en
considérant à la fois le traitement de la voix et le délai d'acheminement).
Perte de paquets :Lorsque les buffers des différents élément réseaux IP sont congestionnés,
ils « libèrent » automatiquement de la bande passante en se débarrassant d'une certaine
proportion des paquets entrant, en fonction de seuils prédéfinis. Cela permet également
d'envoyer un signal implicite aux terminaux TCP qui diminuent d'autant leur débit au vu des
acquittements négatifs émis par le destinataire qui ne reçoit plus les paquets.
Malheureusement, pour les paquets de voix, qui sont véhiculés au dessus d'UDP, aucun
mécanisme de contrôle de flux ou de retransmission des paquets perdus n'est offert au niveau
du transport. D'où l'importance des protocoles RTP et RTCP qui permettent de déterminer le
taux de perte de paquet, et d'agir en conséquence au niveau applicatif.
Si aucun mécanisme performant de récupération des paquets perdus n'est mis en place (cas le
plus fréquent dans les équipements actuels), alors la perte de paquet IP se traduit par des
ruptures au niveau de la conversation et une impression de hachure de la parole. Cette
dégradation est bien sûr accentuée si chaque paquet contient un long temps de parole
(plusieurs trames de voix de paquet). Par ailleurs, les codeurs à très faible débit sont
généralement plus sensibles à la perte d'information, et mettent plus de temps à «
reconstruire» un codage fidèle.
Enfin connaître le pourcentage de perte de paquets sur une liaison n'est pas suffisant pour
déterminer la qualité de la voix que l'on peut espérer, mais cela donne une bonne
approximation. En effet, un autre facteur essentiel intervient; il s'agit du modèle de répartition
de cette perte de paquets, qui peut être soit « régulièrement » répartie, soit répartie de manière
corrélée, c'est à dire avec des pics de perte lors des phases de congestion, suivies de phases
moins dégradées en terme de QoS.
2 150 à 300 ms Acceptable pour des
communication faiblement
interactives
3 300 à 700 ms Devient pratiquement une
communication half duplex
4 Au delà de 700 ms
Inutilisable sans une bonne
pratique de la
conversation half duplex
36
Gigue : La gigue est la variance statistique du délai de transmission. En d'autres termes, elle
mesure la variation temporelle entre le moment où deux paquets auraient dû arriver et le
moment de leur arrivée effective. Cette irrégularité d'arrivée des paquets est due à de
multiples raisons dont: l'encapsulation des paquets IP dans les protocoles supportés, la charge
du réseau à un instant donné, la variation des chemins empruntés dans le réseau, etc…
Pour compenser la gigue, on utilise généralement des mémoires tampon (buffer de gigue) qui
permettent de lisser l'irrégularité des paquets.
Malheureusement ces paquets présentent l'inconvénient de rallonger d'autant le temps de
traversée global du système. Leur taille doit donc être soigneusement définie, et si possible
adaptée de manière dynamique aux conditions du réseau.
La dégradation de la qualité de service due à la présence de gigue, se traduit en fait, par une
combinaison des deux facteurs cités précédemment: le délai et la perte de paquets; puisque
d'une part on introduit un délai supplémentaire de traitement (buffer de gigue) lorsque l'on
décide d'attendre les paquets qui arrivent en retard, et que d'autre part on finit tout de même
par perte certains paquets lorsque ceux-ci ont un retard qui dépasse le délai maximum autorisé
par le buffer.
2.4.2 La Sécurité
Plus qu’une évolution technologique, la téléphonie sur IP est aujourd’hui une application
,majeure du monde des réseaux. Son atout le plus important provient en partie de son
intégration dans le réseau de données, qui rend son coût très compétitif.
La technologie de VoIP est apparue il y a plus de dix ans. Elle a subi de multiples
standardisations internationales, qui, sans la mettre à l’abri des évolutions permanentes,
inhérentes aux technologies réseau, la rendent désormais suffisamment mature pour envisager
un déploiement à grande échelle. À condition toutefois de maîtriser la sécurité et son
intégration au monde du sans-fil. Les vulnérabilités dont les attaques peuvent avoir cinq
origines :
• les protocoles ;
• les logiciels ;
• le système d’exploitation ;
• l’infrastructure physique ;
37
• l’erreur humaine.
Chacune d’elles est une source potentielle de faille, qu’il convient d’étudier avec précaution
dans la mise en place d’une solution de VoIP.
Une attaque peut avoir trois objectifs :
• Acquisition de service. L’objectif d’une telle attaque est de s’approprier des droits et
fonctionnalités qui n’ont pas véritablement été attribués à l’attaquant.
• Interception de service. Cette attaque compromet la confidentialité du service et vise à en
analyser ou modifier le contenu.
• Interruption de service. L’objectif est purement de nuire au bon déroulement du service en
cherchant à le mettre hors d’usage.
2.4.2.1 Les attaques
Les attaques de sécurité réseau sont divisées en attaques passives et actives. Ces deux
classes sont elles-mêmes divisées en sous-classes. Les conséquences de ces attaques sont
le coût légal et de recouvrement et la perte d’informations propriétaires, d’image ou de
services réseau.
Une attaque est dite passive lorsqu’un individu non autorisé obtient un accès à une
ressource sans modifier son contenu. Les attaques passives peuvent être des écoutes ou
des analyses de trafic, parfois appelées analyses de flot de trafic.
Ces deux attaques passives présentent les caractéristiques suivantes :
• Écoute clandestine, ou eavesdropping. L’attaquant écoute les transmissions pour récupérer
le contenu des messages.
• Analyse de trafic, ou sniffing. L’attaquant obtient des informations en surveillant les
transmissions pour détecter des formes ou des modèles classiques dans la communication.
Une attaque est dite active lorsqu’un parti non autorisé apporte des modifications aux
messages et flux de données ou de fichiers. Il est possible de détecter ce type d’attaque.
Les attaques actives peuvent prendre la forme d’un des quatre types suivants, seul ou en
combinaison :
• Mascarade. L’attaquant usurpe l’identité d’un utilisateur autorisé et obtient ainsi
certains privilèges d’accès. Des outils tels que Registration Hijacker, Registration
Eraser, Registration Adder ou RedirectPoison permettent d’effectuer ces manipulations.
• Rejeu. L’attaquant surveille les transmissions (attaque passive) et retransmet les
38
messages à un utilisateur légitime. Ce type d’attaque n’est pas possible dans le cas de
la téléphonie puisque le rejeu n’est pas envisageable dans le cadre d’une application
interactive. Le rejeu pourrait éventuellement s’appliquer au cours de l’authentification.
Un programme tel que AuthTool permet de réaliser ce genre d’exploit.
• Modification de message. L’attaquant altère un message légitime en supprimant, ajoutant,
modifiant ou réordonnant du contenu. Là encore la téléphonie sur IP n’est pas
concernée directement, mais des programmes dédiés existent, tels RTP InsertSound ou
RTP MixSound.
• Déni de service, ou DoS (Deny of Service). L’attaquant prévient ou interdit l’usage
normal ou la gestion des moyens de communication. Par exemple, en envoyant des
messages en masse, les ressources d’un équipement peuvent saturer. Des logiciels tels
que UDP flooder, RTP flooder, INVITE flooder ou IAX flooder sont conçus à des fins
d’audit, avec les risques d’utilisation que cela suppose.
Ce dernier type d’attaque est une source de menace redoutable pour les solutions de
sécurité logicielle, puisque la sécurité est facilement mise en cause en cas de modification
malveillante des programmes chargés d’appliquer les protocoles et les règles de
contrôle.
L’attaque par déni de service est une des plus simples à mettre en oeuvre et est généralement
très difficile à parer dans les réseaux sans fil. Le déni de service est obtenu lorsque
l’élément que l’on attaque est submergé de messages et ne peut répondre à la demande.
Dans le cas classique, les pirates occupent un grand nombre de postes de travail et leur
font émettre des flots ininterrompus de messages qui convergent vers l’élément attaqué.
La parade est difficile puisque l’attaque peut être soudaine et qu’il n’est pas évident de
prévoir cette convergence.
Dans un réseau sans fil, un déni de service consiste à émettre un grand nombre de requêtes
d’attachement vers le point d’accès jusqu’à le faire tomber. Il est pour le moment
impossible d’empêcher un utilisateur d’émettre ce flot de requête, même s’il n’est pas
autorisé à se connecter. À chaque requête, le point d’accès doit exécuter une suite
d’instructions avant d’effectuer le refus. La seule parade connue consiste à déterminer le
point d’où provient l’attaque et à lancer une intervention humaine de neutralisation.
De nombreuses attaques de déni de service peuvent s’effectuer par l’intermédiaire du
protocole ICMP (Internet Control Message Protocol). Ce protocole est utilisé par les
routeurs pour transmettre des messages de supervision permettant, par exemple, d’indiquer
39
à un utilisateur la raison d’un problème. Une attaque par déni de service contre un
serveur consiste à générer des messages ICMP en grande quantité et à les envoyer au
serveur à partir d’un nombre de sites important.
Pour inonder un serveur, le moyen le plus simple est de lui envoyer des messages de type ping
lui demandant de renvoyer une réponse. On peut également inonder un serveur par
des messages de contrôle ICMP d’autres types.
Dans l’attaque par cheval de Troie, le pirate introduit dans la station terminale un
programme qui permet de mémoriser le login et le mot de passe. Ces informations sont
envoyées vers l’extérieur par un message destiné à une boîte à lettres anonyme. Diverses
techniques peuvent être utilisées pour cela, allant d’un programme qui remplace le
gestionnaire de login, jusqu’à un programme pirate qui espionne ce qui se passe dans
le terminal.
Ce type d’attaque est assez classique dans les réseaux sans fil puisqu’un client peut
s’immiscer, via le point d’accès, dans un PC et y installer un logiciel espion lui permettant
de prendre la place de l’utilisateur.
Beaucoup de mots de passe étant choisis dans le dictionnaire, il est très simple pour un
automate de les essayer tous. De nombreuses expériences ont démontré la simplicité de
cette attaque et ont mesuré que la découverte de la moitié des mots de passe des
employés d’une grande entreprise pouvait s’effectuer en moins de deux heures.
Une solution simple pour remédier à cette attaque consiste à complexifier les mots de passe en
leur ajoutant des lettres majuscules, des chiffres et des signes comme !, ?, &, etc.
L’attaque par dictionnaire est l’une des plus fréquentes dans les réseaux sans fil qui ne
sont protégés que par des mots de passe utilisateur.
Il est possible de compromettre une communication en diffusant de faux messages RTP,
conçus par un attaquant comme s’ils faisaient partie d’une communication mais qui
perturbent en réalité la réception du message audio pour le rendre incompréhensible.
En considérant le protocole de signalisation SIP, on peut imaginer des attaques à la fois
par des requêtes et par des réponses, notamment les suivants :
• Un message BYE correctement forgé par un attaquant peut mettre fin à la communication
d’autres personnes.
• Un message REGISTER contenant un enregistrement d’un utilisateur fictif est envoyé en
masse vers un serveur d’enregistrement afin de saturer les capacités de stockage de ce
40
dernier ou de le surcharger. Un message REGISTER contenant un enregistrement d’un
utilisateur réel vers une localisation inexacte risque de détourner la communication vers la
localisation mentionnée.
Des attaques similaires sont envisageables avec les autres protocoles de signalisation.
2.4.2.2 Les sécurités à mettre en place
La sécurité dans les réseaux téléphoniques classiques est particulièrement forte. La
disponibilité du réseau y atteint les 5 « neuf », c’est-à-dire que le système marche
99,999 % du temps. Avec la téléphonie sur IP, il faut introduire des éléments de sécurité
supplémentaires puisque le support est partagé et qu’une écoute peut se produire.
Classiquement, la sécurité s’appuie sur cinq services de base : l’identification,
l’authentification, la confidentialité, l’intégrité des données et la non-répudiation.
L’utilisateur d’un système ou de ressources quelconques possède une identité, sorte de clé
primaire d’une base de données, qui détermine ses lettres de crédits (credentials) et
autorisations d’usage. Cette identité peut être vérifiée de multiples manières, par exemple
par la saisie d’un compte utilisateur (login) ou au moyen de techniques biométriques,
telles que les empreintes digitales ou vocales, les schémas rétiniens, etc.
L’authentification a pour objectif de vérifier l’identité des personnes en communication ou
des processus remplaçant ces personnes. Plusieurs solutions simples sont mises en œuvre pour
cela, comme l’utilisation d’un identificateur (login) et d’un mot de passe (password), d’une
méthode de défi fondée sur une fonction cryptographique et d’un secret partagé.
L’authentification peut s’effectuer par un numéro d’identification personnel, comme le
numéro inscrit dans une carte à puce, ou code PIN (Personal Identification Number).
L’authentification peut être simple ou mutuelle. Dans le cadre d’une communication
téléphonique, une authentification mutuelle est conseillée. Elle consiste essentiellement à
comparer les données provenant de l’utilisateur qui se connecte à des informations stockées
dans un site protégé. Les attaques sur les sites mémorisant les mots de passe représentent
une part importante du piratage.
La confidentialité désigne la garantie que les données échangées, les paroles téléphoniques,
ne sont compréhensibles que par les deux entités qui partagent un même secret.
Cette propriété implique la mise en œuvre d’algorithmes de chiffrement en mode flux,
c’est-à-dire octet par octet, ou en mode bloc, par exemple par série de 8 octets.
41
Les algorithmes de chiffrement permettent de transformer un message écrit en clair en un
message chiffré, appelé cryptogramme. Cette transformation se fonde sur une ou
plusieurs clés. Le chiffrement le plus simple est celui où une clé unique et secrète est
partagée par les seuls émetteur et récepteur.
2.4.2.3 Les infrastructures de sécurité
Des mécanismes tels que la confidentialité ou l’intégrité des données peuvent être supportés à
différents niveaux de l’architecture et sur les différents tronçons, ou arcs, qui composent le
réseau. La gestion des clés de chiffrement peut être, par exemple, réalisée manuellement.
L’identification, l’authentification, la non-répudiation et les autorisations sont des procédures
mises en œuvre dans le réseau d’accès, le réseau de transport IP et le réseau de destination, un
intranet, par exemple. Ces services peuvent également être offerts au niveau applicatif.
Schématiquement, les infrastructures de sécurité des réseaux peuvent être classées en
cinq catégories :
• Chiffrement au niveau physique. Dans la cryptographie optique (PMD), le saut de
fréquences pseudo-aléatoire ou le chiffrement du flux d’octets (une méthode couramment
déployée par les banques), les clés sont distribuées manuellement.
• Confidentialité, intégrité de données, signature de trames MAC. La distribution des
clés est réalisée dans un plan particulier, décrit par la norme IEEE 802.1x. Dans ce cas,
on introduit la notion de contrôle d’accès au réseau LAN. C’est une notion juridique
importante, dont le rôle est d’interdire le transport des informations à des individus non
authentifiés, et donc potentiellement dangereux.
• Confidentialité, intégrité des données, signature des paquets IP ou TCP. C’est
typiquement la technologie IPsec en mode tunnel. Un paquet IP chiffré et signé est encapsulé
dans un paquet IP non protégé. En effet, le routage à travers Internet implique l’analyse
de l’en-tête IP par les passerelles traversées. IPsec crée un tunnel sécurisé entre le
réseau d’accès et le domaine du fournisseur de services. On peut déployer une gestion
manuelle des clés ou des protocoles de distribution automatisés, tels que ISAKMP
(Internet Security Association and Key Management Protocol). La philosophie de ce
protocole s’appuie sur la libre utilisation du réseau d’accès, qui ne va pas sans soulever
des problèmes juridiques. Par exemple, si des utilisateurs mal intentionnés protègent
leurs échanges téléphoniques, il est impossible aux réseaux traversés de détecter leur
42
complicité dans le transport d’informations illégales.
• Insertion d’une couche de sécurité additive. Le protocole SSL (Secure Sockets Layer)
fondé sur un chiffrement asymétrique assure la protection d’applications telles que la
navigation Web ou la téléphonie IP. SSL réalise généralement une simple authentification
entre serveur et client et négocie un secret partagé (Master Secret), à partir duquel sont
dérivées les clés de chiffrement utilisées par l’algorithme de chiffrement négocié entre les
deux parties. Une fois le tunnel sécurisé établi, le client s’authentifie à l’aide d’un login et
d’un mot de passe. Il obtient alors une identité temporaire associée à un simple cookie.
2.4.2.4 La sécurité dans la téléphonie par Wi-Fi
Pour sécuriser une communication téléphonique dans un réseau sans fil, il faut doter
l’environnement d’un certain nombre de fonctions, qui peuvent être prises en charge soit
par l’infrastructure achetée pour réaliser le réseau lui-même, soit par de nouveaux
éléments de réseau à ajouter.
De façon plus précise, il faut intervenir auprès de quatre grands types d’éléments
d’infrastructure, l’infrastructure qui permet l’authentification des clients et des équipements
de réseau, le matériel et le logiciel nécessaires pour réaliser la sécurité sur l’interface radio, les
éléments de réseau nécessaires pour filtrer les paquets et détecter les attaques et enfin les
machines nécessaires pour gérer les accès distants lorsque les utilisateurs se déplacent :
• Infrastructure d’authentification. La norme IEEE 802.1x recommande l’usage de
serveurs RADIUS (Remote Authentication Dial-In User Server). L’authentification
peut être réalisée par un serveur situé dans le domaine visité ou à l’extérieur de ce dernier.
Cette architecture établit un cercle de confiance, grâce auquel un message d’authentification
est relayé par plusieurs serveurs liés les uns aux autres par des associations de sécurité.
• Sécurité radio. La sécurité radio vise à assurer la confidentialité, l’intégrité et la signature
des paquets. Ces services sont délivrés par des protocoles tels que WEP (Wired
Equivalent Privacy), TKIP (Temporal Key Integrity Protocol) ou CCMP (Counter with
CBC MAC Protocol), normalisés par le comité IEEE 802. Ils utilisent des clés déduites d’une
clé maître au terme de la procédure d’authentification.
• Filtrage des paquets. La fiabilité de cette opération repose sur la signature des paquets à
l’aide des clés déduites de l’authentification. Grâce à ce mécanisme, les trames qui pénètrent
dans le système de distribution sont sûres (pas de risque de spoofing). Des systèmes de
43
filtrage (point d’accès ou portail) gèrent les privilèges des paquets IP (destruction des paquets
illicites) et permettent de réaliser et de facturer des services de QoS (Quality of Service).
• Accès aux services distants (roaming). L’accès à des services distants peut être désigné
de façon générique sous l’appellation de services VPN (Virtual Private Network).
2.4.3 Conclusion
VoIP est une application difficile à mettre en place , les architectures nécessaires demandent à
être bien conçues pour que la qualité de service soit obtenue à un coût très bas. Les réseaux
doivent être bâtis pour introduire de la qualité de service. la sécurité de la VoIP n’est pas
vraiment différente de la sécurité des applications Internet.
Chapitre 3 : Pratique de la Voip (Asterisk)
Asterisk est logiciel libre, multi plateforme, publié sous licence GPL. Asterisk permet, entre
autres, la messagerie vocale, la conférence, les serveurs vocaux, la distribution des appels,
téléphonie au sein d'un LAN. Asterisk implémente les protocoles H.323 et SIP, ainsi qu'un
protocole spécifique nommé IAX (Inter-Asterisk eXchange) : ce protocole IAX permet la
communication entre deux serveurs Asterisk ainsi qu'entre client et serveur Asterisk. Asterisk
est un PABX permettant à un ordinateur d'opérer en tant que commutateur téléphonique privé
(PBX). Ces protocoles peuvent être sollicités auprès d'un fournisseur d'accès internet ou bien
auprès d'un opérateur de voix sur IP.
3.1 Historique & Presentation d’asterisk
Asterisk est né en 1999, créé par Mark Spencer, alors étudiant de l'université d'Auburn
(États-Unis - Alabama). À la recherche d'un commutateur téléphonique privé pour créer un
centre de support technique sur Linux, il est dissuadé par les tarifs trop élevés des solutions
existantes, et décide de se créer son propre routeur d'appels sous Linux, le PBX Asterisk.
44
Quelque temps après, il fonde la société Digium, fournisseur de cartes FXO et FXS
compatibles avec Asterisk. Son équipe s'est rapidement rapprochée de celle de Jim Dixon
(Zapata Telephony Project), dans le but de construire des cartes d'interface "bon marché" avec
le réseau téléphonique classique. Leur but était de construire des cartes compatibles avec des
plateformes basées sur Intel et ainsi de permettre à n'importe quel PC, avec le système
d'exploitation Linux, une carte d'interface et le logiciel Asterisk d'avoir un PBX entièrement
fonctionnel.
Dans la plupart des langages informatiques, l’astérisque (dont le symbole est *) est utilisé
comme caractère générique (en anglais wildcard), pour remplacer n’importe quel autre
caractère ou ensemble de caractères. Il s’agit en quelque sorte d’un joker, la carte ou
valeur qui remplace toutes les autres. C’est de ce concept de généricité, évoquant à la fois
la souplesse, l’adaptabilité et la puissance, que tire son nom le logiciel Asterisk.
Asterisk est un PBX-IP, ou IP PBX ou encore IPBX. Complet et performant, il offre une
plate-forme personnalisable et modulable pour la mise en oeuvre de services de téléphonie.
Il garantit une très large interconnexion avec plusieurs serveurs PBX, mais aussi
avec des réseaux de téléphonie non-IP.
Asterisk étant un logiciel libre d’utilisation, ses sources sont téléchargeables sous licence
GNU GPL (General Public License). Cela permet à une importante communauté de
contribuer à son développement. Des forums libres et actifs enrichissent, testent, mettent
à jour et améliorent en permanence le logiciel. Bien qu’initialement conçu pour fonctionner
sous Linux, il est aujourd’hui multiplate-forme et s’installe aussi bien sur OpenBSD
que FreeBSD, Sun Solaris, MacOS X ou Windows.
L’enjeu d’une offre telle qu’Asterisk est colossal. Pour peu que l’on dispose des
connaissances requises, il devient possible de remplacer une lourde et très onéreuse mise en
œuvre d’un équipement PBX par un simple ordinateur équipé du logiciel gratuit,
éventuellement muni de cartes d’interfaces pour l’interconnexion avec différents types de
réseaux non-IP. Le logiciel se pose en rival viable et robuste dans un marché dominé par
les géants Alcatel, Nortel, Cisco, 3Com, Avaya ou Siemens, pour ne citer que quelques uns
des équipementiers les plus connus. L’architecture du logiciel se présente comme l’indique la
figure suivante.
45
Figure 7 : Architecture d'Asterisk
3.2 Fonctionnalité
Asterisk propose toutes les fonctionnalités d’un standard téléphonique de niveau
professionnel, des plus élémentaires aux plus complexes. Non seulement, il permet de gérer le
routage des appels au sein du réseau, mais en plus il supporte une large gamme de services,
notamment les suivants (pour la liste exhaustive, voir le site de l’éditeur, à l’adresse
http://www.asterisk.org) :
• Authentification des utilisateurs appelants.
• Serveur vocal, ou standard d’accueil téléphonique automatisé, aussi appelé IVR (Interactive
Voice Response). Cette fonction permet de demander à l’appelant le service qu’il souhaite
utiliser et d’effectuer le routage correspondant.
• Numérotation abrégée pour définir des raccourcis.
• Transfert d’appel.
• Filtrage des appels.
• Messagerie vocale (répondeur automatique).
• Notification et écoute par e-mail des messages laissés sur son répondeur (voicemail).
• Gestion des conférences.
• Double appel.
• Mise en attente.
• Journalisation des appels.
• Facturation détaillée.
46
• Enregistrement des appels.
• Listes noires
.Messagerie SMS
• Heure et date d'appels
• Identification de l'appelant
• Indicateur visuel de message en attente
• Identification de l'appelants sur appel en attente
• Redirection des messages vocaux par courriel
• Insertion de messages vocaux dans courriels
• Interface Web pour la gestion des messages
• Intégration à différents types de SGBDR ,Musique d'attente ... etc
Le logiciel peut être utilisé comme une passerelle ToIP hétérogène. Par exemple, des
utilisateurs utilisant différents protocoles de signalisation, comme H.323 ou SIP, peuvent être
mis en relation. C’est le logiciel qui se charge d’effectuer les conversions de signalisation. De
la même manière, il peut servir de passerelle pour joindre des correspondants dans le réseau
téléphonique RTC. Enfin, le logiciel est modulable et extensible au moyen de scripts et de
modules implémentés en langage C ou Perl.
Figure 8 Exemple d’un architecture avec Asterisk
3.3 Télechargements des modules
47
En exploitant un ensemble de fichiers restreint, le PBX Asterisk offre une gamme de
possibilités de configuration extrêmement large, répondant aux besoins les plus divers et
permettant une personnalisation très évoluée.
Nous commencerons par installer et exécuter le serveur avec une configuration par
défaut. À ce stade, le serveur sera fonctionnel sans être exploitable. À partir de cet
environnement, stable et propre, et auquel il sera possible de revenir ultérieurement en cas de
problème, nous passerons à l’étape de configuration des fichiers, avant de nous pencher
sur la mise en place de quelques services de base. Nous évoquerons ensuite des techniques
d’optimisation de la configuration. Nous terminerons enfin par la présentation de
fonctionnalités plus évoluées et fournirons des pistes pour poursuivre l’étude du logiciel
de différentes manières.
3.3.1 Se connecter au réseau téléphonique traditionnel
En VoIP pure, le logiciel Asterisk est d’emblée fonctionnel, si bien qu’aucun composant
supplémentaire n’est nécessaire. Cependant, le réseau téléphonique traditionnel utilisant
une commutation par circuits, et non par paquets comme dans la téléphonie IP, il est
nécessaire de s’équiper d’une interface permettant d’effectuer la conversion des signaux
d’un flux IP en un flux RTC et réciproquement.
Ces interfaces sont disponibles facilement dans le commerce, généralement sous
forme de cartes PCI, à installer sur son PC, ou de boîtiers, à connecter en USB. Ils offrent
plusieurs branchements pour disposer de plusieurs lignes téléphoniques en parallèle .Selon les
modèles, il faut en outre installer le pilote de la carte, fourni par le constructeur ,permettant au
système d’exploitation de la reconnaître comme nouveau périphérique matériel et de la rendre
disponible et configurable avec Asterisk.
On distingue les deux formats d’interface suivants :
• FXS (Foreign eXchange Subscriber), qui permet le branchement d’un téléphone
analogique sur le serveur Asterisk. Si l’on ne souhaite pas investir dans l’achat
d’équipements purement IP, il est possible d’utiliser son téléphone analogique habituel
en le reliant au serveur Asterisk par le biais d’une carte FXS. La carte assure la
fonctionnalité de conversion dans les deux sens d’un signal numérique en un signal
48
analogique.
• FXO (Foreign eXchange Office), qui permet le branchement du serveur Asterisk sur
une ligne téléphonique classique. Pour interagir avec le monde RTC et dépasser le cadre
du réseau purement IP, cette carte assure la jonction avec la téléphonie RTC. Elle joue
le rôle de passerelle en faisant communiquer tout utilisateur connecté à Asterisk avec
des utilisateurs connectés au réseau RTC.
Dans le cas où l’on souhaite supporter la connectivité avec le réseau téléphonique RTC,
il est nécessaire d’installer les drivers Zaptel et Libpri. Tous deux concernent la gestion
des cartes FXO/FXS avec Asterisk pour des composants de type Zaptel ou « Zaptel
compliant », c’est-à-dire conformes aux composants de type Zaptel, sans être pour autant
standards.
3.3.2 Télécharger les composants utiles
Les composants d’Asterisk se présentent sous forme d’archives portant l’extension
.tar.gz et non de fichiers binaires, qu’il faut compiler puis installer manuellement.Ces
composants sont disponibles, à l’adresse « http://www.asterisk.org/download (ou
ftp://ftp.digium.com/pub/) ». Le site est en anglais, mais la section de téléchargement
(download) est facilement identifiable. Comme le logiciel est libre et assez répandu, il dispose
de multiples miroirs. On y trouve les modules récapitulés au tableau 12.1.
Module Description
Asterisk Cœur du logiciel, ce programme est le seul véritablement
indispensable à son fonctionnement.
Il est donc indispensable de le télécharger.
Asterisk-addons Ce paquetage comporte le code source du logiciel Asterisk,
ainsi que plusieurs modules
complémentaires qui peuvent se révéler utiles. Il est
vivement recommandé de l’installer
Asterisk-sounds Ces modules sont fournis sur plusieurs fichiers de
paquetage. Ils fournissent une quantité de
sons qui peuvent être utilisés dans des messages d’accueil
ou pour signaler à l’appelant div erses
49
informations. Ces messages audio sont disponibles en trois
langues, anglais, espagnol et
français, et sous plusieurs formats de codec, comme G.711,
G.722, G.729 et GSM. L’utilisation
de ces sons n’étant pas limitative, il est possible, en
respectant les formats supportés par Asterisk,
d’en ajouter de sa propre composition ou issus d’autres
sources . Ces paquetages ne sont
pas indispensables, mais seulement pratiques. Ils peuvent
être ajoutés ultérieurement.
Libiax Cette bibliothèque de codes source pour les
communications utilisant le protocole IAX n’est
pas indispensable. Elle est surtout destinée au
développement de clients IAX. Nous reviendrons,
plus loin dans ce chapitre, sur le protocole IAX.
Libpri Cette bibliothèque est utilisée pour assurer l’interface avec
différents types de réseaux non-IP.
Zaptel Ce paquetage contient les pilotes permettant de prendre en
charge les cartes d’interface
avec les réseaux non-IP. La section qui suit présente les cas
où il est indispensable d’installer
ce composant.
Tableau 3 :composants utiles
3.4 Installation et Configuration d’Asterisk
3.4.1 Installation
L’installation d’un serveur Asterisk peut se faire selon deux méthodes soit a l’aide de l’outil
apt (plus utiliser sur les distrubion comme Debian ) ou télécharger les outils décris ci-
dessus et décompressé les modules.
3.4.1.1Installation avec l’outil apt
50
Mise à jour de la liste des paquets disponibles. Avec le terminal sous Debian saisir la
commande : « Apt-get update » comme l’illustre la ligne suivante. Sous Ubuntu on doit se
connecter en mode root sinon mettre sudo puis la commande .
Cheick# apt-get update
Installation du serveur Asterisk et de toutes ces dépendances
Cheick # apt-get install asterisk
Installation des voix françaises d’Asterisk.
Cheick# apt-get install asterisk-prompt-fr
Pour finir l’installation il faut autoriser le démarrage du service. Il faut modifier un ficher à
l’aide de l’éditeur de texte nano ou autre.
Cheick# nano /etc/default/asterisk
Et modifier le champ.
RUNASTERISK=yes
Voilà notre serveur Asterisk est installé. Nous allons apprendre à démarrer le service.
3.4.1.2 Installation du serveur à apartir des modules télécharger
Une fois les téléchargements terminés, on peut ouvrir un terminal, se placer à l’emplacement
où les archives ont été téléchargées puis saisir la commande qui suit pour chacune
des archives que l’on a récupérées.
Cheick # tar -xzvf nom_du_composant_à_installer
nom_du_composant_a_installer représente le nom de l’archive téléchargée. Chacune des
archives a été décompressée dans un répertoire portant le nom du composant. Les sons
n’ont pas besoin d’être installés ; il suffit, une fois l’installation effectuée, de les placer
dans le répertoire de sons d’Asterisk (par défaut /var/lib/asterisk/sounds). Par contre,
les autres programmes, doivent être installés.
51
Installer les programmes
Les commandes suivantes permettent d’effectuer la compilation et l’installation d’un
composant :
Cheick #cd nom_du_repertoire_du_composant_à_installer
Cheick #cd make
Cheick #cd make install
La première ligne permet de se placer à l’intérieur de répertoire qui a été décompressé
précédemment, la seconde lance la compilation du programme et la troisième lance son
exécution. Les mêmes commandes sont à reproduire pour chacun des composants, en se
plaçant chaque fois dans le répertoire adéquat.
Important
Il faut respecter l’ordre d’installation des composants. Si l’on souhaite les utiliser, les modules
Libpri et Zaptel doivent impérativement être installés avant le serveur Asterisk. Le module
Asterisk-addons peut être installé à la fin.
Première Lancement du serveur
L’étape d’installation achevée, il faut la tester en lançant le serveur Asterisk, afin de vérifier
son bon fonctionnement. Asterisk n’impose pas de fonctionnement par défaut. Il ne dispose
d’ailleurs pas de fichier de configuration préétabli lui conférant initialement un modèle de
fonctionnement.
La manière dont les appels téléphoniques sont dirigés n’est donc pas encore spécifiée.
À ce stade, le serveur n’est pas exploitable.
Pour l’utilisateur débutant, il est préférable de commencer en partant d’une base de
fichiers que l’on adaptera par la suite selon ses besoins. Nous allons demander à Asterisk
de nous préparer une configuration initiale. Pour cela, nous utilisons un terminal, et nous
nous plaçons dans le répertoire source d’Asterisk (celui dans lequel nous avons lancé
l’installation), pour saisir la commande suivante :
Cheick# make samples
À présent, des fichiers standards sont générés et exploitables. Cette commande est utilisable à
tout moment pour revenir à un état de base dont la configuration est valide, sans avoir à lancer
une nouvelle installation du serveur. C’est une configuration de référence.
Démarrage
52
Comme pour tous services nous avons la possibilité de le démarrer arrêter ou autres avec
l’une des commandes suivantes:
Cheick# cd /etc/init.d pour se placer dans le fichier /etc/init.d
asterisk stop
asterisk start
asterisk restart
Diagnostique
Le serveur Asterisk permet d’interagir directement avec le système sans avoir à modifier les
fichiers de configuration avec la CLI « Interface de ligne de commande ». Nous utiliserons
cette interface uniquement pour afficher et vérifier la configuration et l’état des téléphones.
Cette CLI est exécutée en tapant la commande suivante
Asterisk:~# asterisk –r
Ou bien
Asterisk:~# rasterisk
L’option «-r» signifie que l’on se connecter au processus asterisk en cours d’exécution. A
cette option on peut ajouter l’option « -v »pour indiquer le niveau de verbosité afin d’avoir
plus d’information pour aider la configuration. Une fois connecté à Asterisk via la console,
plusieurs commandes utiles, internes à la console sont disponibles :
• « help » : liste des commandes et aide associée ;
• « reload » : recharge tous les fichiers de configurations ;
• « restart now » : relance complètement et immédiatement Asterisk ;
• « sip reload » : recharge le fichier sip.conf ;
• « sip show peers » : voir le status des peers SIP ;
• « sip show channels » : permet de voir les canaux actifs ;
• « sip set debug » : permet de voir les messages SIP qui passent par le serveur ;
• « dialplan reload » : recharge le fichier extensions.conf ;
• « agent show » : voir le status des agents ;
• « agent logoff name » : déconnecter l’agent name.
Nous pouvons afficher pour connaître les utilisateurs connectés qui utilisent le protocole SIP,
on utilise la commande sip show peers, comme ci-dessous:
*CLI> sip show peers
53
Name/username Host Dyn Nat ACL Port Status
trunck_A_vers_B 192.168.2.202 D 5060 Unmonitored
Nous pouvons également afficher l’état des lignes quand le serveur Asterisk se comporte
comme un client SIP avec la commande suivante :
*CLI> sip show registry
Host Username Refresh State Reg.Time
192.168.1.101:5060 trunck_A_vers_B 105 Registered Sun, 22 Apr 2011 19:13:20
3.4.2 Configuration
Comme le serveur Asterisk ne sera pas configuré avec la CLI, il va falloir modifier certains
fichiers de configuration avec l’éditeur de texte nano(ubuntu) ou autre. Pour une
configuration de base, il suffit d’éditer trois fichiers de configuration. Ces trois fichiers sont :
sip.conf, extension.conf et voicemail.conf. Le détail de ces fichiers est détaillé plus loin.
3.4.2.1Fichiers de configuration d’Asterisk
3.4.2.1 sip.conf
Rôle
Le fichier sip.conf est utilisé pour configurer les logins et mots de passe de tous les
périphériques. Ces périphériques peuvent être des téléphones, des passerelles analogiques ou
encore d’autres serveurs. Ce fichier est organisé en différentes zones appelées « context ».
Context general
Le context general définit :
Le context par défaut des comptes créés.
les paramètres TCP/IP du serveur.
le langage des messages vocaux.
Voici un exemple opérationnel :
[general]
context=local ; context par défaut pour les utilisateurs
bindport=5060 ; port UDP du protocole SIP
54
bindaddr=0.0.0.0 ; adresse IP de l’interface sur lequel le serveur va écouter le ; trafic
0.0.0.0 pour toutes les interfaces
language=fr ; messages vocaux en français
Context utilisateur
D’autres contexts sont utilisés pour créer des comptes utilisateur. Les paramètres des comptes
peuvent être :
le login
le mot de passe
context, ce paramètre permet de gagner de la souplesse dans le routage des appels
mailbox, ce paramètre est utile pour la messagerie vocale
c’est avec les paramètres nat et cannreinvite que l’on peut contrer le problème du
routage NAT
[Rayane] ; obligatoire ; login SIP
secret=azerty ; obligatoire ; mot de passe SIP
callerid="Rayane" <200> ; facultatif ; nom affiché et numéro affiché sur le téléphone de
l'appeler
context=local ; obligatoire ; les appels que fait l'utilisateur ; seront gérés dans le context
"local" du fichier ;
extension.conf mailbox=200@default ; facultatif ; compte de messagerie vocal, voir ;
voicemail.conf type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
nat=yes ; facultatif ; résoud le pb de l'enregistrement SIP ; quand le téléphone est derrière un
NAT
canreinvite=yes ; facultatif ; résoud le problème du flux RTP quand le ; téléphone est
derrière un NAT
Context pour les passerelles
Il existe différentes passerelles. Ces passerelles permettent les communications vers le réseau
France Télécom analogique ou numérique mais aussi GSM. Pour pouvoir fonctionner, ces
passerelles doivent avoir des comptes. Ces comptes se configurent de la même façon que les
comptes utilisateurs, exemple :
[SPA-3102-PSTN]
secret=azerty
context=local
55
type=friend
host=dynamic
Nous resumons dans le tableau suivant les paramètres pour configurer un compte utilisateur
Paramètre
Description
Username Identifiant de l’utilisateur
secret Mot de passe associé au compte
Type Indique le type de compte, et les restrictions
associées. On distingue trois types de comptes :
– Friend : permet d’appeler et d’être appelé
(autorise les appels entrants et sortants).
– User : permet seulement d’être appelé (appels
entrants).
– Peer : permet de définir une liaison entre deux
terminaux seulement.
Host Spécifie une adresse IP à partir de laquelle
l’utilisateur peut accéder à son compte. La valeur
dynamic
autorise une adresse IP fournie dynamiquement, par
un serveur DHCP notamment. Cette
valeur est donc moins restrictive.
Callerid Nom de l’utilisateur, entre guillemets, suivi de son
extension téléphonique, c’est-à-dire de son
numéro d’appel (au format de la RFC 822).
Context Spécifie le type de routage à appliquer pour
l’utilisateur. Le type de routage correspond à un
contexte défini dans le plan de numérotation
(fichier extensions.conf). Les communications avec
cet utilisateur sont donc soumises au contexte du
même nom dans le fichier extensions.conf.
Language Spécifie la langue utilisée pour les fichiers audio.
Par exemple : language=fr.
Allow Liste les codecs autorisés par l’utilisateur de ce
compte.
Par exemple, pour autoriser le codec G.711, selon la
loi mu, on saisira: allow=ulaw.
Ce même paramètre est aussi valable pour spécifier
les codecs vidéo (par exemple : allow=h263)Il
est possible d’en mentionner autant que l’on
souhaite, en répétant ce paramètre autant de fois.
disallow Interdit les codecs qui sont mentionnés à sa suite.
Une valeur possible de ce paramètre est all. Dans
ce cas, aucun codecs ne sera utilisable par
l’utilisateur concerné, sauf ceux spécifiés
56
explicitement
dans le (ou les) paramètre(s) allow.
Nat Précise si les flux traversant un réseau utilisent la
translation d’adresse (NAT). La valeur du paramètre
nat est yes ou no.
Ce paramètre est souvent indispensable car
l’utilisation du nat est classique, même chez les
particuliers.
Canreinvite Ce paramètre peut prendre les valeurs yes ou no. Si
sa valeur est fixée à yes, Lorsqu’une communication
est en train de s’établir le serveur Asterisk va
récupérer des informations (notamment vers
qui envoyer les flux) et ils les réémettra dans un
nouveau message d’invitation une fois que la
communication
sera acceptée seulement.
Attention, si l’utilisateur se trouve derrière un NAT,
il est indispensable de mettre la valeur de ce
paramètre à no pour laisser passer les flux
multimédia correctement, car le nouveau message
d’invitation du serveur Asterisk ne tiendrait pas
compte du NAT.
mailbox
Indique la boite vocale associée à ce compte. Nous
détaillons ce paramètre et son utilisation à la
section qui traite de la messagerie audio.
dtmfmode
Ce champ indique le type de tonalité DTMF qui sera
appliqué. Les valeurs possibles sont inband,
rfc2833, info ou auto
Tableau4 : des paramètres pour configurer un compte utilisateur
3.4.2.2 extension.conf
Le fichier extension.conf est utilisé pour router les appels vers un utilisateur ou vers sa
messagerie. Par exemple, les appels provenant de comptes SIP dont le context est « local »
seront traités dans l’extension « local » du fichier extension.conf. Les instructions exten sont
utilisées comme suit :
Numéro
appelé
Ordre
d’instruction
Action
effectuée
Temps en seconde avant de passer à l’instruction
suivante (en fonction de l’action)
Exten =>
200,
1,
Dial
(SIP/Rayane,
10)
57
Routage d’appel vers un utilisateur
Dans l’exemple suivant, les appels arrivant sur le serveur Asterisk à destination du numéro
200 sont envoyés vers le téléphone de Rayane pendant 10 secondes puis sont envoyés sur la
messagerie de Rayane.
[local]
exten => 200, 1, Dial(SIP/Rayane, 10) exten => 200, 2, VoiceMail(200)
Routage d’appel vers un groupe d’utilisateurs
Dans l’exemple suivant, les appels arrivant sur le serveur Asterisk à destination du numéro
205 sont envoyés vers le téléphone de John puis vers le téléphone de Fred. Remarque :
l’instruction Goto() permet de renvoyer l’appel où l’on veut dans le fichier extension.conf.
Dans notre cas, l’appel basculera du téléphone de John au téléphone de Fred jusqu’à ce qu’un
des deux décroche.
[local]
exten => 205, 1, Dial(SIP/Rayane, 10)
exten => 205, 2, Dial(SIP/cheick, 10)
exten => 205, 3, Goto(local,205, 1)
Routage vers plusieurs téléphones en même temps
L’exemple suivant montre comment faire sonner deux téléphones en même temps. Quand on
compose le 206, les téléphones de John et de Fred sonnent.
[local]
exten => 206, 1, Dial(SIP/Donald&SIP/Lionel, 10)
Accès à la messagerie vocale
Voici deux exemples d’accès à la messagerie. Dans le premier cas, l’utilisateur doit composer
sur son clavier numérique son login et son code pin. Dans le second exemple, le login
correspond au numéro de l’appelant. L’utilisateur doit juste composer son code pin.
exten => 298, 1, VoiceMailMain()
exten => 299, 1, VoiceMailMain(${CALLERIDNUM})
Routage d’appel vers une passerelle analogique
Dans l’exemple suivant, tous les appels commençant par quatre cent sont envoyés vers la
passerelle. La passerelle va composer le numéro sur la ligne analogique.
exten => _4xx, 1, Dial(SIP/SPA-3102-PSTN/${EXTEN})
58
Dans l’exemple suivant, les appels commençant par 01, 02, 03, 04 ou 05 composés de 10
chiffres sont envoyés vers la passerelle. La passerelle va composer le numéro sur la ligne
analogique.
exten => _0[1-5]xxxxxxxx, 1, Dial(SIP/SPA-3102-PSTN/${EXTEN})
Dans l’exemple suivant, quand on compose le zéro, l’appel est envoyé vers la passerelle et
l’on obtient la tonalité. Nous pouvons ensuite composer le numéro vers l’extérieur.
exten => 8, 1, Dial(SIP/SPA-3102-PSTN)
Standard automatique
Le standard automatique permet à un utilisateur d’écouter un message lui indiquant les choix
possibles. Après, il lui suffit de presser une des touches pour effectuer l’action voulue. Il est
possible de combiner les menus pour développer une architecture plus complexe. Dans
l’exemple suivant, quand l’utilisateur compose le 210, il entend un message vocal qui l’invite
à taper 1, 2 ou 9 sur son clavier. S’il tape 1, l’appel est envoyé à John. S’il tape 2, l’appel est
envoyé à Fred. S’il tape 9, Asterisk raccroche. Si l’utilisateur ne fait rien, le message est joué
en boucle.
[local]
exten => 210, 1, Goto(Menu,s,1) ; appel du standard automatique
[Menu] ; standard automatique
exten => s, 1, Background(/var/msg/Menu) ; le message audio enregistré ;
/var/msg/Menu.gsm et joue
exten => s, 2, WaitExten(2) ; on attend 2 sec
exten => s, 3, Goto(Menu,s,1) ; on recommence le tout
exten => 1, 1,SayNumber(1)
exten => 1, 2, goto(local,200, 1) ; 1 Appel Donald exten => 2, 1, SayNumber(2)
exten => 2, 2, Goto(local,201, 1) ; 2 Appel Lionel exten => 9, 1, SayNumber(9)
exten => 9, 2, Hang up() ; 9 On raccroche
Astuce : pour enregistrer le message vocal au bon format, il vous suffit de laisser un message
sur la boîte vocal d’un utilisateur et de copier le fichier dans le répertoire /var/msg/ avec la
commande suivante.
59
cp /var/spool/asterisk/voicemail/default/200/INBOX/msg0000.gsm /var/msg/Menu.gsm
Horloge parlante
Dans l’exemple suivant le serveur Asterisk décroche, annonce la date et l’heure, attend 3
secondes et recommence.
exten => 211, 1, Answer ; horloge parlante
exten => 211, 2, SayUnixTime(,CET,AdbY \'digits/at\' kM)
exten => 211, 3, Wait(3)
exten => 211, 4, Goto(local,211, 2)
Outil de test de flux
Dans l’exemple suivant Asterisk décroche et joue un message expliquant le fonctionnement
de la fonction de test. C’est ensuite à l’utilisateur de parler dans le combiné et de vérifier que
le serveur Asterisk renvoie le son vers le combiné avec un petit décalage.
exten => 212, 1, Answer ; permet de tester les flux entrant et sortant
exten => 212, 2, Playback(demo-echotest)
exten => 212, 3, Echo()
Le tableau suivant décrit quelques applications classiques. L’application définit l’action à
entreprendre pour appliquer le service sollicité par l’utilisateur appelant. Le serveur Asterisk
dispose d’un grand nombre de procédures déterminant le comportement à adopter, c’est-à-dire
la manière de traiter les flux audio
Application Description
Answer Répond à un appel téléphonique entrant.
Background Lit un message audio de manière non bloquante. Autrement dit, une saisie
d’une ou plusieurs touches
par l’appelant est possible en parallèle. Dans ce cas, la lecture du message
audio en cours est interrompue.
L’extension correspondant aux touches saisies par l’appelant est
automatiquement appelée.
Cela permet notamment de présenter une information facultative, comme
une publicité ou un menu, que l’appelant peut interrompre dès qu’il a pris
connaissance de l’option qui l’intéresse.
Dial Met en relation l’appelant et l’utilisateur ou le service spécifié en argument
de l’application Dial. Cette commande est donc utilisée pour affecter un
numéro de téléphone à un utilisateur, à un terminal ou à un service.
En argument de l’application, il faut indiquer le nom du compte à contacter,
préfixé par le protocole de
signalisation que le compte utilise (IAX2, SIP, etc.). Cela permet au serveur
Asterisk de déterminer dans quel fichier de configuration se trouvent les
propriétés du compte appelé (iax.conf, sip.conf, etc.). Il est possible
60
d’appeler plusieurs correspondants en même temps en mettant leur
extension respective en arguments de l’application Dial, séparés par le
caractère & (esperluette). Par exemple : Dial (SIP/1001 &
SIP/1005) fait sonner les postes affectés aux comptes 1001 et 1002 en
même temps. Il est aussi possible d’ajouter un argument à l’application
mentionnant la durée pendant laquelle la tentative d’appel doit s’effectuer.
Par exemple : dial (SIP/identifiant, 30 ) permet de faire sonner le téléphone
de l’identifiant pendant une durée de 30 secondes.
Echo Retourne l’écho de ce que l’appelant prononce. Cette application est utile
notamment pour tester que les composants audio de réception et d’émission
du son sont fonctionnels
Goto Branchement inconditionnel vers un contexte, une extension et une priorité
particuliers.
GotoIf Branchement conditionnel vers un contexte, une extension et une priorité
particuliers lorsqu’une
condition est vérifiée.
GotoIfTime Branchement conditionnel vers un contexte, une extension et une priorité
particuliers lorsqu’une condition temporelle est vérifiée.
Hangup
Termine une communication.
meetmee Invite un utilisateur à participer à une conférence identifiée en argument de
l’application Meetme
Playback Lit un message audio de manière bloquante : la lecture du message doit se
faire intégralement, et l’appelant ne peut interrompre cette diffusion par une
saisie de touche sur le clavier téléphonique.
queue Met en attente une communication.
Read Lit une variable. L’appelant est invité à entrer une valeur qui est
sauvegardée sous forme de variable par le système. Cela permet notamment
de demander un mot de passe à l’utilisateur avant d’accéder à un service
spécifique
Record Enregistre une communication dans un fichier son.
Response
TimeOut
Spécifie en argument un délai au bout duquel l’attente du serveur expire.
SayAlpha Annonce vocale de caractères textuels spécifiés en argument de
l’application
Saydigit Annonce vocale de chiffres spécifiés en argument de l’application
SayNumber Annonce vocale de nombres spécifiés en argument de l’application
SayPhonetic Annonce vocale d’un message phonétique spécifié en argument de
l’application
SayUnixTime Annonce vocale de l’heure, selon différents formats
SendText Envoie un message textuel à l’utilisateur.
SMS Envoi et réception de messages instantanés SMS
System Exécute une commande système du système d’exploitation.
Transfer Transfère l’appel vers un autre poste ou service.
VoiceMail Laisse un message vocal.
VoiceMainMail Accède au système de messagerie vocale.
61
Wait Attend pendant un certain délai spécifié en argument
WaitExten
Attend une saisie d’une extension par l’utilisateur.
Tableau 5 : applications classiques de extensions.conf
3.4.2.3 voicemail.conf
Rôle
Le fichier voicemail.conf permet de configurer la messagerie vocale d’Asterisk. Nous
pourrons y paramétrer la notification par email des messages et les logins des utilisateurs de la
boîte vocale.
Context general
Le context general permet de spécifier :
* Le format des fichiers audio enregistrés
* Si l’on veut attacher le fichier audio à l’email
* L’objet de l’email
* Le corps de l’email
[general]
format=gsm
attach=yes
emailsubject=Nouveau message vocal provenant de ${VM_CIDNAME}
emailbody=\n\tBonjour ${VM_NAME},\n\n\t Tu as un message de la part de
${VM_CIDNAME} d'une durée de ${VM_DUR} datant du ${VM_DATE}
Voici une liste des variables utilisables dans l’objet et le corps des emails :
VM_NAME nom d'utilisateur
VM_DUR durée du message
VM_MSGNUM numéro du message
VM_MAILBOX numéro de l'utilisateur
VM_CIDNUM numéro du l'appelant
VM_CIDNAME nom de l'appelant
VM_DATE date du message
\n retour à la ligne
\t tabulation
Context default
62
Voici un exemple de context defaut, on y retrouve
Le numéro de boîte vocale
Le code pin de la boîte vocale
Le nom de l’utilisateur
L’adresse email de l’utilisateur
[default]
200 = 123, John, [email protected]
201 = 456, Fred
202 = 789, Mike
Notification par email
Pour qu’Asterisk puisse envoyer les emails aux utilisateurs, il faut installer un serveur SMTP.
Nous pouvons utiliser postfix dont l’installation se fait de la manière suivante commande :
Asterisk:~# apt-get install postfix
Il faut maintenant configurer le relais SMTP, en spécifiant l’adresse du serveur SMTP de
votre FAI. Avec l’éditeur de texte nano, nous allons modifier le champ relayhost dans le
fichier /etc/postfix/main.cf
relayhost = smtp.free.fr
Voilà notre serveur Asterisk opérationnel. Il ne nous reste plus qu’à configurer nos téléphones
et nos passerelles. Nous présentons quelques clients open source et leur mode configuration
dans le paragraphe suivant .
3.5 Client
Le client SIP (Soft Phone) permet de jouer le rôle d’un téléphone IP de manière logiciel. Il
requière un système de son (carte son, baffles, micro,...) pour l’utiliser. Ces clients permettent
de remplacer des téléphones IP matériels onéreux (100, 200€).
Beaucoup de client existe plus au moins évolue, cependant certains sont des client propriétaire
et ne sont pas utilisables avec Asterisk.
63
3.5.1 X-Lite
Ce client est un des plus abouti en termes de fonctionnalités, de fiabilités et de simplicité. Il
permet la gestion de contactes et de groupes et fait également la messagerie instantané. Il
existe en version payante (EyeBeam) (Plusieurs comptes SIP, support de la vidéo,...). Il
fonctionne également sous Windows.
Pour configurer le client X-Lite, un simple clic droit n’importe où dans l’interface ouvre
un menu contextuel permettant d’accéder au menu « SIP Account Settings ». Dans la fenêtre
qui s’ouvre, il suffit de renseigner les champs suivants :
• identifiant affiché pour l’utilisateur (Display Name), pouvant être formé de caractères
Alpha numériques ;
• identifiant servant à loguer l’utilisateur (User Name) ;
• mot de passe associé (Password) ;
• nom sous lequel l’autorisation d’accès est possible (Authorization user name) ;
• nom de domaine (Domain) ;
• adresse du serveur proxy (Proxy Address), c’est-à-dire le serveur Asterisk lui-même
Il est possible d’indiquer son nom si celui-ci est résolu par un serveur DNS en local ou, à
défaut, d’utiliser l’adresse IP du serveur Asterisk.
Pour que l’authentification soit possible, ces valeurs doivent être conformes à celles
saisies dans le fichier sip.conf du serveur Asterisk.
Figure 9 XLite
64
3.5.2Windows Messenger
C’est un logiciel de messagerie instantanée et de visioconférence développé par Microsoft et
n’existe pas sous Linux. Il est compatible avec SIP et permet de communiquer avec un
serveur type Asterisk.
Configuration du client en protocole SIP :
Cocher Service de communications SIP au démarrage du logiciel
Aller dans le menu Outils options comptes Avancé et renseigner le nom
ou l’adresse IP du serveur en précisant le protocole UDP
Pour passer un appel
Aller dans Actions démarrer une conversation vocale et dans le champ adresse de
messagerie on renseigne l’ID (ou le nom) de l’appelant et l’adresse IP ou le nom du serveur
Asterisk.
Figure 10 Windows Messenger
3.5.3 SJPhone
Ce logiciel gère les deux normes SIP et H.323 ce qui le rend compatible avec la plupart des
vendeurs et fournisseur de services en téléphonie IP et existe également sous Linux.
Configuration du client SJphone en protocole SIP :
Dans le menu Options Profiles on crée un nouveau profil "New"
Dans le champ Proxy domain on rentre l’adresse IP du serveur avec le numéro de port
:5060 correspondant au protocole SIP.
65
Figure 11 :SJPhone
3.5.4Linphone
Linphone est un client exclusivement Linux. Etant assez basique, il fait uniquement les
fonctions nécessaire pour une communication SIP.
Configuration du client en protocole SIP :
Dans le Menu Aller à _ Préférences, un menu apparaît
Dans l’onglet SIP, spécifier l’ID de l’utilisateur et l’adresse IP du serveur
Figure 27 Linphone
66
3.5.5 Les logiciels SIP pour mobiles
Tous les téléphones qui sont compatibles Wi-Fi comme l'iPhone n'ont pas automatiquement
une couche SIP par défaut. Dans ce cas il faut télécharger et installer un programme afin de
passer des appels VoIP.
3.6 Téléphones Nokia compatibles SIP d'origine
Nokia E51, Nokia E61 ; Nokia E65 ; Nokia E90 ;Nokia N81 & N81 8GB ; Nokia N8 ; Nokia
N95 & N95 8GB ; Nokia N96.
Pour les téléphones qui seraient compatible Wi-Fi mais sans couche SIP, vous pouvez
télécharger le programme Fring à l'adresse suivante : www.fring.com
configuration
Menu>Outils>Paramètres>Connexion>Paramètres SIP>Options>Nouveau mode SIP>Utiliser
mode par déf.
Renseignez ensuite les champs suivants :
Nom du mode : donner un nom quelconque
Mode du service : IETF
Point d'accès par défaut : choisissez votre réseau WiFi
Nom d'utilisateur public : votre_identifiant@ asterisk
Utiliser la compression : Non
Inscription : Toujours activée
Utiliser sécurité : Non
Serveur proxy
Adresse serveur proxy : ippi.fr
Domaine : asterisk
Nom d'utilisateur : votre identifiant
Mot de passe : mot de passe
Autorise routage lache : Oui
Type de transport : UDP ou Auto
Port : 5060
67
Une fois ces paramètres introduits, vous devriez passer du statut "non inscrit" au statut
"inscrit".
3.7 Ajouter de Nouveau service
Notre plate-forme Asterisk étant désormais pleinement opérationnelle, nous pouvons
installer sur le serveur quelques services classiques. Dans ce paragraphe nous présentons la
mise en œuvre de certains services comme le Call Back, la Conférence, IVR
Standard vocal automatique (IVR)
Il est possible d’installer un IVR (Integrated Voice Responder), ou standard vocal
automatique, permettant à l’appelant de sélectionner lui-même la personne ou le service avec
lequel il souhaite entrer en communication.
Le standard automatique propose des menus à choix multiples conduisant à diverses
actions spécifiques, telles que des annonces informatives, le relais vers un service approprié,
l’accès à des services de type répondeur ou la mise en relation avec un poste téléphonique
particulier.
L’exemple suivant de standard vocal automatique est un cas d’école, puisque incomplet.
Si l’utilisateur compose la touche étoile, il est invité à saisir le numéro de poste téléphonique
qu’il souhaite contacter. Ce numéro lui est répété avant la mise en communication.
Les erreurs et attentes sont également traitées.
exten => *, 1, Goto (menu_choix, s, 1)
[menu_choix]
exten => s, 1, Background (enter-ext-of-person)
exten => 1, 1, Playback(you-entered)
exten => 1, 2, Playback(digits/1)
exten => 1, 3, Dial(SIP/guy)
exten => 1, 4, Hangup()
exten => 2, 1, Playback(you-entered)
exten => 2, 2, Playback(digits/2)
exten => 2, 3, Dial(SIP/laurent)
exten => 2, 4, Hangup()
exten => i, 1, Playback (pbx-invalid)
exten => i, 2, Goto (menu_choix, s, 1)
exten => t, 1, Hangup ()
La première ligne permet d’accéder au contexte [menu_choix] lors de la saisie de la
touche étoile. Un message est alors diffusé pour demander à l’appelant de choisir le
numéro de poste téléphonique qu’il souhaite joindre. Nous traitons dans cet exemple
68
deux postes, numérotés 1 et 2.
Les possibilités sont les suivantes :
• L’appelant saisit la touche 1 (extension 1) : un message audio lui répète la touche qu’il
vient de saisir, puis le système lance l’appel vers le poste numéro 1, qui est attribué à
l’utilisateur guy (en signalisation SIP).
• L’appelant saisit la touche 2 (extension 2) : comme précédemment, après la confirmation
de la saisie, la communication vers le poste 2 attribué à l’utilisateur laurent est
initiée (en signalisation SIP).
• L’appelant saisit une autre touche que 1 ou 2 (extension i) : un message audio
l’informe de l’invalidité de la saisie, puis l’étape précédente est immédiatement
réactivée, l’invitant à saisir une nouvelle touche.
• L’appelant ne saisit aucune touche pendant un délai déterminé (extension t) : l’appel se
termine aussitôt.
Conférence
Deux étapes suffisent pour mettre en place une conférence avec Asterisk : créer les salons
de conférence virtuelle et y inviter des participants.
Créer des salons virtuels de conférences (fichier meetme.conf)
Pour créer des salons de conférences, il suffit de configurer le fichier meetme.conf en
ajoutant à la section [rooms] le code suivant
conf => numero_de_conference
[ , code_accès_simple ]
[ , code_accès_administrateur ]
Le mot-clé Conf correspond à une nouvelle salle de conférence virtuelle, définie au minimum
par l’indication d’un numéro de salle (numero_de_conference). Il peut être
complété optionnellement par un code d’accès que l’utilisateur devra fournir pour accéder
à la salle virtuelle et éventuellement d’un code d’accès permettant de reconnaître
l’administrateur, auquel des droits de gestion du salon virtuel sont attribués .Exemple de salon
conf => 770, 123, 456
Cela crée un salon d’identifiant 770, auquel les utilisateurs peuvent accéder en indiquant
le code 123 et dont l’administrateur s’identifie par le code 456
69
Inviter des participants à la conférence (application Meetme)
Pour inviter des participants à entrer dans la salle de conférence, il faut les aiguiller en
utilisant le plan de numérotation et l’application Meetme.
Pour rediriger une communication vers la conférence précédente, Il suffit d’utiliser
l’appel Meetme (770) dans le fichier extensions.conf.
Par exemple, si l’appelant compose le numéro 770, l’extension suivante l’invite à rejoindre
la conférence 770 :
exten => 770, 1, Meetme (770)
Il est possible d’ajouter en second argument de l’application Meetme une ou plusieurs
des options récapitulées au tableau 12.7 (s’il y en a plusieurs, les options sont indiquées
en se succédant sans caractère de séparation).
Option Description
m Active le mode monitor : les participants peuvent écouter, mais pas parler
p Un participant peut quitter la conférence en pressant la touche dièse.
t Active le mode talk : les participants peuvent parler, mais pas écouter.
v Active le mode video.
q Mode silencieux (quiet) : aucun son n’est émis lorsque des utilisateurs
entrent dans la conférence
ou en sortent.
d Ajoute une conférence dynamiquement.
m Active une musique d’attente lorsqu’il n’y a qu’un seul par ticipant à la
conférence
B Lance le script AGI spécifié dans la variable
MEETME_AGI_BACKGROUND (celle-ci doit avoir
été initialisée auparavant).
Tableau 6 :Options de l’application Meetme
70
3.7 Callback avec Asterisk
Ce qu'on appelle callback, est, comme son nom l'indique, se faire rappeler. L'intérêt se trouve
dans le fait que si vous avez un abonnement illimité (tel que Voip Stunp), et au moins deux
lignes, vous pouvez passer des appels depuis n'importe quel fixe, gratuitement.
Comment ca marche
Vous appellez votre asterisk, il vous demande un code, vous lui donnez, vous raccrochez, et
Asterisk vous rappelle 15 secondes plus tard. A ce moment la, vous tapez le numero de votre
correspondant, il l'appelle, et vous ne payez donc pas la communication !
Il existe aussi une autre possibilité. Certain réseau de téléphonie mobile propose un forfait,
pour un cout très faible, vers un seul numéro de fixe. La encore, Asterisk peut servir de
passerelle. Il faut dans ce cas là la "Présentation du numéro".
L'extension
Les messages à enregistrer
Nous aurons besoin de quelques messages pour rendre notre système plus "humain".
Pour les enregistrer, on peut utiliser un programme spécial, convertir dans le format
d'Asterisk, etc... Mais on peut aussi utiliser tout Asterisk !
Pour se faire, nous allons creer une petite extension. Dans le contexte des telephones, ajoutez :
exten => 2223,1,Answer()
exten => 2223,2,Playback(vm-callsender)
exten => 2223,3,Record(/tmp/rec:gsm|7)
exten => 2223,4,Playback(/tmp/rec)
exten => 2223,5,Hangup()
71
vm-callsender est un message déjà présent dans Asterisk, que nous utilisons simplement pour
savoir à quel moment parler :)
Le fichier enregistré sera donc /tmp/rec, au format gsm (suffisant). Le 7 signifie d'attendre 7
secondes de blanc avant la fin de l'enregistrement. Pourquoi autant de temps ? Tout
simplement parce que nous utiliserons la fonction Read(), qui ne lit les chiffres que durant la
lecture d'un message préenregistré. Donc si le message ne dure que 3 secondes, ca sera
compliqué.
Apres chaque message, pensez a déplacer le fichier parmi ceux d'Asterisk.
Vous aurez besoin de 3 messages :
"Tapez vôtres code"
"Tapez le numéro"
"Merci"
Le mot de passe
Dans le contexte de réception d'appelle, on va donc demander le mot de passe, et le contrôler.
Mais d'abord, il faut régler quelques paramètres, sinon il y a quelques problèmes avec le
DTMF :
exten => <login>,1,SetLanguage(fr)
exten => <login>,2,SIPDtmfMode(inband)
exten => <login>,3,DigitTimeout(4)
exten => <login>,4,ResponseTimeout(5)
Ensuite, on va donc utiliser la fonction Read, pour récupérer le mot de passe, et GotoIf, pour
vérifier que c'est bien le bon.
72
exten => <login>,5,Read(Secret,rc-code,4)
exten => <login>,6,GotoIf($[${Secret} = 1234] ? 7 : 11)
exten => <login>,7,Playback(rc-merci)
Le style du GotoIf, envoie donc sur 7 si le passe est bien 1234, sur 11 sinon.
Le Callback
Il faut maintenant faire appeler Asterisk. On ne peut bien sur pas utiliser Dial, car si on
raccroche, ca s'arrête, et donc le Dial ne se fera pas. Asterisk prévoit donc une autre solution.
Il faut placer dans un dossier spéciale (/var/spool/asterisk/outgoing/) un fichier avec les bons
paramètres, et l’abonnement (ex VoipStund) effectuera un appel.
Il y a encore un problème, asterisk vérifie ce dossier très souvent (mais vraiment, plusieurs
fois par seconde), donc on ne peut pas éditer le fichier directement dans le dossier, sinon il
risque d'en prendre que la moitie. Il faut donc éditer ailleurs, et faire un mv. Mais la encore,
un autre problème se pose. Asterisk va rappeler trop vite... Asterisk prévoit donc de regarder
la date du fichier, si elle est dans le futur, il attendra cette date la (impossible tout de même
dans notre cas, ca ne gère pas trop les secondes, et comme on ne veut pas attendre plus d'une
minute, on fera autrement).
Voici le contenu du fichier :
Channel: SIP/<num>@VoipStund-out
MaxRetries: 2
RetryTime: 10
WaitTime: 20
Context: Recall
Extension: s
Priority: 1
C'est l'endroit ou Asterisk ira apres que le téléphone distant ait répondu.
Dans le context. On a donc vu qu'il faut écrire ce fichier, et attendre 15 secondes avant de le
placer dans le dossier outgoing. On peut donc ajouter après la demande de mot de passe :
73
exten => <login>,8,system(echo -e "Channel: SIP/${CALLERIDNUM}@VoipStund-
out\\nMaxRetries: 2\\nRetryTime: 10\\nWaitTime: 20\\nContext: Recall\\nExtension:
s\\nPriority: 1" > /tmp/recall.call)
exten => <login>,9,system(/etc/asterisk/recall.sh &)
exten => <login>,10,system(echo "${DATETIME} - ${CALLERID} - ${CHANNEL}" >>
/tmp/recall.log)
exten => <login>, 11, Hangup ()
Voici le fichier recall.sh (qui pourrait être dans n'importe quel langage, tant qu'il est
executable) :
#!/bin/sh
# on creer un nom de fichier unique pour éviter les écrasements
fn="/tmp/$$.`date +%s`"
mv /tmp/recall.call $fn
sleep 15
exec mv $fn /var/spool/asterisk/outgoing
On doit en faire un deamon car pour qu'asterisk ne bloque pas dessus en attendant la fin de
l'exécution. Maintenant Asterisk peut nous appeller, mais il reste encore le contexte Recall a
créer
Le contexte Recall
[Recall]
exten => s,1,SetLanguage(fr)
exten => s,2,SIPDtmfMode(inband)
exten => s,3,DigitTimeout(4)
exten => s,4,ResponseTimeout(5)
exten => s,5,Read(Teltotel,rc-num,10)
exten => s,6,Dial(SIP/${Teltotel}@VoipStund-out)
exten => s,7,hangup()
Une autre version vous permet d'obtenir une confirmation du numero :
74
[Recall]
exten => s,1,SetLanguage(fr)
exten => s,2,SIPDtmfMode(inband)
exten => s,3,DigitTimeout(4)
exten => s,4,ResponseTimeout(5)
exten => s,5,Read(Teltotel,beep,10)
exten => s,6,SayDigits(${Teltotel:0:1})
exten => s,7,SayDigits(${Teltotel:1:1})
exten => s,8,SayNumber(${Teltotel:2:2})
exten => s,9,SayNumber(${Teltotel:4:2})
exten => s,10,SayNumber(${Teltotel:6:2})
exten => s,11,SayNumber(${Teltotel:8:2})
exten => s,12,WaitExten
exten => #,1,GoTo(Recall,s,1)
exten => i,1,GoTo(Recall,s,1)
exten => t,1,GoTo(Recall,s,1)
exten => *,1,Dial(SIP/${Teltotel}@voipStund-out)
exten => *,2,Hangup()
Si le numero est le bon, appuyez sur *, sinon # et recommencez :)
Passerelle
Pour la solution depuis un téléphone portable, il suffit de mettre dans le contexte de réception
d'appel :
exten => <login>/<votre_num_tel>,1,Goto(Recall,s,1)
Comme Asterisk est sur que l'appelle vient bien de votre téléphone, il n'est pas nécessaire de
passer par la demande de mot de passe.
Récapitulatif
75
Voici la totalité du code :
[entrant]
exten => <login>,1,SetLanguage(fr)
exten => <login>,2,SIPDtmfMode(inband)
exten => <login>,3,DigitTimeout(4)
exten => <login>,4,ResponseTimeout(5)
exten => <login>,5, Read(Secret,rc-code,4)
exten => <login>,6,GotoIf($[${Secret} = 1234] ? 7 : 11)
exten => <login>,7,Playback(rc-merci)
exten => <login>,8,system(echo -e "Channel: SIP/${CALLERIDNUM}@VoipStund-
out\\nMaxRetries: 2\\nRetryTime: 10\\nWaitTime: 20\\nContext: Recall\\nExtension:
s\\nPriority: 1" > /tmp/recall.call)
exten => <login>,9,system(/etc/asterisk/recall.sh &)
exten => <login>,10,system(echo "${DATETIME} - ${CALLERID} - ${CHANNEL}" >>
/tmp/recall.log)
exten => <login>,11,Hangup()
[Recall]
exten => s,1,SetLanguage(fr)
exten => s,2,SIPDtmfMode(inband)
exten => s,3,DigitTimeout(4)
exten => s,4,ResponseTimeout(5)
exten => s,5,Read(Teltotel,rc-num,10)
exten => s,6,Dial(SIP/${Teltotel}@wengo-out)
exten => s,7,Hangup()
Le fichier /etc/asterisk/recall.sh :
#!/bin/sh
# on créer un nom de fichier unique pour éviter les écrasements
fn="/tmp/$$.`date +%s`"
76
mv /tmp/recall.call $fn
sleep 15
exec mv $fn /var/spool/asterisk/outgoing
3.8 Conclusion
Ouvert à tous, gratuit, simple à utiliser, puissant et performant, Asterisk a vraiment de
quoi séduire, et même rivaliser avec les équipements professionnels. En fait, les vrais
concurrents d’Asterisk ne sont pas les autres PBX logiciels, mais les PBX hardware eux
mêmes.
Dans un secteur en pleine mutation, où le monde RTC s’efface au fur et à mesure que le
monde IP prend sa place, Asterisk influence d’ores et déjà les stratégies des équipementiers
en montrant la voie.
Chapitre 4: Réalisation du projet
Ce chapitre a caractère partique decris les étapes de realisation du projet dont l’objectif
principale est de mettre en palce un service de communication basé sur les techniques de la
Voip au sain du departement informatique afin de facilité la communication .
Nous commençons par donner une description du departement , puis les outils.
4.1Departement Informatique
Le departement informatique est constituer de plusieurs bureaux et salles de cours et de Tp et
de laboratoire .Chaque bureau dispose d’une connexion Adsl cablé .Afin de faciliter la
communication entre les différentes bureaux du departement nous propons la mise en place de
77
reseaux téléphonique utilisant les infractructures de réseau existantes à travers l’architecture
suivant.
Routeur
4.2 Mise en place de l’arhitecture
Pour mettre en place cette architecture nous avons besoin de postes (Windows ouUnix ) un
routeur ,des cables un poste serveur ,des softphones.Etant donné que le departement dipsose
d’un dipsostif reseau nous allons juste l’exploiter .
Pour la mise en place du serveur nous allons devoir télécharger les différentes composante
nécessaire comme décrsi dans la section pratique de la Voip. Une fois les composante
télécharger il nous reste plus qu’a configurer un des postes qui jouera le role du serveur
comme le montre l’architecture . Le système d’exploitation de cette poste doit etre un
système Unix ,il nous faut donc avant d’installer le serveur installer une distribution unix sur
ce poste .Nous ne detaillerons pas le procédure d’installation ici.
Pour permetre la communication entre les différentes postes il nous faut installer des sofphone
libre téléchageable gratuitement sur Internet. Nous avons déjas fait une description de
quelques un dans la partie pratique du rapport.
Afin de faciliter l’usage des sofphone nous proposon un plan de numerotaion simple c'est-à-
dire que nous attribuer a chaque softphone un numero constitué de deux chiffre exemple :01
et comme identifiant du softphone nous donnerons le nom responsable du poste .
Une fois toute les configuration fait ,voici le departement disposant de son service de
communication securiser et fiable.Des exemples d’interfaces ci dessous permet d’avoir une
vue sur le fonctionnement du serveur asterisk.
Pour configurer un cleint il nouveau édité le fichier «Sip.conf » qui se trouve dans
« /etc/asterisk ».Pour pouvoir accéder à ses fichires il faut donc se placer dans le
Figure 13 Architecture du systeme de communication
78
repertoire« asterisk » du repectoire « etc ».La figure suivant montre les commande a executer
pour se palcer dans le fichier « etc/asterisk ».
Figure 14 : exécution de commande permettant de se placer dans le repertoire
"etc/asterisk"
Etant dans le répertoire « etc/asterisk », pour éditer le fichier « Sip.conf » on procède comme
indique la figure ci-dessous.
Figure 15:commande pour éditer le fichier "sip.conf"
Ici nous éditons le fichier avec l’editeur nano .On peut donc voir le contenu du fichier comme
l’indique la figure ci-dessous. C’est dans ce fichier qu’on crée les clients suivants les régles
decritent dans la section pratique de ce rapport.
Figure 16:fichier Sip.conf
Voici un exemple de configuration de client
79
Figure 17 : Exemple de configuration de clients
Sur cette figure, nous avons la configuration deux clients nommés Phone1 et Sip.idefisk5
.Vous trouverez dans le chapitre 3 la signification des termes.
Apres avoir configuré les clients, il faut leur attribuer des numéros par lesquels ils pourront
être joint .Pour cela il faut editer le fichier « extensions.conf » comme le montre la figure 5.
Pour pouvoir éditer on procède la même manière que celle du fichier « Sip.conf » .
Figure 18:fichier extensions .conf
Cette figure montre le contenu du fichier Sip.conf dans lequel nous avons créé un context
général et un autre context nommé sip .C’est dans le context Sip que nous avons défini les
plans de numérotations .Ainsi Phone1 est joignable par le numéro« 01 ».Apres configuration
des clients et definitions des numéros nous pouvons commencer à passer les appels .Pour y
80
parvenir il faut lancer le serveur .Avec les commandes « asterisk –r » on obtient une interface
comme le montre la figure suivante :
Figure 19:Lancement du serveur
Cette figure montre que notre serveur est opérationnel. Une fois le serveur démarrer nous pouvons voir
les clients en ligne a l’aide la commande « Sip show peers ».
Figure 20:figure obtenue avec la commande "Sip show peers"
On cantate que nous avons huit(8) clients configurer, deux en lignes et les sept sont
déconnectés. Les deux clients en lignes peuvent donc passer des appels et en recevoir. Sur
l’interface du serveur on peut exécuter plusieurs commandes .Exemple pour obtenir de l’aide
il suffit de saisir « help ». Voir figure suivant
Figure 21 : Exécution de la commande Help
81
L’exécution de cette commande permet d’avoir de l’aide concernant le fonctionnement du
serveur .Nous obtenons une réponse du serveur de la forme suivant :(voir figure)
Figure 22 : Figure obtenue après exécution de la commande "Help"
Avec certain softphone comme zoiper on peut savoir si le client est bien connecté ou pas. Sur Zoiper il
suffit de cliqué sur « Register » .Si le client est bien enregistré, sur l’interface du serveur on peur voir
ce ci :
Figure 23:réponse du serveur suit à un clic sur Register
Le serveur signal l’enregistre du compte sip.Idefisk2 et 3.C’est deux sofphones sont
opérationnel et nous pouvons commencer les appels. La figure suivant montre deux
softphones en communication.
82
Figure 24:Deux softphones en mode communication
Sur cette figure le sofphone Xlite a composé le « 02 » mais n’a pas lancé l’appel. Le même
softphone a reçu sur la ligne 3 un appel venant du client (Zoiper). Nous voyons que nous
pouvons passer plusieurs appels et en recevoir plusieurs sur même sofphone. La figure
suivante ,nous permet de voir un poste en plein communication .
Figure 25 :Softphone effectuant une communication
Ce poste a recu un appel d’un poste ayant comme numéro « 04 ». L’appel se fait sur la ligne 2
du sofphone.Apres avoir effectuer tous les service que l’veux pour arreter le serveur il suffit
de d’excuter la commande « exit » . L’execution de cette est ilustrée dans la figure 13.
Figure 26 : Arrêt du serveur
83
4.3 Conclusion
La voix sur IP (Voice over IP) est une technologie de communication vocale en pleine émergence En
plus de représenter un intérêt économique majeur, la téléphonie sur IP utilise jusqu’à dix fois moins de
bande passante que la téléphonie traditionnelle. Ceci apporte de grand intérêt pour la voix sur réseau
privé. Les avantages techniques sont multiples ; transfert d’appels instantanés, multi-conférences,
adaptation, standardisation et contrôle des communications téléphoniques, choix du réseau (privé,
public), services multi-Play (sons, vidéos et données), possibilités d’évolutions, Just Call-it, Click to
call .
Ainsi la mise en place d’un service de communication au sain du département d’informatique
s’avère utile car elle facilitera les échanges d’information entre les différents bureaux et cela a
un cout minime.
Conclusion générale
La téléphonie sur IP constitue incontestablement une attraction de taille à la fois pour les
Equipementiers, les opérateurs, les entreprises et le grand public. Si les enjeux économiques
justifient largement cette convoitise, il ne faut cependant pas négliger les contraintes
techniques à surmonter.
Durant le présent projet de fin d’études, il nous a été confié la mission, d’étudier et mettre en
place le service de communication basée sur les techniques de la VoIP au sain du département
informatique de la faculté des sciences.
Pour cela, notre travail a été décomposé en plusieurs étapes majeures dont l’un des plus
importantes fut l’étude des bases de la téléphonie sur IP.
L’élaboration de ce travail nous a permis, d’approfondir les connaissances et le
savoir faire et de mettre en pratique nos connaissances théoriques acquises en cours de
réseaux et télécommunications.
Le travail réaliser pourrait être complété et poursuivi sous différents aspects,
notamment :
Extension du service a tous les départements de la faculté
Sécurisation du serveur.
Mise en place d’une passerelle RTC afin de permet les appels externes
84
Bibliographie
Ouvrage :
[Ouvr1] :Laurent Ouakil Guy Pujolle ‘Téléphonie sur IP’ 2 Edition Eryolles
[Ouvr2] : Philippe Sultan ‘ Cahiers de l’Admin Asterisk La téléphonie d’entreprise libre’
Edition Eryolles
[Ouvr2]:O’ Reilly ‘Asterisk the future of telephony’
Webographie
WWW.google.fr
www.asterisk.org
www.asterisk-france.org
www.asteriskguru.com
www.commentcamarche.net
www.iki.sos-admin.com/wiki
Glossaire des Acronymes
A
ACK:accusé de reception
ADSL: Asymmetric Digital Subscriber Line
ATM:Asynchronous Transfer Mode
C
CCMP: Counter with CBC MAC Protocol
D
DHCP : Dynamic Host Configuration Protocol
DNS : Domain Name System
DOS: Deny of Service
DTMF : Dual-tone multi-frequency
85
F
FAI :Fournisseur d'accès à Internet
FXO : Foreign eXchange Office
FXS : Foreign eXchange Subscriber
G
GSM : Global System for Mobile Communications
GNU : General Public License
GPL : General Public License( traduction française du GNU)
H
HTPP: Hypertext Transmission Protocol
I
IAX : Inter Asterisk eXchange
IP :Internet Protocol
IVR : Integrated Voice Responder
L
LAN :Local Arear Network
LCS: Live Communications Server
M
MAC: Media Access Control
MCU: Multipoint Control Unit
MGCP: Media Gateway Control Protocol
MIME: Multipurpose Internet Mail Extension
86
O
OSI: Open Systems Interconnection
P
PABX : Private Automatic Branch eXchange
PMD: Physical Medium Dependant
Q
QOS: Quality of Service
R
RADIUS : Remote Authentication Dial-In User Server
RNIS : Réseau numérique à intégration de services
RSVP : Resource reSerVation Protocol
RTC :Réseau Téléphonique Commuté
RTCP: Real-time Transport Control Protocol
RTP : Real-time Transport Protocol)
RTSP: Real-time Streaming Protocol
S
SAP: Session Advertisement Protocol
SDP: Session Description Protocol
SGBDR: Système de Gestion de Base de Données Relationnel
SKMP : Secure key Management Protocol
SIP : Session Initiation Protocol
SRTP :Secure RTP
87
SSL : Secure Sockets Layer
T
TKIP : Temporal Key Integrity Protocol
TOIP: Telephony over Internet Protocol
TTL :transistor Transistor Logic
U
UDP:User Datagram Protocol
UIT :Union internationale des télécommunications
URI :Uniform Resource Identifier
URL :Uniform Resource Locator
V
VOIP : Voice over IP
VPN : Virtual Private Network
W
WEP : Wired Equivalent Privacy
WG MMUSIC : Work Group Multiparty Multimedia Session Control
88
89
90