Protocole SIP et rc o d n o C ée yc L N E S ro P c a B



Documents pareils
La VOIP :Les protocoles H.323 et SIP

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

SIP A. Aoun - La Visioconférence SIP - 1

SIP. Sommaire. Internet Multimédia

Partie 2 (Service de téléphonie simple) :

C a h p a i p tre e 4 Archi h t i ectur u e e t S i S g i n g a n li l s i atio i n o n SI S P

VOIP. QoS SIP TOPOLOGIE DU RÉSEAU

Couche Session M1 Info Z. Mammeri - UPS 1. Concept de session

Voix sur IP. Généralités. Paramètres. IPv4 H323 / SIP. Matériel constructeur. Asterisk

La VoIP et ToIP. - Les constructeurs de réseaux : Anciens : Alcatel, Ericsson, Nortel, Siemens, Lucent, NEC Nouveaux venus : NetCentrex, Cirpack

SIP : Protocole d initialisation de session

La ToIP/VoIP. Voix et téléphonie sur IP - Convergence voix et données

SIP : Session Initiation Protocol

Guide de configuration de la Voix sur IP

LA VoIP LES PRINCIPES

RCS : Rich Communication Suite. EFORT

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

Introduction de la Voix sur IP

Le service FTP. M.BOUABID, Page 1 sur 5

Vérification intégrée de l'utilisateur Guide d'implémentation client Confidentiel Version 2.9

Dynamic Host Configuration Protocol

La voix sur IP n'est pas un gadget, et présente de réels bénéfices pour l'entreprise.

Projet TOIP RENATER. D Azémar Jérôme Dransart Florian Cossu Jean-Valère Leseur Johnatan. Groupe n 1. Rapport de projet

Configuration du driver SIP dans ALERT. V2

Déploiement sécuritaire de la téléphonie IP

Voix sur IP Étude d approfondissement Réseaux

Manuel d'utilisation d'apimail V3

TRIXBOX. Tutorial et fonctions avancées

FileSender par RENATER - Guide utilisateur

Application de lecture de carte SESAM-Vitale Jeebop

Étude et Mise en place d'une Solution VOIP Sécurisée

Protocoles DHCP et DNS

Notice d installation et d utilisation SIP PBX 100

Thomson ST 2030 guide de configuration et d utilisation

Réunion du 1er Avril VoIP : théorie et réalité opérationnelle. info@ipercom.com

Ecole Supérieure d Informatique et Applications de Lorraine. ESIAL Troisième année Année universitaire UNIVERSITE HENRI POINCARE NANCY I

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

Téléphonie. sur IP. Module Voix et Téléphonie sur IP. Téléphonie sur IP. Sujet 4 Identification et localisation dans le protocole SIP

Les messages d erreur d'applidis Client

La VoIP: Les protocoles SIP, SCCP et H323. Jonathan BRIFFAUT Alexandre MARTIN

Cours CCNA 1. Exercices

Guide de configuration Aastra 5000 pour le raccordement d un trunk Sip OPENIP

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Configuration d'un trunk SIP OpenIP sur un IPBX ShoreTel

VoIP ( H323,SIP) et sécurits. curité. Kamel HJAIEJ SUP COM

VoIP - TPs Etude et implémentation

Stéphanie Lacerte. Document technique. Connextek. 31 mai Cloudtel

1 Identités pour l enregistrement IMS

Serveurs de noms Protocoles HTTP et FTP

Projet de Diplôme. CAMAC-Call Machine. Simulateur de charge pour central VoIP

Master e-secure. VoIP. RTP et RTCP

Informations sur la sécurité

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Configurer ma Livebox Pro pour utiliser un serveur VPN

Visio Kit. Mode d'emploi

TD 2 Chapitre 4 : Support des Services et Serveurs. Objectifs : Maîtriser l'exploitation des tables de routage dynamique.

Appliance FAST360 Technical Overview. Sécurité de la VoIP. Copyright 2008 ARKOON Network Security

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

Chapitre : Les Protocoles

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Guide de référence rapide sur la messagerie vocale d'avaya Distributed Office

Contact Center Guide du superviseur

Cahier des charges. Technique pour la mise en œuvre. de la procédure Portail Achat - EDI

Assistance à distance. Guide d utilisation

Faculté d Electronique et d Informatique. Domaine Mathématiques et Informatique. Filière Informatique. Spécialité Génie Télécommunications & Réseaux

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC MÉMOIRE PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

Gregory DENIS. Nicolas MENECEUR. pour le California Institute of Technology Ciren 2010

18 TCP Les protocoles de domaines d applications

