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
|
|