VI.7.1.2 Initialisation/fermeture SIP et SDP
Voici une capture Wireshark dues processus SIP
d'initialisation et de fermeture. 
Bambou (extension 202) appelle Babar (extension 203), lui parle
et ensuite raccroche. (fermeture) 
  
Voyons en détails les étapes nécessaires
à SIP pour établir un appel VoIP avant que de la voix puisse
être échangée entre les deux parties. Le processus pour
établir un lien SIP entre deux hôtes est très similaire
à celui utilisé par TCP: 
   | 
 TCP 
 | 
 SIP 
 | 
 
| 
 Etape1 
 | 
 SYN 
 | 
 INVITE 
 | 
 
| 
 Etape2 
 | 
 SYN/ACK 
 | 
 200 - OK 
 | 
 
| 
 Etape3 
 | 
 ACK 
 | 
 ACK 
 | 
 
  
  
  
DEPLOIEMENT DU PABX TRIBOX 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
Les mêmes étapes affichées avec
Wireshark. (on clique pour élargir) 
Mémoire, Licence Génie Réseaux
et Télécommunications Session 2009 83 
  
  
Regardons les en-têtes des messages
SIP: 
  
1. INVITE
Le client indique au serveur qu'il veut établir un appel
téléphonique. 
| 
 INVITE sip:203@192.168.1.222 SIP/2.0 
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKmazrqogm
Max-Forwards: 70 
To: < sip:203@192.168.1.222> 
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql 
Call-ID: jcaqhewsybtyksb@192.168.1.106 
CSeq: 565 INVITE 
Contact: < sip:202@192.168.1.106> 
Content-Type: application/sdp 
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCR
IBE,INFO,MESSAGE 
Supported: replaces,norefersub,100rel 
User-Agent: Twinkle/1.1 
Content-Length: 307 
 | 
 
  
  
  
2.   
   
407 - Proxy Authentication Require 
 Le serveur rejette l'invitation du client et lui renvoie un
"challenge digest" composé par un type d'algorithme, un "realm" et un
"nonce". 
 Le "nonce" est un valeur aléatoire créé sur
serveur Asterisk et envoyée au client. Il a un temps de vie
limité évitant ainsi les attaques par "replay". 
 La "digest authentification" vérifie que les deux parties
qui communiquent ont le même mot de passe partagé. 
 The "realm" est le nom de domaine SIP. 
 
 
 SIP/2.0 407 Proxy Authentication Required 
 Via: SIP/2.0/UDP
192.168.1.106;branch=z9hG4bKmazrqogm;received=192.168.1.106;rport=506 0 
 From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql 
 To: < sip:203@192.168.1.222>;tag=as219a888b 
 Call-ID: jcaqhewsybtyksb@192.168.1.106 
 CSeq: 565 INVITE 
 User-Agent: Asterisk PBX 
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY 
 Proxy-Authenticate: Digest algorithm=MD5,
realm="asterisk", nonce="138dd154" 
 Content-Length: 0 
 
 | 
   | 
 
  
3.   
   
ACK Le client quittance (acknowledges)
le message 
 ACK sip:203@192.168.1.222 SIP/2.0 
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKmazrqogm
Max-Forwards: 70 
To: < sip:203@192.168.1.222>;tag=as219a888b 
 From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql 
 Call-ID: jcaqhewsybtyksb@192.168.1.106 
CSeq: 565 ACK 
 User-Agent: Twinkle/1.1 
 Content-Length: 0 
4.   
 
  
INVITE 
 