Implémentation du serveur de téléphonie (ASTERISK) dans le cadre de projet de création d un centre d appel

Architecture et signalisation (SIP) Ahmed MEDDAHI

Supervision des applications et services réseaux

Guide de l'utilisateur

Table des matières. Tables des matières SOMMAIRE. Remerciements

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC MÉMOIRE PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

Installation d'un serveur DHCP sous Windows 2000 Serveur

Installation d un serveur DHCP sous Gnu/Linux

Routeur client. PC accueil Postes IP

Téléphonie. sur IP. 2 e édition

Sécurité pour le systeme Voice over IP protocoles SIP et RTP

Voix et Téléphonie sur IP : Architectures et plateformes

Voix et Téléphonie sur IP : Protocoles et Standards

Mise en place d une plateforme de téléphonie et interconnexion de sites distants

Administration Réseau sous Ubuntu SERVER Serveur DHCP

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Cours admin 200x serveur : DNS et Netbios

L'assistance à distance

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Chap.9: SNMP: Simple Network Management Protocol

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

contact@nqicorp.com - Web :

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC MÉMOIRE PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

Couche application. La couche application est la plus élevée du modèle de référence.

Spécifications de raccordement au service de Téléphonie sur IP (ToIP) de RENATER

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : Révision : 03/09/2014 Page 1/31

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

Mécanismes de sécurité dans la signalisation des réseaux IMS 4G

GENERALITES. COURS TCP/IP Niveau 1

Asterisk Use cases. Interconnexion avec un central propriétaire Multi-site. Linuxdays Genève, 24 mars

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Transcription:

Protocole SIP

1 - La définition du protocole SIP, signifiant Session Initiation Protocole, vient du monde de l'informatique contrairement aux autres. SIP a été initié à l'origine par le groupe MMusic (Multiparty Multimedia Session Control) et est désormais géré par l'ietf (Internet Engeneering Task Force). Le protocole SIP est représenté principalement par la RFC 3261 "SIP: Session Initiation Protocol" qui est complété par l'ensemble des RFC suivantes : RFC 3265, "Session Initiation Protocol (SIP)-Specific Event Notification" RFC 3853, "S/MIME Advanced Encryption Standard (AES) Requirement for the Session Initiation Protocol (SIP)" RFC 4320, "Actions Addressing Identified Issues with the Session Initiation Protocol's (SIP) Non-INVITE Transaction" RFC 4916, "Connected Identity in the Session Initiation Protocol (SIP)" RFC 5393, "Addressing an Amplification Vulnerability in Session Initiation Protocol (SIP) Forking Proxies"

1 - La définition du protocole SIP est un protocole de signalisation conçu pour établir et contrôler des sessions multimédia. Pour cela, SIP associe une session avec des supports de type audio (appel téléphonique), vidéo (visio conférence) et donnée (gestion de présence). SIP est un protocole fonctionnant sous TCP/IP. Il se base plus précisément sur UDP et fonctionne par défaut sur le port 5060. Le protocole SIP est aujourd'hui le plus utilisé dans le monde de la voix sur IP et Téléphonie sur IP. Il a des caractéristiques principales qui le rendent si attrayant : Système d'adressage d'url L'adressage peut être un nombre de téléphone, une adresse IP ou une adresse email. Les messages sont très semblables à ceux employés par l'internet HTTP1.1. Grâce à CPL (Call Processing Language) qui utilise XML, il est très facile d'ajouter des services intelligents de redirection. Multimédia Le protocole SIP peut avoir des sessions multiples de média pendant un appel. Le protocole SIP étant indépendant de la transmission des données, tout type de données et de protocoles peut être utilisé pour cet échange. Simplicité SIP est un protocole "léger" qui nécessite peu de ressource physique et peu de temps de développement. Ainsi il devient la cible favorite des constructeurs d'équipements et intégrateurs de solutions.

