Beruflich Dokumente
Kultur Dokumente
Solution IP-Centrex
BSNetwork
Date : A définir
Composition du Jury
A définir
Sommaire
I. Introduction ...................................................................................................................... 19
2) Le téléphone ................................................................................................................. 27
Fréquences .................................................................................................................... 27
Niveaux ........................................................................................................................ 27
La signalisation ............................................................................................................ 28
La transfert de la voix................................................................................................... 30
Lois A et mu ................................................................................................................. 35
b) Framing D4 .............................................................................................................. 39
e) Alarmes E1 ............................................................................................................... 42
Régulier .................................................................................................................... 47
Aléatoire ................................................................................................................... 48
Durées d’appel.............................................................................................................. 49
Erlang B........................................................................................................................ 49
Distribution d’Erlang................................................................................................ 53
4) LD-CELP – Low Delay / Code Excited Linear Prediction (ITU-T G.728) ................. 58
IPv4 .............................................................................................................................. 63
IPv6 .............................................................................................................................. 63
TCP............................................................................................................................... 64
UDP .............................................................................................................................. 65
TLS ............................................................................................................................... 65
SCTP ............................................................................................................................ 65
d) La couche application............................................................................................... 66
a) Introduction .............................................................................................................. 67
Le contrôleur multipoint........................................................................................... 72
f) Conclusion ................................................................................................................ 78
a) Introduction .............................................................................................................. 79
L’IETF .......................................................................................................................... 79
b) En pratique ............................................................................................................... 80
Message INVITE.......................................................................................................... 81
5) Synthèse ....................................................................................................................... 98
/usr/lib/asterisk/modules......................................................................................... 124
/var/spool/asterisk................................................................................................... 124
a) Snom....................................................................................................................... 128
a) Stabilité................................................................................................................... 141
f) Asterisk................................................................................................................... 158
g) SER......................................................................................................................... 159
a) Quelle est votre perception du marché actuel de la Téléphonie sur IP ? ............... 205
b) Quelle est la légitimité d‘un opérateur tel que France Télécom sur ce marché ?... 205
c) Quelle est votre approche et qu‘offrez-vous aux clients entreprises ? ................... 206
d) Quel message souhaitez-vous adresser aux entreprises désirant migrer vers la ToIP
? 206
Remerciements
Je tiens tout d’abord à exprimer ma reconnaissance à l’entreprise BSNetwork pour l’acceuil
réservé lors de mon stage.
Enfin, je remercie Monsieur Jean-Louis MAS, mon parrain de stage à l’ESIEA, pour son aide
et ses précieux conseils.
Résumé Français
Suite à l'explosion de la bande passante sur les réseaux IP et à l'avènement du haut débit chez
les particuliers, de nouvelles techniques de communications sont apparues ces dernières
années. L'une les plus en vogue actuellement, est ce que l'on appelle « Voix sur IP ».
Le développement de la voix sur IP est parti d’un constat simple : comment faire en sorte
d’utiliser les potentialités extraordinaires du réseau Internet afin de téléphoner moins cher,
voir gratuitement ?
Je commencerai par présenter l’entreprise BSNetwork, le déroulement de mon stage ainsi que
la téléphonie classique. Après une brève description des systèmes de compression et des
protocoles réseaux, j’expliquerais le principe de la VoIP, la manière d’analyser le trafic
téléphonique, les problèmes rencontrés ainsi que les solutions proposées.
Je conclurai par une analyse des enjeux économiques et les perspectives d’une telle solution.
Résumé Anglais
Thanks to the incrementation of the band-width on networks IP and new DSL connections at
home, new techniques of communications these last years appeared. One of there is called
"Voice on IP".
The development of the Voice over IP started from a simple report: how to use the
extraordinary potentialities of Internet network in order to telephone less expensive or free?
After anarchistic stammerings where the various solutions suggested (NetMeeting of
Microsoft and CoolTalk of Netscape for example) were completely incompatible between
them, the H323 standard made its appearance and allowed the interworking of the various
systems. But this protocol resulting from the large national operators is much less flexible
than world Internet and too much near to traditional telephony for a total convergence of
transported flows.
Few years later appeared the protocol SIP, resulting this time from the large operators
networks. It is flexible, evolutionary and it has a great future in front of him. But it suffers
because of majority establishment of H323.
I will start by presenting the BSNetwork Company, the course of my training course and the
traditional telephony. After a short description of the systems of compression and protocols
networks, I would explain the principle of VoIP, the manner of analyzing the telephone
traffic, the problems encountered as well as the solutions suggested.
I will conclude by an analysis from the economic stakes and the prospects for such solution.
I. Introduction
1) Présentation de l’entreprise
BSNetwork, créée en mai 2000 par Monsieur Hakim
BESTANDJI (Président Directeur Général), est une Société
Anonyme, au capital de 38 112 euros. Son chiffre d’affaires
est en hausse constante depuis sa création.
- Vente de matériel : dans le cadre de son approche globale des besoins de ses clients,
BSNetwork propose un ensemble homogène de solutions matérielles.
- Conduite du changement : mise en œuvre des moyens nécessaires pour que les
services et les hommes qui les composent soient opérationnels en même temps que les
systèmes d'information qui les outillent.
BSNetwork offre une prestation globale, facteur clé de succès : la très forte implication des
ses équipes (consulting et implémentation) est un gage de réussite.
Mr BESTANDJI
PDG
Stéphane Frédéric
CALLABER OGUER
Réseaux VoIP
Dans le cadre de ces projets, BSNetwork prend les mesures nécessaires pour atteindre les
objectifs, à savoir, développer et livrer un produit de qualité, en maîtrisant les ressources et les
délais. L'approche privilégiée est : l'anticipation.
- EFREI
- EPITA
- INSIA
- Université d’Orsay
- Université de Tours
- Université de Montpellier …
BSNetwork organise des groupes de travail mixte (entreprise – Université) sur l’évolution,
dans de nouvelles technologies, du Système d’information des entreprises. En accueillant
également des jeunes ingénieurs dans le cadre de stage tout le long de leurs cursus.
- France Télécom
- Vegastream
- Astaro
- COLT Telecom
- Ingate
- Primus Telecom
2) Présentation du stage
Mon stage avait comme objectif de compléter l’équipe réseaux et sécurité de BSNetwork pour
le développement de nouvelles solutions, en particulier une solution Voix sur IP.
- la téléphonie sur Internet : propose les services téléphoniques de base via Internet.
Etape 2 :
Etape 1 : Etape 3 : Etape 4 :
- analyse de l’existant
- apprentissage des techniques - développement d’une plateforme complète Démonstrations
- rencontre et formation avec les futurs
Réseaux & Sécurité de BSNetwork - test et validation aux clients
partenaires
L’objectif étant de développé une solution VoIP, il a fallut prendre contact avec les différents
acteurs du marché. Certainement démarches ont été soldées par des échecs (Centile par
exemple) et d’autres par véritable succès (Ingate, Primus, etc.) ce qui a permis de développer
de véritables partenariats. Il a alors fallut que je me forme sur les différents produits et
solutions.
Fort de la connaissance théorique que j’avis acquise, j’ai commencé a développer une
plateforme complète afin de faire les différents tests.
La dernière étape a été de faire des démonstrations, à la fois en interne et à certains clients.
Actuellement, la solution est en train d’être finalisée afin de la proposer aux clients, suivant ce
plan :
RoadMap Asterisk
Fred
Fred Fabien
Fabien Administratif
Administratif
Demonstration
Fichiers Conf :
Supervision :
Ajout tel SIP Ingate Serveur : Numéros
Logiciel Linux-HA PostGre-SQL HA
Gestion Primus 1400 RX100 Primus
Materiel
Music d’attente
Script :
Plateforme de
Console de DB Ligne test : PBL de serveurs ?
Haute Dispo
test :
Supervision DB/conf 512/512 Pour test HA
BSNetwork
Conf
Interface WEB
Fonctionnalités : Plateforme
Queue Début Interface opérationnel
Call parking HA: dev./op.
Flash pour acceuil
Gestion des
Interface complet
Interface :
Contrôle Qualité Interface pour extensions :
ajout tel
Communication standards Redirection,
Conf primus
transfert, etc.
Correction de
gestion LDAP
Correction de Premiere
Fonctionnalité Demandes
l’interface, ajout Solution pour
Solution OK
Billing Clients
fonctionnalité L’entreprise
Solution à la Demandes
Visualisation
Solution à la
demande
De nombreux autres développements furent réalisés autour de cet équipement à la fin des
années 1870. Bell fut à l’origine de l’écouteur (inducteur), et Thomas Edison fut le concepteur
du microphone (à base de carbone). L’incorporation de ces améliorations fit du téléphone un
objet utilisable pratiquement.
A l’origine, le téléphone n’avait pas de mécanisme pour composer un numéro. Pour appeler,
une poignée devait être manipulée afin de produire un courant électrique. Ce courant signalait
à un opérateur local la présence d’un appel. Pour connecter l’appelant à l’appelé, l’opérateur
réalisait manuellement la fonction de commutation, en connectant des fiches entre la prise de
l’appelant et de l’appelé.
Les réseaux téléphoniques ont subi de très nombreux changements depuis cette époque.
Cependant, la plupart des techniques restent les mêmes. Le téléphone « deux fils » utilisé par
la plupart des foyers d’aujourd’hui fonctionne grossièrement de la même manière qu’il y a
cent ans.
2) Le téléphone
Dans cette partie, les fonctions de base du téléphone sont examinées, avec un regard
particulier sur les deux fonctions de base qu’il offre : la signalisation et la fonction de la
transmission de la voix. Il est important de comprendre de quoi sont constituées la voix et
l’écoute chez l’homme. Pour finir cette partie, d’autres types de téléphones seront présentés
(conceptions propriétaires et postes numériques) ; l’objectif étant de comprendre comment
nous pourrons interfacer ces périphérique avec la VoIP.
Fréquences
La voix résulte d’une vibration des cordes vocales, interrompant le flux d’air provenant des
poumons, produisant ainsi des signaux dans une gamme de fréquences allant de 50 à 5000 Hz.
Cette gamme de fréquence varie de manière sensible d’une personne à l’autre. La majorité de
l’énergie se concentre entre 300 et 3000 Hz. L’oreille humaine peut détecter des sons dans
une bande de fréquence allant de 20 Hz à près de 20 000 Hz, avec une sensibilité maximale
dans la bande 300 Hz – 10 000 Hz.
Niveaux
Il est important de s’assurer que les signaux de voix sont transmis à des niveaux corrects à
travers le réseau, afin de maintenir une qualité de bout en bout. Un niveau trop faible fait que
Aujourd’hui, les communications internationales sont monnaie courante. Les gens doivent
pouvoir communiquer avec leur voisin de palier, comme avec n’importe qui dans le monde.
Ce but est compliqué par le fait que les systèmes de téléphonie ont évolué de manière
différente dans plusieurs pays ou régions. Par exemple, un téléphone analogique aux USA
émet avec un niveau de signal plus faible que le même téléphone en Angleterre.
Les niveaux de signal s’expriment en décibels (dBs). (et en termes relatifs : dBm, dBm0 et
dBr.)
b) Le fonctionnement du téléphone
Aujourd’hui un poste téléphonique peut être classé dans deux catégories : analogique ou
numérique. Les postes développés à l’origine par A. Bell étaient analogiques. En fait, la
plupart des postes utilisés en environnement analogique sont toujours analogiques.
La forme la plus simple du téléphone aujourd’hui est le téléphone « deux fils » (loop
disconnect, ou loop start ou POTS : Plain Old Telephone Service). Il se connecte au
commutateur local par deux fils qui transportent le signal dans les deux directions. Ces fils
transportent également la numérotation vers le commutateur et le signal d’appel vers le
téléphone. Le commutateur envoie un signal de 48 V à travers cette paire pour alimenter le
téléphone, détecter le décrochage et l’activité de numérotation.
La signalisation
Pour initier un appel, l’utilisateur décroche le téléphone. Cette action ferme un interrupteur
dans le poste, et un courant circule en boucle (d’où le terme « loop start »). Le commutateur
détecte ce courant comme un appel entrant et fournit le signal de tonalité sur la ligne (440
Hz).Ce signal indique à l’utilisateur qu’il peut commencer à numéroter. Si le combiné
téléphonique utilise une numérotation par impulsions, le poste ouvre et ferme la boucle à une
vitesse de 10 ou 20 impulsions par seconde : c’est le système de numérotation par impulsions.
Le nombre d’impulsions est caractéristique de chacun des chiffres numérotés.
L’autre méthode aujourd’hui utilisée est la numérotation par fréquences vocales (DTMF :
Dual Tone Multi Frequency). Dans cette forme de signalisation, chaque chiffre est représenté
par un couple de fréquences qui sont transmises de manière simultanée sur la ligne pendant
une période de temps courte.
Ces fréquences sont définies par la recommandation de l’ITU-T Q.23. Cette méthode permet
un transfert plus rapide de la numérotation, et surtout la vitesse de transmission est
indépendante du chiffre numéroté. Ce système permet également de se servir d’autres touches
pour l’utilisation de boîtes vocales ou d’autres applications, comme la consultation de son
compte en banque…
Chaque point de signalisation (Signaling Point) est identifié de manière unique par un code
numérique (point code). Ces codes sont transportés dans les messages de signalisation entre
nœuds de ce réseau pour identifier de manière formelle la source et la destination de chaque
message. Une table de routage est utilisée dans ces nœuds pour sélectionner le meilleur
chemin pour joindre la destination.
Les SSPs sont les commutateurs qui initient, terminent un appel. Un SSP envoie des messages
de signalisation à d’autres SSPs pour initialiser, administrer ou libérer des circuits de voix
nécessaire à la gestion des appels. Un SSP peut également envoyer une requête vers une base
de données centralisée (SCP) afin de déterminer comment router un appel particulier (ex :
numéro vert). Le SCP renvoie la réponse au commutateur d’origine contenant les
informations de routage avec le numéro appelé. Un chemin alternatif peut être utilisé par le
SSP si le premier numéro est occupé ou si le numéro échoue après un certain temps.
Le trafic entre les points de signalisation peut être routé par un commutateur de paquet appelé
STP. Un STP route chaque message d’entrée vers un lien de sortie en fonction des
informations de routage contenues dans le message SS7.
Le réseau SS7 étant stratégique pour l’établissement des appels, les SCPs et STPs sont
généralement doublés, et positionnés dans des emplacements physiques distants. Les liens
entre ces points sont également doublés. Le trafic est partagé à travers ces liens. Le protocole
SS7 permet à la fois la correction d’erreurs et la retransmission pour assurer un service
continu, quelque soit le problème (coupure de lien, etc.).
La transfert de la voix
En plus de la fonction de transfert de la numérotation, la principale fonction d’un poste
téléphonique est de transférer les communications vocales. Comme mentionné
précédemment, un poste simple doit transporter les signaux de voix dans les deux directions,
malgré le fait qu’il n’y a que deux fils. Cela est réalisé grâce à un circuit hybride, le but de ce
La plupart de ces postes numériques sont propriétaires, c’est à dire que le format des flux
numériques est toujours spécifique à un constructeur. Beaucoup de postes se réfèrent
cependant à la recommandation de l'ITU-T I.420 (ISDN). Cette interface définit une interface
numérique qui transporte deux canaux opérant à 64 Kbps (appelés canaux B) associés à un
canal de signalisation (appelé canal D) de 16 Kbps.
Les canaux B peuvent être utilisés pour transporter des données ou de la voix numérisée
d’une manière similaire aux interfaces PRI (Primary Rate Interface) qui seront définis dans
les parties suivantes. La différence principale tient dans le fait que sur une interface BRI
(Base Rate Interface) seuls deux canaux B sont disponibles. Le canal D est normalement
utilisé pour transporter les informations de signalisation (CCS : Common Channel Signaling)
pour le contrôle des appels d’une manière similaire à celle utilisée sur l’interface PRI. Les
spécifications permettent également au canal D de transporter des données (en mode paquet
ou en mode commuté).
Un combiné téléphonique réellement « 4 fils » signifie que la voix est transportée de manière
séparée pour l’émission et la réception.
La plupart des PABX sont aujourd’hui numériques. Cela signifie que les communications
sont faites de manière numérique, la voix étant systématiquement transformée dans un format
numérique (PCM : Pulse Code Modulation, voir plus loin).
Les interfaces d’un PABX sont de deux types : les interfaces « lignes » ou les interfaces
« trunk ». Les interfaces de type ligne connectent les postes utilisateurs, qu’ils soient
analogiques ou numériques, ou d’autres éléments comme des terminaux de données. Les
« trunks » ou canaux sont des lignes partagées qui connectent le PABX soit au domaine
public (PSTN Trunk) soit au réseau de l’entreprise (Private Trunk ou Tie Line / Tie Trunk).
- les interfaces « ligne » : ce sont les interfaces qui permettent la connexion des postes
utilisateurs ou des terminaux de données. Elles peuvent être de type « 2 fils », « 2
fils » ou « 4 fils » avec des caractéristiques propriétaires ou « 4 fils » en format
numérique, soit propriétaire, soit dans un format respectant la spécification ISDN BRI.
- les interfaces « trunk » privées, qui permettent l’interconnexion de PABX entre eux
sur un réseau d’entreprise. Ces interfaces permettent la communication d’utilisateurs
sans passer par le réseau public, permettant des économies. Elles peuvent être de type
« 2 fils » ou « 4 fils » avec une signalisation de type « E&M » (Earth & Mouth), « 4
fils » en analogique avec une signalisation de type AC15, ou complètement
numériques avec une signalisation CAS ou CCS.
- les interfaces « trunk » publiques, qui interconnectent le PABX au réseau public pour
les appels entrants / sortants. Elles peuvent être de type analogique (« 2 fils ») avec
des appels dans les deux sens, analogique avec appels entrants uniquement (ADDI :
Analog Direct Dial In), ou complètement numériques avec une signalisation CAS ou
CCS.
4) Numérisation de la voix
a) Les « trains » numériques normalisés – 1,544 Mbps / 2,048
Mbps
Ces systèmes furent les premiers composants permettant l’utilisation de la voix numérisée
d’une manière pratique. Ces éléments réalisent les fonctions de numérisation de la voix
(conversion analogique / numérique), puis la fonction de multiplexage sur des liens haute
vitesse. Deux systèmes existent aujourd’hui, le premier supportant 24 canaux de voix (1,544
Mbps), le second 30 ou 31 canaux (lien numérique 2,048 Mbps).
Ces systèmes ont évolué pour supporter plus que les simples signaux de voix analogiques.
Aujourd’hui, ces systèmes supportent de nombreux types d’interface, outre le simple signal
analogique, comme :
- le téléphone « 2 fils » ;
Un signal numérique est une suite de « 0 » et de « 1 » (Binary Digits ou bits) qui proviennent
de deux opérations : l’échantillonnage et la quantification. Lorsque l’utilisation parle, les
variations de pression sont transformées en un signal électrique par le microphone, qui est
l’analogue électrique de ces variations de pression (d’où le terme signal analogique). Ce
signal est alors transformé en un signal numérique, suite de bits, qui représentent ce signal
analogique.
Les raisons de cette conversion sont nombreuses, mais les plus importantes sont :
La méthode utilisée pour la représentation numérique des signaux de voix dans les systèmes
de téléphonie a été définie par l’ITU-T dans la recommandation G.711. Le signal analogique
Lois A et mu
Il existe deux types de lois, la loi A et la loi mu, chacun étant utilisée dans des régions ou pays
différents. L’Amérique du Nord et le Japon utilisent la loi mu, alors que la plupart des autres
pays utilisent la loi A. Les deux types sont définis dans la recommandation de l’ITU-T G.711,
chacune différant sur un certain nombre de points. Par exemple, pour la loi A, après la
conversion PAM vers PCM, les bits impairs sont inversés avant transmission. Cette inversion
de bits fut conçue à l’origine pour s’assurer qu’un nombre de « 1 » suffisant soit présent sur la
ligne, un canal sans activité étant représenté par une suite de « 0 » sans cette modification. En
fait, dans le cas d’un train numérique à 2,048 Mbps, cette inversion n’est pas nécessaire,
puisque le problème du nombre de « 0 » est traité par l’encodage numérique sur la ligne
physique (codage « HDB3 »).
Pour ces raisons, et lors de l’interconnexion de systèmes différents entre pays implémentant
des lois différentes, il est nécessaire d’appliquer des fonctions de conversion, qui sont
explicités dans la recommandation G.711.
La loi "A"
Selon la proposition de la conférence européenne des postes et télécommunications (CEPT),
adoptée ensuite par le CCITT (G.711), la caractéristique de compression logarithmique idéale
a été approchée par le compromis suivant :
A 86,7
A x 1
y x
1 ln A A
1 ln A x 1
y x 1
1 ln A A
Cette loi possède des petits pas de quantification à bas niveau et des grands pas à haut niveau :
Loi "A"
1,5
0,5
0
-1
-0
-0,9
-0,8
-0,6
-0,5
-0,4
-0,3
-0,2
0,0
0,2
0,3
0,4
0,5
0,6
0,8
0,9
-0,5
-1
-1,5
La loi "mu"
Les Américains ont normalisé une loi différente fondée sur la loi suivante :
m 255
ln 1 m x
y 1 x 1
ln 1 m
Loi "mu"
1,5
0,5
0
-1
-0
-0,9
-0,8
-0,6
-0,5
-0,4
-0,3
-0,2
0,0
0,2
0,3
0,4
0,5
0,6
0,8
0,9
-0,5
-1
-1,5
Lors du processus de quantification, une erreur est induite entre le niveau réel et le niveau
correspondant au niveau le plus proche défini par la méthode de quantification. Cette erreur
est décrite plus en détail plus loin.
Entrées Sortie
8 000 trames par seconde
(1 trame par 125 µs)
C.1
C.2 1 octet (8 bits) par canal dans l’ordre séquentiel
C.3
. T1
C.1 C.2 C.3 ... C.23 C.24 C.1
. Multiplexeur
.
C.23
Bit de trame Bit de trame
C.24
suivant
Interface
Interface numérique
numérique T1
T1 (24
(24 canaux)
canaux)
Dans les pays supportant l’interface DS-1, plusieurs types « T1 » sont offerts : deux types
principaux cohabitent :
- B8ZS (Bipolar 8 Zeros Substitution) : des viols de codes sont introduits dans le flux
numérique suite à une détection d’un nombre important de « 0 ». Cette technique est
similaire à celle utilisée par le codage HDB3 (voir ci dessous).
a) L’interface physique
DS-1 n’est supporté que sur un câble paires torsadées, à la différence d’E1 qui est supporté
sur un câble coaxial (mode unbalanced) et sur des câbles à paires torsadées :
Paire torsadée
Gaine extérieure Gaine extérieure Conducteur de cuivre
Isolant de plastique
Blindage Isolant de cuivre tressé Isolant de plastique
Conducteur de cuivre
Câble
Câble torsadée
torsadée blindée
blindée (STP)
(STP) Câble
Câble coaxial
coaxial
DS-1 utilise le codage de ligne AMI pour encoder électriquement le signal sur la ligne de
transmission. Cependant, pour éviter le problème de la perte de synchronisation, le codage
b) Framing D4
Il y a deux types de format de trame utilisés sur une interface DS-1 : D4 et l’ESF (Extended
SuperFrame).
D4 consiste en une trame de 193 bits avec un taux de répétition de 8000 trames par seconde,
donnant le débit de transmission de 1,544 Mbps, chaque trame durant 125 us (micro
secondes). Chaque trame contient 24 time slots de 8 bits chacun, du time slot 1 au time slot
24, et un seul bit appelé « F » ou « Framinig bit ». Tous les 24 time slots sont normalement
utilisables pour du trafic, sauf lors de l’utilisation de la signalisation CCS. Dans ce cas, le
timeslot 24 est utilisé comme canal de signalisation.
La reconnaissance des trames est garantie par l’utilisation du bit « F » sur une séquence de 12
trames, qui constitue une « super trame ». Dans les trames impaires, le bit F est appelé Ft pour
Terminal Framing, et permet l’alignement de trames. Dans les trames paires, le bit F est
appelé Fs, et permet l’alignement entre super trames.
La méthode utilisée est appelé « vol de bit » (robbed bit), parce que le bit le moins significatif
de chaque IT ou timeslot de trafic est utilisé pour transporter un signal de signalisation plutôt
que du trafic. Les autres bits restent utilisés pour le trafic utile, qui peut être un signal PCM.
Toute distorsion introduite au signal de voix PCM par cette technique est négligeable et peut
être ignorée. Cependant, pour des signaux de données, cette distorsion peut ne pas être
négligeable. Cela explique que le débit de trafic utile passe de 64 Kbps à 56 Kbps, avec les 7
bits les plus significatifs utilisés.
Les bits de données sont transmis en utilisant le code AMI, suivi de l’encodage de ligne
HDB3 (High Density Bipolar 3). L’objectif de ce traitement est double : d’abord, enlever
toute composante continue au signal (fonction réalisée par le codage AMI) et d’autre part,
s’assurer d’un nombre minimum de transitions du signal (fonction réalisée par HDB3), qui
garantit la synchronisation de part et d’autre. AMI utilise un signal à 3 niveaux. HDB3, définit
par G.703, remplace chaque bloc de 4 zéros successifs par un pattern de soit 000V ou B00V,
B représentant une impulsion qui se conforme à la règle AMI, et V représentant le viol
apporté par AMI.
Une trame de 256 bits est définie à un taux de répétition de 8000 par seconde, donnant un
débit global de 2,048 Mbps et une durée de trame de 125 us (micro secondes). Chaque trame
comprend 32 ITs ou Time Slots, allant de 0 à 31. L’IT 0 est utilisée à des fins de
synchronisation et de génération d’alarme. L’IT 16 est généralement utilisée pour transporter
les informations de signalisation (utilisée dans certains cas pour du trafic utile). Les ITs 1 à 15
et de 17 à 31 sont transporter 30 canaux de trafic utile, qui peut être un signal PCM par
exemple. Cependant, chacun de ces ITs représente un canal de 64 Kbps, qui peut être utilisé
pour toute forme de trafic, incluant des données.
Une trame E1
Canaux B Canaux B
transportant les transportant les
informations informations
Canal D
IT 0 de
Transportant les
synchronisation
informations pour
les canaux B
Trame
Trame E1
E1
Les ITs 0 transportent différents types d’informations à des fins de synchronisation et de
génération d’alarmes. Le bit « A » (également appelé RAI pour Remote Alarm Indication) est
positionné à 0 en fonctionnement normal et à 1 lors d’une condition d’erreur. D’autres bits,
comme Si ou Sa4-Sa8 sont de moindre importance. Si est utilisé pour un usage international.
G.704 spécifie l’utilisation de Si comme code CRC. Les autres bits sont utilisés à des fins de
monitoring des performances.
e) Alarmes E1
La recommandation G.732 décrit de nombreuses conditions d’erreur et les actions à
entreprendre, comme une panne d’alimentation, de codec, etc …
Les interfaces numériques des commutateurs ont des mécanismes de type buffer pour traiter
les problèmes de type jitter, gigue, imprécision légère entre horloges. Cependant, dans le cas
où cette désynchronisation est trop importante, le buffer va se remplir. Une fois rempli, il doit
être vidé. Il en résulte des pertes de données et/ou de synchronisation entre trames. Le
processus de synchronisation doit être réinitialisé et rapidement opérationnel, pour permettre
un transfert des données. Les exemples suivants montrent deux commutateurs connectés sans
synchronisation, le second montrera le cas contraire.
Les deux commutateurs sont interconnectés par une liaison 2,048 Mbps. Ceci est une vitesse
nominale, et une légère différence est inévitable. Il est possible par exemple que l’horloge
d’émission du commutateur 1 aille un peu plus vite, 2,048001 Mbps, par exemple. Cela
représente une imprécision de 5 pour 10 millions, ce qui n’est pas improbable. L’horloge de
réception du commutateur 2 peut elle être de 2,047599 Mbps, ce qui représente également une
erreur de 5 pour 10 millions.
Chaque seconde, le commutateur 1 transmet 2 048 001 bits de données sur le lien trunk, et le
commutateur 2 reçoit 2 047 599 bits, laissant 2 bits dans le buffer de réception du
commutateur 2. Cela continue chaque seconde, jusqu’à remplissage complet du buffer,
causant à cet instant un vidage complet de ce dernier, qui déclenche une perte de
synchronisation. L’effet est difficile à prédire, mais il causera certainement des bruits sur les
communications en cours sur le lien ou une déconnexion totale.
Des règles ont été définies pour garantir cette synchronisation, l’une d’entre elles étant que le
réseau entier doit être synchronisé par rapport à une seule et unique horloge. Dans de
nombreux cas, le réseau des opérateurs est utilisé pour garantir cette synchronisation sur un
réseau privé, une interconnexion avec une interface ISDN étant généralement un bon étalon
(horloge atomique de haute précision).
8) Analyse du trafic
Que se soit pour la téléphonie classique ou le VoIP que nous expliquerons plus tard, il y a
deux facteurs important : la qualité et le coût. La qualité est essentielle pour que le client soit
content. Le coût est le principal composant de la rentabilité. Afin d’avoir des coût minimum,
il est nécessaire d’optimiser la taille de la solution et en particulier le réseau qui sera utilisé.
En pratique, l’expérience nous permet de connaître le trafic qui transitera sur le réseau. Mais
cela est de plus en plus difficile. Le trafic est défini comme une quantité de données qui
circule durant une période de temps. L’analyse de ce trafic nous permet donc de connaître la
bande passante nécessaire.
a) La théorie du trafic
Unités de mesure
Tout d’abord, il est nécessaire de connaître la charge de trafic. Il s’agit en réalité de la durée
moyenne d’un appel. On l’obtient en divisant le temps total passé en ligne par le nombre
d’appel. Par exemple, si durant une période donnée (une heure), nous avons eu 23 appels pour
une durée total de 3976 secondes, la durée moyenne d’appel (ou AHT : Average Hold Time)
est de 172,87 seconds :
3976
172,87
23
L’unité de mesure que nous utilisons pour la charge de trafic est le erlang. Un erlang
correspond à la charge maximale d’un réseau durant une heure. Le trafic en erlang est le
produit du nombre d’appel par la durée moyenne (en seconde), divisé par 3600 :
23 *172,87
1,104
3600
Une autre unité est toutefois utilisée, le CCS (Centum Call Seconds) : 1 erlang = 36 CCS.
Heure de pointe
On mesure généralement le trafic durant une heure de charge maximale (ou BHT : Busy Hour
Traffic). Dans une entreprise classique, le trafic durant une heure de pointe correspond entre
15 et 20 % du trafic journalier. (Dans nos calculs nous utiliserons donc 17 %). De même, le
AHT moyen est situé entre 180 et 210 secondes.
Heure de Pointe
Traffic
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Heure de la journée
Trafic
Trafic téléphonique
téléphonique en
en France
France
- Tentatives d’appel durant l’heure de pointe (ou BHCA : Busy Hour Call Attempts)
- Appels aboutis durant l’heure de pointe (ou BHCC : Busy Hour Call Completions)
Toutefois, toutes ces mesures sont basées sur un nombre d’appel et ne prennent pas en compte
la durée d’un appel. Il est donc nécessaire d’utiliser un AHT pour obtenir le BHT que nous
utilisons pour l’analyse du trafic.
Grade of Service
Le GoS (Grade of Service ou Degré de Service en français) est la probabilité qu’un appel soit
bloqué à cause du sous dimensionnement du réseau. Il est écrit sous la forme P.xx où xx est le
pourcentage d’appels bloqués. Par exemple, un trafic qui nécessite un GoS de P.01 signifie
qu’on accepte une probabilité de 1 % que l’appel soit bloqué. Un GoS de P.00 est rarement
demandé car cela signifie que 100 % des appels ne seront pas bloqués et qu’il est nécessaire
de dimensionner le réseau en conséquence.
Types de trafic
Il est facile d’utiliser les équipements de télécommunication pour obtenir les enregistrements
du trafic. Toutefois, les équipements n’enregistrent que le trafic transporté dans le système. Et
effet, les équipements n’enregistrent pas les pertes liées au GoS. La différence entre le trafic
transporté et le trafic réel peut engendrer des aberrations dans les calculs.
Evidement, plus le pourcentage de blocage est grand et plus la différence entre ces deux types
de trafic est grand lui aussi :
Toutefois, cette formule ne prend pas en compte les tentatives multiples qui se produise
lorsqu’un appel est bloqué. Pour cela, il est nécessaire d’intégrer un Facteur Réajusteur de
Charge (FRC ou OAF : Offered Load Adjustment Factors) :
FRC
1,0 R Facteur bloquant
1 - Facteur bloquant
Méthodes d’échantillonnage
La précision de notre analyse du trafic dépendra de la précision de notre méthode
d’échantillonnage. De nombreux paramètres peuvent faire varier la charge :
- Vacances
- Période d’échantillonnage
Selon la théorie de probabilité des réseaux voix, il est nécessaire d’avoir au moins 30
échantillons dans une période qui corresponde à une heure de pointe. Pour monter en
exactitude, il faut le maximum d’échantillons possible. Toutefois, même des échantillons tout
au long d’une année ne permettent pas une parfaite exactitude. En effet, la charge peut varier
d’une année à une autre. L’ITU-T (International Telecommunication Union
Telecommunication Standardization Sector) fournit des recommandations pour les
échantillons qui serviront au dimensionnement du réseau.
- Période de pointe (ou DPP : Daily Peak Period) : consiste à enregistrer la charge de
trafic durant une journée. Cette méthode nécessite des mesures continues et est
généralement utilisées dans des environnements où l’heure de pointe diffère d’un jour
à l’autre.
- Intervalle de mesure fixe (ou FDMI : Fixed Daily Measurement Interval) : nécessite
des mesures seulement durant les périodes de pointes prédictives. Cette méthode est
Dans l’exemple ci-dessous, nous avons utilisé la méthode FDMI. L’heure de pointe est située
à 10h00 avec une charge de 60,6 erlangs :
Lundi Mardi Mercredi Jeudi Vendredi Total
9h00 12,7 11,5 10,8 11,0 8,6 54,6
10h00 12,6 11,8 12,5 12,2 11,5 60,6
11h00 11,1 11,3 11,6 12,0 12,3 58,3
12h00 9,2 8,4 8,9 9,3 9,4 45,2
13h00 10,1 10,3 10,2 10,6 9,8 51,0
14h00 12,4 12,2 11,7 11,9 11,0 59,2
15h00 9,8 11,2 12,6 10,5 11,6 55,7
16h00 10,1 11,1 10,8 10,5 10,2 52,7
70,0
60,0
50,0
40,0
30,0
20,0
10,0
0,0
9h00 10h00 11h00 12h00 13h00 14h00 15h00 16h00
Avec la première méthode, nous obtenons une charge de 60,6 erlangs et avec la seconde une
charge de 61,9 erlangs.
Il est également nécessaire de regrouper les mesures en fonction du type de jour. L’ITU-T
défini ces groupes : jour normaux, week-end et jours fériés.
- Le type d’arrivée
- Le nombre de sources
- La durée d’appel
Types d’arrivée
La première étape pour choisir un modèle est de déterminé le type d’arrivée des appels. Le
type d’arrivée des appels correspond en réalité à la répartition des arrivées des appels dans le
temps. C’est un paramètre important car il affecte énormément les équipements. Les trois
types d’arrivées des appels sont :
- Régulier
- Par pique
- Aléatoirement
Régulier
Une arrivée régulière ou hypo-exponentielle signifie qu’il n’y a jamais une grande variation
du trafic. La durée d’un appel et la durée entre deux appels sont prévisibles ce qui permet de
prévoir le trafic en fonction du nombre de sources. Par exemple, le trafic sortant d’une société
de télémarketing est tout a fait prévisible : durant une période de une heure, nous pouvons
prévoir 30 appels de 2 minutes chacun par agent. La charge pour un agent est donc très proche
du 1 erlang et le nombre d’appels en fonction du temps reste quasiment constant :
Appels
Temps
Arrivées
Arrivées régulières
régulières
Par pique
Une arrivée par pique ou hyper-exponentielle signifie que les appels arrivent par paquets. Il
est alors nécessaire de prévoir des ressources suffisantes. Par exemple pour répondre à 30
appels en simultanés, il faut 30 lignes.
Appels
Temps
Arrivées
Arrivées par
par pique
pique
Aléatoire
Une arrivée aléatoire est comme sont nom l’indique : aléatoire. Elle est aussi connue sous le
nom de distribution de Poisson ou exponentielle. On remarque généralement ce type de trafic
dans un environnement avec un PBX : il y a un grand nombre d’utilisateurs, chacun générant
un peu de trafic :
Appels
Temps
Arrivées
Arrivées aléatoires
aléatoires
Appels bloqués
Un appel bloqué est un appel qui ne peut pas aboutir immédiatement. Un appel est considéré
comme bloqué s’il est rerouté vers une autre ligne, placé dans une queue ou mis en attente
avec une musique. La nature du blocage détermine le modèle à utiliser. En effet, la nature du
blocage détermine la charge de trafic.
- LCD (Lost Calls Delayed) : l’appel est mis en attente. C’est ce qu’il arrive dans les
centres d’appel.
- LCR (Lost Calls Retried) : l’appel est perdu mais il va y avoir un autre essai.
Nombre de sources
Le nombre de sources est également un paramètre important. Par exemple, s’il y a une source
et une ligne, la probabilité de blocage est de zéro. Plus le nombre de sources augmente et plus
la probabilité d’appel bloqué augmente. Le nombre de source rentre en jeu pour dimensionner
un PBX : le but étant d’avoir le minimum de lien mais de toujours avoir le GoS désigné.
Durées d’appel
Quelques modèles prennent en compte la durée des appels.
c) Les modèles
Une fois que nous avons déterminé les 4 paramètres précédents, nous pouvons choisir le
modèle qui correspond le plus à notre environnement. Les modèles les plus utilisés sont :
Erlang B, Erlang B étendu et Erlang C. Toutefois, d’autres modèles sont couramment
utilisés : Engset, Poisson, EART/EARC et Neal-Wilkerson.
Erlang B
Le modèle de Erlang est celui que nous utiliserons pour tous nos calculs de dimensionnement
de ligne. Même si l’analyse mathématique de cette modélisation peut sembler superflu, les
sommes en jeu sont trop importantes pour ne pas y passer quelques instants.
Equations d’états
Nous considérons :
- que la probabilité d’un nouvel appel quand le système est à l’état i est i ,
- que la probabilité de la fin d’un appel quand le système est à l’état i est i ,
- seulement un événement (début ou fin d’un appel) peut arriver à un moment donné.
0 1 i-1 i n-1
0 1 ... i ... N
µ1 µ2 µi µi+1 µn
0i N i 0,1,2...
Graphe
Graphe d’états
d’états Erlang
Erlang B
B
i est donc directement lié a l’arrivé de trafic dans le système et i est lié à la nature de ce
trafic. Il nous faut désormais obtenir la probabilité d’être dans l’état i.
La probabilité d’être dans l’état i au moment t dt est égale à la somme des probabilités
suivantes :
- La probabilité que le système soit dans l’état i au moment t et qu’aucun appel arrive
ou se termine durant le temps dt.
- La probabilité que le système soit dans l’état i-1 au moment t et qu’un appel arrive
pendant le temps dt.
- La probabilité que le système soit dans l’état i+1 au moment t et qu’un appel se
termine pendant le temps dt.
Nous considération qu’il ne peux y avoir qu’une action durant le temps dt.
Soit x la probabilité que le système soit dans l’état i, alors nous avons :
i 0 est un état limite avec 0 0 (pas de fin d’appel quand il n’y a pas d’appel…) et
1 0 (l’état -1 n’existe pas) :
d 0t
0 0t 1 1t
dt
d i t
i i i t i 1 i 1t i 1 i 1t
dt
Etat d’équilibre
Comme expliqué dans les parties précédente, nous utilisons le trafic moyen durant l’heure de
pointe comme donnée pour la modélisation. Etant une valeur moyen, cette valeur ne va pas
varier en fonction du temps. Ainsi, durant l’heure de pointe, la dépendance au temps de la
d i t
probabilité d’état est nulle et 0t
dt
Si nous appliquons cette condition aux deux équations précédentes, nous obtenons :
i 1 i 1 i i
Toutefois, il faut rappeler que cet état d’équilibre n’est qu’un concept et qu’il n’est valable
qu’avec la charge de trafic moyenne de l’heure de pointe.
Probabilité d’état
Nous avons dis que x représentait la probabilité que le système soit dans l’état i. En
pratique, durant l’heure de pointe, cette probabilité correspond à la proportion de temps passé
dans l’état i.
Prenons un cas simple : un système dispose de 5 lignes. Durant l’heure de pointe, la charge de
trafic est la suivante :
5
Lignes occupées
4 t1 t2 t3
Heure de Pointe
Exemple
Exemple
4 t1 t 2 t 3 t 4
temps passé dans l' état 4
3600 Heure de pointe
i 1
i 0
Distribution d’Erlang
Nous supposons que A erlangs sont disponibles pour N téléphones. Durant l’heure de pointe,
le système est en équilibre. De plus, la charge de trafic en erlang (A) est égale à la quantité
d’appel ( ) multiplié par la durée moyenne (s) de ces appels : A s . De plus le taux de fin
d’appel correspond au nombre d’appel en cours divisé par la durée moyenne de ces appels.
A i
et i
s s
i i i 1 A
s s
1 A0
2
2 A 0
2
Ai
i 0
i!
AN
N 0
N!
N
Or i 1 ,
i 0
N
0 A0 ... A 0 1
N!
Et par conséquent :
0 1
N
Av
v 0 v!
Ai
i N N! v
A
v 0 v!
Nous avons donc la probabilité pour que le système soit dans l’état i en fonction de la charge
A et du nombre de lignes N.
Temps de Congestion
Le temps de congestion E est défini comme la probabilité d’être dans l’état de congestion,
c'est-à-dire i N :
Temps de congestion E N
AN
E N N N! v E N A
A
v 0 v!
Ou bien encore :
AEi 1 A
E i A avec E0 A 1
i AEi 1 A
Appel bloqué
La congestion entraîne des blocages d’appel. Soit B les appels bloqués. Alors :
λN
B N
λi
i 0
B
N
N
i
i 0
B N
Erlang en pratique
Supposons que nous ayons à redimensionner un lien suite à de trop nombreux blocage
d’appels durant l’heure de pointe. Les équipements nous informe que la charge de trafic
durant l’heure de pointe est de 17 erlangs. Le nouveau lien doit être dimensionné pour obtenir
moins de 1% de blocage.
Si nous regardons la table de Erlang en annexe, pour une charge de 17 erlangs et une GoS de
0,9, il faut 27 lignes.
Le flux PCM peut être compressé parce qu’une part importante de ce flux est redondante. On
pense qu’une qualité de parole peut être fournie à des débits allant jusqu’au Kbps. Cela n’est
pas encore réalisé, en grande partie parce que les mécanismes de compréhension de la parole
ne sont pas encore connus. Au fur et à mesure de l’étude de la parole, des techniques de plus
en plus efficaces sont développées pour rendre ce débit aussi faible que possible avec une
qualité acceptable.
Codage de forme (waveform coding) : les codecs de ce type essaient de reconstruire la forme
du signal de manière aussi proche que le signal d’origine et basés sur des échantillons du
signal d’origine. En théorie, cela signifie que ces codeurs sont indépendants du signal, et
peuvent fonctionner avec des signaux non vocaux, de type modem ou fax par exemple. Ces
codeurs sont relativement simple à mettre en œuvre, et produisent une qualité acceptable
jusqu’à des débits de 16 Kbps. En deçà, la qualité du signal reconstruit se dégrade rapidement.
PCM est un exemple de cette technique. Dans le cas d’une quantification linéaire, au moins
12 bits par échantillon sont nécessaires pour assurer une bonne qualité, ce qui conduit à un
débit de 96 Kbps (8000 échantillons de 12 bits). Cependant, la nature de la parole et de
l’oreille humaine ne suit pas une échelle linéaire. La plupart des signaux vocaux sont de faible
amplitude, et l’oreille humaine n’est pas sensible à l’amplitude absolue d’un son, mais au
logarithme de l’amplitude. La représentation binaire (nombre de bits) est alors plus
Codage de source (source coding) : ces codeurs (appelés également Vocoders) sont
nettement plus complexes que les codeurs de forme, mais peuvent comprimer à des débits
allant jusqu’à 2,4 Kbps. Pour atteindre ces taux de compression, la connaissance du processus
de génération de la parole est requise. Le signal de parole est analysé et un modèle de la
source est généré. Un certain nombre de paramètres sont alors transmis au destinataire qui lui
permettent de reconstruire le modèle, et ainsi de recréer le signal de parole. Ces paramètres
incluent des informations comme le type (voyelles ou consonnes), l’amplitude…
Cependant, si la parole est reconnue, la reconnaissance de la personne parlant est très faible.
De plux, ces méthodes gèrent de manière difficile les signaux de type fax ou modem.
En raison de ces facteurs, ces codeurs ne sont pas utilisés dans des applications commerciales.
Leur utilisation principale est faite dans le domaine militaire, ou les débits faibles sont
privilégiés, avec un encryptage pour des raisons de sécurité.
Codage hybride (hybrid coding) : comme son nom l’indique, cette technique utilise les deux
techniques précédentes, essayant de prendre le meilleur des deux mondes.
Les techniques de ce type font appel à CELP (Code Excited Linear Prediction).
Le mode 32 Kbps fournit une qualité de parole qui ne peut être pratiquement distinguée de
celle fournit par le mode 64 Kbps (PCM). La qualité se dégrade aux débits de 16 et de 24
Kbps.
Les codeurs ADPCM effectuent un codage, non plus du signal direct, mais de la différence
entre le signal de parole et une prédiction de qu’est ce que sera le signal, en faisant
l’hypothèse que des échantillons adjacents sont extrêmement semblables. La valeur d’un
échantillon peut être prédite avec une bonne précision en considérant les valeurs des
échantillons précédents. Par exemple, la prédiction la plus simple consiste à dire que
l’échantillon suivant est le même que l’échantillon courant. Dans ce cas, la technique DPCM
(Differential Pulse Code Modulation) est utilisée, qui est à la base de l’ADPCM. Dans ce cas,
seule la différence entre l’échantillon et le suivant est transmise.
Pour PCM, le signal de parole est échantillonné à des intervalles réguliers, et c’est le niveau
absolu de l’échantillon qui est codé. Avec DPCM, c’est la différence entre l’échantillon
courant et le suivant qui est codée. En faisant cela, un nombre plus faible de bits est
C’est pour cette raison qu’ADPCM a été développée, de telle manière que le ratio amplitude /
nombre de bits utilisés pour coder cette amplitude soit toujours optimisé, afin de réduire au
maximum cette distorsion. Pendant les premiers échantillons, la différence entre l’échantillon
courant et le suivant est relativement faible. Cette différence est codée avec l’amplitude
maximale permise par le nombre de bits utilisés pour la quantification, ce qui donne un
certain nombre de bits par échantillon. Par exemple, pour un débit de 32Kbps, cette différence
est codée sur 4 bits, un pour le signe (la différence peut être positive ou négative), et les 3
autres pour quantifier la différence de l’amplitude. Dans le cas où cette différence entre deux
échantillons est plus importante, il y a adaptation, c’est à dire que pour un même nombre de
bits utilisés, l’amplitude sera augmentée.
Du côté émetteur, des groupes d’échantillons de parole PCM (vecteurs), typiquement d’une
durée de 20 ms, sont comparés à des vecteurs stockés dans le livre de code. L’index pour le
vecteur qui produit la meilleure comparaison est alors envoyé au récepteur. Du côte récepteur,
la forme du signal est extraite du livre de code et filtrée, en utilisant le modèle mathématique
du conduit vocal de la personne qui parle.
Du côté codeur, le signal PCM (loi A ou mu) est d’abord converti en PCM linéaire. Ce signal
est alors découpé en blocs de 5 échantillons successifs provenant du signal d’origine.
L’encodeur compare alors chacun des 1024 vecteurs du livre de code avec chacun des blocs
d’entrée. L’index du livre (10 bits) qui correspond le mieux est alors envoyé vers le décodeur.
L’opération de décodage est également effectuée bloc par bloc. Après réception de cet index
sur 10 bits, le décodeur effectue une recherche dans la table pour extraire le vecteur
correspondant dans le livre de code. Le vecteur extrait est alors filtré pour produire le signal
de sortie. Les 5 échantillons sont alors convertis selon la loi mu ou A.
CS-ACELP ne fonctionne qu’au débit de 8 Kbps, et apporte une qualité proche de celle
d’ADPCM au débit de 32 Kbps. De plus, les tests ont montré une très bonne résistance à la
perte de paquets.
Les techniques CVSD ne sont pas standardisées, et sont donc propres à chaque constructeur.
CVSD peut être utilisé pratiquement à n’importe quel débit, parce que le débit est fonction de
la fréquence d’échantillonnage. La qualité subjective de CVSD 32 Kbps n’est pas aussi bonne
qu’en ADPCM 32 Kbps, ce qui a amené à éliminer CVSD. La qualité se dégrade ensuite de
DSI : Digital Speech Interpolation. DSI est le terme générique pour des systèmes qui utilisent
les trous dans la parole pour arrêter la transmission d’échantillons, réduisant ainsi le débit sur
le canal de transmission. Il se base sur la probabilité que le facteur d’activité de la parole
(SAF : Speech Activity Factor) pendant une conversation est inférieur à 1. Le SAF est un
pourcentage de temps qu’une personne utilise réellement pour parler, et il est normalement de
0,4 ou de 40%.
RPE-LTP : Regular Pulse Excitation – Long Terme Prediction. RPE-LTP est la technique
utilisée par le GSM (Global System for Mobile communications), et fonctionne au débit de 13
Kbps. La qualité est acceptable, bien qu’inférieure à celle offerte par LD-CELP ou CS-
ACELP. L’avantage principal est la relative simplicité pour l’implémentation sur des
machines dont le coût doit être faible.
Les différents tests et recherches effectués pendant mon stage m’ont amenés à l’utilisation de
la technique CS-CELP, appelée également G.729. La bande passante nécessaire est plus faible
que les trois techniques étudiées dans l’ITU-T G.113 (8 kbps, comme le montre le tableau ci-
dessus, contre 16, 32 et 40 kbps), la qualité est bonne et cette technique possède une très
bonne résistance à la perte de paquet.
La qualité d’un codec est mesurée de façon subjective en laboratoire par une population test
de personnes. Ces dernières écoutent tout un ensemble de conversations compressées selon
les différents codecs à tester et les évaluent qualitativement selon la table suivante :
Qualité de la parole Score
Excellente 5
Bonne 4
Correcte 3
Pauvre 2
Insuffisante 1
- La qualité de la voix obtenue par les codecs G.729 et G.723.1 (à 6.4Kbps) est très
proche de celle du service téléphonique actuel, et ce pour des débits entre 8 et 10 fois
inférieurs. Ces deux codecs présentent une meilleure qualité que celle des réseaux
téléphoniques cellulaires (GSM).
Les solutions mises en oeuvre doivent éviter des configurations en tandem dans lesquelles un
PBX reçoit un appel d’un poste distant à travers une liaison VoIP et le redirige vers une autre
liaison semblable.
Offrant une qualité de voix très proche, les codecs G.729 et G.723.1 se distinguent
essentiellement par la bande passante qu’ils requièrent et par le retard que chacun introduit
dans la transmission. Le choix d’un équipement implémentant l’un ou l’autre de ces codecs
devra donc être fait selon la situation, en fonction notamment de la bande passante à
disposition et du retard cumulé maximum estimé pour chaque liaison (selon les standards de
l’UIT, le retard aller (« one-way delay ») devrait être inférieur à 150 ms).
Internet IP
AALx PPP
Physique
Modèle
Modèle OSI
OSI
a) La couche physique
La couche la plus basse est la couche physique. Il peut s’agir d’un réseau local (ou LAN :
Local Area Network), d’une simple ligne téléphonique (V.90 ou modem 56k) utilisant un
protocole Point à Point (ou PPP : Point-to-Point Protocol), d’une ligne numérique (DSL :
Digital Subscriber Line) utilisant un mode de transport asynchrone (ou ATM : Asynchronous
transport mode) ou bien encore d’un réseau sans fil Wifi (802.11). Cette couche s’occupe de
toutes les fonctions d’échanges de données binaires, de synchronisation des trames et
d’interaction avec une interface physique.
b) La couche Internet
La couche immédiatement supérieure est la couche Internet. Le protocole IP (Internet
Protocol) est utilisé pour transporter un paquet à travers le réseau en utilisant l’adresse IP du
destinataire. Le protocole IP n’utilise pas de connexion pour transférer un paquet mais le
transfert directement. Ainsi un paquet peut être perdu, retardé ou arriver dans le désordre par
rapport aux autres. Un paquet est donc transféré de manière autonome grâce à son en-tête,
ajouté dans la couche physique. A ce niveau, un paquet n’a aucun sens.
Tous les exemples que nous utiliserons utilisent l’ancienne version du protocole IP, la version
4 (IPv4).
IPv4
Une adresse IP est composée de 4 octets. On l’écrit généralement avec 4 chiffres compris
entre 0 et 255 ; séparés par des points (par exemple, 192.168.6.4). Au niveau de la couche IP,
une somme de contrôle (checksum) est rajoutée dans l’en-tête IP. Elle permet de détecter la
corruption d’un en-tête IP et d’éviter ainsi qu’un paquet soit mal redirigé. Par contre, des
corruptions ou des erreurs en dehors de l’en-tête ne sont pas détectées ; une couche supérieure
est nécessaire pour faire cela. IP utilise un octet pour indiquer le numéro du protocole utilisé
pour le transport.
IPv6
L’IP version 6 a été développé par l’IETF pour remplacer l’IPv4. Il est désormais supporté
par un grand nombre de système d’exploitation. Avec un adressage de 128 bits (contre 32 bits
pour l’IPv4) cela permet d’avoir plus de 4 milliards d’adresse IP, afin de répondre aux
nouvelles demandes, en particulier dans le domaine de la téléphonie. Mais l’IPv6 apporte
également plus de sécurité. Contrairement à l’IPv4, une adresse IPv6 est représentée par une
séquence de 8 octets séparés par deux points. Les adresses IPv4 sont compatibles en rajoutant
une séquence de quatre zéros ; par exemple 0:0:0:0:aa:bb:cc:dd. La même adresse peut être
écrite comme cela :::aa:bb:cc:dd.
Les adresses IP utilisés sur le réseau public Internet sont assignées en bloc par l’IANA
(Internet Assigned Number Association) ; cela afin que chaque adresse soit unique. Ainsi, une
destination indiquée par une adresse IP est unique.
c) La couche transport
La couche suivante est la couche de transport. Elle utilise un numéro de port codé sur deux
octets pour transférer les données vers la bonne application. Certains ports sont dédiés à des
protocoles particuliers. Par exemple, le HTTP utilise le port 80. Ces ports sont appelés
« connus ». Ainsi le SIP, que nous verrons plus tard, utilise les ports connus 5060 ou 5061.
D’autres ports peuvent être assigné à un protocole de manière dynamique.
Les trois protocoles communs pour le transport sont : TCP (Transmission Control Protocol),
TLS (Transmission Layer Security) et UDP (User Datagram Protocol).
TCP
Le TCP est un protocole fiable orienté connexion. Le TCP utilise une séquence de nombre et
un système d’accusé de réception pour être sûr que chaque bloc de données, appelé segment,
soit correctement acheminé.
Le schéma suivant montre l’échange de messages pour établir et tenir une communication
TCP. Un serveur TCP « écoute » sur un port connu une requête TCP. Le client TCP envoi un
message SYN (synchronisation) pour ouvrir la connexion. Le message SYN contient le
premier chiffre de la séquence qui va être utilisé pendant la connexion. Le serveur répond
avec un message SYN contenant son propre premier chiffre de séquence et un numéro
d’accusé de réception ACK (acknowledge) pour signaler qu’il a bien reçu le message SYN.
Le client termine cette initialisation par un message ACK ou un paquet de données (DATA)
pour valider le numéro de séquence du serveur. Maintenant que la connexion est ouverte, le
client ou le serveur peuvent envoyer des paquets DATA, aussi appelé segment.
SYN
SYN/AK
ACK
DATA
...
FIN
ACK
FIN
ACK
Communication
Communication TCP
TCP
Chaque fois qu’un paquet est envoyé, l’expéditeur démarre un minuteur. Si un paquet est
perdu, le minuteur expire et l’expéditeur retransmet le paquet jusqu’à ce qu’il reçoive un
accusé de réception. Le message FIN termine la connexion comme le montre la séquence des
quatre derniers messages de la figure précédente. Les ports dynamiques utilisés pour cette
communication sont libérés pour d’autres usages. L’en-tête d’un paquet TCP contient 24
UDP
L’UDP est un protocole de transport sur Internet non fiable. L’UDP ne possède rien de la
complexité du TCP : il n’y a ni accusé de réception, ni numéros de séquence.
TLS
Le TLS est basé sur le protocole SSL (Secure Sockets Layer) qui était initialement utilisé par
les explorateurs Web. Il est désormais couramment utilisé sur Internet pour les sites Web
sécurisés.
ClientHello
ServerHello
Finished
Finished
Données
Communication
Communication TLS
TLS simple
simple
SCTP
Le protocole SCTP (Stream Control Transport Protocol) est similaire au TCP car il permet le
transfert d’un flux de données de manière fiable. Toutefois, il apporte quelques avantages.
Tout d’abord, il ne concatène pas les données à l'émission, les messages sont donc reçus tels
Le SCTP est un protocole de transport de niveau 2. Cela signifie qu’il nécessite un système
d’exploitation, ce qui ralenti considérable les communication. De plus, les avantages du SCTP
sur le TCP n’interviennent que pendant une perte de paquets. Sur un réseau fiable, sans perte
de paquets, les performances des deux protocoles sont identiques.
d) La couche application
La couche la plus haute est la couche application. Cela inclut les protocoles de signalisation
comme le SIP ou les protocoles de transfert de données multimédias comme le RTP (Real-
time Transport Protocol). Il est important de citer le protocole H.323 qui est le principal
concurrent du SIP, mais également le protocole SDP (Session Description Protocol) car il est
transporté dans le corps même des messages SIP. Les protocoles HTTP, FTP, SMTP, Telnet
font également partie des protocoles de la couche application.
Pour répondre à cette question, il faut revenir avant 1996, date où le protocole H.323 est
apparu. Les solutions de voix sur IP reposaient alors sur des architectures propriétaires. Ces
solutions bien que fonctionnelles présentaient des défauts parmi lesquels le manque
d'interopérabilité des équipements, l'impossibilité de raccordement au réseau public (seuls les
ordinateurs pouvaient communiquer entre eux) ainsi que l'absence d'architecture généralisée
pour la connexion de n'importe quel type de terminal. Chaque architecture était définie pour
deux équipements d'extrémité spécifiques et ne pouvait pas opérer avec d'autres équipements.
C’est pourquoi de nombreuses organisations ont alors pris part à l'élaboration d'un standard
suffisamment général pour décrire toutes les possibilités de service de voix sur IP. Ils se sont
regroupés au sein d'un groupe de travail de l'UIT.
Ci-dessous une liste des principaux organismes de normalisation pour les différents standards
de la VoIP :
Dans les deux sous-sections suivantes seront présentés les deux standards les plus utilisés : le
H323 et le SIP. Ils ont chacun leurs avantages et leurs inconvénients.
Toutefois, il ne faut pas oublier les protocoles que sont Megaco/MGCP (Media Gateway
Control Protocol), SS7 (Signaling System n°7), IPTEL (IP Telephony), SIGTRANS
(Signaling Transport),…
1) Signalisation H.323
a) Introduction
C'est aujourd'hui la norme la plus utilisée pour faire passer la voix et la vidéo sur IP ou sur
d'autres réseaux ne garantissant pas une QoS optimale pour l'établissement d'une
Les terminaux
Il existe deux types de terminaux H.323, l'un de haute qualité (pour une utilisation sur LAN),
l'autre optimisée pour les bandes passantes faibles (28.8/33.6 kbit/s - G.723.1 et H.263). Les
terminaux sont capables de gérer des conférences à plusieurs et le multicast, permettant à 3 ou
4 personnes de dialoguer directement, sans tiers centralisateur. Ils doivent prendre en charge
au minimum le codec G.711.
- micro ordinateur.
Téléphonie classique
Telephone
Analogique
PBX PSTN
Passerelle H323
Terminaux H323
Passerelle
Passerelle H323
H323
- Modularité.
- la résolution d’adresses.
Le gatekeeper est aussi responsable de la sécurité. Quand un client H323 veut émettre un
appel, il doit le faire au travers du gatekeeper. C’est alors que celui-ci fournit une résolution
d’adresse du client de destination.
Dans le cas où il y aurait plusieurs gateways sur le réseau, il peut rediriger l’appel vers un
autre couple gateway/gatekeeper qui essaiera à son tour de router l’appel.
Pendant la résolution d’adresse, le gatekeeper peut aussi attribuer une certaine quantité de
bande passante pour l’appel et sélectionne les codecs à utiliser. Il peut agir comme un
administrateur de la bande passante disponible sur le réseau.
Le gatekeeper, de par ses fonctionnalités de routage et de sécurité, doit gérer ces gateways
pour faire en sorte que tout appel atteigne sa destination avec la meilleure qualité de service
possible.
Ainsi, le gatekeeper peut remplacer le classique PABX. Il est capable de router les appels
entrant et de les rediriger vers leur destination ou une autre passerelle. Mais, il peut gérer bien
d’autres fonctions telles que la conférence ou le double appel. Il n’existe pas les mêmes
contraintes avec un gatekeeper qu’avec un PABX.
En effet, ce premier est administré de façon logicielle et l’opérateur peut implémenter autant
de services qu’il le désire. Alors qu’avec un PABX, l’évolutivité est limitée par le matériel
propriétaire de chaque constructeur.
L'ensemble des terminaux, des passerelles et des Contrôleurs Multipoint dirigé par un seul
garde-barrières constitue une Zone H.323 :
Garde-
barrières
LAN LAN
Terminal Passerelle
H323
Routeur Routeur
Zone H323
Zone H323
Le garde-barrières basique :
Le garde-barrières basique est le plus simple qui puisse être trouvé sur le marché. Il ne gérera
que la connexion entre deux clients. Il aura les fonctions basiques qui lui permettront de faire
la signalisation à bas niveau pour l’établissement d’appel. Il ne permettra pas par contre de
gérer le double appel ou la conférence comme un PABX. Il n’aura pas non plus de fonctions
complexes telles que les annuaires distribués.
Le garde-barrières avancé :
Le marché des gardes-barrières basiques est si fermé que les entreprises portent leurs intérêts
dans le développement d’applications plus complexes. Ces entreprises développent des
applications au dessus de la « pile H323 » (garde-barrières basique) décrite ci-dessus. Le but
est de remplacer le PABX classique par une simple passerelle qui fournira toutes ses
fonctionnalités et l’interconnexion entre les flux de voix et de données. La passerelle n’a
aucune intelligence. Elle ne fournit que de bon DSP et des contrôleurs pour assurer la
connexion entre les ordinateurs et les téléphones ainsi que l’encodage et le décodage de la
voix. C’est le garde-barrières qui va contrôler tout le système et c’est à ce niveau que doivent
être implémentée toutes les fonctionnalités d’un PABX.
Il n’y a pas que les entreprises qui veulent effectuer la convergence voix/données dans leur
réseau et qui sont intéressées par la téléphonie IP. En effet, les opérateurs télécoms désireux
de réduire le coût de leurs communications longues distances peuvent tirer profit de la
téléphonie IP. Mais bien qu’il soit relativement aisé de transporter de la voix sur IP, il reste un
problème pour le marché des opérateurs. En effet, en téléphonie classique ou en Numéris, les
opérateurs fournissent des services supplémentaires à leurs clients qu’il va falloir retrouver
avec la téléphonie IP. Ils utilisent en particulier la signalisation SS7 pour les réseaux
intelligents. Le but est de rendre le passage du RTC à la téléphonie IP transparent à
l’utilisateur.
Le contrôleur multipoint
Le MC permet de négocier avec tous les terminaux les moyens à mettre en œuvre pour
parvenir à établir des communications de même niveau. Il peut également exercer un contrôle
au niveau des ressources de la conférence pour déterminer par exemple l'entité qui transmet
en mode multi-diffusion (multicast) les signaux vidéos.
Le contrôleur multipoint n'assure pas le mélange ou la commutation des signaux audio, vidéo
et de données. Le traitement direct des flux des médias est laissé aux MP, qui mixent,
commutent, et élaborent l'audio, la vidéo et/ou les données.
Le processeur multipoints
Il reçoit les flux audio, vidéo et/ou de données, traite ces flux et les renvoie aux points
d’extrémité participant à une conférence multipoints (centralisée ou hybride).
- Mélange vidéo : formater plusieurs sources vidéo dans le flux vidéo qui est émis vers
les terminaux.
- Préparer plusieurs sorties audio à partir d'autres entrées audio (commutation, mélange,
combinaison de ces 2 procédés).
Pour une conférence multipoint centralisée, le pont de conférence doit être constitué de:
- Un contrôleur multipoint.
Pour une conférence multipoint décentralisée, le pont de conférence doit être constitué de :
- Un contrôleur multipoint.
La conférence multipoint peut être géré par plusieurs ponts de conférence, cette technique est
appelée ponts de conférence en cascade.
Couches :
Transport T.124
Services
H.450.1
Contrôle
H.245 H.225
UDP TCP
OSI H323
Modèle OSI
Modèle H323
- H.225 : la signalisation d’appel est utilisée pour une connexion entre deux points de
terminaison H.323. Le canal est ouvert soit entre deux points de terminaison H.323 ou
entre un point de terminaison et un garde-passerelle. Les messages H.225 voyagent sur
TCP.
- H.245 : le contrôle. de l'ouverture et de la fermeture des canaux pour les médias ainsi
que la négociation des formats (codecs)
- RTP / RTCP : Real Time Protocol / Real Time Control Protocol. Fonctions de
transport de bout en bout pour les applications temps réel sur des services de réseau
multicast ou unicast. Les applications sont donc aptes à faire des conférences audio /
vidéo interactive ou encore de la simple diffusion de vidéo et d'audio.
- T.120 : recommandation pour le contrôle des données et des conférences. La série des
recommandations T.120 est utilisée pour les applications données de l'utilisateur, c'est
une série de protocoles de communications multimédias.
Pierre Fred
SETUP
Q.931
ALERTING (TCP)
CONNECT
Communication H.245
Communication
Communication H323
H323
- Partie rose : phase de communication (le transport ce fait avec le protocole UDP
comme pour le protocole SIP).
Demande
d’admission
Confirmation RAS
d’admission
Q.931
SETUP
H.245
Lancement de l’appel
Demande
d’admission RTP
Confirmation
d’admission
ALERTING
CONNECT
Configuration capacités
Validation de l’ouverture
Re-Validation de l’ouverture
Communication RTP
Communication
Communication H323
H323 avec
avec garde-barrières
garde-barrières
De même que pour un appel point à point, l’établissement d’appel se fait à 3 niveaux
différents. Fred commence par établir une connexion TCP sur le port classique pour H323
(1720). Pierre et Fred s’envoient alors des paquets Q931 sur cette connexion.
Durant cet échange, Pierre et Fred envoient aussi un numéro de port temporaire et supérieur à
1024 qui servira pour les échanges H245. Si l’on respecte le standard, dès que la connexion
H245 est établie, la connexion Q931 s’achève sans envoi de message particulier et sans
affecter le reste de la connexion H323. En pratique, la connexion Q931 est simplement laissée
de coté.
La connexion H245 est établie par l’appelant sur le port temporaire négocié lors de la
connexion Q931. H245 transmet tous les paramètres à utiliser lors de l’appel et négocie donc
En fait, une fois que les codecs et les autres paramètres de l’appel ont été négociés, la session
H245 exécute une séquence d’opérations visant à ouvrir un canal de transmission en UDP
(Open Logical Channel). Cette séquence permet de déterminer les adresses RTP et RTCP de
l’envoyeur et du receveur ainsi que le port sur lequel se fera la transmission du flux de
données (audio ou vidéo). On notera qu’avec H323, chaque canal logique est considéré
comme une voie.
C’est à dire, que pour que deux personnes échangent de la parole, il faut ouvrir 2 canaux
logiques : l’un pour aller de Pierre vers Fred et l’autre pour aller de Fred vers Pierre. Aussi, le
protocole RTP requière 2 connections UDP adjacentes. L’une des connexions est utilisée pour
RTP (transport du flux de données), l’autre pour RTCP (contrôle des données) et qui est
bidirectionnelle. Les ports utilisés par RTP et RTCP doivent être deux ports distincts, on
choisit souvent n+1 comme port RTCP si le port RTP est n.
Communication RTP
RAS
Fermeture du canal logique
Q.931
Validation de fermeture
H.245
Fin de l’appel
Confirmation Confirmation
de désengagement de désengagement
Communication
Communication H323
H323 avec
avec garde-barrières
garde-barrières
f) Conclusion
Comme nous pouvons le voir, l’établissement d’un appel n’a rien de trivial si l’on n'est pas
familier avec les bases de la téléphonie classique. Mais ce type de protocoles assure une
grande efficacité et une bonne qualité de service puisqu’ils utilisent les principes de la
téléphonie classique. Ceci est une révolution dans le monde de l’informatique. Le problème
est que cela complexifie le développement d’une plate-forme de téléphonie IP.
2) Signalisation SIP
a) Introduction
Le protocole SIP (Session Initiation Protocol) a été développé par l’IETF (Internet
Engineering Task Force) avec comme objectif de s’intégrer aux autres protocoles Internet
comme le TCP (Transmission Control Protocol), le TLS (Transmission Layer Security),
l’UDP (User Datagram Protocol), l’IP (Internet Protocol), le DNS (Domain Name System),
etc.
Comme son nom l’indique ce protocole permet d’établir une communication multimédia entre
deux points. Les principales fonctions de ce protocole sont de :
- Trouver le destinataire
Le SIP permet également de transmettre un message instantané ainsi que des informations de
présence (en ligne/absent) ou d’autres informations d’état prédéfinies : occupé(e), parti(e)
manger, en ligne…
Même si nous utilisons le SIP dans le cadre de la téléphonie, il permet d’établir une session de
communication dans bien d’autres contextes ; dont certains n’ont aucune ressemblance avec
un appel téléphonique.
L’IETF
L'Internet Engineering Task Force est un groupe informel et auto-organisé dont les membres
contribuent à l'ingénierie et à l'évolution des technologies de l'Internet. C'est la principale
structure engagée dans le développement des spécifications pour les nouveaux standards de
l'Internet. L'IETF est atypique dans la mesure où elle est constituée d'une série d'événements,
sans cadre statutaire ni conseil d'administration, sans membres ni adhésion.
L’IETF utilise principalement deux types de documents : les I-Ds (Internet-Drafts) qui sont
les documents de travail et les RFC (Request for Comments). Tous ces documents sont
disponibles gratuitement sur le site Web de l’IETF : http://www.ietf.org
Histoire du SIP
Le SIP a été développé par un groupe de travail de l’IETF appelé « Multi-Party Multimedia
Session Control Working Group » ou MMUSIC. La version 1.0 a été proposée sous la forme
d’un I-D en 1997. Rapidement des changements significatifs ont eu lieu et l’I-D de la version
2.0 a été proposé en 1998. En avril 1999, il fut proposé comme standard et publié dans le RFC
2543.
En septembre de la même année, un groupe de travail « SIP » a été créé au sein de l’IETF
suite à l’intérêt grandissant autour de ce protocole. Un I-D contenant des corrections de
bogues et des clarifications fut proposé en juillet 2000 avec la référence RFC 2543 bis. Il a
aussi été publié comme RFC 3261.
Pour passer du cadre théorique à une véritable application pratique, un standard doit avoir
différentes implémentations et une réelle expérience opérationnelle. Dès le début du RFC
2543, la promotion du SIP a été faite par le SIPit (SIP interoperability test :
http://www.sipforum.org).
Le SIP peux être considéré comme un mélange des deux protocoles les plus utilisés sur
Internet : le HTTP (Hyper Text Transport Protocol) utilisé pour affiché une page Web et le
SMTP (Simple Mail Transport Protocol) utilisé pour le transport des e-mails. Du HTTP, le
SIP a récupéré une architecture client-serveur et l’utilisation d’URLs (Uniform Resource
Locator) et d’URIs (Uniform Resource Identifier). Du SMTP, la SIP a hérité l’encodage du
texte et les en-têtes. En effet, le SIP réutilise les en-têtes du SMTP comme To, From, Date,
Subject. Pour comprendre le SIP, il est important de comprendre comment il interagit avec les
protocoles Internet IP, TCP, UDP et DNS.
b) En pratique
Afin de mieux comprendre le protocole SIP, nous l’avons étudié en théorie mais également en
laboratoire afin de voir les différentes interactions.
Registrar SIP
Serveur
SysLog
LAN
Téléphone IP Téléphone IP
Pierre Fred
Plateforme
Plateforme de
de test
test
Tous les messages de communication SIP que nous montrerons utilisent le RFC 3261.
Message INVITE
La figure suivante montre l’établissement d’une communication entre les deux téléphones
SIP :
Pierre Fred
INVITE
100 Trying
180 Ringing
200 OK
ACK
Communication RTP
BYE
200 OK
Communication
Communication SIP
SIP
L’initiateur de l’appel, Fred, commence par envoyer un message SIP d’invitation (INVITE) à
Pierre. Le message INVITE contient les informations nécessaires pour la communication.
Cette communication peux être une session vocale (voix) ou multimédia.
v=0
o=portfred 0 0 IN IP4 192.168.6.41
s=session
c=IN IP4 192.168.6.41
b=CT:1000
t=0 0
m=audio 7382 RTP/AVP 97 111 112 6 0 8 4 5 3 101
a=rtpmap:97 red/8000
a=rtpmap:111 SIREN/16000
Le SIP est basé sur des messages en texte. Il est donc très facilement compréhensible et
déchiffrable. Les champs contenus dans le message INVITE sont appelés champs d’entête.
Chaque champ contient un nom et une valeur séparés par deux points. Chaque ligne se
termine par un retour à la ligne (ou CRLF : Carriage Return + Line Feed).
La première ligne du message, appelé ligne de départ, liste les éléments suivants :
- la méthode : INVITE,
Le premier champ qui suit la ligne de départ est le champ Via. Chaque périphérique qui émet
ou retransmet un message SIP inscrit son adresse ou son nom dans ce champ. Chaque entrée
est présentée sous la forme suivante :
Le champ suivant est facultatif. Appelé « Max-Forwards », il s’agit d’une valeur qui est
décrémenté à chaque passage d’un périphérique. Si sa valeur arrive à zéro, le message est
supprimé. Cela permet d’éviter les boucles.
Le champ « Call-ID » est un identifiant qui permet de suivre une session SIP particulière.
L’expéditeur créé une chaîne de caractère unique suivie généralement du signe arobase et de
son nom ou adresse. En plus, chaque utilisateur créé un identifiant unique appelé « tag ». Cet
identifiant est rajouté aux champs « To » et « From ». Le message initiale INVITE contient un
identifiant dans « From » mais pas dans « To ».
Ces informations sont utilisées par les deux parties pour identifier le dialogue car chacun peut
avoir plusieurs communications en même temps.
L’en-tête se termine par différent message. Au minimum, un en-tête se compose des champs :
Via, Max-Forwards, To, From, Call-ID et CSeq. Le champ Cseq contient un nombre suivi du
nom de la méthode (INVITE). Ce nombre est incrémenté à chaque nouvelle requête. Dans
notre exemple, les champs Max-Forwards et CSeq sont inexistants. Le logiciel utilisé
(Microsoft Messenger 4.7) pour la communication (on parle de « User-Agent ») ne répond
donc pas au RFC 3261.
Microsoft Messenger 4.7 est la version de Messenger qui est fournie avec Microsoft Windows
XP. Microsoft et les entreprises de la VoIP considèrent cette version comme la dernière.
Toutefois, Microsoft a développé la version 5.0 de Messenger. Même si cette version n’a pas
été largement diffusée, elle est disponible à l’adresse suivante :
http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=77c3799f-
6388-4193-8002-be55584c1ac1
L’avantage de cette version est qu’elle respecte le RFC 3261 comme le montre le message
INVITE suivant :
INVITE sip:pierre@192.168.6.50:5060;line=b5zaw7ti SIP/2.0
Via: SIP/2.0/UDP 192.168.6.74:5060;branch=z9hG4bK30e39f5d7ef9ac01cfa7ac712a378954.0
Record-Route: <sip:11faa968@192.168.6.74;lr>
Via: SIP/2.0/TCP 192.168.6.41:13796
Max-Forwards: 69
From: "fred@192.168.6.74"
<sip:fred@192.168.6.74>;tag=c6d81c232554416a86b46ede1092cb72;epid=1a3c0eda16
To: <sip:pierre@192.168.6.74>
Call-ID: 1f2051f3865b4742bd0c4f2cb3d98304@192.168.6.41
CSeq: 1 INVITE
Contact: <sip:fred@192.168.6.74:13796;maddr=192.168.6.41;transport=tcp>
User-Agent: RTC/1.2
Content-Type: application/sdp
Content-Length: 523
v=0
o=- 0 0 IN IP4 192.168.6.41
s=session
c=IN IP4 192.168.6.41
b=CT:1000
t=0 0
m=audio 64620 RTP/AVP 97 111 112 6 0 8 4 5 3 101
k=base64:mJMsWP379vNe4Urr4vNh2iqiNZYc2H+idO9p3ehbXtQ
a=rtpmap:97 red/8000
a=rtpmap:111 SIREN/16000
a=fmtp:111 bitrate=16000
a=rtpmap:112 G7221/16000
a=fmtp:112 bitrate=24000
a=rtpmap:6 DVI4/16000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
Un champ « Contact » est également nécessaire dans un message INVITE. Il contient l’URI
de l’User-Agent (UA). Cette URI permet de contacter l’UA directement.
Il est important de signaler qu’une ligne vide sépare l’en-tête et le corps du message. Cette
ligne n’est pas comptabilisée dans le nombre d’octets.
Les informations contenues dans le corps du message permettent de savoir quel type de
session peut être établie entre les deux parties. Il contient les capacités VoIP d’un
périphérique. Ci-dessous les différents champs que nous détaillerons plus tard :
Chaîne de caractère Nom du champ Signification
SDP (Session Description Protocol)
v=0 Version
Version 0
- a=rtpmap:0 PCMU/8000
La seconde (m=audio 64620 RTP/AVP 0) nous informe qu’une session audio est demandée
sur le port 49170 avec le protocole RTP. Le reste de la ligne nous donne les codecs
disponibles.
La dernière (a=rtpmap:0 PCMU/8000) nous donne les détails sur le codec proposé : PCM µ
Law avec fréquence d’échantillonnage de 8000 Hz.
Le message INVITE est un exemple de message SIP. Il y a cinq autres méthodes définies
dans le RFC 3261 et ses extensions. La réponse normale à un message INVITE est un
message « 180 Ringing ». Ci-dessous la liste des méthodes SIP :
Méthode Description
INVITE Invitation à participer à une session
ACK Accusé de réception
OPTIONS Demande de fonctionnalité
BYE Fin d’un appel
CANCEL Annulation d’une demande
REGISTER Enregistrement sur un serveur SIP
Le message Ringing est un exemple de message de réponse SIP. Les réponses sont
numériques et classée en fonction du chiffre des centaines. Ainsi la réponse 180 est un
message d’information. Ci-dessous, les différents types de réponse :
Code Type Description
1xx Information La demande a été reçue
2xx Succès La demande a été acceptée
3xx Redirection Une action est demandée pour que la demande soit acceptée
4xx Erreur Client La demande contient une erreur
5xx Erreur Serveur Une demande valide ne peut pas être exécutée
6xx Erreur Globale La demande ne peut pas être exécutée sur aucun serveur
Ce message a été créé en recopiant de nombreux champs du message INVITE (Via, To, From,
Call-ID et CSeq) et en rajoutant la ligne de départ avec la version du SIP utilisé ainsi que le
numéro et le texte de réponse.
Message 200 OK
Quand l’utilisateur pierre décide d’accepter l’appel, un message « 200 OK » est renvoyé à
Fred. Ce message indique également que le type de média demandé par Fred est accepté :
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 192.168.6.74:5060;branch=z9hG4bK33492227680c0333cfa7ac712a378954.0
Record-Route: <sip:38ab9afe@192.168.6.74;lr>
From: "fred@192.168.6.74"
<sip:fred@192.168.6.74>;epid=13c4966317;tag=ecfb071b5fe2499299accb91a0ed87a6
To: <sip:pierre@192.168.6.74>;tag=061byrzvpi
Call-ID: b5cbe6ee6a4141c7b2ce6f11463d1145@192.168.6.41
CSeq: 1 INVITE
Contact: <sip:pierre@192.168.6.50:5060;line=b5zaw7ti>
User-Agent: snom105-3.24
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, MESSAGE,
INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Content-Type: application/sdp
Content-Length: 208
v=0
o=root 1746986229 1746986229 IN IP4 192.168.6.50
s=call
c=IN IP4 192.168.6.50
t=0 0
m=audio 10008 RTP/AVP 0 101
a=rtpmap:0 pcmu/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
La réponse est construite de la même manière qu’un message « 180 Ringing ». Les capacités
de l’UA sont renvoyées dans le corps du message.
Message ACK
L’étape finale consiste a validé la session avec un message ACK :
ACK sip:38ab9afe@192.168.6.74;transport=tcp;lr SIP/2.0
Via: SIP/2.0/TCP 192.168.6.41:9283
Max-Forwards: 70
From: "fred@192.168.6.74"
<sip:fred@192.168.6.74>;tag=ecfb071b5fe2499299accb91a0ed87a6;epid=13c4966317
To: <sip:pierre@192.168.6.74>;tag=061byrzvpi
Call-ID: b5cbe6ee6a4141c7b2ce6f11463d1145@192.168.6.41
CSeq: 1 ACK
Route: <sip:pierre@192.168.6.50:5060;line=b5zaw7ti>
User-Agent: RTC/1.2
Content-Length: 0
Le numéro de séquence est le même que pour le message INVITE mais le nom de la méthode
est ACK.
Le message BYE
La communication se termine par l’envoie d’un message BYE :
BYE sip:fred@192.168.6.74:9283;maddr=192.168.6.41;transport=tcp SIP/2.0
Via: SIP/2.0/UDP 192.168.6.50:5060;branch=z9hG4bK-
obs6u8nnmkzh;received=192.168.6.50;rport=5060
Route: <sip:38ab9afe@192.168.6.74;lr>
From: <sip:pierre@192.168.6.74>;tag=061byrzvpi
To: "fred@192.168.6.74"
<sip:fred@192.168.6.74>;epid=13c4966317;tag=ecfb071b5fe2499299accb91a0ed87a6
Call-ID: b5cbe6ee6a4141c7b2ce6f11463d1145@192.168.6.41
CSeq: 1 BYE
Dans notre exemple, c’est Pierre qui a raccroché le premier. Fred confirmera la fin de la
communication par un message « 200 OK ».
INVITE
INVITE
180 Ringing
180 Ringing 200 OK
200 OK
ACK
Communication RTP
BYE
200 OK
Communication
Communication SIP
SIP :: Proxy
Proxy Stateless
Stateless
Un serveur proxy a la charge de router les messages SIP. Il a uniquement un rôle dans la
signalisation et il ne gère pas de media. Il n'est en général à l'origine d'aucune requête
exceptée la requête CANCEL utilisée pour libérer une session. On en utilisera par exemple un
pour séparer un réseau privé local et Internet, comme le montre le schéma suivant :
BSNetwork :
sip.tcp SRV 0 0 5060 sip.bsnetwork.fr.
SRV 1 0 5060 backup.bsnetwork.fr.
Serveur sip.udp SRV 0 0 5060 sip.bsnetwork.fr.
DNS SRV 1 0 5060 backup.bsnetwork.fr.
Internet
Pierre Fred
Proxy SIP
BSNetwork
sip.bsnetwork.fr
Serveur
Serveur Proxy
Proxy
Dans le cas présent, Fred ne connaît pas l'adresse exacte de Pierre, il ne connaît qu'une adresse
SIP (appelée URI SIP) qui ressemble à une adresse e-mail : « Pierre@bsnetwork.fr ». Fred va
tout d’abord contacter un serveur DNS pour obtenir le nom du serveur qui gère le SIP pour le
domaine « bsnetwork.fr ». Comme le montre le schéma ci-dessus, il existe quatre entrées
(deux pour le TCP et deux pour l’UDP) pour le protocole SIP (port 5060) : sip.bsnetwork.fr a
une priorité de 0 et backup.bsnetwork.fr a une priorité de 1. Fred va choisir le serveur qui a la
priorité la plus faible (sip.bsnetwork.fr) et lancera son appel.
Dans l'exemple précédent, cas d'un PS (Proxy Server) en mode Stateless, on peut constater
qu'une fois les premiers messages échangés, les UAs (User Agents) s'envoient directement
leurs messages sans passer par le proxy. C'est une fonctionnalité fournie par SIP qui permet
aux UAs de se donner leurs adresse SIP finales (dans un champ nommé « Contact : »). Lors
de la requête suivante les UAs peuvent alors se joindre directement.
Cependant le serveur proxy peut forcer toutes les requêtes suivantes d'une session à passer par
lui (en ajoutant son adresse dans le champ nommé « Record-Route : »). Dans ce cas le proxy
est dit en mode Statefull comme le montre la figure suivante :
INVITE
INVITE
180 Ringing
180 Ringing 200 OK
200 OK
ACK
Communication RTP
BYE
BYE
200 OK
200 OK
Communication
Communication SIP
SIP :: Proxy
Proxy Statefull
Statefull
Un des intérêts de ce type de fonctionnement est de pouvoir garder une trace des temps de
communication en vue de faire des statistiques sur les usages ou de mettre en place une
facturation basée sur le temps de communication. Un autre intérêt de ce fonctionnement est
qu'il offre la possibilité de contrôler le nombre de communication entre deux domaines et
donc l'opportunité de pouvoir contrôler la bande passante sur certains liens (nécessaire pour
pouvoir offrir une garantie de service).
Un type particulier de serveur proxy, appelé serveur forking proxy, peut dupliquer une
requête et l'envoyer vers plusieurs destinataires. Ces serveurs peuvent par exemple être
utilisés pour contacter plusieurs terminaux appartenant à la même personne.
f) Serveur registrar
Afin de pouvoir joindre une personne à partir de son adresse SIP, une entité dans le réseau
doit maintenir une correspondance (mapping) entre les adresses IP et les adresses SIP. C'est le
rôle du serveur Registrar. Un utilisateur peut donc changer d'adresse, il lui suffit de s'inscrire
auprès du Registrar en lui indiquant son adresse SIP et son adresse de machine sur le réseau
comme sur le schéma suivant :
Fred
Serveur
Registrar Base de
REGISTER
données
200 OK
SIP
SIP Registrar
Registrar
H.323 requiert une interaction entre plusieurs sous-protocoles ce qui le rend plus compliqué
que le SIP. La structuration du protocole SIP est hiérarchisée par un organe de
standardisation (IANA), tandis que celle du protocole H.323 dépend des implémentations par
les différents constructeurs. L’implémentation du SIP est donc plus facile :
H.323 SIP
Messages H.323 de formats binaires Messages SIP en format texte
Codage par ASN.1 Implémentation facile en Perl, Tcl, Java,…
Débuggage facile avec : tcpdump, ngrep,
Parsers spéciaux pour lire et écrire le code
netcat…
845 pages de spécifications 195 pages de spécifications
Implémentation et débuggage compliqué Débuggage et implémentation aisé
Le protocole SIP est de plus transparent aux proxys. Il accepte également les types arbitraires
MIME, du moment que ses champs options restent compatible avec le reste du protocole. La
personnalisation est donc aisée:
H.323 SIP
L’interaction entre les protocoles rend
Part l’ajout d’un champ d’en-tête
l’optimisation compliquée
Pleine compatibilité avec l’ensemble du
Champs non reconnus pouvant être ignorés
protocole
L’avenir du protocole SIP est pourtant très radieux. Grâce à ces atouts sur ses concurrents qui
sont réels et non négligeables :
- SIP se caractérise comme étant un protocole plus rapide. Tout d’abord 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. De plus, le 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 de la signalisation :
en effet, une requête et sa réponse peuvent prendre deux chemins différents, ce qui
rend plus souple l'évolution d'une communication (arrivée d'un nouveau participant,
changement de paramètres…).
- le protocole SIP offre d’autres fonctions comme l’IM (Instant Messaging). Cette
fonction est d’ailleurs portée sur des systèmes IP téléphonie mobile afin de pouvoir
envoyer des messages du réseau IP sur un mobile GSM ou UMTS par le biais de la
signalisation SIP.
- les grands fournisseurs de solutions de VoIP et mêmes des plus petits ont arrêtés le
développement de leur produit compatible H.323 pour passer au protocole SIP
(Microsoft, Cisco,…).
- la description de SIP est beaucoup plus simple que celle d'H.323 (195 pages de RFC
contre 846), il est plus léger et donc plus facile à mettre en oeuvre, sans être moins
complet pour autant.
C’est pour toutes ces raisons que la majorité des participants à la mise en application de
solutions VoIP préconisent désormais l’utilisation de la signalisation SIP (Session Initiation
Protocol). Dans ces conditions, nous avons également choisi le protocole SIP plutôt que
H.323.
1) Les codecs
Comme nous l’avons déjà vu, de nombreux codecs sont utilisés dans la téléphonie IP. Pour
avoir la bande passante de chacun de ces codecs, il suffit de regarder dans la partie
« Compression de la parole et traitement des données » ou dans la copie qui se trouve en
annexe.
2) Les échantillons
Le nombre d’échantillons par paquet est également un facteur important pour connaître la
bande passante d’un appel téléphonique. Le codec définit la taille d’un échantillon, mais le
nombre total d’échantillons dans un paquet nous donne le nombre de paquets qui seront
envoyés par seconde.
Par exemple, 10 ms d’un appel codé en G.711 demande 80 octets. Un paquet sera envoyé
toute les 10 ms soit 100 paquets par secondes :
80 octets + 20 octets IP + 12 octets UDP + 8 octets RTP = 120 octets par paquets.
120 octets par paquets * 100 paquets par secondes = (12000 * 8 bits)/1000 = 96 kbps par appel
Par contre, si nous mettons 2 échantillons de 10 ms par paquets, il n’y a que 50 paquets par
secondes :
80 octets * 2 + 20 octets IP + 12 octets UDP + 8 octets RTP = 200 octets par paquets.
200 octets par paquets * 50 paquets par secondes = (10000 * 8 bits)/1000 = 80 kbps par appel
Nous n’avons pas pris en compte les en-têtes de la couche 2. Toutefois, nous pouvons
constater que la différence entre les deux appels est de 16 kbps.
En changeant le nombre d’échantillons par paquets, il est donc facile de diminuer la bande
passante nécessaire pour un appel ; mais cela augmente le délai et il est alors nécessaire de
prévoir des buffers suffisants.
3) Détection de l’activité
Une conversation contient en général être 35 et 50 % de silence. Avec la téléphonie classique,
la bande passante est définie à 64 kbps, qu’il y ait une activité ou pas. Avec les réseaux VoIP,
les conversations et les silences sont mis en paquets. La technologie de détection de l’activité
(ou VAD : Voice Activity Detection) permet de n’envoyer un paquet que lorsque la voix est
détectée. On peut alors considérer que la bande passante nécessaire est réduite de 35 %. Ce
pourcentage prend en compte les différents dialectes et langues.
Les codecs G.729 Annex-B et G.723 Annex-A incluent une fonction de VAD, sinon, ils sont
identiques aux codecs G.729 et G.723.
5) Synthèse
Le choix du codec, le nombre d’échantillons par paquets, le VAD et le cRTP définissent la
bande passante nécessaire pour un appel. :
Bande
Bande
passante
Taille En-tête En-tête passante
Paquets En-tête totale
Voix de la IP/UD Couche couche totale
Codecs par CRTP (kb/s)
(kb/s) trame P/RTP 2 2 (kb/s)
seconde (octets) avec
(octets) (octets) (octets) sans
VAD (50
VAD
%)
G.711 64 80 50 40 — Ether 14 85.6 42.8
G.711 64 80 50 — 2 Ether 14 70.4 35.2
G.711 64 80 50 40 — PPP 6 82.4 41.2
G.711 64 80 50 — 2 PPP 6 67.2 33.6
G.711 64 80 50 40 — FR 4 81.6 40.8
G.711 64 80 50 — 2 FR 4 66.4 33.2
G.711 64 80 100 40 — Ether 14 107.2 53.6
G.711 64 80 100 — 2 Ether 14 76.8 38.4
G.711 64 80 100 40 — PPP 6 100.8 50.4
G.711 64 80 100 — 2 PPP 6 70.4 35.2
G.711 64 80 100 40 — FR 4 99.2 49.6
G.711 64 80 100 — 2 FR 4 68.8 34.4
G.729 8 10 50 40 — Ether 14 29.6 14.8
G.729 8 10 50 — 2 Ether 14 14.4 7.2
G.729 8 10 50 40 — PPP 6 26.4 13.2
G.729 8 10 50 — 2 PPP 6 11.2 5.6
G.729 8 10 50 40 — FR 4 25.6 12.8
G.729 8 10 50 — 2 FR 4 10.4 5.2
G.729 8 10 33 40 — Ether 14 22.4 11.2
G.729 8 10 33 — 2 Ether 14 12.3 6.1
G.729 8 10 33 40 — PPP 6 20.3 10.1
G.729 8 10 33 — 2 PPP 6 10.1 5.1
G.729 8 10 33 40 — FR 4 19.7 9.9
G.729 8 10 33 — 2 FR 4 9.6 4.8
G.723.1 6.3 30 26 40 — Ether 14 17.6 8.8
G.723.1 6.3 30 26 — 2 Ether 14 9.7 4.8
G.723.1 6.3 30 26 40 — PPP 6 16.0 8.0
G.723.1 6.3 30 26 — 2 PPP 6 8.0 4.0
G.723.1 6.3 30 26 40 — FR 4 15.5 7.8
- l’utilisateur est exigeant, ce qui veut dire qu’il veut que la qualité soit aussi bonne,
voire meilleure, que lorsqu’il téléphone avec son téléphone analogique ou ISDN
(Integrated Services Digital Network). Pourtant l’utilisateur s’est accommodé du
manque de qualité de la téléphonie mobile GSM…
- nous devons utiliser un codec qui permet d’utiliser le réseau à profit et pour ce, il doit
produire une bonne qualité de voix dans des délais raisonnables. L’ITU propose
plusieurs standards G.7XX qui possèdent chacun des caractéristiques adaptées aux
différents besoins.
- nous devons annuler le retour du signal qui produit un écho. L'écho est le délai entre
l'émission d'un signal et la réception de ce même signal réverbéré. Ce problème se
pose généralement dans les communications PC à Téléphone, Téléphone à PC ou
Téléphone à Téléphone. Il est causé par les composantes électroniques des parties
analogiques du système qui renvoient une partie du signal traité. Un écho inférieur à
50 ms n'est pas perceptible. Au-delà, l'interlocuteur s'entend parler avec un retard.
Pour pouvoir offrir un service de téléphonie sur IP, les passerelles doivent traiter
l'écho électrique généré par le passage de 2 fils à 4 fils. Si ce traitement n'est pas
effectué, le service ne sera pas utilisable avec des postes analogiques classiques. La
qualité de la communication devient inacceptable si le délai de transmission et de
commutation excède 25 ms par sens. Pour résoudre ce problème, on introduit dans le
réseau des annulateurs d'écho (DSP).
Qualité Telecom
Clair
Qualité
Compréhensible
Inaudible
Qualité
Qualité en
en fonction
fonction de
de la
la perte
perte de
de paquets
paquets
- il s’agit de réduire les délais réseau et d’éliminer les jitters (ou gigue). Il existe deux
types de délais, les délais fixes et les délais variables. Les délais fixes représentent le
temps nécessaire pour traverser tous les noeuds par lesquelles les paquets de voix
doivent passer ainsi que le temps pour mettre en paquets la voix en fonction du codec
utilisé. Les délais variables sont les événements incontrôlables qui font en sorte que
les paquets se perdent ou bien arrivent avec beaucoup de retard. Pour éviter que cela
ne se produise trop fréquemment les applications prévoient un tampon de gigue qui est
basé sur les délais variables du réseau. Donc les paquets de voix sont retenus dans le
tampon de gigue pendant une période de temps avant d’être joué, ce qui ajoute encore
du temps au délai fixe du réseau. Par exemple, si on calcul un délais fixe dans le
réseau de 50 ms et un délais variable de 5 ms, alors le tampon de gigue devra être de 5
ms et on se retrouvera maintenant avec un délais de 55 ms ce qui est un performance
« correcte » dans le cadre de VoIP. Le délai est le temps écoulé entre l'émission de la
parole et sa restitution à l'arrivée. Pour permettre un échange interactif, la voix doit
être transmise avec des contraintes de délai. Les chiffres suivants (tirés de la
recommandation UIT-T G114) sont donnés à titre indicatif pour préciser les classes de
- il y a la gestion de la priorité des paquets VoIP. Les routeurs sont configurés de façon
à accorder une priorité plus grande aux paquets VoIP soit en favorisant les paquets
provenant d’un port UDP spécifié au préalable ou bien en utilisant le protocole RSVP.
- le nombre d’utilisateurs sur le réseau et la façon dont ces utilisateurs utilisent le dit
réseau est un facteur important à tenir en compte lors d’une implémentation de
solution VoIP. C’est à dire que plus le trafic engendré sur le réseau est important, plus
la qualité de la voix s’en ressentira dans le sens négatif bien sûr. Par exemple, il
pourrai arriver que le mécanisme de remise en ordre des paquets offert par TCP ne
fonctionne pas bien et donc il se pourrait que des paquets soient inversés à l’arrivée.
T T’ ≠ T
Réseau IP
BON JOU COM MENT VAS TU ? BON COM VAS MENT TU ?
Les
Les problèmes
problèmes de
de la
la VoIP
VoIP
- le plus grand facteur pour obtenir une meilleure qualité de la voix possible est la
distance. C’est à dire que plus le terminal est loin de l’antenne et plus le débit sera
faible. Qui dit diminution du débit, dit également diminution de la bande passante,
donc abaissement des ressources pouvant être utilisée par les applications VoIP.
1) Passerelle Vegastream
a) Introduction
Avant de passer tout le réseau d’une entreprise en téléphonie IP, il est nécessaire de conserver
un lien avec la téléphonie classique. Pour cela nous utilisons des passerelles « Vegastream ».
Créée en 1998, cette entreprise est située en Angleterre et en Californie. Elle propose des
passerelles compatibles avec les protocoles SIP et H323, comme le montre le tableau suivant :
Vega 10 20 25 50 100 400
4 ETSI
1 FXS + 1 10 FXO
Interfaces 1 FXS 2 FXS 1-2 E1 4 E1/T1
FXO
8 FXS +
2FO
Nombre
1 2 1 8 30-60 120
d’appels
Protocole SIP SIP SIP SIP/H323 SIP/H323 SIP/H323
Image
Une passerelle Vegastream permettra par exemple de router tous les appels sortant d’une
entreprise vers Internet. Cela permet une économie immédiate sur les factures téléphoniques :
France
Internet
Telecom
VoIP
ISDN
Passerelle VoIP
PABX
Téléphonie
classique
Vegastream
Vegastream
b) Connexion
Dans l’implémentation que nous envisageons, la passerelle Vegastream est placée entre
l’ISDN France Telecom et le PABX. La plupart du temps, nous allons donc la placer sur le
lien E1 (en France, on parle de lien T2 – 30 canaux). Pour cela, nous utilisons une
Vegastream 100. Elle possède 2 ports DSL et 1 port LAN :
Ports
Ports Vegastream
Vegastream 100
100
- Soit on connecte 2 ports de la Vegastream sur l’ISDN France Telecom et dans ce cas
les 2 ports doivent être configuré en mode TE (Terminal EndPoint/Equipement)
- Soit on connecte 1 port sur l’ISDN et un port sur le PBX (c’est ce modèle que nous
utilisons)
- Soit on connecte 2 ports de la Vegastream sur le PBX et dans ce cas les 2 ports
doivent être configuré en mode NT (Network Termination)
1 2 3
2 liens 1 lien
ISDN ISDN
TE TE
1 lien
1 lien NT 1 lien 1 lien NT 2 liens
LAN
LAN PBX LAN PBX
Connexion
Connexion Vegastream
Vegastream 100
100
FT ISDN/PSTN PABX
Câble Câble
croisé droit
(Bleu) (Rouge)
Prise Prise
RJ45 87654321 87654321 RJ45
mâle mâle
Rx+
Rx+
Rx+
Tx+
Tx+
Tx+
Rx-
Rx-
Rx-
Tx-
Tx-
Tx-
87654321 87654321 87654321
VEGA
Prise Prise
RJ45 87654321 87654321 RJ45
femelle femelle
Câblage
Câblage Vegastream
Vegastream 100
100
c) Architecture
L’architecture des Vegastream est dédiée à la VoIP. Ainsi, le passage de la téléphonie vers le
réseaux (ou l’inverse) se fait de la manière la plus rapide possible. En effet, les passerelles
Vegastream utilisent des DSP dédiés pour la compression et la décompression audio, ainsi
qu’une architecture sans routage. Il est donc possible d’avoir 60 communications simultanées
sans perte de qualité :
Signaux
Paquets IP
téléphoniques et voix
Interface
LAN
Module
d’interface des
signaux Processeur
Contrôleur MIPS
Ethernet
BUS TDM
BUS PCI
DSP
Architecture
Architecture Vegastream
Vegastream 100
100
d) Plan d’appel
Les passerelles Vegastream utilisent un plan d’appel qui fonctionne un peu comme une table
de routage. Chaque interface est numéroté (ISDN : 01 et 02 ; LAN : 99). En fonction, du
numéro appelé, et de l’interface source, la passerelle est capable de transférer un appel vers la
bonne destination. Pour cela, il est nécessaire d’utiliser des variables et des expressions
régulières :
Variable Explication
IF : Numéro de l’interface source ou de destination
Expression Explication
. Un caractère unique
<> Place la séquence dans une variable
[abc] Le caractère a, b ou c
[x-y] Un caractère entre x et y
[^abc] Un caractère différent de a, b et c
* Le caractère précédent répété zéro ou plusieurs fois
+ Le caractère précédent répété une ou plusieurs fois
? Le caractère précédent répété zéro ou une fois
\ Transforme le caractère suivant en caractère littéral
e) Configuration de la passerelle
L’installation d’une passerelle se fait en 2 étapes. Tout d’abord, on connecte la passerelle sur
le lien et on la configure de telle manière qu’elle soit complètement transparente :
France
Telecom
1 lien
ISDN
TE
NT 1 lien
PBX
Passerelle
Passerelle transparente
transparente
Lors d’une installation complète, la procédure est la suivante :
- Configuration de l’Authentification
- Configuration de l’Enregistrement
Une fois connecté, en appuyant sur la touche entrée, on obtient un message d’invite :
Username :
Il est alors nécessaire de rentrer le nom d’utilisateur « admin » et le mot de passe « admin »
par défauts.
Le nom d’utilisateur et le mot de passe sont identiques à ceux utilisés pour la connexion sur le
port série (admin/admin).
En cliquant sur le lien « Users » dans le menu de gauche, il est possible de configurer le temps
d’inactivité avant déconnexion et le mot de passe de l’utilisateur « admin » :
Le délai d’inactivité est configuré par défaut à 240 secondes. Le maximum que l’on puisse
mettre est 7200 secondes, soit 2 heures. Ce délai d’inactivité ne concerne que les connexions
sur l’interface Web et pas les autres types de connexions (série, telnet, etc.)
Il est alors possible de donner un nom à la passerelle (Host Name), de vérifier la configuration
réseau et de choisir la vitesse du port réseau (10 ou 100 Mbits)
Il faut signaler que la passerelle régénère les différentes sonneries et est configurée de base
avec les sonneries américaines. Il est donc nécessaire de configurer la passerelle avec les
sonneries française pour qu’elle soit complètement transparente pour les utilisateurs finaux.
Les fréquences et les durées des sonneries françaises sont également disponibles en annexe.
2) Firewall Ingate
a) Introduction
Dès le moment où nous connectons des équipements à Internet, il est nécessaire de les
protéger des pirates informatiques. Pour cela nous utilisons des pare-feux Ingate, spécialisés
dans le protocole SIP.
Image
France
Internet
Telecom
VoIP
ISDN
Passerelle VoIP
Firewall SIP
Appels Entrants Appels Sortants
PABX
Téléphonie
classique
Ingate
Ingate
b) Configuration
La spécificité des firewalls Ingate est leurs capacités à gérer le protocole SIP. Nous nous
attarderons uniquement sur la configuration de ce module.
Internet
Routeur
119.15.17.1
Eth1 Serveur DNS
119.15.17.2 Externe
195.15.17.12
DMZ
Eth2
119.15.17.9
Eth0
172.22.1.1
LAN
Serveur DNS
Interne 172.22.1.101
172.22.1.3
172.22.1.102
Firewall Ingate
Exemple Firewall
Exemple Ingate
Comme pour les passerelles Vegastream, la configuration se fait à l’aide d’une interface Web.
Tout d’abord, il faut s’assurer que la passerelle par défaut et que le serveur DNS sont
correctement rentré dans la page « Basic Configuration ». Cela est en effet nécessaire pour
que les requêtes SIP puissent être gérées :
Sur la page « Filtering », les requêtes venant du réseau interne doivent être autorisées. Pour
cela on créer une règle proxy. Toutes les autres requêtes ne doivent être autorisées que si elles
en direction du domaine local. Pour cela, on configure le paramètres « Default policy for
requests » sur « Local only » :
Il faut donc ensuite spécifier ce domaine local. Cela se fait dans la page « Registra rand
Users ». Générallement, le domaine local SIP correspond au nom de domaine internet de
l’entreprise. Toutefois certains équipements utilisent l’adresse IP à la place du nom de
domaine. Il est donc conseiller de spécifier les deux comme « Locally handled domain » :
Pour autoriser les clients SIP interne à recevoir des requêtes SIP, ils doivent être enregistré. Il
faut pour cela rajouter une ligne par domaine ; tous les utilisateurs de chaque domaine sont
autorisés à s’enregistrer. Cela est possible car l’authentification SIP n’est pas activée par
défaut. Comme le montre l’image ci-dessous nous n’utilisons que les utilisateurs du réseau
interne à s’enregistrer :
Dans la solution globale que nous envisageons, nous ne souhaitons pas utiliser les firewalls
Ingate comme serveur d’enregistrement, mais uniquement comme proxy SIP. En effet, nous
utilisons un serveur SIP externe.
Dans la page « Filtering », toutes les requêtes doivent donc être gérée car le firewall n’a pas
de « Locally handled domains ». Si une autre option est sectionnée, aucune requête ne va être
traitée.
Sur la page « Routing », il est nécessaire de spécifier l’adresse IP du serveur SIP que nous
souhaitons utiliser.
Il est toutefois possible d’effectuer une authentification au niveau du proxy mais cela
nécessite de rentrer tous les utilisateurs :
3) IPBX Asterisk
a) Introduction
Asterisk est un logiciel libre d’IP PBX. Il permet de mettre en œuvre un standard
téléphonique pour la téléphonie et le voix sur IP. Les solutions de téléphonie basées sur
Asterisk offrent non seulement les fonctionnalités classiques d’un standard téléphonique mais
aussi des fonctionnalités avancées qui sont possibles grâce à l’intégration de la téléphonie et
de l’informatique :
- VoiceMail
La liste complète des fonctionnalités est disponible en annexe. L’IP PBX Asterisk permet
donc d’étendre les fonctionnalités d’un PBX classique :
France
Internet
Telecom
VoIP IP PBX Asterisk
ISDN
Firewall SIP
Passerelle VoIP Chez le client
ou hébergé
Appels Entrants Appels Sortants LAN
PABX
IP PBX Asterisk
Téléphonie
classique
Asterisk
Asterisk
b) Architecture
Globale
L’architecture d’Asterisk est fondamentalement très simple, mais différentes des principaux
produits téléphoniques. Asterisk agit essentiellement comme le lien entre les technologies
téléphoniques et les applications téléphoniques, permettant ainsi un environnement mixte. Les
technologies téléphoniques sont composées des services VoIP comme SIP, H.323, AIX et
MGCP mais également les technologies TDM traditionnelles : T1, ISDN PRI, POTS
analogique, PSTN, Basic Rate ISDN (BRI), etc.
Le noyau
Le noyau d’Asterisk est composé de différents éléments qui jouent chacun un rôle critique
dans les opérations du logiciel. Quand Asterisk est démarré pour la première fois, la gestion
Le noyau permet également une gestion des entrées et des sorties ce qui permet aux
applications et aux drivers de pouvoir utiliser les différents codecs.
Annuaire
Conférence VoiceMail
GSM G.723
CODECS
SIP Modem
Architecture
Architecture d’Asterisk
d’Asterisk
Le système de fichier
Asterisk est un programme. Et comme tout programme, il utilise des fichiers qui sont stockés
dans différents répertoires :
/etc/asterisk
Ce répertoire contient tous les fichiers de configuration d’Asterisk.
/usr/sbin
Ce répertoire d’exécutable système contient la version actuelle des exécutables d’Asterisk
ainsi que les différents script, ce qui inclut asterisk, astman, astgenkey et safe_asterisk.
/usr/lib/asterisk
Ce répertoire contient les différents éléments que nous venons de spécifier dans l’architecture
/usr/lib/asterisk/modules
Ce répertoire contient les modules pour les applications, les drivers, les codecs, les formats de
fichiers, etc.
/usr/include/asterisk
Ce répertoire contient les fichiers d’en-tête permettant de compiler l’application Asterisk et
les différents modules
/var/lib/asterisk
Ce répertoire contient les différentes données utilisées par Asterisk :
- Les images
/var/run
Ce répertoire contient :
/var/spool/asterisk
Ce répertoire contient :
Dénomination
Pour comprendre Asterisk, il est nécessaire de connaître la convention utilisée pour le nom
des canaux. La syntaxe est la suivante :
<Technologie> représente le type d’interface que nous utilisons (SIP, Zap, MGCP, IAX, etc.)
<chaîne de l’appel> est une chaîne de caractère qui représente la destination désirée.
<identifiant> est un chiffre représentant le canal physique que l’on souhaite utiliser. S’il est
préfixé par la lettre g, cela désigne un groupe.
La lettre r, suivi d’un nombre permet d’utiliser une sonnerie différente (entre 1 et 4) pour cet
appel.
<instance> est valable uniquement pour les appels entrant. Cela permet d’identifier un appel.
En effet, plusieurs appels peuvent être effectués en même temps sur le même canal.
SIP
Cette partie est celle qui nous concerne le plus. La syntaxe est différente s’il s’agit d’un appel
entrant ou sortant.
Appel sortant
<numéro de port> est le numéro du port utilisé pour l’appel (le port standard pour le SIP est
5060)
Appel entrant
c) Configuration
Plan d’appel
Le plan d’appel est la partie la plus importante. En effet, c’est lui qui va diriger un appel
entrant vers la bonne destination. Les applications comme la messagerie, les conférences, les
menus automatiques sont eux aussi géré par le plan d’appel.
Un contexte est composé de plusieurs extensions. Une extension peut être un utilisateur, un
téléphone ou un service. Comme le montre le contexte suivant :
Extension Description
101 Fred
102 Pierre
103 Vérification de la messagerie
104 Service de conférence
0 Standardiste
Dans cet exemple, les deux premières extensions (101 et 102) sont associé à des utilisateurs et
donc à un téléphone. La troisième extension (103) est le service qui permet de consulter ses
messages. La quatrième extension (104) est associée au service de conférence. Enfin,
l’extension 0 permet de contacter le standard.
Les menus
L’extension « s » est l’extension de début (Start). C’est vers elle qu’un utilisateur est transféré
quand un appel arrive. Cette extension va lire un message de bienvenu et les indications du
menu : « Appuyer sur 1 pour le service commercial, sur 2 pour le service technique et sur 3
pour la direction ». Chaque option du menu est en fait une extension qu’il est possible
d’appeler.
Modèles d’équivalence
Plutôt que d’utiliser des numéros d’extension fixe, il est possible d’utiliser des modèles
d’équivalence. Un chiffre ou une série de chiffre est ainsi remplacé par son équivalence. Un
Quand un appel arrive à l’extension 100, Asterisk va attendre une seconde (Wait(1)) et ensuite
va répondre à l’appel (Answer). Troisièmement, Asterisk va lire un fichier son appelé
« fichierson » et va raccrocher à la fin de la lecture.
Cet exemple va faire sonner le téléphone SIP de l’utilisateur Fred pendant 10 secondes. Si
l’utilisateur Fred décroche avant les 10 secondes, la communication est établie, sinon Asterisk
met fin à cette communication.
4) Terminaux SIP
Un IP PBX apporte donc de nouvelles fonctionnalités et est capable de remplacer un PBX
classique. Mais dans ce cas, il est souvent nécessaire de remplacer les téléphones par des
téléphones IP.
France
Internet
Telecom
VoIP
ISDN
Téléphones IP
IP PBX Asterisk
Téléphonie
classique
Téléphones
Téléphones IP
IP
Les téléphones IP apportent eux aussi de nouvelles fonctionnalités. Les deux gammes
actuellement proposées par BSNetwork sont Snom et Cisco
a) Snom
Introduction
Snom est une entreprise allemande créée en 1999 et spécialisée dans les téléphones IP. Ses
téléphones sont considérés comme la référence des téléphones IP bien qu’ils présentent de
nombreuses imperfections :
SNOM 105 SNOM 200 SNOM 220
D’un point de vue matériel tout d’abord, il est difficile de raccrocher correctement (le
combiné se positionne mal) et les touches ne sont pas agréables. Les produits Snom possèdent
également des avantages : ils intègrent pour la plupart un Switch réseaux ce qui permet de
LAN Microphone
Haut-Parleur/
Alimentation Casque
48 V
Ordinateur
Téléphone
Téléphone Snom
Snom 105
105
D’un point de vue logiciel, outre la traduction française qui n’est pas finalisée, cette gamme
de téléphone souffre de nombreux bugs. Chaque ajout d’une nouvelle fonctionnalité est suivi
d’un ou plusieurs correctifs, comme le montre le nombre de mise à jour mensuelle :
18
16
14
12
10
8
6
4
2
0 fé 4
dé 3
ao 03
ao 04
m -04
ju 3
4
m 4
no 3
4
av 4
se 03
se 04
ju 4
ja 3
oc 3
oc 4
-0
0
r-0
-0
-0
t-0
t-0
0
-0
-0
-0
0
v-
il-
il-
s-
-
-
c-
nv
vr
in
in
ût
ût
pt
pt
ai
ju
ar
ju
Configuration
Premier démarrage
Lors du premier démarrage d’un téléphone Snom, il est nécessaire de le configurer. Cela se
fait en différentes étapes :
Langue
Configuration du DHCP
Si un serveur DHCP est disponible sur le réseau, le téléphone est capable de l’utiliser.
Configuration Réseau
Serveur DNS
La sonnerie
Fuseau horaire
La dernière étape consiste à sélectionner le fuseau horaire. La ville pour le fuseau horaire
français est Nice …
Serveur de configuration
Plutôt que d’utiliser l’interface Web, il est possible d’utiliser un serveur pour une
configuration de masse. Dans ce cas, le téléphone essayera de récupérer un fichier de
configuration sur ce serveur.
Cela permet au
Configuration du réseau et du DNS
téléphone de se
connecter à Internet
Charge la configuration du
« setting_server »
Modification de la configuration
actuelle :
- adresse IP
- masque de sous réseau
- passerelle par défaut
- nom du téléphone
- domaine et les serveurs DNS
- décalage et le serveur de temps
- activation du DHCP ou non
Démarrage
Démarrage d’un
d’un téléphone
téléphone Snom
Snom
La configuration doit se télécharger sur un serveur Web. L’adresse de configuration est donc
une adresse URL. Cette adresse peut être configurée sur l’interface Web (« setting_server »
sur la page « advanced ») ou directement grâce au DHCP avec les options 66 et 67.
Le caractère « ! » après un nom de variable signifie que ce paramètre peut être modifié par
l’utilisateur, alors que le caractère « & » signifie qu’il est en lecture seul (par défaut).
De cette manière, il est possible de gérer la configuration de tous les téléphones Snom depuis
un serveur Web.
b) Cisco
Introduction
Cisco n’est plus à présenter. L’entreprise s’est tout d’abord orientée vers un protocole et une
solution VoIP propriétaire. Depuis peu, ses téléphones sont disponibles en version SIP. Même
s’ils n’ont pas encore toutes les fonctionnalités que propose Snom et qu’ils sont plus chères,
ils sont plus agréable d’utilisation :
7902
7940
7960+7914
7960
7912
Lignes ou appels
Combiné Ecran LCD rapides
Ajustement de
l’inclinaison
Boutons
d’onglets
Services et
informations
Gestion du
volume
et du son
Ascenseur
Clavier vertical
numérique
Téléphone
Téléphone Cisco
Cisco 7960
7960
Configuration
Les téléphones Cisco ne disposent pas d’une interface Web pour la configuration. Il est
toutefois possible de les configurer directement grâce à des menus interactifs ou grâce à un
serveur trivial FTP (TFTP).
Si le téléphone est
Apprentissage du VLAN connecté à un switch
Catalyst, il peut
obtenir son VLAN
Permet au téléphone
OS79XX.TXT de savoir quel
firmware il doit utiliser
Contient les
SIPDefault.cnf paramètres communs
à tous les téléphones
Contient les
SIP<mac>.cnf paramètres pour le
téléphone ayant
l’adresse mac <mac>
Contient les
Vérification de la version du
paramètres pour le
firmware
téléphone ayant
l’adresse mac <mac>
Téléchargement
d’une nouvelle
version
Redémarrage
Démarrage
Démarrage d’un
d’un téléphone
téléphone Cisco
Cisco
DHCP
Si un serveur DHCP est utilisé pour le téléphone Cisco, les options suivantes peuvent être
utilisées :
- option 50 : adresse IP
Fondé en 1994, Primus possède désormais une infrastructure permettant de faire aboutir un
appel téléphonique aux meilleurs prix. Il permet donc de faire le lien entre la téléphonie
classique et la VoIP. De même, il est capable de rediriger les appels entrants vers le firewall
SIP. Il est alors possible de supprimer complètement la téléphonie classique dans l’entreprise :
France
Internet
Telecom
VoIP
ISDN
Primus
Telecom
Appels Appels
Entrants Sortants Firewall SIP
LAN
Téléphones IP
IP PBX Asterisk
Primus
Primus Telecom
Telecom
Au 13 octobre 2004, les tarifs proposés par BSNetwork, en partenariat avec Primus Telecom,
sont les suivants :
France UE, USA et Canada Reste du monde
Vers Fixe 1,5 ct/min 3,5 ct/min 25 ct/min
Vers Mobile 18 ct/min 25 ct/min 25 ct/min
a) Primus et Asterisk
L’objectif est donc d’utiliser Primus Telecom pour tous les appels en provenance ou à
destination de la téléphonie classique. Afin que n’importe qui ne puisse pas utiliser leurs
serveurs, Primus a mis en place un système d’authentification et d’enregistrement. Notre
système, basé sur Asterisk doit donc s’enregistrer et s’authentifier quand cela est nécessaire
Dans sip.conf
Le fichier « sip.conf » contient la configuration des différents périphériques SIP. Primus
utilise le protocole SIP donc c’est dans ce fichier que va se trouver la plus grande partie de la
configuration.
Tout d’abord, les numéros de téléphone que nous utilisons doivent être enregistrés chez
Primus. Chaque numéro est associé à un mot de passe. La syntaxe pour réaliser cela est la
suivante :
register => numéro:motdepasse@francevoip.com
Ensuite il faut préciser pour chaque numéro de téléphone les informations qui seront utilisés
pour l’authentification. Voici un exemple :
[primus_bsnetwork]
type=peer
Voici un exemple complet d’un fichier « sip.conf » pour l’utilisation des serveurs Primus :
register => 33172770210:motdepasse@francevoip.com
register => 33172770215:motdepasse@francevoip.com
[primus_bsnetwork]
type=peer
host=francevoip.com
username=33172770210
secret=motdepasse
fromdomain=francevoip.com
[fred_bsnetwork]
type=friend
host=dynamic
context=bsnetwork
secret=motdepasse
callerid=Fred <215>
username=215
subscribecontext=bsnetwork
mailbox=215@bsnetwork
qualify=500
fromdomain=francevoip.com
Dans extensions.conf
Ensuite, pour chaque appel sortant, il faut spécifier quel numéro on va utiliser. Pour cela, il
faut spécifier l’identifiant de l’appelant avec « SetCallerID ».
La syntaxe complète pour passer un appel depuis le numéro 0172770210 est la suivante :
[bsnetwork]
exten=>_0.,1,SetCallerID(33171770210 <33172770210>)
exten=>_0.,2,Dial(SIP/${EXTEN}@primus_bsnetwork)
exten=>_0.,3,Hangup
b) Primus et Vegatream
Dans un premier temps, il peut être intéressant d’utiliser Primus pour faire baisser les factures
téléphoniques. Dans ce cas, nous n’utilisons pas de serveurs Asterisk. L’enregistrement et
l’authentification se fait donc au niveau de la passerelle Vegastream
Primus
Telecom
France
Internet
Telecom
VoIP
ISDN
Enregistrement
Authentification
Passerelle VoIP
PABX
Téléphonie
classique
Primus
Primus et
et Vegastream
Vegastream
Primus utilise, pour l’authentification, un serveur proxy SER (Sip Express Router). Il
compare l’adresse E164 (internationale) de l’appelant contenue dans le champ "From" avec
celle contenue dans la base de donnée du proxy SER. L'adresse E164 transmise par la Vega
est celle qui lui est transmise par le PABX, au format National "
sip:0172770240@francevoip.com". Le format attendu est international
"sip:33172770240@francevoip.com" ; ainsi le paquet SIP suivant va être refusé :
195.214.56.210:5060 -> 195.214.56.194:5060
INVITE sip:0155232578@francevoip.com:5060 SIP/2.0
Via: SIP/2.0/UDP 195.214.56.210:5060;branch=z9hG4bK-vega1-000A-2D73A3F0-1846-475C8904
From: <sip:0172770240@francevoip.com>;tag=0011-0C34-CB0E0185
To: <sip:0155232578@francevoip.com>
Max-Forwards: 70
Call-ID: 0010-000C-7D99E6E8-0@195.214.56.210
CSeq: 762553329 INVITE
Contact: <sip:0172770240@195.214.56.210:5060;maddr=195.214.56.210>
Authorization: Digest username="33172770240", realm="francevoip.com",
nonce="4149901cd7e8fa13948b30c3ffefddb525ddd157",
uri="sip:0155232578@francevoip.com:5060", response="34c9d052b04ab7ad24767212dcbc3fe0"
Supported: replaces
Allow: INVITE,ACK,BYE,CANCEL,INFO,NOTIFY,OPTIONS,REFER
Accept-Language: en
Content-Type: application/sdp
User-Agent: VEGA100/08.02.06xS016
Content-Length: 275.
v=0
o=Vega50 13 1 IN IP4 195.214.56.210
Le numéro contenu dans le champ "from" est celui de l'appelant. Si le PABX est configuré
pour donner le numéro en format national, la Vega retransmettra ce numéro en format
national dans le champ "from".
De la même manière, il est possible de créer un DialPlan générique pour transférer le bon
numéro d’appelant :
Source : IF:02,TEL:<.*>,TELC:0<.*>
Destination : IF:99,TEL:<1>,TELC:33<2>
Les deux méthodes ont été testées en collaboration avec Primus et fonctionnent correctement.
X. Solution hébergée
1) Introduction à la solution
Une infrastructure VoIP n’est pas simple à gérer. C’est pourquoi BSNetwork propose de gérer
les système téléphoniques grâce a une solution hébergée : IP centrex.
L'IP Centrex substitue les équipements télécoms installés sur le site de l'entreprise par des
services opérés et fournis à distance par l'opérateur. L’entreprise réduit donc
considérablement sa charge d’investissement et de maintenance. En externalisant
complètement sa fonction télécom, elle gagne en productivité. Enfin, de puissants services à
valeur ajoutée deviennent accessibles à moindre coût et apportent de nouvelles sources de
compétitivité.
L’objectif est que toutes les entités de l’entreprise (siège social, autres établissements,
collaborateurs nomades, télé-travailleurs), quelle que soit leur dispersion géographique,
bénéficient du même niveau de service et de tarification dans une architecture souple et
économiquement avantageuse. Ces économies sont augmentées par le fait que les serveurs qui
hébergent le PBX (virtuel) peuvent être mutualisés.
J’ai travaillé sur cette solution d’IP-centrex avec 2 pôles directeurs : stabilité et simplicité.
a) Stabilité
La stabilité tout d’abord la pérennité de la solution. En effet, une telle solution doit être
pérenne dans le temps : l’architecture qui est décidée au début ne peux plus être changée. La
stabilité concerne également la fiabilité du service. En effet, la téléphonie actuelle dispose
d’une disponibilité de 99,99 %. Mon objectif est d’atteindre une disponibilité de 99,9 % avec
la solution proposée. La défaillance d’un matériel doit être tout de suite identifiée et une
solution apportée sans que cela perturbe le service.
b) Simplicité
La simplicité doit se faire à différents niveaux. Tout d’abord au niveau des utilisateurs, l’accès
aux services proposés doit être le plus simple possible, voir transparent quand cela est
possible. Au niveau des administrateurs dans les entreprises, ils doivent pouvoir accéder aux
informations qui les intéressent de manière simple. Par ailleurs, ils doivent pouvoir agir sur
ces informations (ajout d’un téléphone, configuration d’un standard, etc.) ce qui était, pour
des raisons de complexité technique, impossible avec un PBX traditionnel. Enfin la solution
doit être simple à administrer pour les employés de BSNetwork…
• Disponibilité des données : même si le système n'est pas critique et peut supporter un
arrêt de service à durée variable, il est généralement inhabituel de se satisfaire de la
perte de données. Dans ce cas précis, toutes les techniques utilisées convergent pour
garantir l'intégrité des données
• Disponibilité des services : dans le contexte d'un service critique rendu dans le cadre
d'une entreprise (serveur de fichiers ou mail) ou vis à vis d'une clientèle (site
marchand), une panne occasionnant un arrêt du service peut causer un tort
considérable entraînant une perte de productivité voire une perte de confiance du
client. Dans tous les cas, cela peut coûter à cours ou moyen terme beaucoup d'argent.
On base la démarche sur la disponibilité des données pour ensuite fiabiliser par
différentes techniques la continuité du service ;
Pour appréhender la notion même de Haute Disponibilité, il nous faut d'abord aborder les
différences qui existent entre la fiabilité d'un système et sa disponibilité.
Dans le cas d'un système complexe (que l'on peut décomposer en un certain nombre de
composants matériels ou logiciels), on va alors parler de MTTF pour Mean Time To Failure,
soit le temps moyen passé jusqu'à l'arrêt de service consécutif à la panne d'un composant ou
d'un logiciel.
L'attribut de disponibilité est plus difficile à calculer car il englobe la capacité du système
complexe à réagir correctement en cas de panne pour redémarrer le service le plus rapidement
possible. Il est alors nécessaire de quantifier l'intervalle moyen de temps ou le service est
La formule qui permet de calculer le taux de disponibilité relative à un système est la suivante
:
MTTF
disponibilité
MTTF MTTR
Un système qui aspire à une forte disponibilité se doit d'avoir soit un MTTF fort, soit un
MTTR faible.
Une autre approche, plus pratique, consiste à mesurer la période de temps ou le service n'est
plus rendu pour évaluer le niveau de disponibilité. C'est la méthode la plus souvent utilisée
même si elle ne tient pas compte de la fréquence des pannes mais plutôt de leur durée.
Le calcul se fait le plus souvent sur une année calendaire. Plus le pourcentage de disponibilité
du service est fort, plus nous pouvons parler de Haute Disponibilité.
Il est assez facile de qualifier le niveau de Haute Disponibilité d'un service à partir de la durée
d'arrêt cumulée en utilisant le principe normalisé des « 9 » (en dessous de 3 neuf, il n'est plus
possible de parler de Haute Disponibilité mais simplement de disponibilité) :
Nombre de 9 Arrêt du service sur 1 an
3 neuf (99,9%) environ 9 heures
4 neuf (99,99%) environ 1 heure
5 neuf (99,999%) environ 5 minutes
6 neuf (99,9999%) environ 30 secondes
Cela permet notamment d'utiliser des composants moins cher puisque la fiabilité du
composant ne devient plus le critère principal.
Une seconde approche considère que l'on peut assez facilement mettre en place une solution
où ce n'est plus la ressource que l'on va chercher à dupliquer, mais directement le serveur.
L'utilisation de grappes de machines (cluster en anglais) est un bon moyen de répondre à cette
problématique. Si l'on parvient à disposer d'au moins deux machines sur lesquelles le service
est exécuté de façon unique (sur l'un ou l'autre des noeuds), la continuité du service sera
garantie moyennant le temps de basculement d'une machine à l'autre (On parle en anglais de
Failover Services, FOS).
La principale difficulté consiste à maintenir une copie des données entre les noeuds (dans ce
type de cluster dit de Haute Disponibilité, une machine s'appelle un noeud) pour que le
service puisse être indifféremment lancé sur l'un ou l'autre des serveurs. Pour accomplir cela,
il existe différentes techniques basées soit sur la réplication plus ou moins temps-réel des
Dans ce type de configuration, il est important de faire en sorte que le temps de rétablissement
du service soit le plus faible possible pour réduire le gène occasionné aux utilisateurs. Le
basculement du service dans le cluster ne doit pas être perceptible et ne doit surtout pas
occasionner une modification du paramétrage coté client : afin de rendre transparent cette
étape, on utilise la notion d'alias IP pour associer une adresse IP dite flottante sur le noeud
hébergeant le service. La continuité apparente du service coté client est donc assurée.
Une dernière technique moins connue permet de répartir la charge sur un ensemble de noeuds
physiques sur lesquels un service de type réseau est exécuté en parallèle et en concurrence.
Un noeud maître se charge de répartir les requêtes sur le noeud le moins chargé du cluster. Si
un noeud tombe en panne, il sera détecté par le maître qui pourra facilement le retirer de sa
liste des noeuds actifs.
La plus grande partie des architectures misent en oeuvre pour garantir la disponibilité d'un
service dérivent plus ou moins directement de ces trois approches.
Deux axes de réflexion peuvent être évalués pour réduire ce type de risques :
Solution Explication
La salle dans laquelle dans laquelle sont déployée les
machines doit garantir une température stable et une
Climatisation et hydrométrie hydrométrie raisonnable.
La multiplication des différents composants critiques présents dans votre système peut
permettre de survivre à une panne en considérant que les solutions matérielles de Haute
Disponibilité disponibles sous Linux se rapprochent de plus en plus de celles proposées sur
les serveurs Unix haut de gamme.
Il est assez simple de redonder les alimentations électriques (transparent pour le système
d'exploitation) mais aussi les disques durs, les contrôleurs disques et les interfaces réseaux :
Solution Explication
Multipliez les serveurs peut être, au même titre que la multiplication des composants, un bon
moyen de garantir la disponibilité d'un service : si le service est rendu par l'intermédiaire d'un
cluster de machines, on pourra alors survivre à la perte de N-1 noeuds.
Solution Explication
Heartbeat est un maillon essentiel dans la construction d'un cluster avec
basculement de services (de type Failover Services). Les services sont démarrés
généralement sur un seul noeud du cluster, appelé communément le noeud
principal : En cas de détection d'une panne, les services sont alors basculés sur
le noeud de secours. Pour garantir la continuité apparente du service coté
utilisateur, on utilise le principe des alias IP pour associer une adresse IP
virtuelle à la machine qui héberge le service (Heartbeat utilise le programme
Fake qui s'occupe de plus de mettre à jour les tables ARP).
Heartbeat
Les deux machines du cluster communiquent entre elles par l'intermédiaire de
liaisons Ethernet et de liaisons séries dédiées pour obtenir toutes les
informations utiles sur l'état du cluster et décider éventuellement de déplacer un
service d'un noeud vers un autre
On peut choisir d'équilibrer la charge en démarrant une partie des services sur
le noeud principal et une seconde partie sur le noeud secondaire : Heartbeat sait
La principale difficulté consiste à disposer des données utilisées par les services
indifféremment sur l'un ou l'autre des noeuds du cluster : pour cela, il est
possible de répliquer les données entre les noeuds ou partager ces dernières à
partir d'une source commune partagée.
FailSafe est une contribution de SGI qui permet de disposer d'un outil similaire
à Heartbeat pour basculer des services entre plusieurs noeuds d'un cluster.
L'approche est un petit peu différente avec une notion de plugins plus construite
que sous Heartbeat et avec le support d'un plus grand nombre de noeuds
(jusqu'à 16).
Moins connu que Heartbeat mais nettement plus puissant, ce programme mérite
clairement qu'on lui donne sa chance.
Il est habituel de placer le noeud chef d'orchestre au sein d'un cluster basé sur
du basculement de services (Heartbeat ou FailSafe) pour éliminer son caractère
critique.
Les données sont sécurisées en multipliant les disques durs (RAID) ou par réplication sur un
second serveur. De même, la notion de réplication est soit transparente pour l'application (on
réplique une partition ou un répertoire), soit intégrée dans une application comme c'est le cas
de certaines bases de données.
Des systèmes de fichiers spécifiques offrent aussi des fonctionnalités de tolérance aux pannes
intéressantes : on parle alors de systèmes de fichiers distribués ou partagés.
Reste la solution ultime du clustering HA : l'utilisation d'une baie de disques partagée qui va
permettre de centraliser les données sur un support unique accessible en concurrence ou non
(selon le type de la solution) par l'un ou l'autre des noeuds.
Solution Explication
Le RAID est un mécanisme permettant d'agréger virtuellement plusieurs
ressources de types blocs (dans notre cas, des disques durs) pour offrir à
l'utilisateur une vision unifiée du stockage de ses données. De nombreux
algorithmes sont disponibles pour sécuriser les données et améliorer les
performances : dans ce cas, la perte d'un disque sera transparente pour
Utilisation du
l'utilisateur et n'affectera pas l'intégrité des données.
RAID
Il est classique d'utiliser un RAID de niveau 1 (miroir) pour sécuriser le
système d'exploitation et un RAID de niveau 5 pour les données
Par contre, le problème est déporté sur le serveur NFS qui doit être lui
même sécurisé ...
Plutôt que de chercher à répliquer les données entre tous les noeuds d'un
cluster, une solution idéale consiste à utiliser une baie de disques partagée
pour stocker les données.
RSYNC est un petit programme assez sympathique qui peut nous permettre
de synchroniser à la demande deux répertoires localisés sur deux machines
distantes.
Le protocole utilise soit la couche RPC, soit la couche SSH pour transporter
les données. Ces dernières peuvent être compressées et seules les données
RSYNC
réellement modifiées sont échangées.
C'est le moyen idéal pour répliquer des données entre deux serveurs dans le
Réplication de
cadre d'un cluster avec basculement de services (Heartbeat) lorsque ce
base de
dernier est constitué d'un service rendu par l'intermédiaire d'une base de
données
données
Il ne faut pas hésiter à l'utiliser si cela est supporté par la base de données :
MySQL et PostgreSQL, en particulier, supportent parfaitement cette
fonctionnalité
L'arrêt de service doit être évité au maximum : une architecture cluster permet d'arrêter
uniquement le noeud hébergeant un élément défectueux ; une approche moins brutale consiste
à changer à chaud le composant en panne (aucun arrêt de la machine) si ce dernier supporte la
fonctionnalité sous Linux.
Une panne peut aussi affecter l'ensemble de votre architecture imposant un arrêt brutal qui
peut laisser le système de fichier dans un état instable. Ce dernier doit donc pouvoir être
vérifié au redémarrage de la machine en un temps raisonnable.
Toutes ces techniques sont regroupées dans la notion de reprise sur panne :
Solution Explication
En cas d'arrêt violent d'un serveur, rien ne peut garantir l'intégrité des
systèmes de fichiers si l'on considère les mécanismes de cache
mémoire mis en place pour accélérer les entrées/sorties. Linux a été
longtemps pénalisé par l'absence de solutions adaptées : tout arrêt
anormal résultait en une vérification minutieuse de la surface du
disque pour localiser et réparer les erreurs de cohérence dans les
systèmes de fichiers (le fameux fsck). Depuis environ 2 ans, des
systèmes de fichiers dit journalisés existent sous Linux : Ext3,
Système de fichiers Reiserfs, Xfs ou encore JFS. Ces systèmes de fichiers mémorisent
journalisé dans un journal tous les évènements et sont donc capables, en cas de
problèmes, de ne vérifier que les derniers échanges en cours sur le
disque.
Cette solution n'est à utiliser que dans les cas extrêmes car une mise à jour
du noyau est à envisager en cas de répétition du problème
d) Exemples d’architecture
Nous avons choisi d'utiliser DRBD pour répliquer les données entre les noeuds, MON pour
surveiller l'état de nos services et du système, le Channel Bonding pour sécuriser les
composants réseaux et améliorer en particulier les performances entre les noeuds (la vitesse
de réplication dépend directement de la performance du réseau), une carte RAID pour
fiabiliser les données et héberger le système d'exploitation, un onduleur (UPS) et enfin
Heartbeat pour lancer et basculer les services :
Serveur
Serveur 11 Serveur
Serveur 22
Channel
Bonding
DRDB
Service 1 Service 1
Service 3 Service 3
Cluster
Cluster avec
avec réplication
réplication de
de données
données
Il nous faut d'abord trouver une baie de disques externe qui supporte l'accès simultané de tous
les noeuds de notre cluster.
Il est conseillé de choisir une baie de type RAID permettant de garantir la disponibilité des
données à la différence d'une baie standard moins cher : on utilise le terme JBOD (Just a
Bunch Of Disks) pour désigner une baie de disque qui n'intègre pas de contrôleur RAID
interne ; la Haute Disponibilité des données n'est donc pas garantie dans ce cas. On peut
toutefois utiliser du RAID logiciel (RAID 1 ou RAID 5) pour sécuriser les données (activé sur
un noeud à la fois).
Il nous faut ensuite sélectionner un contrôleur SCSI ou Fibre Channel pour connecter la baie
aux machines présentes dans le cluster : le choix d'une interface de type SCSI permet de
partager une ressource entre deux et quatre noeuds alors que le Fibre Channel pourra en
supporter beaucoup plus. Le choix final va donc dépendre du type de configuration que l’on
souhaite mettre en oeuvre.
Le logiciel que nous allons ensuite utiliser pour gérer le cluster doit pouvoir nous garantir
l'unicité du service si les connexions dédiées (Ethernet et liaison série) entre les noeuds du
cluster sont rompues. Dans ce cas précis, personne ne sait dans quel état se trouve le voisin et
le logiciel est donc dans l'incapacité de prendre une décision (choix d'un basculement de
services). On dit alors que le cluster est en site partition : une situation qui ne doit pas arriver.
• Une première solution consiste à dialoguer par l'intermédiaire d'une partition quorum
dédiée sur la baie de disques pour échanger des informations et réserver des disques
• Une dernière approche met à contribution des équipements Power Switches pour
essayer de « tuer » (au niveau électrique) le noeud voisin avant de récupérer ses
services : on est alors certain de ne pas entrer en conflit avec un noeud avec lequel on
ne parvient plus à communiquer. C'est une méthode simple mais particulièrement
efficace.
Les clients ne discutent pas directement avec les adresses IP des machines du cluster mais
uniquement avec des adresses IP flottantes qui permettent d'abstraire complètement la
localisation des services dans le cluster.
Il est possible, en combinant des composants logiciels et matériels que nous venons de voir,
de réaliser ce type de cluster :
Serveur
Serveur 11 Serveur
Serveur 22
Channel
Bonding
DRDB
Service 1
Contrôleur Contrôleur
Service 2
Service 3
Cluster
Cluster avec
avec partage
partage de
de données
données
Bien que d'un niveau technique largement suffisant pour des besoins standards, la solution
précédente est pourtant handicapée par la notion même de partage des données qu'elle
Il est pourtant possible de descendre à un niveau beaucoup plus fin en considérant l'utilisation
d'un système de fichiers distribué comme GFS ou OpenGFS. Par son intermédiaire et son
arbitrage, chaque noeud pourra accéder aux mêmes données (pas forcément au même
moment) et réduire d'autant les risques de corruption des données.
3) Architecture
a) Introduction aux clusters Beowulf
Afin de comprendre l’architecture, il faut comprendre le concept des clusters Beowulf. Le
projet Beowulf est né en 1994 au Goddard Space Flight Center de la NASA. Le principe est
de construire des clusters parallèles sous GNU/Linux avec du matériel commun (simples
PCs), donc peu cher.
Une des premières réalisations concrètes de cluster date de 1995. Il s'agissait alors de 16 PCs
de type 486DX4@100MHz avec chacun deux interfaces Ethernet à 10Mbps et des disques
durs de 250Mo, une architecture énorme pour l'époque. Ce cluster était employé par la NASA
pour la simulation de phénomènes physiques et l'acquisition de données. (D’après un
document de la NASA).
Après cette première approche très concluante, divers autres projets sont apparus, dont des
architectures de l'ordre de 100 PCs P-II...
Aujourd'hui, les clusters Beowulf apparaissent dans le TOP-100 des super-calculateurs les
plus puissants au monde, et peuvent aller jusqu'à plusieurs dizaines de stations chacune multi-
processeurs et totalisant des Téra-octets (milliers de Giga) de capacité de disque dur et
plusieurs dizaines de Giga-octets de RAM.
L'architecture SMP est celle rencontrée dans les PCs multi-processeurs, les stations SGI, les
stations SUN, les stations HP/PA, certains des super-calculateurs de type CRAY, ... Elle
consiste à mettre une seule mémoire vive en commun pour plusieurs processeurs qui sont plus
ou moins sur la même carte mère (64 processeurs ne sont pas tout à fait sur la même carte) et
en partagent toutes les ressources.
L'architecture de type Beowulf (et la majorité des clusters en général) est constituée quant à
elle de machines indépendantes (processeur, mémoire, disque(s) dur(s), alimentation)
connectées entre elles par un réseau de type Ethernet.
Alors que dans une architecture SMP les processeurs travaillent en communication
permanente, dans un cluster une des machines répartit les tâches entre toutes les autres qui lui
envoient le résultat une fois les calculs terminés.
Mais il y a une limitation. Dans les deux cas, les logiciels doivent être "parallélisés" pour
utiliser plusieurs processeurs (qu'ils soient dans la même machine ou pas). Mais dans le cas
d'un cluster il faut faire en sorte que les "processus" communiquent le moins possible entre
eux. Une connexion réseau (même Gigabit Ethernet) est un peu juste pour que les processeurs
se synchronisent tout le temps entre eux, alors qu'avec un logiciel "bien programmé", une
connexion 10Mbps peut éventuellement suffire.
LAN
Nœuds de
calcul
(Production)
Nœud de
Gestion
LINUX
MPI Outils de
Gestion de
Applications Clusters
parallèles
Structures
Structures des
des Clusters
Clusters BeoWulf
BeoWulf
c) Architecture logique
D’un point de vue logique, toutes les machines d’un cluster n’ont pas le même rôle. Il faut
signaler que la même machine peut avoir plusieurs rôles.
Nœud de
contrôle
Cluster
(DHCP,
DNS, etc.)
Nœud
Nœud de d’installation
Gestion (image des
(Supervision, CD, etc.)
etc.) Nœuds de
calcul
(Production)
Cluster
Nœud de
stockage
Nœud
utilisateur (Seul
accès pour
extérieur)
Utilisateurs/
Administrateurs
Structure
Structure logique
logique d’un
d’un Cluster
Cluster
Nœud de calcul
Le nœud de calcul est l’endroit où les actions de production sont effectuées. Dans notre cas, il
s’agit de gérer des communications et des services. La majorité des nœuds d’un cluster sont
des nœuds de calcul.
Nœud de gestion
Les clusters sont des environnements complexes et la gestion d’un cluster est très importante.
Le nœud de gestion propose diverses fonctionnalités :
Nœud d’installation
Dans la plupart des clusters, les nœuds de calcul doivent être réinstallés (nouvelle version,
etc.) relativement souvent. De même, il est des fois nécessaire de rajouter des nœuds pour
augmenter les capacités.
Le nœud d’installation fournit les images et les mécanismes pour réinstaller facilement et
rapidement un nœud de calcul
Nœud utilisateur
Le nœud utilisateur est en quelque sorte la porte d’entrée du cluster. C’est sur ce nœud qu’un
utilisateur peut lancer une action et récupérer les résultats.
Nœud de contrôle
Le nœud de contrôle propose des services pour les autres nœuds du cluster. C’est par exemple
lui qui va gérer les services DNS et DHCP. Par ailleurs, il peut gérer la répartition des tâches
sur l’ensemble du cluster.
Nœud de stockage
L’ensemble des nœuds de calculs doit souvent accéder aux mêmes informations. Il est donc
nécessaire de rajouter un nœud de stockage. La technologie employée peut être très variable
en fonction du cluster, de la vitesse d’accès, de la capacité de stockage nécessaire, etc.
d) Architecture proposée
L’architecture proposée pour la solution hébergée est totalement redondante.
Pour l’instant, tant que la charge le permet, les nœuds utilisateur, de contrôle, de stockage et
gestion sont regroupé sur un seul serveur que nous appelons serveur de contrôle. Ce serveur
est mis en haute disponibilité avec un second.
Les nœuds de calcul sont sur ce que nous appelons des serveurs de production. Un ou
plusieurs serveurs sont en attente, au cas où un des serveurs de production tomberait en
panne. Ces serveurs permettent également de compléter les serveurs de production en cas
d’augmentation de la charge :
*
* N serveurs
Production
*
.
.
.
* LAN 1Gb
VPN
1 ou 2 serveurs
Standby
*
2 serveurs
Contrôle
Réplication
- Supervision
- Configuration
- Administration
Supervision
BSNetwork
Serveur Web *
Serveur Asterisk Serveur de Fichiers Annuaire Supervision Base de données Billing
Solution
Solution hébergée
hébergée
e) Base de données
Tout le système est architecturé autour d’une base de donnée. Cette base contient à la fois les
informations des clients, des appels et des serveurs.
f) Asterisk
Dans un tel scénario, et afin de pourvoir utiliser une base de donnée, tout le plan d’appel
d’Asterisk sera géré par un programme externe. On parle alors d’AGI. Tous les appels sont
alors redirigés vers une sorte de script :
exten=>.,1,AGI(script.agi)
Le script peut être écrit dans n’importe quel langage informatique. Nous avons choisi le PHP
pour son aspect dynamique, sa modularité et sa capacité d’interaction avec une base de
données. Par ailleurs, c’est un langage qui est maîtrisé par la plupart des programmeurs
(contrairement au PERL, par exemple).
require_once "db_psql.php";
$db = New DB();
$query_string = " SELECT callerID, context FROM Phone WHERE internal =
".$agivar["agi_extension"];
$db->query($query_string);
$result = $db->getResult();
$command = "EXEC DIAL SIP/".$result[0]["callerid"]."_".strtolower($result[0]["context"]);
fputs($stdout,$command);
fflush($stdout);
fclose($stdout);
fclose($stdin);
?>
g) SER
Introduction
SER ou Sip Express Router est un serveur VoIP gratuit basé sur le protocole SIP. SER est un
programme à la fois performant et robuste ; il est extrêmement configurable en ce qui
concerne la création de règle de routage (redirect) et de sécurité, contrairement à Asterisk.
Basé sur les derniers standards, SER fonctionne comme serveur proxy, d’enregistrement et de
redirection. C’est ce dernier mode qui nous intéresse.
Architecture
L’objectif de l’utilisation de SER est de rediriger une demande client vers le bon serveur. En
effet, toutes les demandes arrivent sur les serveurs de management. Il faut rediriger ces
demandes vers les serveurs Asterisk de production, en fonction de la requête.
*
1
Requêtes
*
2
Requêtes Requêtes Client 1
N serveurs
Client 2 Production
*
3 4
Client 3 & 4
*
5 6 7
.
Client 5,6 & 7
.
Serveur SER
.
Redirection des
requêtes 1 ou 2 serveurs
Standby
SER
SER
*
Configuration
Le langage de routage
SER possède un langage spécial de routage qui permet aux administrateurs de définir les
conséquences d’une requête SIP d’une manière précise. Ils peuvent par exemple séparer le
trafic SIP par méthodes, destination, utilisateur, etc.
Le premier bloc de construction du langage de routage est l’action. Il existe des blocs
d’actions de base comme « Forward » ou « Strip » et des blocs d’actions qui sont importés de
différents modules. Les actions peuvent être regroupées entre elles grâce à des accolades
(exemple : {action1() ;action2() ;}) pour former un bloc de routage. Au début, seul le bloc de
routage par défaut (appelé route[0]) est considéré par SER. Les autres blocs de routage
peuvent être appelés par l’action « Route ». Les appels récursifs sont autorisés, comme les
appels conditionnels.
Le script de routage est exécuté pour chaque requête reçue, dans l’ordre logique. Chaque
action doit retourner un résultat positif, négatif ou nul. Un résultat nul est considéré comme
une erreur alors qu’un résultat positif signifie une réussite de l’action (ou VRAI) et un résultat
négatif signifie un échec de l’action (ou FAUX).
La redirection
Les conditions
Les conditions dans les scripts SER peuvent dépendre d’une grande variété d’expressions.
Une action qui est souvent utilisé est « search ». Cette action recherche une expression dans
une chaîne de caractère. Si cette expression est trouvée, l’action retourne VRAI, sinon FAUX.
Modification de l’URI
Une autre possibilité de SER est la modification des URI. Ainsi une requête qui arrive avec
une URI « fred@bsnetwork.fr » peut être transférée vers un serveur de production avec l’URI
« fred_bsnetwork@192.168.6.8 ». Cela permet par exemple d’être certain d’avoir des noms
uniques sur les serveurs, sans que les utilisateurs s’en aperçoivent.
Pour cela, on utilise l’action rewriteuri (dans le même style, on trouve : rewritehost,
rewritehostport, rewriteuser, rewriteuserpass et rewriteport) :
if (uri=~"fred@bsnetwork.fr") {
rewriteuri("sip:fred_bsnetwork@serveur1")
# la requête est transférée en fonction de l’URI actuelle,
# c’est à dire : sip:fred_bsnetwork@serveur1:5060
forward( uri:host, uri:port);
}
SER et BdD
Toutefois, la configuration des serveurs de production n’est pas figée. Ainsi un client qui se
trouve sur le serveur 1 un jour, peut être transférer sur le serveur 2 pour des raisons de
performance.
Il est alors nécessaire de faire la redirection en fonction des dernières informations. Ces
informations sont contenues dans la base de données principale du système. Il est donc
nécessaire d’interroger cette base de donnée.
SER interroge la base de donnée pour connaître le serveur actuel d’un utilisateur. Le nom de
ce serveur est alors affiché.
Toutefois, une deuxième solution consiste à créer un petit module de connexion à la base de
données. Il est alors possible d’avoir une action simple pour interroger la base de données.
4) Obelisk
Toutes les actions se font donc en fonction de la base de données. Toutefois, il est
impenssable de pouvoir la modifier directement et encore plus de laisser les clients y avoir
directement accès.
J’ai donc travaillé avec Fabien WALLET, Ingénieur Développeur, pour créer une interface
graphique. Cette interface, surnommée Obelisk, permet une interaction avec la base de
données. Cette interface est utilisable à la fois par les administrateurs du système et par
clients, grâce à des niveaux de droits.
La gestion des téléphones se fait grâce à des tutoriaux. Ainsi, le système est utilisable sans
problème par des non professionnels et sans formation poussée.
Cette interface permet également de gérer l’ensemble du système et des modules optionnels
comme le FOP (Flash Operator Pannel) qui est en fait un standard en Flash :
L’applicatif est construit sur un schéma relativement simple : un bandeau principal en haut,
un menu de navigation à gauche, un menu de logout/profile et d’actions à droite, les sections
Introduction
La fonction de tolérance de panne des firewalls Ingate consiste à avoir 2 firewalls avec la
même configuration. L’un est actif et l’autre attend que le premier tombe en panne… Ces 2
firewalls sont appelés une équipe de tolérance de panne ou « Failover Team »
Internet
LAN
Routeur
Failover Team
Ingate
Ingate Fail-Over
Fail-Over
Prérequis
La tolérance de panne nécessite donc 2 firewalls. Chacun doit disposer d’au moins 3
interfaces et le firewall en attente doit avoir autant d’interface que le firewall actif. Les deux
doivent avoir la même version logicielle (firmware). Tous les modules sur le firewall actif,
doivent être également présents dans le firewall en attente.
Enfin il est nécessaire de relier les deux unités avec un câble croisé
Fonctionnalités
La tolérance de panne permet de créer un binôme où un firewall est actif et l’autre est en
attente. Le firewall en attente reste en contact constant avec le firewall actif pour vérifier s’il
fonctionne bien et synchroniser la configuration. Quand le firewall actif tombe en panne, le
firewall en attente le remplace, avec la même configuration.
Si l’un des deux firewalls arrête de fonctionner ou si le firewall actif n’arrive pas à contacter
le firewall en attente, le firewall actif ne va plus accepter des changements de configuration.
En effet, dans ce cas, il serait impossible de transférer la nouvelle configuration au firewall en
attente. Si un tel cas se produit, et qu’il est impossible de rétablir la connexion entre les deux
firewalls, le firewall actif doit être changé de mode. Il passe alors en mode autonome et le
binôme est détruit.
La communication entre le binôme est vérifiée toutes les 30 secondes. Ainsi, si une panne se
produit, le temps maximal de panne correspond à la durée maximale jusqu’à la prochaine
vérification (30 secondes) et au temps d’application de la configuration sur le firewall en
attente. Toutes les sessions TCP et UDP sont alors perdues. De même les appels SIP sont
interrompus. Toutefois, le nouveau firewall actif conserve les informations d’enregistrement
SIP.
Configuration
Pour créer un binôme, il faut configurer les deux firewalls de manière différente. Le premier
(l’actif) sera configuré par l’interface graphique alors que le second sera connecté au premier
grâce à une connexion série.
Firewall actif
Pour configurer le binôme sur le premier firewall, il faut aller sur la page « Failover Settings »
de l’interface Web, sélectionner l’interface qui sera directement connecté au second firewall
(« Dedicated interface to use ») et cliquer sur le bouton « Create new team ». Le firewall va
alors redémarrer.
Firewall en attente
Pour connecter le firewall en attente au firewall actif, il faut se connecter au firewall avec un
câble série. Une fois connecté sur la console avec le compte « admin », il faut sélectionner la
troisième option du menu : « 3. Become a failover member ».
Il faut alors sélectionner l’interface qui a été configuré comme interface dédiée. Toute la
configuration existante va alors être effacée et le firewall va redémarrer. Il va alors obtenir sa
configuration du firewall actif.
b) HeartBeat et Mon
Heartbeat prend en charge les défaillances en transférant des ressources (services, IP, disques)
d’un maître vers une machine esclave.
Fonctionnement
Le scénario type est le suivant :
- Défaillance du serveur
Les ressources pouvant être partagées sont multiples, Heartbeat est en effet capable de lancer
n’importe quel script. Par conséquent, c’est l’ensemble des services d’une distribution
standard qui peuvent être gérés sans difficulté.
De plus des scripts spécifiques ont été développés, ils permettent de partager facilement des
systèmes de fichiers (scsi partagé) et des adresses IP. C’est ce dernier point qui est
traditionnellement le plus utile puisque il est nécessaire à tout partage de services réseaux.
Pour détecter une défaillance système, Heartbeat se base sur un système d’échanges de
messages. Les supports de cette communication sont le réseau (en UDP, broadcast ou
multicast) ou un câble série disposé entre deux machines. Les deux supports peuvent
fonctionner simultanément ce qui permet d’éviter une fausse défaillance en cas de rupture
d’un des liens. Chaque machine surveille l’état de l’autre et, en cas d’absence de signal
pendant une certaine durée sur tous les supports physiques, la machine défaillante est déclarée
morte et la machine vivante récupère les ressources.
Redondance d’adresses
Lors du partage d’adresse IP, ce sont les adresses actives qui se déplacent. Il est toutefois utile
de pouvoir accéder aux machines du cluster quel que soit l’état de celui-ci, notamment afin de
pouvoir les administrer, il faut donc disposer d’une adresse IP fixe sur chaque machine.
Heartbeat a donc recours à l’IP-aliasing pour faire migrer les IPs du cluster. Il utilise
l’algorithme suivant pour déterminer automatiquement quelle doit être l’interface physique
recevant la nouvelle IP : une IP est attribuée à l’interface possédant la route vers le réseau le
plus proche de celui de l’IP à attribuer. Dans le cas où aucune route n’est trouvée, l’interface
de la route par défaut est choisie.
Il faut donc utiliser Mon pour détecter les interruptions des services nécessitant une bascule.
C’est ensuite Heartbeat qui s’occupe de basculer les ressources.
Enfin, dans le cas de deux machines distantes, le protocole UDP reste le seul moyen d’assurer
les communications d’Heartbeat. Malheureusement, il peut arriver qu’il y ait perte de paquets
UDP. Dans ce cas là, au moins une des deux machines pense que l’autre ne répond plus.
Mon et Heartbeat
Il est nécessaire de créer un fichier permettant de gérer les alertes envoyées par mon,
« heartbeat.alert ».
#!/bin/bash
HEARTBEAT="/etc/rc.d/init.d/heartbeat"
if [ "$9" = "-u" ]; then
$HEARTBEAT start
else
$HEARTBEAT stop
fi
watch server
service http
interval 10s
monitor http.monitor
period NORMAL: wd {Sun-Sat}
numalerts 1
alert heartbeat.alert
upalert heartbeat.alert
Cette combinaison permet donc de déclencher un switch des ressources dès que l’on détecte
que le serveur apache ne répond plus (et ce en dehors de tout problème réseau)
Conclusion
Le duo Heartbeat / Mon est donc parfait pour assurer la redondance de deux machines proches
physiquement avec surveillance des défaillances des services et des systèmes. C’est donc la
solution idéale pour redonder notre serveur de management qui va héberger à la fois la base
de donnée, SER et les services WEB.
c) DRBD
Dans la partie précédente, nous avons vu qu’il était possible de maintenir les services sur l’un
ou l’autre des serveurs. Il reste toutefois un problème : les données doivent être, elles aussi,
maintenues. La solution la plus simple est de faire une réplication via le réseau, a chaque fois
qu’une modification est faite. C’est le rôle de DRBD.
Ce service est relativement simple à mettre en place et le meilleur moyen de l’expliquer est de
prendre un cas concret. Supposons que nous ayons un serveur avec un serveur Web (Apache)
et une base de donnée (MySQL). Chaque processus utilise des données qui sont dans un
répertoire distinct :
Périphérique
Nom Nom DRBD Périphérique DRDB Point de montage
physique
Apache Drbd0 /dev/nb0 /dev/sda1 /ha/web
MySQL Drbd1 /dev/nb1 /dev/sda2 /ha/mysql
# BdD
resource drbd1 {
net {
sync-group=1
}
on node1 {
device=/dev/nb1
disk=/dev/sda2
}
on node2 {
device=/dev/nb1
disk=/dev/sda2
}
}
Par contre, il est intéressant de superviser ce système avec HeartBeat. Dans ce cas, il faut
rajouter ces deux lignes dans la configuration de HeartBeat :
node1 datadisk::drbd0 Filesystem::/dev/nb0::/ha/web httpd
node2 datadisk::drbd1 Filesystem::/dev/nb1::/ha/mysql mysqld
Nous avons donc désormais une disponibilité au niveau des services et des données.
6) Supervision
Même si le système est redondant, il est important d’en avoir une visualisation globale. De
plus, en cas de défaillance d’un composant, il faut faire remonter l’information vers la
personne responsable. Cette supervision se fait à 3 niveaux :
- au niveau des fournisseurs d’accès Internet, pour vérifier que la bande passante
disponible est suffisante
- au niveau logiciel, afin de vérifier que tous les processus critiques fonctionnent
correctement.
- au niveau matériel, il est important d’avoir une remonté d’information sur l’état
physique du système : la température, l’état de la mémoire, des disques durs, des
connections réseaux, etc.
Ci-dessous, l’exemple d’une courbe tracée avec les informations d’un routeur sur une ligne
SDSL :
b) Logiciel : Nagios
Avec l’accroissement incessant des LAN et des WAN, il devient indispensable de mettre en
oeuvre de bons moyens de surveillance et d’alerte. Nagios est une solution open source
entièrement configurable permettant de répondre à ce besoin.
- Surveillance des services réseaux (SMTP, POP3, HTTP, NNTP, PING, etc.)
- Surveillance des ressources des hôtes (charge processeur, utilisation des disques, etc.)
- Notifications des contacts quand un hôte ou un service a un problème et est résolu (via
email, pager, ou par méthode définie par l’utilisateur)
- Interface web optionnelle, pour voir l’état actuel du réseau, notification et historique
des problèmes, fichiers log, etc.
Principe de fonctionnemment
Théorie des plugins
Contrairement à beaucoup d’autres outils de supervision, Nagios ne dispose pas de
mécanisme interne pour vérifier l’état d’un service, d’un hôte, etc. A la place, il utilise des
programmes externes appelés plugins. En fonction de la configuration définie par
l’administrateur, Nagios, qui n’est un fait qu’un noyau (core), exécute les plugins et analyse
les résultats obtenus.
Ressources
Plugin ou Services
Locaux
Processus Nagios
(Noyau) Plugin
Ressources
Plugin ou Services
Distants
Hôte
Hôte local
local Hôte
Hôte distant
distant
Principe
Principe de
de fonctionnement
fonctionnement de
de Nagios
Nagios
Concrètement, comme le montre ce schéma, il est possible d’effectuer des tests de toutes
sortes sur la machine Nagios (fonctionnement de services, espace disque, charge, ...). On peut
également effectuer des tests sur des machines distantes, mais dans la mesure où il s’agit de
Fonctionnalités avancées
Il reste donc le problème des tests avancés sur un hôte distant comme la vérification de
l’espace disque.
Nrpe et nsca
La première réponse apporté par le concepteur de Nagios est nrpe : Nagios Remote Plugin
Executor. Il s’agit en fait d’un plugin à part entière, mais qui a la particularité de permettre
l’exécution d’un autre plugin, cette fois-ci, sur la machine distante. Ce système utilise le
démon nrpe, installé au préalable sur la machine distante. Le plugin check_nrpe va permettre
à la machine Nagios d’envoyer l’instruction au démon nrpe d’exécuter un test avancé en local
sur la machine distante.
Cependant, nrpe constitue une méthode de surveillance dite active, c’est-à-dire que l’initiateur
et ordonnanceur des tests est la machine Nagios. Une autre solution envisageable est la
méthode dite passive. Dans ce cas, ce n’est plus la machine Nagios qui est à l’origine des
tests. Un client nsca (Nagios Service Check Acceptor) est installé, configuré et lancé sur
chaque hôte distant, de sorte à envoyer spontanément à la machine Nagios, exécutant le
démon nsca, des résultats de tests. Nagios pourra dès lors voir ces résultats quand il le
souhaitera.
Cette méthode présente l’avantage de ne pas avoir à ouvrir de port sur le firewall en entrée de
réseau (jonction internet/réseau). En effet, comme les informations sont envoyées par le client
nsca vers le démon présent sur la machine Nagios, il suffit juste de permettre le passage des
informations dans le sens sortant sur le firewall.
Hôte
Hôte distant
distant 22 Hôte
Hôte distant
distant 33
Ressources
ou Services
Distants Méthode
Plugin
Active
Ressources
ou Services
Distants
NSCA NRPE Plugin
Méthode
Passive
NCSA Plugin
Ressources
Plugin ou Services
Locaux
Processus Nagios
(Noyau) Plugin
Ressources
Plugin ou Services
Distants
Hôte
Hôte local
local Hôte
Hôte distant
distant 11
NRPE
NRPE et
et NSCA
NSCA
En pratique
Nagios et Asterisk
Asterisk est le cœur de notre système. Il est donc primordial que Nagios puisse le superviser.
Comme nous l’avons déjà dit, Nagios fonctionne avec des scripts. Il faut donc faire un script
capable de tester Asterisk :
#!/usr/bin/perl
$ENV{'PATH'}='';
$ENV{'BASH_ENV'}='';
$ENV{'ENV'}='';
$| = 1;
my $mgr_user = "<MANAGER_USER>";
my $mgr_secret = "<MANAGER_PATH>";
my $failed = 0;
my $reason = undef;
my $server_ip = "<MANAGER_HOST>";
exit 0;
__END__
Soit le système est dans un état critique et dans ce cas le script nous l’indique, soit le système
est opérationnel.
Il faut donc indiquer à Nagios que ce script existe. Pour cela on va créer une commande
« Check_pbx » qui va exécuter ce script. Pour ça, il faut rajouter dans le fichier
« checkcommands.cfg » les commandes suivantes :
define command{
command_name check_pbx
Finalement, on peut définir le service Asterisk dans Nagios. Cela se fait dans le fichier
« services.cfg » :
define service{
use generic-service
host_ pbxhost
service_description AsteriskPBX
is_volatile 0
check_period 24x7
contact_groups helpdesk
max_check_attempts 10
normal_check_interval 5
retry_check_interval 1
notification_interval 60
notification_period 24x7
notification_options w,u,c,r
check_command check_pbx
}
Notre serveur « pbxhost » est donc désormais supervisé par Nagios et si jamais le service
n’est plus opérationnel, on sera informé.
ServerView contrôle et évalue les systèmes ainsi que les unités de stockage connectées au
réseau, et fournit les données les plus importantes concernant la charge du système et l'état
actuel de ses divers éléments. ServerView est fourni avec les serveurs Fujitsu-Siemens.
Les agents sont des applications spécifiques qui s'exécutent sur les systèmes à contrôler. Ils
recueillent l'information demandée par le gestionnaire et la lui transmettent. Les agents
peuvent également transmettre au gestionnaire des événements exceptionnels sur les serveurs,
concernant des pannes sur la ventilation, la charge du processeur, la température, etc. Ceci
signifie que - si des valeurs spécifiées sont dépassées, ou si le système a un incident - des
mesures correctives peuvent être lancées en temps utile. ServerView dispose d'agents SNMP
pour la plupart des systèmes d'exploitation : NT 4 et Windows 2000, de Microsoft, NetWare
de Novell, Linux (SuSe et Red Hat), UnixWare (pour certains serveurs), de SCO, OS/2 Warp
Server (pour certains serveurs) d’IBM.
Station de
Management
Serveur
administrés
Architecture
Architecture ServerView
ServerView
Fonctionnalités
ServerView complète parfaitement Nagios en apportant d’autres fonctionnalités :
- Serveur de liste - affiche les informations de tous les serveurs et ordinateurs du réseau,
de manière graphique et synthétique.
- Gestion des pannes - Le transfert des données de configuration d'un serveur à un autre
par le réseau permet de gagner un temps considérable pendant l'installation et la
reconfiguration du système.
- Gestion d'alarme - a pour but d'informer l'administrateur sur les erreurs système d'une
manière rapide, correcte, et fiable. ServerView offre des fonctionnalités de gestion
d'alarme, simples à configurer, depuis l'affichage et la journalisation des alarmes,
jusqu'à l'appel téléphonique.
- Web Extension - L'option Web Extension de ServerView permet d'accéder à toutes les
informations via Internet ou Intranet, à tout moment, en tout lieu et depuis tout
système d'exploitation supportant des navigateurs Internet standard.
7) Management
La gestion d’un cluster n’est pas une tache facile. Même si la solution ne compte actuellement
moins d’une dizaine de machines, il n’est pas improbable que la centaine soit dépassé un jour.
Ainsi, il faut mettre en place dès maintenant les processus pour gérer un tel parc :
l’installation, la maintenance, etc.
a) xCAT
Introduction
xCAT est un outil gratuit proposé par IBM. Il permet d’automatiser la plupart des taches liées
à l’installation et à la configuration d’un cluster.
xCAT est un ensemble de script (korn shell, perl et Expect). Il est donc facile de les modifier.
Les fonctionnalités offertes par xCAT peuvent être séparé en quatre familles : l’installation, la
maintenance, l’administration et l’accès distant
L’installation
xCAT offre différents composants pour une installation automatique :
- Configuration automatique
La maintenance
Les options de maintenance dépendent du matériel utilisé. En effet, xCAT ayant été
développé par IBM, il supporte principalement des serveurs IBM eServer. Par ailleurs,
ServerView offre des options beaucoup plus poussées.
L’administration
xCAT offre des outils pour la gestion du cluster :
L’accès distant
xCAT offre la possibilité de se connecter à distance aux différents nœuds, grâce à une
compatibilité avec différents composants :
- iTouch In-Reach et LX
- RCR de IBM
- VNC
- Configuration du réseau
- Remplissages des tables de xCAT (les tables contiennent les informations du cluster)
Installation du cluster
Une fois le nœud de gestion complètement configuré, il faut configurer et installer les autres
composants du cluster. Il y a quatre étapes :
- Configuration du matériel
Une fois le matériel configuré et les adresses MAC récoltées, il est possible de lancer
l’installation et la configuration des nœuds depuis le nœud de gestion. Durant l’installation,
tous les nœuds vont démarrer sur le réseau, se connecter au serveur de gestion et démarrer
l’installation automatiquement :
Nœuds de Nœud de
calcul Gestion
Requête DHCP
Configuration IP
Serveur DHCP
Adresse IP du serveur TFTP
Démarrage via le Nom du fichier Boot
réseau avec le
PXE
Démarrage sur
un disque local
Installation
Installation automatique
automatique d’un
d’un nœud
nœud de
de calcul
calcul
Quand un nœud démarre sur le réseau, il fait une requête DHCP pour obtenir la configuration
du réseau. Le serveur DHCP lui retourne une adresse IP et les autres paramètres. Il retourne
également le nom du fichier de démarrage (Bootfile) et l’adresse IP du serveur TFTP où il se
trouve. Le fichier de démarrage utilisé par linux est appelé « pxelinux.0 »
Cette méthode permet donc une gestion simple et rapide des noeuds de calcul. Pour installer
un nouveau nœud, il suffit d’activer le démarrage via le réseau et xCAT fera le reste.
b) VPN
Les réseaux locaux d'entreprise (LAN ou RLE) sont des réseaux internes à une organisation,
c'est-à-dire que les liaisons entre machines appartiennent à l'organisation. Ces réseaux sont de
plus en plus souvent reliés à Internet par l'intermédiaire d'équipements d'interconnexion. Il
arrive ainsi souvent que des entreprises éprouvent le besoin de communiquer avec des filiales,
des clients ou même du personnel géographiquement éloignées via internet.
Pour autant, les données transmises sur Internet sont beaucoup plus vulnérables que
lorsqu'elles circulent sur un réseau interne à une organisation car le chemin emprunté n'est pas
défini à l'avance, ce qui signifie que les données empruntent une infrastructure réseau
publique appartenant à différents opérateurs. Ainsi il n'est pas impossible que sur le chemin
parcouru, le réseau soit écouté par un utilisateur indiscret ou même détourné. Il n'est donc pas
concevable de transmettre dans de telles conditions des informations sensibles pour
l'organisation ou l'entreprise.
Ce réseau est dit virtuel car il relie deux réseaux "physiques" (réseaux locaux) par une liaison
non fiable (Internet), et privé car seuls les ordinateurs des réseaux locaux de part et d'autre du
VPN peuvent "voir" les données.
Le système de VPN permet donc d'obtenir une liaison sécurisée à moindre coût, si ce n'est la
mise en oeuvre des équipements terminaux. En contrepartie il ne permet pas d'assurer une
qualité de service comparable à une ligne louée dans la mesure où le réseau physique est
public et donc non garanti.
Ce système peut être facilement mis en place grâce aux Firewall Ingate. Cela permet par
exemple de relier le cluster à certains clients qui ont besoin d’un haut niveau de sécurité, ou à
un centre de supervision :
Solution
Hébergée
Firewall
Ingate
VPN VPN
Internet
LAN
Supervision Client
BSNetwork Critique
Utilisation
Utilisation de
de VPNs
VPNs
Fujitsu-Siemens propose une carte de connection à distance qui est independante du système.
Il est possible, grâce à cette carte, de faire une redirection des flux clavier, souris et vidéo. Il
est également possible de simuler un lecteur. Il est ainsi possible de démarrer le serveur à
partir d’un périphérique distant installé sur une station de management. Cela signifie que l’on
peut réinstaller le serveur à distance si nécessaire…
2) Pandatrade
Pandatrade dispose déjà d’équipement en provenance de BSNetwork. La solution
BS@VoiceLan est positionnée en parallèle des autres offres (Firewall en particulier) :
Pandatrade Internet
Opérateur
VoIP
Colt Via Oléane
France
Telecom
ISDN
WallLan
Wall
Sip Firewall
Premium
LAN
VoiceLan Passerelle
Ordinateur
PhoneIP
Serveur
Téléphonie
Téléphonie IP
classique
3) Marionnaud
L’objectif chez Marionnaud est d’équiper au final le site de Vincennes en tout IP :
Vincennes
France
iPBX hébergé Telecom
Opérateur
VoIP
WAN
iPBX
France
Telecom
ISDN
FireWall SIP
LAN
Passerelle VoIP
Ordinateur
Téléphones IP
Téléphonie Serveur
classique Téléphonie IP
Il est alors possible de supprimer la téléphonie classique. De plus, en installant des passerelles
sur les autres sites, les communications entre sites deviennent gratuites.
4) CNPS
Le CNPS est composé du siège et de 6 agences. L’architecture proposée a été la suivante.
a) Architecture globale
Réseau Global
20/10/2004 300 postes
1E
LINK
ACT
ETH 0
EN
SERIAL A/S
7 6 5 4
Cisco 3640
2 NM-1E
EN
3 2 1 0
1E
ISDN
ETH 0
LINK
ACT EN
2 * T2
1 NM-8A/S PABX
Alcatel
/s
s/s bits Ra
Mbit M 6,5 M dio
io 6,5 6,5
Rad dio bits/s
Ra
CONN SERIAL CONN SERIAL CONN SERIAL CONN SERIAL CONN SERIAL CONN SERIAL
Cisco 1605 R Cisco 1605 R Cisco 1605 R Cisco 1605 R Cisco 1605 R Cisco 1605 R
70 postes
1 * T2 ?
?
Yopougon Yopougon
C. d’appareillage CIFOCSS
ISDN
b) Siège central
ISDN
6 agences
1E
ETH 0
SERIAL A/S
Cisco 3640 2 * T2
2 NM-1E
7 6 5 4
LINK
ACT EN
EN
3 2 1 0
1E
ETH 0
LINK
1 NM-8A/S
ACT EN
Passerelle VoIP
LAN
PABX
Alcatel
Postes IP
IP PBX
300 postes
Siège de la CNPS
20/10/2004
c) Agences
L’architecture est relativement identique pour l’ensemble des agences. Ci-dessous, l’exempel
de Cocody :
Radio
Siège
6,5 Mbits/s
ISDN
Cisco 1605 R
CONN SERIAL
1 WIC-1T T2
PABX Matra
Postes IP
XII. Migration
1) Introduction
Une migration vers la VoIP doit se faire de manière rigoureuse sinon le projet est voué à
l’échec.
Tout d’abord il faut préparer la migration en vérifiant les infrastructures réseaux LAN/WAN
et téléphoniques existantes. Il est également nécessaire de communiquer avec l’administration
de la téléphonie et les utilisateurs.
2) Les acteurs
Actuellement, les acteurs qui proposent des solutions VoIP sont soit issus de la téléphonie
classique, soit issus du monde des réseaux IP. Ces derniers arrivent avec une perspective de
conquête, alors que les autres font du protectionnisme.
3) Méthodologie
Quel que soit l’acteur, le passage vers la VoIP doit se faire de manière méthodique.
a) Collecte d’informations
La première chose à faire est de recenser l’existant et de collecter les informations
pertinentes :
- Plan de numérotation
- La politique sécurité
- Fonctionnalités déployées
- La sécurisation
b) Analyse de données
A partir des données collectées, il faut identifier les besoins et les contraintes. Tout d’abord,
quels sont les besoins des utilisateurs en fonction de leurs profils et de leurs métiers (fonctions
téléphoniques de base ? évoluées ? ou une véritable convergence Voix et Données ?). Ensuite,
est-ce qu’il existe des communications inter sites ? Dans ce cas, il faut faire la matrice de
trafic par profil de poste. De même, il faut étudier le besoin en termes de sécurité et de
disponibilité, en fonction du site et de l’utilisateur.
d) Le plan directeur
La fin de l’étude sur la migration vers la technologie VoIP se termine par la rédaction d’un
plan directeur de migration de la téléphonie.
Ce plan directeur doit tout d’abord désigner les objectifs et leurs priorités.
Il faut planifier les phases de migration technique, en déduire des plannings de mise à jour des
infrastructures et évaluer les budgets correspondants.
e) Phase pilote
Afin de valider la solution, il faut valider l’acceptabilité des utilisateurs. Pour cela, un nombre
restreint d’utilisateurs en IP est migré en IP. En fonction de leurs remarques, il faut adapater
le plan de migration.
f) Migration
La migration doit se faire de manière progressive (services, agences, domaines applicatifs,
etc.), à des périodes creuses (La nuit, le week-end, etc.) et au rythme des capacités
d’investissement.
Nouveaux
Stratégie
services
25%
23%
Parmi tous les acteurs de la téléphonie sur IP, les opérateurs de télécommunications tiennent
une place prépondérante. L’enjeu est de taille puisque le marché ciblé concerne aussi bien les
entreprises que les particuliers. Le développement d’offres de transfert de voix basées sur le
protocole IP constitue potentiellement un élément majeur du marché des télécommunications.
De nos jours, la majorité des communications téléphoniques a lieu sur le réseau commuté
(RTC) mais la tendance risque de s’inverser.
Du coté des opérateurs, le transport de la voix sur les réseaux de données présente plusieurs
avantages :
- Une bande passante optimisée grâce aux techniques de compression (et la possibilité
de supprimer les silences).
Pour les utilisateurs et les fournisseurs de services, deux principales raisons justifient
l’utilisation de cette technologie :
- Les économies réalisées sur les appels longues distance : il est possible d’appeler
n’importe où dans le monde pour le prix d’une communication locale. Ces économies
sont toutefois nuancées en raison de la baisse des prix introduite par la concurrence
nationale.
Appels Internationaux
50000 30
45000
25
40000
35000
20
30000 Minutes d'appel internationales
(Millions)
25000 15
Minutes d'appel internationales
20000 (%)
10
15000
10000
5
5000
0 0
1997 1998 1999 2000 2001 2002 2003
En termes d'offre, de nombreux constructeurs (plus d'une centaine rien que pour les
passerelles) offrent des systèmes (équipements et/ou logiciels) permettant à des internautes
sur PC d'ajouter la dimension vocale, à des entreprises d'interconnecter leurs PABX et leurs
réseaux intranet pour la voix, à des fournisseurs d'accès ou de service Internet d'offrir des
services de voix et de fax sur IP, etc. On peut en citer quelques uns comme Vocaltec, Lucent
technologies, 3COM, Nortel, Siemens,...
Des sociétés telles que IDT, Net2phone, Qwest, Deltathree, USA Global Link, ITXC Corp,
Sonera (Telecom Finland), Glocalnet (Suède), Networks Telphony Corporation, Concentric
Network, level 3, ICG Netcom, ... se sont érigées en ce que l'on a appelé plus haut des
"pseudo-opérateurs", c'est-à-dire qu'elles proposent à tout abonné au téléphone traditionnel de
bénéficier de tarifs attractifs en faisant passer leurs communications longue distance par
Internet via leurs passerelles.
Ainsi, en 2004, la pénétration moyenne de la téléphonie sur IP est estimée à 9% et ce, sans
réelle différence selon les profils de sites. Progressive jusqu’en 2006, elle devrait décoller
véritablement en 2007, portée notamment par un nombre significatif prévisible de
renouvellements de PABX traditionnels. Pour les sites de moins de 300 postes, la pénétration
sera supérieure à 50% en 2008 :
70
60
50
< 100 postes
40
100 - 300 postes
30
> 300 postes
20
10
0
2004 2005 2006 2007 2008
De plus, en téléphonie sur IP, pour s'accommoder des différents maillons de la chaîne côté
utilisateur (rapidité des modems notamment, dans le cas de l'utilisation de micro-ordinateurs),
on pratique une compression de l'information numérique qui fait passer la voix numérisée du
débit standard de 64 kbit/s à un débit de moins de 10 kbit/s, d'où là encore une meilleure
utilisation des liaisons.
Enfin, en vu de cette conception différente des équipements, on est conduit dans le cas de la
téléphonie sur IP à accepter des fonctionnalités différentes de celles de la téléphonie
classique, notamment en termes de qualité de service dans tous les sens du terme.
Dans le cas d'une utilisation de micro-ordinateurs par deux internautes, il est clair que les
utilisateurs ne se sont pas équipés spécialement pour faire du téléphone. Ils ont donc tout
naturellement tendance à ne tenir compte d'aucun amortissement de leurs équipements
informatiques. Pour eux, au delà de l'acquisition éventuelle d'un logiciel spécialisé (en plus du
logiciel de voix dont on dispose déjà le plus souvent et que l'on peut de toutes façons
télécharger gratuitement) et d'un microphone (les haut-parleurs sont maintenant livrés "en
série"), le seul prix ressenti est celui d'une communication téléphonique locale, quelle que soit
la localisation géographique du correspondant.
Dans le cas d'une utilisation de type "PC to phone", on est à peu près dans la même situation ;
en particulier, dans le cas des applications vraisemblablement très prometteuses de type "PC
to Call Centre" (en accompagnement d'une transaction de commerce électronique), le prix
pour l'utilisateur est celui de la communication locale qu'il avait initiée pour se connecter sur
Internet en vue de sa transaction commerciale.
Dans le cas de l'utilisation de boîtiers d'adaptation, on a affaire à des applications très ciblées
du type de l'expatrié souhaitant garder un contact fréquent avec sa famille. Le prix à payer par
les utilisateurs doit être alors calculé en tenant compte à la fois des coûts de communication
(une voire deux communications locales, donc un prix dépendant des pays concernés) et de
l'incidence de l'amortissement du coût des boîtiers achetés des deux côtés (qui dépend bien
sûr du taux d'utilisation).
Enfin, les pseudo-opérateurs, par exemple fournisseurs d'accès (IAP) ou de services (ISP)
s'équipant en passerelles avec les réseaux téléphoniques locaux des zones géographiques
d'offre du service, sont bien évidemment amenés à répercuter, sur le prix facturé à l'utilisateur,
l'amortissement de tous les équipements installés par leur soins et à faire payer à l'utilisateur
un prix dépendant de l'usage effectif par ce dernier.
XIV. Conclusion
A travers ce travail j’ai dans un premier temps présenté la notion de Voix sur Internet qui est
d’actualité aujourd’hui. Depuis peu, il n’est plus considéré comme un service margina mais
bien comme le service appelé à supplanter le téléphone classique. La téléphonie sur Internet
se développe rapidement pour différentes raisons :
Cela m’a permis d’introduire les différentes difficultés les fournisseurs d’équipement
d’infrastructure doivent faire face pour développer des réseaux de voix sur IP. Enfin, je me
suis intéressé à la présentation des protocoles et normes utilisées pour faciliter l’arrivée de
cette technologie ce qui m’a permis de m’apercevoir de nouveaux défis à relever pour les
constructeurs de terminaux et d’équipement d’infrastructure ainsi que pour les opérateurs
téléphoniques. Les opérateurs télécoms prennent la menace au sérieux, à tel point que certains
tentent de freiner cette évolution et d’autres mettent le réseau IP au centre de leur stratégie.
Tous les grands de l’informatique sont aujourd’hui de la partie. Actuellement, il est évident
que la téléphonie IP va continuer de se développer dans les prochaines années. Le marché de
la téléphonie IP est très jeune mais se développe à une vitesse fulgurante. C’est aujourd’hui
que les entreprises doivent investir dans la téléphonie IP si elles veulent y jouer un rôle
majeur.
Le fait est que IP est maintenant un protocole très connu et qui a fait ses preuves et que
beaucoup d’entreprises disposent ou vont disposer d’un LAN. Ceci est le grand avantage de la
téléphonie IP car elle demande un très faible investissement pour son déploiement. La
téléphonie IP ouvre la voie de la convergence voix/données et celle de l’explosion de
nouveaux services. De plus, maintenant que la normalisation a atteint une certaine maturité, il
n’est plus dangereux de miser sur le standard SIP qui a été accepté par l’ensemble de la
communauté. La téléphonie IP est donc une bonne solution en matière d’intégration, de
fiabilité, d’évolutivité et de coût.
Dès à présent, il est possible de prévoir qu'un développement substantiel devrait se faire dans
le domaine des télécommunications d'entreprises car c'est là que la notion d'intégration
complète voix-données pourra prendre toute sa dimension économique. Il est même
vraisemblable que c'est par ce biais que s'introduiront de nouveaux services tels que la
visiophonie, la téléconférence, la visioconférence, dont on parle depuis longtemps. Le
développement de la téléphonie entre passerelles, de poste ordinaire à poste ordinaire, est
quant à lui vraisemblablement voué, dans un premier temps, à un écrémage du trafic sur des
zones géographiques où une telle implantation s'avérerait rapidement rentable. Le
déploiement ira-t-il ensuite plus loin, par effet d'entraînement ? Probablement, comme le
laissent supposer les annonces qui se multiplient dans ce domaine. Il permettra alors des
communication à bas coût et il est clair qu'en tout état de cause, la résultante nette de cette
apparition sera une baisse de coût généralisée des tarifs de télécommunications, à longue
distance et notamment en international, quels que soient les moyens utilisés.
XV. Annexe
1) Glossaire
Terme Définition
Abréviation de ACKnowledged ou ACKnowledgement. Code indiquant
ACK
un accusé de réception.
AD-PCM Adaptive Differential PCM
AMI Alternate Mark Inversion
API Applicaton Programming Interface
ARP Adress Resolution Protocol
ASP Application Service Provider
ATA Analog Telephone Adaptor
ATM Asynchronous Transfer Mode
Backbone Epine Dorsale
Base Rate Interface : accès de base au RNIS. Composé de 2 canaux B
BRI
pour les données et d’un canal D pour la signalisation.
B8ZS Bipolar 8 Zeros Substitution
CAS Channel Associated Signaling
CBX Converged Branch eXchange -PABX IP
CCS Common Channel Signaling
CELP Code Exited Linear Prediction
Customer Premise Equipment -Equipement installé chez le client (fourni
CPE
par l‘opérateur ou par le client)
CTI Couplage Téléphonie Informatique (Computer Telephony Integration)
CVSD Continuously Variable Slope Delta
DCME Digital Circuit Multiplication Equipement
DHCP Dynamic Host Control Protocol
DSP Digital Signal Processor
DTMF Dual Tone Multi Frequency
DWDM Dense Wavelenght Division Multiplex
E&M Earth & Mouth
EMC Equipements Multiplicateurs de Circuits
ESF Extended Super Frame
FAI / ISP Fournisseur d'Accès Internet -Internet Service Provider
Frame Relay Relais de trames
FTP File Transfer Protocol
FTP File Transfer Protocol -Protocole de Transfert de Fichier
Gatekeeper Routeur d'appels
Variance du délai d‘acheminement d‘un paquet d‘un émetteur à un
Gigue
destinataire donné
GNU Licence pour les projets Open-Source
GSM Global System for Mobile Communications
GUI Graphical User Interface
H323 Protocole de contrôle d'appel créé par l'UIT-T
HDLC High Level Data Link Control
HMP Host Media Processing
HTTP HyperText Transfer Protocol -Protocole de transfert Hypertexte
IAP Internet Access Provider
IN Intelligent Network : réseau intelligent
IP Internet Protocol
IPDC Internet Protocol Device Control
ISP Internet Services Provider
IT Intervalles de Temps (Time Slots)
Internet Telephony Service Provider -Fournisseur d'Accès de
ITSP
Téléphonie par Internet
ITU International Telecommunication Union
IVR Interactive Voice Response
LAN Local Area Network
LCC Lost Calls Cleared : l’appel est rerouté
LCD Lost Cost Delayed : l’appel est mis en attente
LCH Lost Calls Held : l’appel est définitivement perdu
LCR Lost Calls Retried : l’appel est perdu avec une nouvelle tentative
LDAP Lightweight Directory Access Protocol
LLQ Low Latency Queuing -Mise en file d'attente à faible latence
MAC Media Access Control
MC Multipoint Controler
MCU Multipoint Control Unit
Media Gateway Control Protocol -Protocole de contrôle d'appels &
MGCP
gestion des passerelles PABX
MOS Mean Opinion Score : moyenne de l’opinion d’écoute
MP Multipoint Processor
NIC Network Interface Card
PABX Private Automatic Branch eXchange -Commutateur d'entreprise
PAM Pulse Amplitude Modulation
PCM Pulse Code Modulation
Position
Eléments composant le poste de travail d‘un téléopérateur
(centre d‘appel)
POTS Plain Old Telephone Service
Primary Rate Interface : accès primaire au RNIS. Composé de 30
PRI
canaux B pour les données et d’un canal D pour la signalisation.
PSTN Public Switched Telephone Network
QoS Quality of Service –Qualité de service
RFC2833 Request For Comment du SIP
RNIS Réseau Numérique à Intégration de Services
ROI Return On Investment –Retour Sur Investissement
RPE-LTP Regular Pulse Excitation – Long Terme Prediction
RPV Réseau Privé Virtuel
RSVP Resource Reservation Protocol -Protocole de Réservation de Ressources
RTC Réseau téléphonique commuté
RTCP Réseau Téléphonique Commuté Public
Real Time Control Protocol. Protocole lié à RTP véhiculant de manière
RTCP
sûre des informations relatives à la transmission RTP
Real Time Protocol. Protocole de transport temps réel généralement
RTP
utilisé pour le transport d‘audio, de la vidéo et des données
SCP Service Control Point
SGCP Simple Gateway Control Protocol
Session Initiation Protocol -Protocole de contrôle d'appels créé par
SIP
l'IETF
SLA Service Level Agreement œ clauses contractuelles entre un fournisseur
2) Tonalité française :
Tonalité Fréquence Durée
DIAL TONE 440//330+440 CONTINUOUS
RINGING TONE 440 1.5 – 3.5
BUSY TONE 440 0.5 – 0.5
SPECIAL
950/1400/1800 (3×0.3 – 2×0.03) – 1.0
INFORMATION TONE
ROUTE TONE 440 0.05 – 0.05
L‘ambition de France Télécom est d‘accompagner les entreprises dans leurs projets en leur
proposant les solutions de communication les mieux adaptées. Nous avons l‘expertise des
services de téléphonie et de réseaux IP ; nous connaissons bien aussi les contraintes et les
attentes des entreprises. Cette expérience, couplée à notre force d‘innovation, nous a permis
d‘être les premiers à lancer un service de téléphonie managé sur IP en France, afin d‘aider nos
clients dans la migration progressive vers des services IP adaptés à leur taille : des offres
packagées pour les PME/PMI et des solutions personnalisées et sur mesure pour les grandes
entreprises et les multinationales.
Un autre axe fort de diversification de notre offre repose sur les solutions de Centrex IP. Le
lancement de l‘offre e-téléphonie en juin 2004, permet aux entreprises souhaitant bénéficier
des avantages de la Téléphonie sur IP d‘externaliser la plate-forme IP, ainsi que sa gestion, au
niveau du cœur de réseau. A l‘échelle internationale, nous sommes présents à travers Equant
dans 200 pays hors de France où nous sommes capables d‘offrir l‘expertise du groupe France
Télécom dans la voix et la data/IP.
Les réticences ou l‘attentisme des entreprises face à la Téléphonie sur IP s‘expliquent parfois
par la complexité de certains déploiements. Le retour sur investissement s‘avère aussi parfois
difficile à évaluer dans certaines configurations.
Une des réponses que nous apportons, en tant qu”opérateur, consiste à mettre en place des
passerelles voix au cœur des réseaux IP. Chaque site migré en Téléphonie sur IP peut donc
s‘appuyer sur ces passerelles qui assurent la collecte et la terminaison des appels OFF-NET
du RTC. Les communications nationales sortantes peuvent être ainsi acheminées au plus près
et deviennent des communications locales, d‘où une réduction des coûts de trafic. Un autre
gain financier provient de la substitution par ces passerelles des liens T0/T2 placés en sortie
des sites, traditionnellement utilisés pour le trafic OFF-NET entrant et sortant du RTC.
Equant propose d‘ailleurs déjà ce type de solutions pour acheminer les communications
internationales OFF-NET de 130 multinationales clientes. Cette solution va dans le sens d‘une
amélioration du ROI d‘un projet mais aussi d‘une progressivité des investissements. En plus
de cet aspect économique, cette solution présente l‘avantage de permettre le portage des
numéros noirs et ainsi la possibilité de conserver le plan de numérotation existant.
45 32,478 32,824 33,140 33,432 35,607 37,155 39,550 44,165 52,322 72,669 45
46 33,353 33,705 34,026 34,322 36,534 38,108 40,545 45,243 53,559 74,333 46
47 34,230 34,587 34,913 35,215 37,462 39,062 41,540 46,322 54,796 75,997 47
48 35,108 35,471 35,803 36,109 38,392 40,018 42,537 47,401 56,033 77,660 48
49 35,988 36,357 36,694 37,004 39,323 40,975 43,534 48,481 57,270 79,324 49
50 36,870 37,245 37,586 37,901 40,255 41,933 44,533 49,562 58,508 80,988 50
0,007 0,008 0,009 0,010 0,020 0,030 0,050 0,100 0,200 0,400
5) Débit / codecs
Bande
Codec Durée du paquet passante
(kbps)
G.711 (PCM) 64kbps non compressé 10 millisecondes (80 échantillons) 96
G.711 (PCM) 64kbps non compressé 20 millisecondes (160 échantillons) 80
G.711 (PCM) 64kbps non compressé 30 millisecondes (240 échantillons) 75
G.711 (PCM) 64kbps non compressé 40 millisecondes (320 échantillons) 72
G.711 (PCM) 64kbps non compressé 80 millisecondes (640 échantillons) 68
G.723.1 (ACELP) 5.3kbps compressé 30 millisecondes (1 échantillon) 16
G.723.1 (ACELP) 5.3kbps compressé 60 millisecondes (2 échantillons) 11
G.723.1 (ACELP) 5.3kbps compressé 90 millisecondes (3 échantillons) 9
G.723.1 (MP-MLQ) 6.4kbps compressé 30 millisecondes (1 échantillon) 18
G.723.1 (MP-MLQ) 6.4kbps compressé 60 millisecondes (2 échantillons) 12
G.723.1 (MP-MLQ) 6.4kbps compressé 90 millisecondes (3 échantillons) 10
G.726 (ADPCM) 32kbps compressé 10 millisecondes (80 échantillons) 64
G.726 (ADPCM) 32kbps compressé 20 millisecondes (160 échantillons) 48
G.726 (ADPCM) 32kbps compressé 30 millisecondes (240 échantillons) 43
G.726 (ADPCM) 32kbps compressé 40 millisecondes (320 échantillons) 40
G.726 (ADPCM) 32kbps compressé 80 millisecondes (640 échantillons) 36
G.728 (LD-CELP) 16kbps compressé 10 millisecondes (16 échantillons) 48
G.728 (LD-CELP) 16kbps compressé 20 millisecondes (32 échantillons) 32
G.728 (LD-CELP) 16kbps compressé 30 millisecondes (48 échantillons) 27
G.728 (LD-CELP) 16kbps compressé 40 millisecondes (64 échantillons) 24
G.728 (LD-CELP) 16kbps compressé 80 millisecondes (128 échantillons) 20
G.729A (CS-CELP) 8kbps compressé 10 millisecondes (1 échantillons) 40
G.729A (CS-CELP) 8kbps compressé 20 millisecondes (2 échantillons) 24
G.729A (CS-CELP) 8kbps compressé 30 millisecondes (3 échantillons) 19
G.729A (CS-CELP) 8kbps compressé 40 millisecondes (4 échantillons) 16
G.729A (CS-CELP) 8kbps compressé 80 millisecondes (8 échantillons) 12
- Music de fond (BackGround Music : flux mp3 ou fichier audio, en fonction des
demandes)
- Enregistrement des détails d’un appel (Call Detail Record : possibilité d’enregistrer les
détails dans une base de données)
- Visualisation des appels quand occupé (Call Display when busy : en fonction du
téléphone, le Cisco 7960 affiche le numéro de la personne qui appel)
- Génération d’appel (Call Generation : possibilité de générer des appels avec un script
- Transfert d’Appel (Call Forward : tous les appels, en cas d’occupation, en cas
d’absence, etc.)
- Standard automatique (Interactive Voice Response : menu avec sélection par touche,
possibilité de reconnaissance vocale)
- Messagerie Unifié (Unified Messaging : transfert des messages vers mail, pager, page
web, serveur ftp, etc. Possiblité de configurer le codec, la taille max., etc. Indication
visuelle et/ou sonore)
- Appel par Annuaire (Appel d’un contact via Outlook ou ACT – non testé avec Lotus
Notes)
- Standard Visuel (Visualisation de l’ensemble des appels avec une interface Flash :
visualisation des lignes occupées, qui sonnent et disponibles avec affichages des
numéros ; possibilité d’interagir : transférer, raccrocher, appeler, etc.)
- 2 E1 connections
- 30 or 60 calls to LAN
- QSIG - available for basic calls from Release 4 - tunneled QSIG (all supplementary
services) from Release 5
- NT / TE configurable
- Call detail records available - from Telnet and Serial interfaces - via Radius
accounting records
- SNMP
d) Environmental
- Operating temperature: 0ºC to +40ºC
e) Power
- 100 - 240 Vac, 47 - 63 Hz, 1A - 0.5A
f) Physical dimensions
- 440mm (17.4") x 63mm (2.5") x 330mm (13") width / height / depth
- Weight: 7.5kg
2 RJ-45 connectors are used; connectors 3 and 4 are reserved for future expansion
E1 Cables supplied :
g) Approvals
h) Tech Spec
E1 DSL Physical
- 120 Ohm connection
D-channel Signalling
- PRI Euro-ISDN/CTR4/NET4/DSS1
Par défaut, il existe une configuration Vega100T1E1_default). Il faut la désactiver. Pour cela,
il faut cliquer sur « Modify », décocher la case « Enabled » et cliquer sur « Submit » :
Il est maintenant nécessaire de créer un nouveau « profil ». Pour cela, il faut cliquer sur
« add » :
Une fois le nouveau profil créé, il faut le modifier en cliquant sur « Modify » à droite de
« new_profile » :
Ce profil va correspondre aux appels en provenance de l’ISDN et que nous allons transférer
vers le LAN ; nous pouvons donc l’appeler « ISDN_To_LAN ». En appuyant sur « Submit »
pour valider et en cliquant sur « Modify » une seconde fois, on obtient :
Il faut donc cliquer sur « Dial Plan » pour revenir au menu d’origine.
Il est alors nécessaire de créer un chemin inverse. C'est-à-dire de transférer les appels venant
du LAN vers le PBX ou l’ISDN.
- Nom : From_LAN
Ainsi, si le numéro commence par 01, l’appel est transféré sur le port ISDN 01 et si le numéro
commence par 02, l’appel est transféré sur le port ISDN 02.
- Local Domain : nom de domaine public du serveur proxy, utilisé par les autres
périphériques pour envoyer leurs messages INVITE
- Accept Non-Proxy Invites : si cette case est décochée, seul les appels en provenance
du proxy seront gérés.
c) Configuration de l’Authentification
L’environnement que nous utilisons nécessite que chaque appel soit préalablement autorisé.
Pour cela, nous employons l’authentification SIP avec un nom d’utilisateur et un mot de
passe. Le nom d’utilisateur est composé de trois parties : un préfix, un nom et un suffixe.
Supposons que nous ayons configuré un compte utilisateur avec « VegaGateway123 » comme
nom et « LetMeIn » comme mot de passe.
- Username : VegaGateway123
- Password : LetMeIn
- Source : IF :.*
d) Configuration de l’Enregistrement
En temps normal, une passerelle comme la Vega 100 n’a pas besoin de s’enregistrer sur un
proxy SIP. L’enregistrement SIP est destiné aux utilisateurs finaux qui doivent s’enregistrer
sur le serveur proxy, pour se faire connaître. En effet, une passerelle peut gérer plusieurs
milliers d’utilisateurs finaux et dans ce cas, l’existence de la passerelle et ses capacités sont
configurées directement au niveau du proxy SIP.
Dans le cas d’un appel routé de la téléphonie classique vers le protocole SIP, le proxy SIP est
généralement configuré pour accepter les appels en provenance de la Vega 100 et le numéro
appelé est placé dans le champ « request uri » par la Vega.
Dans le cas d’un appel routé du SIP vers la téléphonie classique, le proxy envoyé un paquet
avec un champ « request uri » du style : iittt…t@adresse où ii représente l’interface sur lequel
l’appel doit être transférer et ttt…t le numéro que la passerelle doit appeler.
Dans la section « Sip Registration Users Configuration », cliquez sur « SIP Registration
Users » :
Dans la section « Sip Registration User 1 », cochez la case « Enable », choisissez « none »
comme « Username Suffix » et « Vega100Gateway123 » comme « Username ».
Il est ensuite nécessaire de configurer chacun des ports. Dans notre configuration, le port 01
est connecté au PSTN et le port 02 est connecté au PBX. Le port 01 est donc configuré en
mode TE, et le port 02 en mode NT.
Il est nécessaire de signaler à la passerelle que son horloge interne doit être synchronisée avec
l’horloge du port 01.
Dans la section « Port Configuration », vérifiez que « g711Alaw64k » est bien sélectionné
pour le « layer 2 ». Ensuite, modifié la valeur du « DTMF Dial Timeout » à 5 :
Enfin, il faut sélectionner le nombre de canaux sur le lien. Sur la Page « SIP », dans le section
Port Configuration », cliquez sur le lien « Modify » du « PORT ID 1 » :
Validez. La Vega va redémarrer. Elle est prête pour gérer son premier appel.
Tout d’abord il est nécessaire de configurer le serveur TFTP dans la page « LAN », ensuite,
dans la page « Advanced » descendez jusqu’à la section « CLI command » :
Il est également possible d’envoyer la configuration vers un serveur FTP. Dans ce cas, la
ligne de commande sera « PUT ftp :initial_cfg.txt ». Si le serveur FTP nécessite un nom
d’utilisateur et un mot de passe, il faut les configurer de la manière suivante :
set _advanced.lan.ftp.anonymous_login=0
set _advanced.lan.ftp.username=<ftp username>
set _advanced.lan.ftp._password-<ftp password>
- Type = supplied
- Plan = supplied
- Presentation = supplied
- Screening = supplied
Dans la section « Setup Mapping – Called Party Number », modifiez les champs de « Map ID
1 » de la manière suivante :
- Type = supplied
- Plan = supplied
- « Setup Mapping » = 1.
A cet instant, il est possible de configurer le délai avant la numérotation d’un numéro
(« DTMF Dial Out ») mais également dans quel ordre attribuer les canaux. Pour cela il faut
savoir comment sont attribuer les canaux au niveau du PSTN et de l’IPBX. Il est possible de
le savoir grâce au lien « Show Ports » de la section System de la page « Management » :
A partir des informations visualisées aux cours des appels, il faut configurer le champ « Alloc
Channel » dans la section « Modify Port Group » de chaque port.
Ensuite, il faut créer un nouveau profil que nous appelons « Trunking_pass-thru ». Nous lui
rajoutons un plan avec les paramètres suivants :
- Name = PSTN_to_PBX
- Source = IF :01,TEL:<.*>
- Destination = IF :02,TEL:<1>
Nous lui rajoutons ensuite un deuxième plan avec les paramètres suivants :
- Name = PBX_to_PSTN
- Destination = IF:01,TEL:<1>
b) SIPDefault.cnf
# SIP Default Generic Configuration File
# Image Version
image_version: P0S3-07-2-00
# Proxy Server
proxy1_address: "francevoip.com" ; Can be dotted IP or FQDN
proxy2_address: "" ; Can be dotted IP or FQDN
proxy3_address: "" ; Can be dotted IP or FQDN
proxy4_address: "" ; Can be dotted IP or FQDN
proxy5_address: "" ; Can be dotted IP or FQDN
proxy6_address: "" ; Can be dotted IP or FQDN
# Out of band DTMF Settings (none-disable, avt-avt enable (default), avt_always - always avt )
dtmf_outofband: avt
# DTMF dB Level Settings (1-6dB down, 2-3db down, 3-nominal (default), 4-3db up, 5-6dB up)
dtmf_db_level: 3
# SIP Timers
timer_t1: 500 ; Default 500 msec
timer_t2: 4000 ; Default 4 sec
sip_retx: 10 ; Default 10
sip_invite_retx: 6 ; Default 6
timer_invite_expires: 180 ; Default 180 sec
# Dialplan template (.xml format file relative to the TFTP root directory)
dial_template: dialplan
# Time Server (There are multiple values and configurations refer to Admin Guide for Specifics)
sntp_server: "" ; SNTP Server IP Address
sntp_mode: directedbroadcast ; unicast, multicast, anycast, or directedbroadcast (default)
time_zone: EST ; Time Zone Phone is in
dst_offset: 1 ; Offset from Phone's time when DST is in effect
dst_start_month: April ; Month in which DST starts
dst_start_day: "" ; Day of month in which DST starts
dst_start_day_of_week: Sun ; Day of week in which DST starts
dst_start_week_of_month: 1 ; Week of month in which DST starts
dst_start_time: 02 ; Time of day in which DST starts
dst_stop_month: Oct ; Month in which DST stops
dst_stop_day: "" ; Day of month in which DST stops
dst_stop_day_of_week: Sunday ; Day of week in which DST stops
dst_stop_week_of_month: 8 ; Week of month in which DST stops 8=last week of month
dst_stop_time: 2 ; Time of day in which DST stops
dst_auto_adjust: 1 ; Enable(1-Default)/Disable(0) DST automatic adjustment
time_format_24hr: 1 ; Enable(1 - 24Hr Default)/Disable(0 - 12Hr)
# Do Not Disturb Control (0-off, 1-on, 2-off with no user control, 3-on with no user control)
dnd_control: 0 ; Default 0 (Do Not Disturb feature is off)
# Caller ID Blocking (0-disbaled, 1-enabled, 2-disabled no user control, 3-enabled no user control)
callerid_blocking: 0 ; Default 0 (Disable sending all calls as anonymous)
# Anonymous Call Blocking (0-disabled, 1-enabled, 2-disabled no user control, 3-enabled no user
control)
anonymous_call_block: 0 ; Default 0 (Disable blocking of anonymous calls)
# DTMF AVT Payload (Dynamic payload range for AVT tones - 96-127)
dtmf_avt_payload: 101 ; Default 101
# NAT/Firewall Traversal
nat_enable: 0 ; 0-Disabled (default), 1-Enabled
nat_address: "" ; WAN IP address of NAT box (dotted IP or DNS A record only)
voip_control_port: 5060 ; UDP port used for SIP messages (default - 5060)
start_media_port: 16384 ; Start RTP range for media (default - 16384)
end_media_port: 32766 ; End RTP range for media (default - 32766)
nat_received_processing: 0 ; 0-Disabled (default), 1-Enabled
# Allow for the bridge on a 3way call to join remaining parties upon hangup
cnf_join_enable : 1 ; 0-Disabled, 1-Enabled (default)
# Telnet Level (enable or disable the ability to telnet into the phone)
telnet_level: 1 ; 0-Disabled (default), 1-Enabled, 2-Privileged
# XML URLs
services_url: "http://195.68.111.21/CiscoIPServices/index.xml" ; URL for external Phone
Services
directory_url: "" ; URL for external Directory location
logo_url: "http://195.68.111.21/CiscoIPServices/asterisk-tux.bmp" ; URL for
branding logo to be used on phone display
# Remote Party ID
remote_party_id: 0 ; 0-Disabled (default), 1-Enabled
# Call Hold Ringback (0-off, 1-on, 2-off with no user control, 3-on with no user control)
call_hold_ringback: 0 ; Default 0 (Call Hold Ringback feature is off)
c) SIP001193B6F141.cnf
# SIP Configuration Generic File
line1_name: "33172770218" ; Line 1 Extension\User ID
line1_displayname: "Fred OGUER" ; Line 1 Display Name
line1_authname: "33172770218" ; Line 1 Registration Authentication
line1_password: "motdepasse" ; Line 1 Registration Password
# Phone Prompt (The prompt that will be displayed on console and telnet)
phone_prompt: "SIP Phone" ; Limited to 15 characters (Default - SIP Phone)
d) Ringlist.dat
Ahh! ahh.pcm
Doh! doh.pcm
Old Style ringer1.pcm
Synth Low ringer2.pcm
Dungeon ringer3.pcm
Lightbulb ringer4.pcm
Synth High ringer6.pcm
Are You There M AreYouThere.raw
Are You There F AreYouThereF.raw
ClockShop ClockShop.raw
e) Dialplan.xml
<DIALTEMPLATE>
<TEMPLATE MATCH="*" Timeout="5" /> <!-- commentaire-->
</DIALTEMPLATE>
12) DB_PSQL.PHP
<?php
class DB{
var $id;
var $qstring;
var $errmsg = "";
var $result;
function DB()
{
$q = pg_connect("host=192.168.6.23 user=xxxx dbname=voip
password=xxxx");
if (!$q) $this->errmsg .= "Connection à la base échouée!\n";
else $this->id = $q;
}
function query($query_string)
{
$this->qstring = $query_string;
$q = pg_query($this->qstring);
if (!$q) $this->errmsg .= "Requête echouée!\n";
else $this->result = pg_fetch_all($q);
function close()
{
$q = pg_close();
$this->id = "";
}
function getResult()
{
return $this->result;
}
};
?>
• Ingate : http://www.ingate.com
• Asterisk : http://www.asterisk.org
• Digium : http://www.digium.com
• Snom : http://www.snom.com
b) Informations divers
2) Documents techniques
a) Les standards
Désignation Description
draft_ietf_avt_profile_new_12 RTP Profile for Audio and Video Conferences with
Minimal Control
draft_ietf_avt_rtp_mime_06 MIME Type Registration of RTP Payload Formats
RTP Payload for Comfort Noise, Internet Draft of
draft_ietf_avt_rtp_cn_06 the Internet Engineering Task Force (IETF)
Audio/Video Transport (AVT) working group
draft_ietf_mmusic_sdp_comedia_04 Connection_Oriented Media Transport in SDP
ISDN Basic Rate Interface Call Control Switching
GR_268_CORE
and Signalling Generic Requirements
3) Ouvrages et présentations
• “SIP Understanding the Session Initiation Protocol”, Second Edition, Alan B.
Johnston – Editions Artech House
• “Advanced VoIP Tests Suites”, P. Miller, product datasheet, BRIX Networks, May,
2004.
• “SIP, Security and Session Controllers”, white paper, Newport Networks, April,
2004.
• “Service Assurance and Performance Management for VoIP Networks”, White Paper,
BRIX Networks, April, 2002.
• “SIP Call Setup Delay in 3G Networks”, Igor D.D. Curcio and Miikka Lundan, Nokia
Corporation, 2002.
• “Téléphonie sur IP”, Livre Blanc, Cesmo Consulting à l’initiative de France Telecom.
2004.