Le client envoie une nouvelle requête d'invitation mais
cette fois avec une "digest response" composée de: 
  
  
Un "username" (nom d'utilisteur), un "realm", un "nonce" et un
type d'agorythme. 
Le "nonce" envoyé par le serveur est utilisé pour
créer une "response". 
L'"uri" (Uniform Resource Identifier) est une chaîne de
caractères utilisée pour identifier une ressource. 
Le serveur sera capable, après calculs, de valider le mot
de passe du client avec la "digest response" qu'il a juste reçu. 
Avec les processus de "digest authentication", aucun mot de passe
n'est échangé entre le client et le serveur. 
| 
 INVITE sip:203@192.168.1.222 SIP/2.0 
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKtomragum
Max-Forwards: 70 
Proxy-Authorization: Digest
username="202",realm="asterisk",nonce="138dd154",uri="sip:203@192
.168.1.222", 
response="c46a93637d0af311c7f9cd3bb542cd08",algorithm=MD5
To: < sip:203@192.168.1.222> 
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql 
Call-ID: jcaqhewsybtyksb@192.168.1.106 
CSeq: 566 INVITE 
Contact: < sip:202@192.168.1.106> 
Content-Type: application/sdp 
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCR
IBE,INFO,MESSAGE 
Supported: replaces,norefersub,100rel 
User-Agent: Twinkle/1.1 
Content-Length: 307 
 | 
 
  
  
5. 100 - Trying 
Le serveur indique à l'émetteur (Bambou - 202) que
il est en train d'atteindre le 
destinataire (Babar - 203). 
| 
 SIP/2.0 100 Trying 
Via: SIP/2.0/UDP
192.168.1.106;branch=z9hG4bKtomragum;received=192.168.1.106;rport=5060 From:
"Bambou" < sip:202@192.168.1.222>;tag=kbcql 
To: < sip:203@192.168.1.222> 
Call-ID: jcaqhewsybtyksb@192.168.1.106 
 | 
 
  
  
  
 
| 
 CSeq: 566 INVITE 
User-Agent: Asterisk PBX 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY 
Contact: < sip:203@192.168.1.222> 
Content-Length: 0 
 | 
 
  
Schéma du processus SIP 
6.     
INVITE 
 Le serveur invite le destinataire (Babar - 203). 
 
 
 INVITE
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558 SIP/2.0 Via: SIP/2.0/UDP
192.168.1.222:5060;branch=z9hG4bK407630a5;rport From: "Bambou" <
sip:202@192.168.1.222>;tag=as65501eef 
 To: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558> Contact: <
sip:202@192.168.1.222> 
 Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222 
CSeq: 102 INVITE 
User-Agent: Asterisk PBX 
 Max-Forwards: 70 
 Date: Sun, 16 Dec 2007 20:15:10 GMT 
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY 
 Content-Type: application/sdp 
 Content-Length: 240 
 
 | 
   | 
 
  
7.   
 
  
180 - Ringing 
 
Le serveur envoie un message à l'émetteur (Bambou -
202) pour faire sonner son téléphone. 
| 
 SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP
192.168.1.106;branch=z9hG4bKtomragum;received=192.168.1.106;rport=5060 From:
"Bambou" < sip:202@192.168.1.222>;tag=kbcql 
To: < sip:203@192.168.1.222>;tag=as0de70729 
Call-ID: jcaqhewsybtyksb@192.168.1.106 
CSeq: 566 INVITE 
User-Agent: Asterisk PBX 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY 
Contact: < sip:203@192.168.1.222> 
Content-Length: 0 
 | 
 
  
  
8.     
   
180 - Ringing 
 Le destinataire (Babar - 203) indique au serveur que son
téléphone est en train de sonner. 
 
 
 SIP/2.0 180 Ringing 
 Via: SIP/2.0/UDP
192.168.1.222:5060;branch=z9hG4bK407630a5;rport=5060 Contact: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558> 
 To: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75 From:
"Bambou"< sip:202@192.168.1.222>;tag=as65501eef 
 Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222 
CSeq: 102 INVITE 
User-Agent: X-Lite release 1011s stamp 41150 
 Content-Length: 0 
 
 | 
   | 
 
  
9.     
200 - OK Le destinataire (Babar - 203)
confirme l'invitation du serveur. 
 
 
 SIP/2.0 200 OK 
 Via: SIP/2.0/UDP
192.168.1.222:5060;branch=z9hG4bK407630a5;rport=5060 Contact: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558> 
 To: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75 From:
"Bambou"< sip:202@192.168.1.222>;tag=as65501eef 
 Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222 
CSeq: 102 INVITE 
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY,
MESSAGE, SUBSCRIBE, INFO 
 Content-Type: application/sdp 
User-Agent: X-Lite release 1011s stamp 41150 
 Content-Length: 187 
 
 | 
   | 
 
  
 Schéma du processus SIP 
10.   
 
  
ACK Le serveur quittance (acknowleges)
la confirmation du destinataire (Babar - 203). 
 
| 
 ACK
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558 SIP/2.0 Via: SIP/2.0/UDP
192.168.1.222:5060;branch=z9hG4bK64b6b476;rport From: "Bambou" <
sip:202@192.168.1.222>;tag=as65501eef 
To: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75 Contact:
< sip:202@192.168.1.222> 
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222 
CSeq: 102 ACK 
User-Agent: Asterisk PBX 
Max-Forwards: 70 
Content-Length: 0 
 | 
 
  
  
  