2 - Les terminologies Dans un système Sip on trouve deux types de composantes, les users agents (UAC, UAS) et les applications de type serveurs (PS, RS, LS, RG) : 2.1 - AE - Terminal SIP Le terme AE signifiant "Agent Equipment" représente l'ensemble des UAC "User Agent Client" et UAS "User Agent Server". L'AE définit plus pragmatiquement les terminaux client IP ( téléphone, hardphone, Softphone, boîtier ATA...) qui initie ou reçoit les requêtes. 2.2 - PS - Serveur Proxy Le terme PS signifiant "Proxy Server" ou aussi appelé "Relais mandataire" représente l'équipement agissant à la fois comme un client UAC et comme un serveur UAS. Le Proxy est chargés du routage d'une session SIP. Lorsqu'il réceptionne une requête SIP, il la transmet à un autre serveur proxy sur la route, ou directement à l'ae concerné, s'il est en liaison directe avec lui. 2.3 - RS - Serveur de redirection Le terme RS signifiant "Redirect Server" permet de rediriger les appels vers la position actuelle d'un utilisateur. Il réalise simplement une conversion de l'adresse contenue dans la requête SIP en 0 ou plusieurs nouvelles adresses destinataires suivant qu'elle a été reconnue ou non. 2.4 - LS - Serveur de localisation Le terme LS signifiant "Location Server" fournit la position courante des utilisateurs dont la communication traverse les RS et PS auxquels il est rattaché. Cette fonction est assurée par le service de localisation composée d'une base de donnée ou un ficher texte contenant la liste des UA, leurs droits et mot de passe. 2.5 - RG - Serveur d'enregistrement Le terme RG signifiant "Registrar" est un serveur qui accepte les requêtes Register. Plus concrètement, il permet aux UA de s'inscrire et fournit les informations relative à la localisation d'un utilisateur.

Protocole SIP Un message SIP est donc composée de 2 rubriques principales qui sont la méthode et l'entête. La ligne vide représente la possibilité d'utiliser d'autres protocoles multimédia tel que SDP "Session Description Protocol" définit par la RFC 2327.

3.1 - La méthode - Les requêtes Les échanges client-serveur se font à l'aide de requêtes dont voici le détail de chacun des messages : INVITE (Définit par la RFC 3261) Le message invite indique que l'application ou l'utilisateur est invité à participer à une session. Le Corps du message décrit cette session (média supportés par l'appelant entre autres). En cas de réponse favorable à l'invitation, l'invité doit spécifier également les médias qu'il supporte dans son Corps du message. Un serveur est tenu de répondre à une telle invitation, identifiée par son CALL-ID, par une réponse OK (code 200). Si un UAS reçoit une requête INVITE avec un numéro de séquence Cseq supérieur à celui de la dernière requête INVITE de même CALL-ID reçue, celui-ci doit mettre à jour cette dernière. ACK (Définit par la RFC 3261) Le message ack confirme que le client a reçu une réponse définitive à une requête INVITE. Les réponses de code 2xx sont acquittées par les UAC et les autres types de réponses définitives par les premiers PS ou UAC les ayant reçues. La requête ACK possède, dans son Corps de message, une description définitive de la session que doit utiliser l'appelé. Si le Corps du message est vide (car il est optionnel), l'appelé utilise le descripteur de session de la requête INVITE. Après avoir envoyé une réponse de code 3xx, 4xx, 5xx ou 6xx, un PS doit déterminer si la requête ACK lui est destinée ou si elle est destinée à un autre PS. Cette détermination se fait en examinant le paramètre tag de l'url TO. Le ACK lui est destiné si : - le tag de l'url TO de la requête ACK est égal au tag de l'url TO de la réponse - l'url FROM, le CALL-ID et le Cseq de la requête ACK sont égaux à ceux de la réponse.

OPTIONS (Définit par la RFC 3261) Le message option. Un PS en mesure de contacter l'uas appelé, doit répondre à une requête OPTIONS en précisant ses capacités à contacter l'uas. Si l'uas ne supporte pas cette méthode, il renvoie une réponse Busy (code 600) au PS. BYE (Définit par la RFC 3261) Le message bye est utilisée par l'uas de l'appelé pour signaler au PS local qu'il ne souhaite plus participer à la session. Si la requête INVITE contient une URL CONTACT, l'appelé envoie la requête BYE directement à cette adresse plutôt qu'à l'url FROM. Cette méthode doit être supportée par les PS et devrait être supportée par les RS et UAS. CANCEL (Définit par la RFC 3261) Le message CANCEL est envoyée par un UAC ou un PS pour annuler une requête non validée par une réponse finale d'état. Par exemple, un PS peut envoyer une requête CANCEL aux destinataires n'ayant pas retourné une réponse finale après avoir reçu une réponse 2xx ou 6xx du PS. Par contre, un PS qui reçoit une requête d'erreur la retransmet à tous les destinataires qui y sont reliés. Les CALL-ID, Cseq, URL TO de la requête CANCEL sont les mêmes que ceux de la requête l'ayant générée. Pour distinguer une réponse à une requête CANCEL et une réponse à la requête originale, l'en-tête général est de type Cseq dans le format du message de la requête CANCEL. Quand un RS ou un UAS a reçu une requête CANCEL, il renvoie à l'émetteur une réponse OK(code 200) si la transaction existe bien et une réponse Transaction Does Not Exist (code 481) sinon.

