III.2- Signalisation SIP (session initiation protocol)
SIP est un protocole développé par le groupe de
travail MMUSIC (Multiparty Multimedia Session Control) de l'IETF (Internet
Engineering Task Force). Il est défini dans le RFC 2543 de mars 1999,
puis mis à jour de nombreuses fois. Il s'agit d'un protocole
complémentaire aux protocoles déjà
développés par l'IETF comme RTP. Il est aujourd'hui le protocole
qui attire le plus l'attention des développeurs de logiciel VoIP, car il
est sensiblement plus simple à exploiter que H.323.
D'un point de vue architectural, SIP est plus «
léger » qu'H323, du fait qu'il n'a pas adopté le standard de
signalisation Q.931 ou le standard de négociation H.245. Il
diffère à quelques points de vues de Q.931 connus du monde PSTN
(Public switched Telephone Network) puisque H.323 a gardé comme base de
signalisation Q.931 dans l'idée justement de ne pas trop se distinguer
du monde PSTN.
Aujourd'hui, les protocoles SIP et H.323 coexistent, c'est
pourquoi on parle d'interconnexion SIP/H.323. Comme avec H.323, les
données multimédia transitent par le protocole RTP. La
différence réside dans le contrôle de signalisation. Ces
fonctions sont exécutées par le « Session Initiation
Protocol » SIP qui est décrit comme un protocole de contrôle
de la couche application. Il établit, modifie et termine des
conversations multimédia. Il ressemble un peu en syntaxe, à HTTP
et à SMTP, car il permet d'établir une session entre 2
interlocuteurs identifiés par des adresses similaires à des
adresses email.
De plus, les messages échangés avec SIP sont au
format texte et donc plus facile à comprendre et à modifier
tandis que, le protocole H.323 utilise le langage abstrait de données
ASN.1 pour l'envoi de ses messages.
La mobilité personnelle est une des
fonctionnalités de SIP. Un utilisateur peut garder le même
numéro malgré qu'il soit connecté à des terminaux
d'adresses physiques différentes. Egalement, comme avec le principe des
emails, plusieurs adresses d'identificateurs peuvent référencer
un même terminal. Inversement, une adresse SIP peut
référencer plusieurs terminaux différents. Les
éléments composants un réseau SIP sont les suivants :
· Agent
· Serveur d'enregistrement
· Serveur de localisation
· Serveur de redirection
· Proxy
· Gateway
Ci-dessous la représentation de SIP à l'aide du
model OSI ainsi que les différents messages utilisés:
ACK
SIP Méthode
CANCEL
OPTIONS
INVITE
BYE
REGISTER
INFO
Application multimédia
|
SIP
|
SDP
|
RSVP
|
Codecs
|
|
TCP
|
UDP
|
IP
|
|
Description
|
Invite un utilisateur pour appel
|
Message d'acquittement du message INVITE
|
Fin de communication ou refus d'un appel
|
Fin d'une requête ou recherche d'un
utilisateur
|
Demande d'informations sur le serveur
|
Enregistrement de la position d'un
utilisateur
|
Information sur la session en cours
|
|
Réponses à ces messages :
· 1xx : messages d'information (100 pour essai, 180 pour
sonne)
· 2xx : messages de succès (200 pour OK, 202 pour
accepté)
· 3xx : messages de redirection (302 pour
momentanément ailleurs)
· 4xx : messages d'erreur sur le client (404 pour pas
accessible, 482 pour détection de boucle)
· 5xx : messages d'erreur sur le serveur (501 pour pas
implémenté)
· 6xx : destination occupée, non accessible ou
refusant la communication (603 pour refus)
Pour effectuer un appel à l'aide du protocole SIP il
faut voir quels sont les serveurs implémentés sur le
réseau ainsi que les fonctions qu'ils possèdent et la topologie
du réseau. Ainsi, il y a 2 façons pour qu'un appel SIP puisse
être établi :
S'il y a un proxy, le proxy aura la tâche de router
l'appel en direction du destinataire. Il se peut que le proxy ne sache pas
où se trouve le destinataire, c'est pourquoi dans ce cas là, il
consulte un serveur de localisation. Il y a deux sortes de proxy, les proxy
« statefull » et « stateless ». Le « statefull »
enregistre la position du destinataire tandis que le « stateless » ne
la mémorise pas. Ce qui fait que le « statefull » consulte une
seule fois le serveur de localisation par destination jusqu'à ce que la
destination soit effacée de sa table de «routage ».
Par contre, il se peut qu'il y ait dans le réseau un
serveur de redirection en plus du proxy. Le fonctionnement d'un tel
réseau est le suivant : l'émetteur de l'appel envoie sa
requête au
serveur de redirection, celui-ci lui retourne la position du
destinataire s'il la connaît ou sinon il va consulter le serveur de
localisation. Une fois que la position du destinataire est connue par le
serveur de redirection, il va la renvoyer à l'émetteur. Une fois
l'émetteur en possession de l'adresse de destination, il la transmet au
proxy afin de pouvoir joindre le destinataire. Ci après se trouvent les
deux exemples d'appel SIP cités ci-dessus :
|