VOIP - LE PROTOCOLE SIP
1- Définitions
- Méthode : c'est le type de requête transmis à un serveur (INVITE, BYE).
- UAC (User Agent Client) : client (entité logique) d'une application client/serveur.
- UAS (User Agent Server) : serveur (entité logique) d'une application client/serveur.
- URI (Uniform Resource Identifier) : identifie une entité via la syntaxe sip:identifiant@domaine.
- Session : flux multimédia qu'un émetteur échange avec un récepteur.
2- Architecture
- Les User Agents (entités logicielles ou physiques comprenant un UAS et un UAC) ont pour but de trouver une entité de destination en utilisant SIP.
- C'est le Proxy server qui fournit un service de routage des messages envoyés par l'User Agent.
| Stateless Server | - Transmet sans maintenir l'état de la transaction - Plus rapide - Ne fait que transférer les messages qu'il reçoit |
| Stateful Server | - Transmet en maintenant l'état de la 1ère transaction à la réponse finale - Moins rapide |
Ils sont identifiés via des entrées DNS de type SRV, dont voici la syntaxe :
{_Service._Protocol} SRV {Priorité} {Port} {Cible}
- Le Registrar Server permet de localiser (ou d'authentifier) un utilisateur.
Le client lui envoie une requête REGISTER pour qu'il puisse enregistrer les infos dans sa base de données.
- Le Redirect Server enregistre une liste (transmise par une réponse de la classe 3xxx) des différentes locations alternatifs d'un utilisateur.
- Le Serveur de conférences procède au mélange des flux RTP (audio, vidéo ...).
- Le serveur de Voice Mail gère les messages vocaux.
- Le serveur IVR (Interactive Voice Response) est utilisé pour les centres d'appels.
3- Méthodes SIP
- La communication SIP se fait au moyen d'une série de messages.
Composition d'un message :
- une 1ère ligne (précise le type de message)
- une En-tête (en-tête SIP)
- une ligne vide
- un Corps (message SDP)
- L'en-tête SIP et le message SDP sont composés de plusieurs champs.
Les champs du message SDP sont divisés en 3 catégories : Description de la session, description temporelle, description du média.
| ... de l'en-tête SIP | ... du message SDP | ||
|---|---|---|---|
| Via | Adresse de l'UAC qui a envoyé le message | v | Version du protocole SDP |
| From | Destinateur | o | Origine de la session |
| To | Destinataire | c | Connection Data |
| Call-ID | ID unique de la communication | t | Temps de la session |
| CSeq | ID unique de transaction (dans une même session) | m | Détails du transport des flux sur le réseau |
| User-Agent | Précisions sur le terminal utilisé pour envoyer ce message | a | Attributs de session |
| INVITE | Initie une session multimédia |
| REGISTER | Contient les infos de localisation d'un user |
| BYE | Met fin à une session |
| ACK | Accuse réception de la réponse finale à une requête INVITEmais n'est pris en compte que lors d'une réponse finale négative |
| CANCEL | Annule une session courante |
| Nom | Code |
|---|---|
| Réponse prévisionnelle | 1xx |
| Réponse finale positive | 2xx |
| Redirection | 3xx |
| Réponse finale négative (client) | 4xx |
| Réponse finale négative (serveur) | 5xx |
| Réponse finale négative (globale) | 6xx |
4- Echanges SIP
- Avec SIP, une requête ainsi que toutes ses réponses associées sont regroupées en transactions.
- Un dialogue SIP est un échange de transactions entre 2 User Agents.
Les champs d'un message SIP qui identifient un dialogue sont Call ID, From, To et CSeq.
5- Transactions typiques
- L'Enregistrement auprès d'un serveur SIP Registrar (requête REGISTER)
- L'Invitation (requête INVITE), qui est traitée différemment selon le type de Proxy Server.
- La Terminaison de session, qui est effectuée entre les 2 User Agents, sauf si le Record Routing est activé (messages passent par le proxy).