REGISTER (Définit par la RFC 3261) Le message register est utilisée par le client pour enregistrer l'adresse listée dans l'url TO par le serveur auquel il est relié. Les requêtes sont traitées par le client dans l'ordre où elles arrivent et celui-ci devra éviter d'envoyer une nouvelle requête REGISTER tant qu'il n'aura pas traité la précédente. Le client doit définir une adresse d'enregistrement du type Utilisateur@Domaine. Cette méthode assure un service de localisation. INFO (Définit par la RFC 2976) Information de session en cours. MESSAGE (Définit par la RFC 3428) Permettre l'envoi de messages instantanés. NOTIFY (Définit par la RFC 3265) Envoyer des notifications d'événements. PRACK (Définit par la RFC 3262) Implémenter le mécanisme spécial de sécurisation des réponses provisoires. REFER (Définit par la RFC 3515) Permettre la redirection d'appels. SUSCRIBE (Définit par la RFC 3265) Demander une notification d'événements. UPDATE (Définit par la RFC 3311)

3.2 - La Méthode - Les réponses Une réponse à un message est caractérisée, par un code et un motif, appelés code d'état et raison. Un code d'état est un entier codé sur 3 bits indiquant un résultat à l'issue de la réception d'une requête. Ce résultat est précisé par une phrase, textbased (UTF- 8), expliquant le motif du refus ou de l'acceptation de la requête. Le code d'état est donc destiné à l'automate gérant l'établissement des sessions SIP et les motifs aux programmeurs. Il existe 6 classes de réponses et donc de codes d'état, représentées par le premier bit. Les codes de réponse sont cohérents avec les codes de réponse HTTP/1.1. Tous les codes de réponse HTTP/1.1 ne sont pas appropriés, et seuls ceux qui le sont sont donnés ici. SIP définit une nouvelle classe : La 6xx. Voici la liste des différentes classes : 1xx Provisoire Les réponses provisoires, aussi connues comme réponses informatives, indiquent que le serveur contacté est en train d'effectuer certaines actions et n'a pas encore de réponse définitive. Un serveur envoie une réponse 1xx si il s'attend à ce que l'obtention d'une réponse finale prenne plus de 200 ms. Noter que la transmission des réponses 1xx n'est pas fiable. Elle n'oblige jamais le client à envoyer un ACK. Les réponses provisoires (1xx) peuvent contenir un corps de message, y compris de description de session. 2xx Réussite La demande a réussi. 3xx Réorientation Les réponses 3xx donnent des informations sur la nouvelle localisation de l'utilisateur, ou sur des services de remplacement qui pourraient être capables de satisfaire à l'appel.

