le protocole sip avancé et ses extensions - efort.· copyright efort 2011 1 le protocole sip...

Download Le Protocole SIP Avancé et ses Extensions - efort.· Copyright EFORT 2011 1 Le Protocole SIP Avancé

Post on 21-Jul-2018

215 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Copyright EFORT 2011 1

    Le Protocole SIP Avanc et ses Extensions

    EFORThttp://www.efort.com

    Le premier tutoriel sur le protocole SIP propos par EFORT est disponible l'URL :http://www.efort.com/r_tutoriels/SIP_EFORT.pdf. Il introduit les entits SIP, le protocole SIP un haut niveau, l'interfonctionnement SIP/ISUP et l'architecture de services SIP.Ce nouveau tutoriel prsente le protocole SIP de manire approfondie ainsi que sesextensions.

    1 Protocole SIP

    SIP (Session Initiation Protocol) est un protocole de signalisation dfini par lIETF (InternetEngineering Task Force) permettant ltablissement, la libration et la modification desessions multimdias.Il hrite de certaines fonctionnalits des protocoles HTTP (Hyper Text Transport Protocol)utilis pour naviguer sur le WEB, et SMTP (Simple Mail Transport Protocol) utilis pourtransmettre des courriels (E-mail).Le protocole SIP fournit la signalisation ncessaire la cration, sur rseaux IP, desfonctions de tlphonie similaires celles du protocole ISUP dans le monde SS7 ou cellesdu protocole H.323. SIP fait l'unanimit dans le monde de la tlphonie sur IP par sasimplicit et sa bonne intgration l'architecture Internet et en font le candidat idal pour lesterminaux lgers et mobiles.

    Dans le premier tutoriel SIP, il a t vu que le protocole SIP est constitu initialement de sixrequtes (Figures 1 et 2): REGISTER permet l'enregistrement, le r-enregistrement et le dsenregistrement INVITE a pour but l'initiation de session de toute nature : session audio, session vido,

    session tchat, session fax, session IPTV, etc. ACK sert confirmer la rponse finale une mthode INVITE OPTIONS permet d'obtenir les capacits de l'entit interroge BYE termine une session tablie CANCEL permet d'annuler une session qui n'a pas encore t tablie.

    Les requtes SIP sont acquittes par des rponses. Les rponses SIP indiquent : Soit une information de progression dappel Soit une information dtat finalLes rponses SIP contiennent : Un code dtat (Status Code) qui est un entier sur 3 chiffres Une raison (Reason-Phrase) qui dcrit textuellement la raison.

    Il existe six classes de rponses : Classe 1xx : Information, la requte a t reue, et est en cours de traitement. Classe 2xx : Succs, la requte a t reue, comprise et accepte. Classe 3xx : Redirection, la session requiert dautres traitements avant de pouvoir

    dterminer si elle peut tre ralise. Classe 4xx : Erreur requte client, la requte ne peut pas tre interprte par le serveur

    ou la destination, telle que soumise. La requte doit tre modifie avant dtre renvoye. Classe 5xx : Erreur serveur, le serveur choue dans le traitement dune requte

    apparemment valide.

  • Copyright EFORT 2011 2

    Classe 6xx : Echec global, la requte ne peut tre traite par aucun serveur.

    Figure 1 : Mthodes REGISTER, OPTIONS, INVITE, ACK et BYE

    Figure 2 : Mthode CANCEL

    2 Etablissement d'une session audio avec le protocole SIP

    Dans lexemple suivant reprsent la Figure 3, l'appelant a pour URL SIPsip:mary.taylor@tn.com, alors que celle de l'appel est sip:mart.rich@tn.com.

    Une mthode SIP INVITE est mise par le terminal SIP de l'appelant au Proxy Server. Cedernier achemine la demande d'initiation de session la destination. La requte INVITEcontient un ensemble de headers obligatoires.

    Par ailleurs, la requte SIP contient une syntaxe SDP (Session Description Protocol). Cettestructure consiste en plusieurs lignes qui dcrivent les caractristiques du mdia quelappelant Mary requiert pour la session.

    INVITE180 RINGING

    200 OKACK

    BYE

    OPTIONS

    RegistrarUAC

    UAC

    UAC

    UAC UAS

    UAS

    REGISTER200 OK

    UAS

    INVITE180 RINGING

    200 OKACK

    BYE200 OK 200 OK

    200 OK 200 OKOPTIONS

    Proxy Server

    Proxy Server

    Proxy Server

    INVITE

    INVITE

    200 OKINVITE 180

    RINGING

    180 RINGING

    180 RINGING ACK

    CANCEL200 OK

    200 OKACK

    UA1Proxy Server

    UA2

    UA3

    487 Transaction CancelledACK

    180 RINGING

  • Copyright EFORT 2011 3

    Mary Taylor indique qu'il s'agit d'une session tlphonique (m=audio), que la voix paqutisedoit lui tre dlivre l'adresse de transport (port UDP = 45450, adresse IP = 192.23.34.45)avec le protocole RTP et en utilisant un format d'encodage dfini dans le RFC 3551 AVP(Audio Video Profile) et pouvant tre G.711 -law (0) ou G.729 (18).

    La rponse 180 RINGING est retourne par le destinataire au terminal SIP de l appelant.

    Lorsque l'appel accepte la session, la rponse 200 OK est mise par son terminal SIP etachemine au terminal SIP de lappelant.

    Le terminal SIP de l appelant retourne une mthode ACK au destinataire, relaye par l'entitSIP Proxy.

    L'entit Proxy Server participe l'acheminement de la signalisation entre UAs alors que lesUAs tablissent directement des canaux RTP pour le transport de la voix ou de la vidopaqutise sans implication du Proxy Server dans ce transport.Lorsque Mary raccroche, son terminal SIP envoie une requte BYE pour terminer la session.Cette requte est dlivre au Proxy Server qui l'achemine au terminal SIP de Mark. Cedernier retourne la rponse 200 OK.

    Figure 3 : Etablissement d'une session audio avec le protocole SIP

    Une requte ou mthode SIP consiste en une request line, plusieurs headers, une empty lineet un message body. Le message body est optionnel; certaines requtes SIP n'endisposent pas.Une Request line contient trois lments : method, Request URI, et protocol version. La method indique le type de requte. Le request-URI (Uniform Resource Indicator) indiquel'entit destinatrice de la requte. Finalement, la protocol version est SIP/2.0.

    Une rponse SIP consiste en une status line, plusieurs headers, une empty line, et unmessage body. Le message body est optionnel; certaines requtes SIP n'en disposentpas.

    La premire ligne de la mthode SIP, appele request line liste la mthode (ici INVITE), lerequest URI et le numro de version du protocole SIP utilis (2.0). Alors qu'il est possible lorsdu routage d'une mthode SIP de modifier le request-URI, le header To doit rester inchang.

    SIP UA 2

    1. INVITE

    SIP UA 1

    2. INVITE

    5. 200 OK

    8. ACK7. ACK6. 200 OK

    Proxy Servertn.comsip:mary.taylor@tn.com sip:mark.rich@tn.com

    v = 0 (dans message 1)c = IN IP4 192.23.34.45m = audio 45450 RTP/AVP 0, 18

    v = 0 (dans message 5)c = IN IP4 192.190.130.38m = audio 22222 RTP/AVP 0

    v=versionc=connectionm=media

    3. 180 RINGING4. 180 RINGING

    Flux de mdia RTP

    9. BYE 10. BYE

    11. 200 OK12. 200 OK

  • Copyright EFORT 2011 4

    Le premier Header suivant la ligne de dbut est le Header Via. Chaque entit SIP qui metou relaye une mthode SIP insre son adresse de host ou adresse IP dans ce Header Via.Sil sagit dune adresse de host, cette dernire peut tre traduite en une adresse IP par leDNS. Le Header Via contient la version du protocole SIP, puis le type de transport pour leprotocole SIP (ici un transport UDP), un espace, suivi du nom de host ou de ladresse IP, dedeux points, dun numro de port SIP et d'un paramtre branch. Ici, il sagit du port SIP pardfaut, savoir 5060. Le paramtre branch identifie la transaction SIP.Le Header Via permet de prvenir dventuelles boucles et assure que la rponse suivra lemme chemin que la requte.Les headers suivants sont les headers From et To qui indiquent les adresses SIP delmetteur et du rcepteur de la requte. Toutefois le routage de la mthode se fait enutilisant le Request URI et non pas le header To. Lorsquun label de nom est utilis (danslexemple, Mary Taylor et Marc Rich), alors lURL SIP est dlimite par des crochets etpermet de router le message. Ce label de nom peut tre utilis lors de lalerte du terminaldestinataire.Le header From de la requte INVITE doit contenir un paramtre tag qui est identificateuralatoire choisi par Mary Taylor. Lorsque l'appel retourne des rponses, celles ci doiventinclure un paramtre Tag dans le header To. Ceci permet l'appelant dans un scnario deforking de bien distinguer les diffrentes rponses reues. Si par exemple, l'appel estjoignable sur deux terminaux, l'appelant recevra deux rponses 180 Ringing chacunecontenant un Header To avec la mme adresse SIP mais des tag diffrents. On peut doncconclure qu'une session est identifie de manire unique grce aux informations CallId,From-tag et To-tag.Le Header Call-ID a une forme similaire celle dune adresse lectronique mais ne fait quereprsenter un identificateur permettant de dsigner une session SIP.Le Header suivant est le Header Cseq. Il est constitu par un numro suivi du nom de lamthode SIP. Dans lexemple, il sagit de la mthode INVITE. Le numro est incrmentpour chaque nouvelle mthode SIP mise. Le numro de squence initial choisi danslexemple est 1 mais il est possible de commencer par nimporte quelle valeur.Le Header Contact est aussi requis dans la requte INVITE. Il contient lURI SIP de terminalde Mary Taylor. Cet URI permet de router des requtes SIP directement au terminal de MaryTaylor.Tout message SIP doit contenir les paramtres obligatoires To, From, Max-Forwards, Via,Call-ID, C-Seq et Contact. Les autres headers sont optionnels.Les headers content type et content length indiquent que le corps du message est unestructure dcrite avec SDP (Session Description Protocol) et contient 162 octets. Cettestructure consiste en plusieurs lignes qui dcrivent les attributs du mdia que lappelant Mary requiert pour lappel.

    INVITE sip:mark.rich@tn.com SIP/2.0Via : SIP/2.0/UDP station1.tn.com:5060; branch=z9hG4bK776asdrgsMax-Forwards : 20To : Mark Rich From : Mary Taylor ;tag=21272Call-Id: j1sv235bh8965wsCSeq: 1 INVITEContact: sip:mary.taylor@192.190.132.20Content-Type: application/sdpContent-Length:162

    v = 0c = IN IP4 192.190.132.20 m = audio 45450 RTP/AVP 0

  • Copyright EFORT