Généralités sur la VoIP

Définition de la VoIP

La voix sur réseau IP, souvent abrégée en « VoIP » (Voice over IP), est une technique qui permet de communiquer par voix à distance via le réseau Internet, ou tout autre réseau acceptant le protocole TCP/IP.

Au contraire des téléphones analogiques filaires (RTC) dépendant de centraux téléphoniques dédiés, la voix sur IP permet le transport de conversations téléphoniques sur tout réseau numérique ou analogique acceptant le protocole TCP/IP (Ethernet, RNIS, PPP, etc.)

Pré requis réseau

Pour que l'on puisse faire de la VoIP correctement sur un réseau IP, il faut qu'il répondent au moins au normes suivantes:

  • Perte de paquets < 1%
  • RTD < 150 ms
  • Jitter < 20 ms

Nous allons expliquer l'importance de ces paramètres:

Pour la perte de paquet, il parait évident qu'un taux de perte trop important rendra la voix ou l'image impossible à comprendre pour l'utilisateur.
Pas besoin de plus de détails sur ce point.

Nous allons par contre nous attarder un peu plus sur la définition du RTD (Round Trip Delay) et du Jitter (Gigue):

Le RTD représente le temps d'allez retour entre deux hôtes. Si il est trop long, il y aura un décalage important dans l'envoi de données.
Ce genre de problème se remarque essentiellement dans les conversations téléphoniques. Si il y a quelques secondes de délai entre l'émission et la réception, les deux personnes participant à la conversation ne pourrons pas se comprendre.

Le Jitter est le phénomène de fluctuation d'un signal. Cette fluctuation peut être un glissement de phase ou une dispersion temporelle. Elle génère des erreurs en sortie lors de la récupération des données.
Toujours dans le cas d'une conversation téléphonique, ce phénomène peut provoquer l'inversion d'ordre d'arrivée de paquets.
Pour simplifier le problème, disons qu'un paquet est représenté par un mot.
"Salut, comment vas tu?" pourrait devenir "Vas, Comment salut tu?" ce qui est innacceptable pour de la téléphonie.

Le protocole SIP

Lors de mes tests, j'ai testé Asterisk avec des SIP phone. J'ai donc utilisé le protocole SIP (Session Initiation Protocol).

SIP est un protocole normalisé et standardisé par l'IETF (décrit par le RFC 3261 qui rend obsolète le RFC 2543) qui a été conçu pour établir, modifier et terminer des sessions multimedia. Il se charge de l'authentification et la localisation des multiples participants.Il se charge également de la négociation sur les types de média utilisables en encapsulant des messages SDP (Session Description Protocol).
Par contre il ne se charge pas du transport des données; ainsi il est très permissif sur les moyens de les envoyer.

Ce protocole a quelques similitudes avec HTTP par exemple le format des adresses sip:1234@testhost où "1234" correspond à l'extension et donc au nom d'utilisateur et "testhost" à l'adresse du serveur où le client SIP est enregistré.

Voici un tableau contenant les avantages et inconvénients de ce protocole:

Avantages Inconvénients
Ouvert
les protocoles et documents officiels sont détaillés et accessibles à tous
Basé sur l'IP
SIP ne traverse pas les NAT
Standard
l'IETF a normalisé le protocole (rfc 3261)
Mauvaise implémentation
une mauvaise implémentation de SIP dans les User Agents peut perturber le fonctionnemen du réseau
Simple
SIP est simple voire simpliste et très similaire à HTTP
Présence et messagerie instantanée
SIP montre un certain nombre de faiblesses dans la gestion de la présence et la messagerie instantanée
Flexible
SIP est également utilisé pour tout type de sessions multimédia
Faible nombre d'utilisateurs
SIP est encore peu connu et utilisé par le grand public
Téléphonie sur réseaux publics
il existe de nombreuses passerelles vers le réseau public de téléphonie permettant d'émettre ou de recevoir des appels vocaux
 

Design by DbLe