Protocole SIP
Protocole SIP
DOCUMENTATION
22/10/2008
Protocole SIP
1. Principe....................................................................................................... TE 7 530 - 2
1.1 Composants SIP........................................................................................... — 2
1.2 Adressage et nommage .............................................................................. — 2
1.3 Localisation .................................................................................................. — 2
2. Messages SIP ............................................................................................ — 2
2.1 Requêtes....................................................................................................... — 2
2.2 Réponses ...................................................................................................... — 3
2.3 Champs d'en-têtes....................................................................................... — 3
2.4 Exemples ...................................................................................................... — 4
2.4.1 Requête INVITE ................................................................................... — 4
2.4.2 Réponse 200 OK ................................................................................. — 4
3. Fonctionnement d'un système SIP ..................................................... — 4
3.1 Appel simple ................................................................................................ — 4
3.2 Appel avec redirection ................................................................................ — 5
3.3 Robustesse aux erreurs............................................................................... — 5
4. Services avancés offerts par SIP......................................................... — 6
5. Sécurité dans le cadre SIP .................................................................... — 6
Pour en savoir plus ........................................................................................... Doc. TE 7 530
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux et télécommunications TE 7 530 − 1
1.2 Adressage et nommage La version actuelle de SIP (version 2.0, [2]) prévoit six requêtes
distinctes, permettant l’établissement d’un appel, la négociation des
capacités (types de média qui serviront aux échanges audiovisuels)
Les « objets » gérés par SIP sont des utilisateurs, humains princi- ou la fermeture d’une session :
palement, et accessibles par le biais de leur ordinateur, assistant
— INVITE : requête d’établissement, invitant un usager (humain
personnel..., ou utilisateur-machine particulière telle que des ser-
ou non) à participer à une session de communication. L’émetteur de
veurs de contenus. Tous ces objets sont identifiés au moyen d’une
cette requête y indique les types de média qu’il souhaite et peut
SIP-URL (Universal Resource Locator), chaîne de caractères analo-
recevoir, en général au travers d’une description de session SDP
gue à celles utilisées dans le World Wide Web. Une SIP-URL prend la
(Session Description Protocol cf. [IP 2 960]) ;
forme sip:utilisateur@domaine, où utilisateur est le nom de l’usa-
ger (tel qu’utilisé pour s’identifier dans le système informatique) ou — ACK : requête d’acquittement, émise pour confirmer que le
un numéro de téléphone. La portion domaine est dans l’idéal le nom client émetteur d’un INVITE précédent a reçu une réponse finale et
du domaine de rattachement de l’utilisateur (par exemple entre- valable ; cette requête peut véhiculer une description de session qui
[Link]). Il est prévu qu’une SIP-URL soit aisément obtenue, soit clôt la négociation ;
auprès de services d’annuaires, soit du fait d’un échange antérieur — BYE : requête de clôture d’un appel ;
(e-mail, Web, etc.), soit encore par dérivation de l’adresse e-mail de — CANCEL : requête d’annulation, signifiant au serveur de
la personne. Par ailleurs, il est tout-à-fait possible de définir des SIP- détruire le contexte d’un appel en cours d’établissement (cette
URL qui englobent plusieurs usagers, un appel ayant alors pour but requête n’a pas d’effet sur un appel en cours) ;
de joindre une des personnes considérées. — OPTIONS : cette requête permet à un client d’obtenir de l’infor-
Exemple : sip:ventes@[Link]. mation sur les capacités d’un usager, sans pour autant provoquer
l’établissement d’une session ;
L’idée de base derrière ce principe de nommage est pour un utili- — REGISTER : requête à destination d’un serveur SIP et permet-
sateur de publier une adresse générale, qui sera ensuite traduite au tant de lui faire parvenir de l’information de localisation (machine
cas par cas pour aboutir à l’identifier en tant qu’usager d’un système sur laquelle se trouve l’utilisateur).
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
TE 7 530 − 2 © Techniques de l’Ingénieur, traité Réseaux et télécommunications
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux et télécommunications TE 7 530 − 3
La figure 2 donne la réponse fournie par l’usager Martin, de type Figure 3 – Appel simple SIP
200 OK.
Les champs d’en-têtes sont analogues, sauf en ce qui concerne les
en-têtes Via: ceux-ci reprennent le chemin suivi par la requête et ser- Martin sur sa machine glouton. La figure 3 présente l’échange de
vent à router la réponse, en sens inverse. La réponse est donc desti- messages SIP entre les divers composants qui entrent en jeu.
née en premier lieu au serveur proxy du domaine [Link],
qui va supprimer la ligne correspondante et retransmettre le mes- Le premier message est une requête INVITE (comportant vraisem-
sage vers le serveur identifié par le champ Via: suivant, en l’occur- blablement l’en-tête To : martin@[Link]). Le serveur proxy
rence le serveur proxy du domaine [Link]. de ce domaine traite la requête en interrogeant le serveur de locali-
sation (message 2), qui lui communique que l’usager est actuelle-
ment sur la machine glouton (message 3). Le serveur proxy fait
suivre la requête (message 4). En supposant que l’utilisateur est pré-
3. Fonctionnement sent et qu’il « décroche le combiné », le message 5 est alors une
d'un système SIP réponse de classe 2xx, dans l’exemple 200 OK. Cette réponse est
acheminée en sens inverse jusqu’à Dupont (message 6), puis une
requête finale ACK est véhiculée depuis celui-ci jusqu’à Martin
(messages 7 et 8). Dans le cas d’un serveur type Redirect, celui-ci,
3.1 Appel simple après interrogation du service de localisation, enverrait une réponse
de classe 3xx (ex : 302, Moved temporarily) comportant l’en-tête
Contact: suivi de la SIP-URL sip:martin@[Link],
Considérons en premier lieu le cas simple où l’usager Dupont, permettant à Dupont d’émettre une requête INVITE directement
connecté sur sa machine citrouille, souhaite appeler l’utilisateur vers cette machine.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
TE 7 530 − 4 © Techniques de l’Ingénieur, traité Réseaux et télécommunications
Domaine [Link]
3 1 4 5
martin@citrouille 10 7 INVITE
4
INVITE
6
200 OK 5 Serveur Serveur
200 OK
7 proxy proxy
ACK
8
ACK
11 2 3 6
ACK 9 8
Illustrons maintenant les capacités de redirection offertes par un Domaine [Link] Domaine [Link] Domaine [Link]
système SIP, en considérant que l’usager Martin dispose, dans un
domaine [Link], d’une machine nommée gargantua. citrouille proxy glouton proxy gargantua
1
Son contact public est martin@[Link], par conséquent il INVITE
souhaite que les appels arrivant dans la filiale soient redirigés vers 2
le domaine [Link], où il est localisé le plus souvent. Cela INVITE
4
est mis en œuvre par exemple par la configuration locale de la 302 Moved
temporarily 3
machine gargantua (figure 5). 302 Moved
Supposons maintenant que l’usager Dupont ait trouvé dans un 5 temporarily
ACK
annuaire quelconque le contact martin@[Link], et qu’il initie un 7 6
appel vers ce contact (message 1). Le serveur proxy de la filiale INVITE ACK
8
détermine que la machine gargantua est une bonne candidate pour INVITE
trouver l’usager Martin et lui faire suivre la requête (message 2),
mais celle-ci répond par un message de type 302 Moved temporarily, 10
200 OK 9
qui est répercuté vers l’initiateur de l’appel (messages 3 et 4, qui
200 OK
sont acquittés par les messages 5 et 6). L’UA de Dupont reprend
alors à zéro, en soumettant une requête vers le proxy du domaine
[Link] (message 7). Celui-ci fait suivre la requête 11
ACK
(message 8), qui reçoit une réponse 200 OK retournée vers Dupont
(messages 9 et 10). Le message ACK peut enfin être émis directe-
ment vers la machine sur laquelle Martin a répondu à l’appel.
Figure 6 – Chronogramme : appel avec redirection
Le chronogramme de ce scénario est donné en figure 6.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Réseaux et télécommunications TE 7 530 − 5
moyen d’une page Web, que l’appelant peut parcourir de façon tra-
ditionnelle. L’on peut aussi imaginer un répondeur personnel basé
Domaine [Link] Domaine [Link] Domaine [Link]
sur le Web, et présentant en cas de non réponse de l’appelé une
page sur laquelle seront proposés l’enregistrement d’un message
citrouille proxy proxy vorace gargantua (e-mail, message audio et/ou vidéo), un contact prioritaire en cas
1 d’urgence, ou une redirection vers d’autres interlocuteurs à même
2 Register
INVITE de renseigner l’appelant, en fonction du sujet qu’il souhaite aborder.
3
INVITE Deux possibilités de mise en œuvre sont à l’étude dans le groupe
4
INVITE MMUSIC de l’IETF. La première préconise l’usage de scripts CGI
(Common Gateway Interface, technologie du Web) exécutés en
6 réponses à des requêtes SIP, la seconde propose un langage de
INVITE 5 script, nommé CPL (Call Processing Language), de syntaxe analo-
302 Moved
gue au HTML (technologie du Web là encore), et qui permet à l’utili-
7 temporarily
Loop
sateur de décrire simplement ce type d’application.
8
detected 200 OK
9
10 200 OK
200 OK
11
5. Sécurité dans le cadre SIP
ACK
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
TE 7 530 − 6 © Techniques de l’Ingénieur, traité Réseaux et télécommunications