SIP

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Signalisation VoIP (téléphonie/visio sur IP)
Couche OSI 7 (Application)
Port 5060 (non chiffré, UDP/TCP) · 5061 (TLS)
RFC RFC 3261 (2002) (à vérifier)
Voir aussi ASTERISK · UDP · TCP · NAT

SIP (Session Initiation Protocol) est un protocole de signalisation utilisé pour établir, modifier et terminer des sessions de communication multimédia entre deux ou plusieurs correspondants sur IP : téléphonie (VoIP), visioconférence, messagerie instantanée. SIP ne transporte pas lui-même la voix ou la vidéo : il négocie les paramètres de la session (qui appelle qui, quels codecs, sur quels ports), le flux média étant ensuite acheminé séparément, typiquement via RTP (Real-time Transport Protocol).

SIP s'inspire volontairement de protocoles texte déjà connus comme HTTP et SMTP : ses messages sont lisibles, structurés en requêtes et réponses avec des codes numériques proches de ceux de HTTP (par exemple 200 OK, 404 Not Found, 486 Busy Here).

Principales méthodes (requêtes)

  • REGISTER — un terminal (softphone, IP-phone) déclare sa localisation auprès d'un serveur
 d'enregistrement, afin de pouvoir être joint par son identifiant SIP.
  • INVITE — initie une session (un appel) vers un correspondant ; contient la description des
 paramètres médias proposés.
  • ACK — confirme l'établissement définitif de la session après une réponse positive à
 INVITE.
  • BYE — termine une session en cours.
  • CANCEL — annule une requête INVITE en attente, avant que l'appel n'ait été établi.
  • OPTIONS — interroge les capacités d'un serveur ou d'un terminal sans initier de session.

Déroulement simplifié d'un appel

Appelant                                  Appelé
   |------ INVITE -------------------------->|
   |<----- 100 Trying -------------------------|
   |<----- 180 Ringing -------------------------|
   |<----- 200 OK ------------------------------|  (accepté, paramètres médias confirmés)
   |------ ACK ------------------------------>|
   |<===== flux média (RTP) ===================>|
   |------ BYE -------------------------------->|  (fin de l'appel, par l'une ou l'autre partie)
   |<----- 200 OK -------------------------------|

Architecture et acteurs

  • UA (User Agent) — terminal SIP, matériel (IP-phone) ou logiciel (softphone), qui joue
 alternativement le rôle de client (UAC) ou de serveur (UAS) selon qu'il émet ou reçoit une
 requête.
  • Registrar — serveur qui enregistre la localisation courante des utilisateurs (REGISTER).
  • Proxy SIP — relaie les requêtes entre UA sans nécessairement rester dans le chemin des
 données médias par la suite.
  • PBX / IPBX logicielASTERISK est l'exemple le plus répandu de standard téléphonique
 logiciel implémentant SIP, capable de faire office de registrar, de proxy et de passerelle vers
 des lignes téléphoniques classiques.

SIP et NAT

SIP embarque des adresses IP et des numéros de port directement dans le corps de ses messages (pour indiquer où envoyer/recevoir le flux média). Un équipement de NAT qui réécrit uniquement les en-têtes réseau, sans comprendre le contenu SIP, laisse ces informations internes inchangées : le correspondant distant se voit alors proposer une adresse privée injoignable. C'est l'une des difficultés classiques de déploiement de la VoIP derrière un NAT, adressée par des mécanismes complémentaires (ALG SIP sur le pare-feu, STUN, TURN, ou une configuration explicite du PBX indiquant son adresse publique).

Voir aussi

  • ASTERISK — implémentation logicielle libre d'un PBX/serveur SIP
  • NAT — traduction d'adresses, source de difficultés classiques pour SIP
  • UDP et TCP — transports possibles pour SIP (UDP par défaut, TCP ou TLS pour la
 signalisation sécurisée)