Comprendre le SIP

Jun 11, 2020

SIP

Historique

Créer en 1999, la RFC 2543 permet de mettre en évidence le besoin de lier le réseau internet et la téléphonie sous un même ensemble.

La RFC qui en découle et qui est la plus importante, la RFC 3261 (2000)

Composants d’une session

Session SIP

Caractéristiques

Le protocol SIP, pour Session Initiation Protocol :

  • Mettre en place un plan de signalisation basé sur un système de session entre plusieurs système multimédia.
  • Permet de fournir de pouvoir établir, contrôler, et de couper les sessions.
  • Reste indépendant du type ou de la méthode de média qui sera utilisé lors de la session.
  • Est utilisés par d’autre protocole pour pouvoir obtenir un système de communication complet :
    • SDP
    • RTP
    • DNS
    • HTTP
    • ENUM
    • RADIUS
    • DIAMETER …
  • Fonctionne sur un modèle de Requête-Réponse.
  • Les messages sont textuel.
  • Peux être utilisé dans du transport UDP, TCP ou TLS
  • Sous-jacent sur un réseau IPv4 ou IPv6

Listes des RFCs

RFCs list

Élément d’un SIP

  • User Agent (UA)
    • Un appareil SIP (un téléphone par exemple)
  • User Agent Client (UAC)
    • Un soft qui permet de process les initation et les envois de requêtes SIP
    • Permet aussi de pouvoir recevoir les réponses.
  • User Agent Server (UAS)
    • Permet de recevoir les requêtes SIP
    • Permet de renvoyer les réponses
  • Proxy Server
    • Fourni un service proxy et de transfert de message SIP
  • Registrar
    • Permet d’enregistrer les appareils finaux qui sont connu dans son domaine.
    • Créer des entrées dans des Bases de données dans la forme : [indentité + Adresse IP : Port]
  • Redirect Server
    • Fourni un service de redirection
    • Peut décharger ou même éliminer les proxies
  • Back-to-Back User Agent
    • Un appareil servant de point de terminaison pour les appels, qui peux les éxécuter et les re-diriger.
    • Cela peux permettre de fournir un effet “d’isolation”, ce qui peux être utile voir nécessaire pour les valeurs des autres services.

Message SIP

Deux types seulement : Requêtes et Réponses

Structure des Messages SIP

Structure des messages SIP (of both requests and responses):

* Start line = “Request line” ou “Status Line” (in responses)
* Header = Several lines called “Header Fields”
* Body (optional, analogous to attachment in an email)
    - Session Description Protocol (SDP) – very common
    - XML information
    - Instant messaging text
    - Other data

Exemple de message SIP

Exemple SIP

Requêtes SIP (méthodes)

Requête Description RFC
INVITE Indique à un client qu’il est invité pour participer à une session d’appel RFC 3261
ACK Confirme au client qu’il a bien reçu la réponse finale à la requête invite RFC 3261
BYE Termine un appel et peux être envoyé à partir de l’appelant comme de l’appelé RFC 3261
CANCEL Annule la requête en attente RFC 3261
OPTIONS Fourni les capacités des serveurs RFC 3261
REGISTER Enregistre l’adresse qui est listé dans le champ d’en-tête avec un serveur SIP RFC 3261
PRACK Acquisition provisioire RFC 3262
SUBSCRIBE S’enregistre pour un Évènement ou une Notification par le Notifieur RFC 6665
NOTIFY Notifie l’enregistré d’un nouvel Évènement RFC 6665
PUBLISH Publie un Évènement vers le Serveur RFC 3903
INFO Envoi des informations en millieu de session qui ne modifiera pas l’état de la sessions RFC 6086
REFER Demande au destinataire d’émettre une demande SIP (transfert d’appel) RFC 3515
MESSAGE Transporte les messages instantanés à l’aide de SIP RFC 3428
UPDATE Modifie l’état d’une session sans changer l’état du dialogue RFC 3311

Réponses SIP

Non-Final

Type Exemples
1XX Provisional 100 Trying
180 Ringing
183 Session In Progress

Final

Type Exemples
2XX Success 200 OK
3XX Redirection 302 Moved Temporarily
4XX Client Failure 403 Forbidden
404 Not Found
5XX Server Failure 500 Server Internal Error
503 Service Unavailable
504 Server Time-out
6XX Global Failure 600 Busy Anywhere
604 Does Not Exist Anywhere

Appel SIP Basique

Appel SIP

Mise en place d’un média

Média

le SDP permet de pouvoir négocier les codecs qui sont possible entre les UAC et UAS et pour déterminer quel codec sera pris en compte.

  1. la négociation des codecs se met en place dans la méthode INVITE qui porte le SDP pour proposer les codes disponible sur son média (ou UAC).
  2. la négociation des codecs est répondu par l’autre média (UAS) pour dire d’utiliser tel ou tel codec.
  3. le ACK final permet de pouvoir confirmer la configuration du UAC pour joindre le UAS.

Session aux niveaux des Offres et Réponse du Serveur

SDP

Cette partie permet d’expliquer la partie qui est porté par la méthode INVITE pour la négociation des codecs. Cette partie peux avoir aussi comme importance de savoir vers quel port je vais passer pour envoyer les paquets RTP, il y a bien sur le 200 OK qui confirme quel codecs utiliser et par quel port il va passer pour lui envoyer les paquets RTP.

InformatiqueSIPinformatique

Candy & Cigarettes