11.   
   
200 - OK Le serveur confirme
l'invitation de l'émetteur (Bambou - 202). Voir étape
4 
 
 
 SIP/2.0 200 OK 
 Via: SIP/2.0/UDP
192.168.1.106;branch=z9hG4bKtomragum;received=192.168.1.106;rport=5060 From:
"Bambou" < sip:202@192.168.1.222>;tag=kbcql 
 To: < sip:203@192.168.1.222>;tag=as0de70729 
 Call-ID: jcaqhewsybtyksb@192.168.1.106 
 CSeq: 566 INVITE 
 User-Agent: Asterisk PBX 
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY 
 Contact: < sip:203@192.168.1.222> 
 Content-Type: application/sdp 
 Content-Length: 240 
 
 | 
   | 
 
  
12.   
   
ACK 
 L'émetteur (Bambou - 202) reconnaît la confirmation
du serveur. 
 L'appel téléphonique peut commencer. Le protocole
RTP va transporter les paquets VoIP et RTCP contrôler la qualité
de la ligne. 
 
 
 ACK sip:203@192.168.1.222 SIP/2.0 
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKixdtxpvy 
 Max-Forwards: 70 
 Proxy-Authorization: Digest
username="202",realm="asterisk",nonce="138dd154",uri="sip:203@192.168.1.222",
response="c46a93637d0af311c7f9cd3bb542cd08",algorithm=MD5 
 To: < sip:203@192.168.1.222>;tag=as0de70729 
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql 
Call-ID: jcaqhewsybtyksb@192.168.1.106 
CSeq: 566 ACK 
User-Agent: Twinkle/1.1 
 Content-Length: 0 
 
 | 
   | 
 
  
13.   
 
  
BYE L'émetteur (Bambou - 202)
raccroche. 
 
 
| 
 BYE sip:203@192.168.1.222 SIP/2.0 
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKassptnfl
Max-Forwards: 70 
To: < sip:203@192.168.1.222>;tag=as0de70729 
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql Call-ID:
jcaqhewsybtyksb@192.168.1.106 
CSeq: 567 BYE 
User-Agent: Twinkle/1.1 
Content-Length: 0 
 | 
 
  
Schéma du processus SIP 
  
  
14.     
200 - OK 
 Le serveur confirme le message BYE de l'émetteur (Bambou
- 202) avec un OK. 
 
 
 SIP/2.0 200 OK 
 Via: SIP/2.0/UDP
192.168.1.106;branch=z9hG4bKassptnfl;received=192.168.1.106;rport=5060 From:
"Bambou" < sip:202@192.168.1.222>;tag=kbcql 
 To: < sip:203@192.168.1.222>;tag=as0de70729 
Call-ID: jcaqhewsybtyksb@192.168.1.106 
CSeq: 567 BYE 
User-Agent: Asterisk PBX 
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY Contact: < sip:203@192.168.1.222> 
 Content-Length: 0 
 X-Asterisk-HangupCause: Normal Clearing 
 
 | 
   | 
 
  
15.   
   
BYE 
 Le serveur indique au destinataire (Babar - 203) que
l'émetteur (Bambou - 202) a raccroché. 
 
 
 BYE
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558 SIP/2.0 Via: SIP/2.0/UDP
192.168.1.222:5060;branch=z9hG4bK07b32129;rport From: "Bambou" <
sip:202@192.168.1.222>;tag=as65501eef 
 To: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75 Call-ID:
4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222 
 CSeq: 103 BYE 
User-Agent: Asterisk PBX 
 Max-Forwards: 70 
 Content-Length: 0 
 
 | 
   | 
 
  
16.   
 
  
200 - OK Le destinataire (Babar - 203)
confirme le message BYE avec un OK. 
 
| 
 SIP/2.0 200 OK 
Via: SIP/2.0/UDP
192.168.1.222:5060;branch=z9hG4bK07b32129;rport=5060 Contact: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558> 
To: <
sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75 From:
"Bambou"< sip:202@192.168.1.222>;tag=as65501eef 
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222 
CSeq: 103 BYE 
User-Agent: X-Lite release 1011s stamp 41150 
Content-Length: 0 
 | 
 
  
  
Schéma du processus SIP 
  
  
 | 
 
 
 
 
  |