4xx Défaillance de la demande Les réponses 4xx sont des réponses d'échec bien déterminées provenant d'un serveur particulier. Le client NE devrait PAS réessayer la même demande sans modification (par exemple, en ajoutant l'autorisation appropriée). Cependant, la même demande sur un serveur différent pourrait réussir. 5xx Défaillance de serveur Les réponses 5xx sont des réponses d'échec qui indique que le serveur lui-même s'est trompé. 6xx Echecs Les réponses 6xx indiquent qu'un serveur a des informations certaines sur un utilisateur particulier, et non pas seulement sur l'instance particulière indiquée dans l'uri-de-demande.

Voici les réponses les plus souvent utilisées: SIP 100 - Essai Cette réponse indique que la demande a été reçue par le serveur du saut suivant et que certaine action non spécifiée est en train d'être effectuée au titre de cet appel (par exemple, une base de données est consultée). Cette réponse, comme toutes les autres réponses provisoires, arrête les retransmissions d'un INVITE par un UAC. La réponse 100 (En cours d'essai) est différente des autres réponses provisoires, en ce qu'elle n'est jamais transmise vers l'amont par un mandataire à états pleins. SIP 180 - Sonnerie en cours L'agent utilisateur qui reçoit l'invite est en train d'essayer d'alerter l'utilisateur. Cette réponse peut être utilisée pour initialiser la sonnerie de retour d'appel locale. SIP 181 - L'appel est en cours de transmission Un serveur peut utiliser ce code d'état pour indiquer que l'appel est en train d'être retransmis à un ensemble de destinations différent. SIP 183 - Avancement de la session La réponse 183 (Avancement de la session) est utilisée pour porter des informations sur la progression de l'appel qui n'est pas autrement classifiée. La phrase de cause, le champ d'en-tête, ou le corps de message peuvent être utilisés pour porter plus de précisions sur la progression de l'appel SIP 200 - OK La demande a réussi. Les informations retournées avec la réponse dépendent de la méthode utilisée dans la demande. SIP 202 Accepted SIP 400 - Mauvaise demande La demande n'a pas pu être comprise à cause d'une syntaxe mal formée. La phrase de cause devrait identifier le problème de syntaxe plus en détail, par exemple, "Champ d'en-tête Call-ID manquant".

SIP 401 - Non autorisé La demande exige une authentification de l'utilisateur. Cette réponse est produite par les UAS et registraires, alors que la réponse 407 (Authentification du mandataire exigée) est utilisée par les serveurs mandataires. SIP 404 - Pas trouvé Le serveur a des informations certaines que l'utilisateur n'existe pas au sein du domaine spécifié dans l'uri-de-demande. Cet état est aussi retourné si le domaine dans l'uri-de-demande ne correspond à aucun des domaines traités par le receveur de la demande. SIP 500 - Erreur interne du serveur Le serveur a rencontré une condition inattendue qui l'a empêché de satisfaire la demande. Le client peut afficher la condition d'erreur spécifique et peut réessayer la demande après plusieurs secondes. Si la condition est temporaire, Le serveur peut indiquer quand le client peut réessayer la demande en utilisant le champ d'en-tête Retry-After. SIP 503 - Service indisponible Le serveur est temporairement incapable de traiter la demande du fait d'une surcharge temporaire ou de la maintenance du serveur. Le serveur peut indiquer quand le client devrait réessayer la demande dans un champ d'entête Retry-After. Si aucun Retry-After n'est donné, le client doit agir comme s'il avait reçu une réponse 500 (Erreur interne du serveur). Un client (mandataire ou UAC) recevant une 503 (Service indisponible) devrait essayer de transmettre la demande sur un serveur de remplacement. Il ne devrait pas transmettre d'autres demandes à ce serveur pour la durée spécifiée dans le champ d'en-tête Retry-After, s'il est présent. Les serveurs peuvent refuser la connexion ou abandonner la demande au lieu de répondre avec 503 (Service indisponible). Vous trouverez ici la liste complète des codes de réponses SIP.

3.3 - L'entête Il y a certains des champs d'entête qui sont présents toujours dans les requêtes et les réponses, et forment l'entête général : Call-ID Ce champ d'en-tête contient un identificateur globalement unique pour un appel. Cseq Il est un identificateur qui sert à rapprocher. From Il identifie l'appelant. Il doit présenter dans toutes les requêtes et les réponses. To Ce champ doit présenter dans toutes les requêtes et en indique la destination. Il est simplement copié dans les réponses. Via Le champ Via est utilisé pour enregistrer la route d'une requête, de manière à permettre aux serveurs SIP intermédiaires de faire suivre aux réponses un chemin exactement inverse. Encryption Ce champ d'en-tête spécifie que le corps du message et éventuellement certains en-têtes ont été chiffrés. Content-Type Ce champ d'en-tête décrit le type de média contenu dans le corps du message. Content-Length Il s'agit du nombre d'octets du corps du message.

4 - Le fonctionnement 4.1 - Enregistrement d'un UA Le schéma ci-dessous illustre l'enregistrement d'un téléphone SIP à son Registrar : On retrouve classiquement les datagrammes de l'ae vers le RG représentant les requêtes et de droite à gauche représentant les réponses. Voici un exemple Wireshark d'enregistrement d'un AE (195.7.101.157) auprès de son Registrar (195.7.101.1).

4 - Le fonctionnement 4.2 - Appel via un Proxy SIP/RTP Le schéma ci-dessous illustre un échange entre un téléphone SIP et son Proxy : Ce schéma prend le cas où c'est le Proxy qui termine la session en informant l'ue (Datagramme numéro 7). Il est bien sur possible que cela soit l'inverse et que ce soit donc l'ue qui décide de rompre la session. Dans ce cas, le sens des datagrammes 7 et 8 sera inversé. Voici un exemple Wireshark d'appel d'un AE (195.7.101.157) auprès de son Proxy (195.7.101.1).

4 - Le fonctionnement 4.3 - Appel via Proxy SIP Le schéma ci-dessous illustre un échange entre deux téléphones SIP via un Proxy : Ce schéma montre le fonctionnement directe de SIP entre chaque AE et le Proxy. On remarquera, que par défaut, RTP est en peer to peer. Voici un exemple wireshark d'appel entre 2 AE via un Proxy. AE A (195.7.101.157), AE B (192.168.101.139) et PS Z (195.7.101.1).

Bibliographie http://www.architoip.com/entete-sip/... A suivre... Laurent Tomczyk