1. Protocole SIP
Historique
Produit de l'IETF
Versions
SIPv1
Work Group Multiparty Multimedia Session Control de l’IETF.
sortie en 1997
SIPv2
Sortie Mars 1999 (RFC 2543). 153 pages
Largement revue, complétée et corrigée en juin 2002 (RFC 3261). 269 pages
Des compléments ont été définis dans les RFC 3262 à 3265.
Plus de 100 extensions (RFCs) publiées et bien d'autres discutées
SIP bis est publié comme RFC3261 Juin 2002
SIP pour la Présence est Publié RFC 3856 Août 2004
Groupes de travail
SIP Novembre 1999
SIPPING
SIMPLE Mars 2001
XCON
Iptel Janvier 1998
Speermint Novembre 2005
Organismes de normalisation
IETF
3GPP
2000 : décision d'utiliser SIP pour le controle d'appel dans les réseaux mobiles
2002 : 3gpp Release 5 définit l'IMS basé sur SIP
3GPP2
ETSI TISPAN SIP-based VoIP network for European Wireline
ITU-T
SIP-based NGN – évolution of PSTN
SIP/ISUP gateway profiles
MSF
Adoption du protocole SIP
Avril 1999 8 Compagnies
Août 1999 16 Compagnies
Décembre 1999 33 Compagnies
SIP Portals
Sipcenter.com
Sipforum.org
SIP Open Source Activities
Resiprocate – stacks, servers, test software
Vovida – SIP stacks
iptel.org – popular SIP Express Router (SER)
Asterisk – enterprise PBX
GNU Osip – stack
SIP Conferences
SIP Summit (pulver.com)
International SIP (Upperside)
SIP Books
Sinnreich, “Internet Communications Using SIP”
Camarillo, “SIP Demystified”
Johnston, “SIP, Understanding the Session Initiation Protocol”
Définition
Protocole de couche Session
Protocole de signalisation hors bande de session Multimédia
N’assure pas le transport des données utiles
Caractéristiques
SIP fonctionne selon une architecture client-serveur
Vise faciliter le développement de SVAs
Intérêt pour SIP
Bénéficie du succès de l'internet.
Similaire à HTTP Codage texte
SMTP
Cible un très grand nombre développeurs
Modularité
Facilité & Rapidité de développement des applications SIP
Intégration à d’autres protocoles
Simplicité
Fonctionnalités
Localise l'extrémité cible
Détermine les capacités média de l'extrémité cible
Détermine la disponibilité de l'extrémité
Intégrer quelques mécanismes de sécurité
Prend en charge le traitement d'appel
Établissement
Maintien
Modification
Gestion
Fermeture
Messages SIP
Formats
Ligne de début
Plusieurs entêtes
Rôles
Fournir des infos sur le message
Permettre le traitement du message
Types
En-têtes généraux
Utilisés indifféremment par
des requête ou réponse.
infos de base permettant le
traitement du message
Ensemble de Champs
Syntaxe Nom_du_champs : valeur_du_champs CRLF
From une URI identifiant l'initiateur du message
Via Contient les adresses des serveurs traversés par la requête.
To une URI identifiant le destinataire initial du message
Call-ID identifiant unique de transaction
Cseq Numéro Type_de_requête
Le numéro est incrémenté à
chaque nouvelle requête
En-têtes de requête,
Contient les infos supplémentaires à destination du serveur SIP (UAS)
Permettant le traitement de la requête par celui-ci
En-têtes de réponse
Contient les infos supplémentaires ajoutées par serveur SIP (UAS)
Permettant le traitement de la réponse
En-têtes d’entité Définit le type et le format des infos contenues dans le corps du message
Genres
Bout en bout
échangés entre Uas terminaux
Exemples: Subject, Accept, Allow …etc.
Saut par saut
subissent un traitement à chaque noeud
Exemples: Route et Via
Corps Parfois absent
infos permettant la participation à une session
Codec, vitesse d’échantillonage
Destination (adresse IP, port UDP)
Nom de la session
Timestamps de début et fin de session
Autres types
Informations de Présence
Informations liée à la gestion de conférences
Informations de localisation
Messages ISUP (protocole de commande RTC) (SIP-I ou SIP-T)
Photos identifiant les participants à une session
Champs
v(ersion SDP)
o(rigin)
s(ession name)
c(onnection information)
t(ime of the session)
m(edia)
Un dialogue SIP
Échange de messages entre deux UAs ayant le
même identifiant
Plusieurs transactions peuvent être échangées
Famille
Un échange requête + réponse(s) associée(s) constitue une transaction SIP
Les messages de la transaction
ont un unique identifiant, Cseq
Types
Requêtes (ou méthode)
REGISTER Enregistrement des UAC
INVITE
Établit une session
Modifie les paramètres d'une session établie entre UAs
ACK
Acquitter une réponse finale à la requête INVITE
Confirme l'établissement d'une session
OPTIONS Demander à UAS ses capacités supportées (extensions, codecs …etc.)
CANCEL
Annule une requête INVITE
non encore répondue
BYE Termine une session
Réponses
Provisoire
Finale
Syntaxe Empruntée à HTTP Numéro 'xyz' + texte explicatif
Un code d’état (Status Code) qui est un entier sur 3 chiffre s
Une raison (Reason-Phrase) qui décrit textuellement la raison
Les réponses SIP
1yz Provisional
Le traitement de la requête
est en cours
2yz Success
La requête a été bien reçue,
comprise et acceptée (ex :
200 OK)
3yz Redirection
Redirection vers une autre
entité, d'autres actions
devraient être entreprises
4yz Request failure
Erreur client, la requête est
syntaxiquement erronée ou
n‘a pu être traitée avec succes
5yz Server failure
Le serveur n'a pu traiter une
requête valide
6yz Global Failure
La requête ne peut être traitée
par aucun serveur
Carte élaborée par
Noureddine IDBOUFKER
Professeur à l'ENSA de Marrakech
Université cadi Ayyad - Maroc
n.idboufker@uca.ma
Modes de signalisation
Direct signalling
Proxy call stateful signalling
Proxy stateful signalling
Proxy stateless signalling
Redirect signalling
Entités SIP
Les extrémités sont appelées
User Agents
User-Agent Client (UAC)Application cliente qui initie une requête SIP.
User-Agent-Server (UAS)Application serveur qui retourne une réponse SIP
Architectures SIP
Serveur Registrar
Entité serveur
Accepte les requêtes REGISTER
Enregistrer l'association d'@ IP et identifiants
dans un serveur de localisation
L'enregistrement a une durée de vieSpécifiée par l'en-tête ‘Expire’
Le terminal envoie périodiquement de nouveaux REGISTER
Client indique
sa présence
sa position de localisation courante dans le réseau
Un utilisateur peut s’enregistrer sur plusieurs serveurs d’enregistrement en même temps
L'authentification SIP
demande à l'UA de s'authentifierEnvoi du code 401 (ou code 407)contient un "challenge
UA réémet la requête en incluant la réponse à ce "challenge«Réponse générée à partir du challenge et du mot de passe
Serveur génère la réponse à ce "challenge" et la compare à la réponse reçue de l'UASi les deux valeurs correspondent
UA est authentifié
Requête est traitée
Proxy Server
Entité à la fois cliente et serveur
Fonctions
Authentification des abonnés
initier, maintenir et terminer une
session vers un correspondant.
Localiser un correspondant
Routage des messages SIP
Ne traite pas le RTP
Types
Proxy statefullMaintient pendant toute la durée des sessions l’état des connexions.
Proxy stateless
Achemine les messages indépendamment les uns des autres, sans sauvegarder l’état des connexions.
Plus rapides et plus légers
Outbound proxyOù l’UAC doit envoyer les requêtesDans la configuration de l’UAC
Adresses IP d’un Proxy server
primaire et d’un secondaire
Noms DNS d’un Proxy server
primaire et d’un secondaire
Incoming proxyProxy server vers où envoyer les réponses
Plate formes
SIP Express Router (http://www.iptel.org/ser/) ;
Partysip SIP Proxy Server
(http://www.nongnu.org/partysip/partysip.html).
Cisco SIP Proxy Server
Cinématique
Recevoir des requêtes SIP
Traiter chaque requête SIP
En envoyant une réponse SIP
En relayant la requête SIP vers
sa destination
Déterminer le next-hop
UAS, Proxy server ou Redirect serve r
Consultation du Location Service
Forwarder la requête SIP
Redirect Server
Fonctions
Application serveur
intermédiaire entre le terminal
client et le serveur de localisatio n
Fournit au client l'information sur
le ou les prochains sauts
Cinématique
Recevoir des requêtes SIP
Traiter chaque requête SIP
Consultation du Location Service
Envoyer une réponse SIP
Où l’adresse de destination
(to:) est remplacée par zéro
ou plusieurs nouvelles
adresses
Serveur de localisation
Ne parle pas SIP
Base de données
Renseignée par Registrar
Compte Abonnées
Infos sur les Proxy servers et les Gatewa ys
Interface avec les serveurs SIPPas normalisée
LDAP (Lightweight Directory Access
Protocol, RFC 1777) préconisé
JDBC (Java DataBase Connectivity)…
Prend en charge un ou plusieurs domaines
Accès par les serveurs SIP
Registrar : mise à jour
Proxy server : consultation
Redirect server : consultation
Gateway SIP
Entité à la fois cliente et serveur
Termine
Le canal de signalisation SIP
Parfois aussi le canal RTP audio/vidéo
Interfacer signalisation SIP/Autre signalisation (ISUP…)
Identification SIP
Respecte la RFC 3986 nommée URIFormat dérivé d’une adresses E-mail« sip:user@host »
“user”
nom d’utilisateur
n° de téléphone
“host”
un nom de domaine,
un nom de host
une adresse numérique
Exemples d’URL SIP
sip:etudiant@ensa.ac.ma
sip:mohamed@192.190.132.20
sip:+212-24-44-44-44@ensa.ac.ma
Mohamed
+212524434547
Un utilisateur peut avoir plusieurs adresses SIP aboutissant toutes au même terminal