You are on page 1of 14

BOUJELBENE Sabrine

CASADO Isabelle
DEHLINGER Pierre
RIBEYRON Lilian

TP VoIP : Protocole H323

Introduction

H323 est un ensemble de normes UIT-T qui définissent les protocoles permettant d’établir
une communication audio ou vidéo sur un réseau informatique. Dans le cadre de ce TP, nous
allons mettre en œuvre ce type de communication à travers le logiciel Netmeeting, en
modélisant deux clients Windows qui communiquent à travers un gatekeeper (Linux)

Environnement technique

On dispose de deux clients Windows adressés 10.0.0.21/24 et 10.0.0.22/24 et d'un serveur


Linux hébergeant un gatekeeper H.323 (10.0.0.2/24).
Les postes sont raccordés à un switch et sont dans le même réseau 10.0.0.0/24

Partie 1 : Configuration et mise en oeuvre du gatekeeper

On commence par paramétrer l'adresse IP du serveur Linux : 10.0.0.2/24


Afin de configurer le Gatekeeper on dispose du fichier gatekeeper.ini qu'on modifie avec nos
propres paramètres.
Dans cette partie, seul le paramétrage du nom et de l'adresse IP du Gatekeeper est
important, on modifie donc ces paramètres:

[Gatekeeper::Main]
;; 'config is present' indicator. Has to be 42.
Fortytwo=42
; Includes in some RAS-Msgs
Name=gatekeeper2
; overwritten from command line parameter
Home=10.0.0.2

On lance ensuite le Gatekeeper avec ces commandes:

On vérifie si un gatekeeper n'est pas déjà présent, si c'est le cas il faut l'arrêter puis le
relancer afin que les paramètres présents dans le fichier d'initialisation soient bien pris en
compte.

lenny-vm:/home/ladm# ps -eaf | grep gatekeeper // présence de Gatekeeper

On lance ensuite le Gatekeeper en mode trace avec cette commande:

lenny-vm:/home/ladm# gnugk -c /etc/gatekeeper2.ini -o /var/log/gnugk/.log -ttt

Le démarrage et l'arrêt du Gatekeeper se manipule avec :

lenny-vm:/home/ladm# sh /etc/init.d/gnugk start // démarre le gatekeeper

lenny-vm:/home/ladm# sh /etc/init.d/gnugk stop // arrête le gatekeeper

Pour l'instant on n'observe aucune trace, car il n'y a aucun client enregistré donc pas de
trafic.

Partie 2 : Configuration et mise en oeuvre des clients Netmeeting

a)non traité

b)Le nom du Gatekeeper est celui paramétré dans le fichier d'initialisation: gatekeeper2

lenny-vm:/home/ladm# gnugk -c /etc/gatekeeper2.ini -o /var/log/gnugk/.log -ttt

OpenH323 Gatekeeper - The GNU Gatekeeper with ID 'gatekeeper2' started

Gatekeeper(GNU) Version(2.2.7)
Ext(pthreads=1,radius=1,mysql=1,pgsql=1,firebird=1,large_fdset=0,crypto/ssl=1)
Build(Oct 3 2008, 14:06:19) Sys(Linux i686 2.6.26-2-686)

Listen on 10.0.0.2

c)
|Time | 10.0.0.21 | 10.0.0.2 |
|0,000 | RAS: admissionReque |H.225.0: RAS: admissionRequest
| |(1061) ------------------> (1719) |
|0,013 | RAS: admissionConfi |H.225.0: RAS: admissionConfirm
| |(1061) <------------------ (1719) |

Pareil pour le deuxième terminal :

Terminal Gatekeeper

|Time | 10.0.0.22 | 10.0.0.2


|0,000 | RAS: unregistration |H.225.0: RAS: unregistrationRequest
| |(1173) ------------------> (1719) |
|0,005 | RAS: unregistration |H.225.0: RAS: unregistrationConfirm
| |(1173) <------------------ (1719) |
|9,381 | RAS: registrationRe |H.225.0: RAS: registrationRequest
| |(1174) ------------------> (1719) |
|9,387 | RAS: registrationCo |H.225.0: RAS: registrationConfirm
| |(1174) <------------------ (1719) |

On identifie bien le protocole H.225 RAS.


L'enregistrement d'un terminal au gatekeeper se fait sur le canal RAS et sur le port 1719.

d) Les messages enregistrés lors de l'établissement d'appel entre deux terminaux connectés
au même gatekeeper sont les suivants:

|Time | 10.0.0.22 | 10.0.0.2 | Vmware_f8:de:e0 | Vmware_34:31:84 |


Vmware_1f:54:44 | Broadcast | 10.0.0.21 | 10.0.0.255 |
|5,001 | | | Who has 10.0.0.22? |
| | | |ARP: Who has
10.0.0.22? Tell 10.0.0.2
| | | |(0) ------------------> (0)
| | | | |
|5,003 | | | 10.0.0.22 is at 00:
| | | | |ARP: 10.0.0.22
is at 00:0c:29:34:31:84
| | | |(0) <------------------ (0)
| | | | |
|9,381 | RAS: registrationRe | | |
| | | |H.225.0: RAS:
registrationRequest
| |(1174) ------------------> (1719) | |
| | | | |
|9,387 | RAS: registrationCo | |
| | | | |H.225.0: RAS:
registrationConfirm
| |(1174) <------------------ (1719) | |
| | | | |
|89,083 | | | |
| Who has 10.0.0.2? | | |ARP: Who has
10.0.0.2? Tell 10.0.0.21
| | | | |
|(0) ------------------> (0) | | |
|99,745 | 49481 > h323hostcal | |
| | | | |TCP: 49481 >
h323hostcall [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=1618071 TSER=0 WS=5
| |(1720) <------------------ (49481) | |
| | | | |
|99,751 | h323hostcall > 4948 | |
| | | | |TCP:
h323hostcall > 49481 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460 WS=0 TSV=0 TSER=0
| |(1720) ------------------> (49481) | |
| | | | |
|99,752 | 49481 > h323hostcal | |
| | | | |TCP: 49481 >
h323hostcall [ACK] Seq=1 Ack=1 Win=5856 Len=0 TSV=1618073 TSER=0
| |(1720) <------------------ (49481) | |
| | | | |
|99,754 | CS: setup | | |
| | | | |H.225.0: CS:
setup
| |(1720) <------------------ (49481) | |
| | | | |
|99,829 | [TCP segment of a r | |
| | | | |TCP: [TCP
segment of a reassembled PDU]
| |(1720) ------------------> (49481) | |
| | | | |
|99,829 | 49481 > h323hostcal | |
| | | | |TCP: 49481 >
h323hostcall [ACK] Seq=250 Ack=5 Win=5856 Len=0 TSV=1618092 TSER=56189
| |(1720) <------------------ (49481) | |
| | | | |
|99,831 | CS: alerting | |
| | | | |H.225.0:
CS: alerting
| |(1720) ------------------> (49481) | |
| | | | |
|99,841 | 49481 > h323hostcal | |
| | | | |TCP: 49481 >
h323hostcall [ACK] Seq=250 Ack=44 Win=5856 Len=0 TSV=1618093 TSER=56189
| |(1720) <------------------ (49481) | |
| | | | |
|107,056 | RAS: admissionReque | |
| | | | |H.225.0: RAS:
admissionRequest
| |(1174) ------------------> (1719) | |
| | | | |
|107,058 | RAS: admissionConfi | |
| | | | |H.225.0: RAS:
admissionConfirm
| |(1174) <------------------ (1719) | |
| | | | |
|107,083 | [TCP segment of a r | |
| | | |
|TCP: [TCP segment of a reassembled PDU]
| |(1720) ------------------> (49481) | |
| | | | |
|107,083 | 49481 > h323hostcal | |
| | | | |TCP: 49481 >
h323hostcall [ACK] Seq=250 Ack=48 Win=5856 Len=0 TSV=1619907 TSER=56261
| |(1720) <------------------ (49481) | |
| | | | |
|107,084 | CS: connect | |
| | | | |H.225.0: CS:
connect
| |(1720) ------------------> (49481) | | |
| | | |
|107,084 | 49481 > h323hostcal | |
| | | | |TCP: 49481 >
h323hostcall [ACK] Seq=250 Ack=170 Win=5856 Len=0 TSV=1619907 TSER=56261
| |(1720) <------------------ (49481) | |
| | | | |
|107,088 | ratio-adp > dossier | |
| | | | |TCP: ratio-adp >
dossier [SYN] Seq=0 Win=64240 Len=0 MSS=1460
| |(1175) <----------------------------------------------------------------------------
------------------------------------------ (1108) | |
|107,088 | dossier > ratio-adp | |
| | | | |TCP: dossier >
ratio-adp [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460
| |(1175) -----------------------------------------------------------------------------
-----------------------------------------> (1108) | |
|107,096 | terminalCapabilityS | |
| | | | |H.245:
terminalCapabilitySet
| |(1175) <----------------------------------------------------------------------------
------------------------------------------ (1108) | |
|107,097 | terminalCapabilityS | |
| | | | |H.245:
terminalCapabilitySet
| |(1175) -----------------------------------------------------------------------------
-----------------------------------------> (1108) | |
|107,099 | terminalCapabilityS | | |
| | | |H.245:
terminalCapabilitySetAck
| |(1175) <----------------------------------------------------------------------------
------------------------------------------ (1108) | |
|107,100 | terminalCapabilityS | |
| | | | |H.245:
terminalCapabilitySetAck
| |(1175) -----------------------------------------------------------------------------
-----------------------------------------> (1108) | |
|107,128 | openLogicalChannel | |
| | | | |H.245:
openLogicalChannel (t120) openLogicalChannel (g7231)
| |(1175) -----------------------------------------------------------------------------
-----------------------------------------> (1108) | |
|107,129 | openLogicalChannel | |
| | | | |H.245:
openLogicalChannel (t120)
| |(1175) <----------------------------------------------------------------------------
------------------------------------------ (1108) | |

|107,359 | openLogicalChannelR | |
| | | |
|H.245: openLogicalChannelReject
| |(1175) <----------------------------------------------------------------------------
------------------------------------------ (1108) | |
|107,359 | openLogicalChannelA | |
| | | | |H.245:
openLogicalChannelAck
| |(1175) -----------------------------------------------------------------------------
-----------------------------------------> (1108) |107,555 |
openLogicalChannelC | | |
| | | |H.245: openLogicalChannelConfirm
| |(1175) <----------------------------------------------------------------------------
------------------------------------------ (1108)

// Échange de flux RTP

|110,106 | Receiver Report S | |


| | | | |RTCP: Receiver
Report Source description
| |(49609) <----------------------------------------------------------------------------
------------------------------------------ (49609) | |
|110,115 | Receiver Report S | |
| | | | |RTCP: Receiver
Report Source description
| |(49609) -----------------------------------------------------------------------------
-----------------------------------------> (49609) | |
|112,649 | lmsocialserver > im | |
| | | | |TCP:
lmsocialserver > imtc-mcs [PSH, ACK] Seq=1609 Ack=941 Win=63300 Len=22
| |(1503) <----------------------------------------------------------------------------
------------------------------------------ (1111) | |
|112,649 | lmsocialserver > im | |
| | | | |TCP:
lmsocialserver > imtc-mcs [PSH, ACK] Seq=1631 Ack=941 Win=63300 Len=29
| |(1503) <----------------------------------------------------------------------------
------------------------------------------ (1111) | |
Nous observons le protocole H225 CS pour établir l'appel (setup, alert, connect). Le
protocole H245 est utilisé également, notamment pour décider du codec qui sera utilisé au
cours de la communication, ici le codec g711, et pour l'ouverture et la fermeture des canaux
logiques.

Une session d'appel du terminal 1 vers le terminal 2 est représentée sous la forme suivante
:

e) Il est possible de partager un tableau blanc entre les deux utilisateurs, le protocole utilisé
est T120 mais n'est pas visible lors de l'analyse des différents procoles utilisés.

Les codecs sont de type G723.1 dans le protocole RTP.


f)Communication avec échange de tableau blanc

|949,756 | CS: setup | | | | | |


| | | |H.225.0: CS: setup
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|949,767 | [TCP segment of a r | | | | |
| | | |TCP: [TCP segment of a reassembled PDU]
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|949,972 | ansoft-lm-2 > h323h | | | | |
| | | |TCP: ansoft-lm-2 > h323hostcall [ACK] Seq=246 Ack=5 Win=64236 Len=0
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|949,973 | CS: alerting | | | | |
| | | |H.225.0: CS: alerting
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|950,191 | ansoft-lm-2 > h323h | | | | |
| | | |TCP: ansoft-lm-2 > h323hostcall [ACK] Seq=246 Ack=44 Win=64197 Len=0
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|954,557 | | | | | | | |
| | |Who has 10.0.0.21? ARP: Who has 10.0.0.21? Tell 10.0.0.2
| | | | | | | | |
| | |------------------>(0)(0)
|954,557 | | | | | | | |
| | |10.0.0.21 is at 00:ARP: 10.0.0.21 is at 00:0c:29:1f:54:44
| | | | | | | | |
| | |------------------>(0)(0)
|956,952 | [TCP segment of a r | | | | |
| | | |TCP: [TCP segment of a reassembled PDU]
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|957,080 | ansoft-lm-2 > h323h | | | | |
| | | |TCP: ansoft-lm-2 > h323hostcall [ACK] Seq=246 Ack=48 Win=64193 Len=0
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|957,080 | CS: connect | | | | |
| | | |H.225.0: CS: connect
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|957,081 | webobjects > sdprox | | | | |
| | | |TCP: webobjects > sdproxy [SYN] Seq=0 Win=64240 Len=0 MSS=1460
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,082 | sdproxy > webobject | | | | |
| | | |TCP: sdproxy > webobjects [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0
MSS=1460
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297)

|957,085 | terminalCapabilityS | | | | |
| | | |H.245: terminalCapabilitySet
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,086 | terminalCapabilityS | | | | |
| | | |H.245: terminalCapabilitySet
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|957,087 | [TCP segment of a r | | | | |
| | | |TCP: [TCP segment of a reassembled PDU]
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,088 | terminalCapabilityS | | | | |
| | | |H.245: terminalCapabilitySetAck masterSlaveDeterminationAck
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|957,088 | terminalCapabilityS | | | | |
| | | |H.245: terminalCapabilitySetAck
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,103 | openLogicalChannel | | | | |
| | | |H.245: openLogicalChannel (t120)
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|957,103 | openLogicalChannel | | | | |
| | | |H.245: openLogicalChannel (t120)
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,299 | ansoft-lm-2 > h323h | | | | |
| | | |TCP: ansoft-lm-2 > h323hostcall [ACK] Seq=246 Ack=170 Win=64071 Len=0
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|957,307 | sdproxy > webobject | | | | |
| | | |TCP: sdproxy > webobjects [ACK] Seq=376 Ack=364 Win=63877 Len=0
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|957,336 | openLogicalChannelR | | | | |
| | | |H.245: openLogicalChannelReject
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|957,336 | openLogicalChannelA | | | | |
| | | |H.245: openLogicalChannelAck
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,337 | cplscrambler-lg > i | | | | |
| | | |TCP: cplscrambler-lg > imtc-mcs [SYN] Seq=0 Win=64240 Len=0 MSS=1460
| |(1086) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1503) | | |
|957,337 | imtc-mcs > cplscram | | | | |
| | | |TCP: imtc-mcs > cplscrambler-lg [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0
MSS=1460
| |(1086) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1503) | | |
|957,337 | cplscrambler-lg > i | | | | |
| | | |TCP: cplscrambler-lg > imtc-mcs [ACK] Seq=1 Ack=1 Win=64240 Len=0
| |(1086) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1503) | |
|957,527 | webobjects > sdprox | | | | |
| | | |TCP: webobjects > sdproxy [ACK] Seq=406 Ack=416 Win=63825 Len=0
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,528 | openLogicalChannelC | | | | |
| | | |H.245: openLogicalChannelConfirm
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|957,736 | webobjects > sdprox | | | | |
| | | |TCP: webobjects > sdproxy [ACK] Seq=406 Ack=420 Win=63821 Len=0
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|957,739 | cplscrambler-lg > i | | | | |
| | | |TCP: cplscrambler-lg > imtc-mcs [PSH, ACK] Seq=26 Ack=22 Win=64219
Len=181
| |(1086) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1503) | | |
|957,741 | imtc-mcs > cplscram | | | | |
| | | |TCP: imtc-mcs > cplscrambler-lg [PSH, ACK] Seq=22 Ack=207 Win=64034
Len=113
| |(1086) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1503) | | |
|957,741 | imtc-mcs > cplscram | | | | |
| | | |TCP: imtc-mcs > cplscrambler-lg [FIN, ACK] Seq=135 Ack=207 Win=64034
Len=0
| |(1086) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1503) | | |
|957,743 | cplscrambler-lg > i | | | | |
| | | |TCP: cplscrambler-lg > imtc-mcs [ACK] Seq=207 Ack=136 Win=64106 Len=0
| |(1086) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1503) | | |
|957,746 | cplscrambler-lg > i | | | | |
| | | |TCP: cplscrambler-lg > imtc-mcs [FIN, ACK] Seq=207 Ack=136 Win=64106
Len=0
| |(1086) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1503) | | |
|957,746 | imtc-mcs > cplscram | | | | |
| | | |TCP: imtc-mcs > cplscrambler-lg [ACK] Seq=136 Ack=208 Win=64034 Len=0
| |(1086) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1503) | | |
|
|959,058 | imtc-mcs > cplscram | | | | |
| | | |TCP: imtc-mcs > cplscrambler-in [ACK] Seq=324 Ack=501 Win=63740 Len=0
| |(1087) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1503) | | |
|960,083 | Receiver Report S | | | | |
| | | |RTCP: Receiver Report Source description
| |(49607) ----------------------------------------------------------------------------------------------------------------------
--------------------> (49607) | | |
|960,085 | Receiver Report S | | | | |
| | | |RTCP: Receiver Report Source description
| |(49607) <--------------------------------------------------------------------------------------------------------------------
---------------------- (49607) | | |
|962,336 | imtc-mcs > cplscram | | | | |
| | | |TCP: imtc-mcs > cplscrambler-in [PSH, ACK] Seq=324 Ack=501 Win=63740
Len=9
| |(1087) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1503) | | |
| |(1089) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1503) | | |
|962,455 | [TCP segment of a r | | | | |
| | | |TCP: [TCP segment of a reassembled PDU]
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|962,455 | endSessionCommand | | | | |
| | | |H.245: endSessionCommand
| |(1085) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1297) | | |
|962,456 | webobjects > sdprox | | | | |
| | | |TCP: webobjects > sdproxy [ACK] Seq=406 Ack=427 Win=63815 Len=0
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|962,456 | [TCP segment of a r | | | | |
| | | |TCP: [TCP segment of a reassembled PDU]
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|962,456 | CS: releaseComplete | | | | |
| | | |H.225.0: CS: releaseComplete
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|962,456 | ansoft-lm-2 > h323h | | | | |
| | | |TCP: ansoft-lm-2 > h323hostcall [ACK] Seq=246 Ack=218 Win=64024 Len=0
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|962,457 | [TCP segment of a r | | | | |
| | | |TCP: [TCP segment of a reassembled PDU]
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|962,457 | CS: releaseComplete | | | | |
| | | |H.225.0: CS: releaseComplete
| |(1084) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1720) | | |
|962,457 | h323hostcall > anso | | | | |
| | | |TCP: h323hostcall > ansoft-lm-2 [RST, ACK] Seq=218 Ack=250 Win=0 Len=0
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|962,458 | h323hostcall > anso | | | | |
| | | |TCP: h323hostcall > ansoft-lm-2 [RST] Seq=218 Win=0 Len=0
| |(1084) <---------------------------------------------------------------------------------------------------------------------
--------------------- (1720) | | |
|962,459 | RAS: disengageReque | | | | |
| | | |H.225.0: RAS: disengageRequest
| |(1076) ------------------> (1719) | | | | |
| | | |
|962,461 | RAS: disengageConfi | | | | |
| | | |H.225.0: RAS: disengageConfirm
| |(1076) <------------------ (1719) | | | | |
| | | |
|962,618 | [TCP segment of a r | | | | |
| | | |TCP: [TCP segment of a reassembled PDU]
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |
|962,618 | endSessionCommand | | | | |
| | | |H.245: endSessionCommand
| |(1085) -----------------------------------------------------------------------------------------------------------------------
-------------------> (1297) | | |

Le protocole utilisé est "t120" (Pour l'échange de données). On relève, également, lors de
cet échange le protocole de transport, ici le protocole TCP. Le port utilisé est le 1503.

g) Les clients windows H323 s'enregistrent, le gatekeeper a alors 2 endpoints.

telnet 10.0.0.2 7000

RCF|10.0.0.21:1720|2101:dialedDigits|terminal|3512_endp;

RCF|10.0.0.22:1720|2201:dialedDigits|terminal|3513_endp;

Routage de la signalisation d'appel: on observe ces traces lors d'appel d'un client à l'autre.

//2101 appelle 2201

ACF|10.0.0.21:1720|3512_endp|17454|2201:dialedDigits|2101:dialedDigits=2101:dialedDi
gits|false|dd-0f-6a-19-1c-f7-82-4d-9f-21-4a-91-62-0e-8b-6f;

ACF|10.0.0.22:1720|3513_endp|17500|2201:dialedDigits=2201:dialedDigits||true|dd-0f-
6a-19-1c-f7-82-4d-9f-21-4a-91-62-0e-8b-6f; //dialed digits correspond au numéro de
téléphone composé

//2101 quitte l'appel

CDR|2|90 e9 79 00 84 ac a1 4f 81 d3 6c 85 a4 a6 76 55|97|Thu, 03 Dec 2009 09:37:53


+0100|Thu, 03 Dec 2009 09:39:30
+0100|10.0.0.22:1106|3513_endp|10.0.0.21:1720|3512_endp|2101:dialedDigits|2201:di
aledDigits=2201:dialedDigits|OpenH323GK;

DCF|10.0.0.22|3513_endp|17501|normalDrop|90-e9-79-00-84-ac-a1-4f-81-d3-6c-85-a4-
a6-76-55;

DCF|10.0.0.21|3512_endp|17456|normalDrop|90-e9-79-00-84-ac-a1-4f-81-d3-6c-85-a4-
a6-76-55;

ACF|10.0.0.21:1720|3512_endp|17457|2201:dialedDigits|2101:dialedDigits=2101:dialedDi
gits|false|78-13-90-52-bc-17-77-46-96-63-de-13-5f-d1-e9-ff;
DCF|10.0.0.21|3512_endp|17457|normalDrop|78-13-90-52-bc-17-77-46-96-63-de-13-5f-
d1-e9-ff;

h) Comme vu lors de la question d), les messages utilisés sont "setup", "alerting" et
"connect" lors de l'appel. Lors de la fin d'appel les messages "endSessionCommand" et
"ReleaseComplete" sont envoyés.

i) On remarque que les deux clients doivent utiliser le même codec audio pour pouvoir
communiquer

Partie 3 : Configuration et mise en oeuvre de l'interopérabilité

On met alors les différents bancs en réseau à travers des switchs. Le but est alors de
communiquer avec des clients d'autres banc avec Netmeeting. Tous les utilisateurs sont
dans le même sous réseau et ont des numéros de téléphones attribués. Pour pouvoir joindre
les autres utilisateurs, le gatekeeper doit connaître les gatekeeper voisins afin de pouvoir
router les appels. On déclare alors dans le fichier d'initialisation (gatekeeper.ini) les voisins,
on rajoute ce texte sans modifier le reste du fichier.

[RasSrv::Neighbors]
GK1=10.0.0.1 // ne pas mettre le nom du gatekeeper mais bien son @IP
GK3=10.0.0.3
GK4=10.0.0.4

[RoutedMode]

[Neighbor::GK1]
GatekeeperIdentifier=GK1
Host=10.0.0.1
SendPrefixes=* // on envoie les appels de tous les bancs
AcceptPrefixes=2* //on envoie des appels venant du banc 2
ForwardLRQ=always

[Neighbor::GK3]
GatekeeperIdentifier=GK3
Host=10.0.0.3
SendPrefixes=*
AcceptPrefixes=*
ForwardHopCount=2
ForwardLRQ=always

[Neighbor::GK4]
GatekeeperIdentifier=GK4
Host=10.0.0.4
SendPrefixes=*
AcceptPrefixes=*
ForwardHopCount=2
ForwardLRQ=always

On peut également restreindre les accès en autorisant que certains numéros à passer des
appels ou en refusant de communiquer avec certains utilisateurs.
a) Pour interconnecter nos deux zones H.323, il nous suffira de les connecter par un switch
si nos éléments se trouvent dans le même sous-réseau. Si les réseaux utilisés sont
différents, nous pouvons passer par le biais d'un routeur.

b) Comme on a pu le voir dans l'extrait du fichier de configuration ci-avant, on utilise la


commande ForwardLRQ=Always pour demander au Gatekeeper de toujours transmettre
les messages LRQ aux gatekeeper voisin. Rappelons que lorsqu'on effectue une
communication intra-zone, le gatekeeper recherche juste le correspondant par son IP grâce
à une stack locale. En revanche, lorsque le destinataire est manifestement localisé sur un
gatekeeper voisin, le gatekeeper de l'appelant diffuse un message LRQ à ses voisins connus
(Location Request).

c)

Communication interzone :

|Time | 10.0.0.21 | 10.0.0.12 |


|1336,873 | setup | |H225 From: To:1201 TunnH245:off FS:off
| |(1095) ------------------> (1720) |
|1337,049 | alerting | |H225 TunnH245:off FS:off
| |(1095) <------------------ (1720) |
|1342,520 | connect | |H225 TunnH245:off FS:off
| |(1095) <------------------ (1720) |
|1342,526 | TCS ( t120 nonStd g711A g711U g7231 h263VideoC... MSD |H245 terminalCapabilitySet
H245 masterSlaveDetermination
| |(1096) ------------------> (1168) |
|1342,526 | TCS ( t120 nonStd g711A g711U g7231 h263VideoC... MSD |H245 terminalCapabilitySet
H245 masterSlaveDetermination
| |(1096) <------------------ (1168) |
|1342,528 | TCSAck MSDAck |H245 terminalCapabilitySetAck H245 masterSlaveDeterminationAck
| |(1096) <------------------ (1168) |
|1342,528 | TCSAck MSDAck |H245 terminalCapabilitySetAck H245 masterSlaveDeterminationAck
| |(1096) ------------------> (1168) |
|1342,542 | OLC (t120) |H245 openLogicalChannel
| |(1096) ------------------> (1168) |
|1342,542 | OLC (t120) OLC (g7231) |H245 openLogicalChannel H245 openLogicalChannel
| |(1096) <------------------ (1168) |
|1342,543 | OLCAck | |H245 openLogicalChannelAck
| |(1096) <------------------ (1168) |
|1342,543 | OLCReject OLCReject |H245 openLogicalChannelReject H245 openLogicalChannelReject
| |(1096) ------------------> (1168) |
|1342,674 | OLCConfirm |H245 openLogicalChannelConfirm
| |(1096) ------------------> (1168) |
|1371,734 | ESC | |H245 endSessionCommand
| |(1096) ------------------> (1168) |
|1371,736 | releaseComplete |H225 Q931 Rel Cause (16):Normal call clearing
| |(1095) ------------------> (1720) |
|1371,772 | ESC | |H245 endSessionCommand
| |(1096) <------------------ (1168) |

d) Par défaut, H323 utilise à la fois des ports statiques de dynamiques. Généralement, sauf
modification et règles personnalisées, cela se passe comme suit:

• T120 -> TCP port 1503


• Q931 -> TCP port 1720
• Call control -> TCP port 1731
• H245 -> TCP port random entre 1024 et 65535 (1168 ici)
• RTP/RTCP -> UDP port random entre 1024 et 65535
• Gatekeeper RAS -> TCP ports 1718 et 1719.

Remarque: il va sans dire que pour opérer sans problèmes au sein d'une structure sécurisée
telle qu'une entreprise, il faudra créer des règles appropriées sur le pare-feu afin de
permettre le trafic sur ces ports (notamment si plusieurs sites géographiques par exemple).
Il existe cependant des solutions dites "intelligentes" qui permettent l'ouverture dynamique
des ports lors d'une tentative d'ouverture de session H323. Cela évite par exemple de devoir
ouvrir toute la plage 1024 à 65535...

e) Nous n'avons malheureusement pas eu le temps de tester cette partie. Mais le protocole
H.323 permet l'autonégociation des codecs. Les terminaux d'eux-même choisiront les codecs
optimaux pour communiquer de façon parfaitement transparente pour l'utilisateur, à
condition bien entendu qu'ils disposent d'au moins un codec en commun.

Conclusion
Ce TP nous a permis de mettre en oeuvre des communications voix et vidéo sur réseau IP
basées sur un système H323 (nous verrons également le protocole SIP lors qu'un prochain
TP). Nous avons eu l'occasion de réaliser une analyse de protocole détaillée en situation de
fonctionnement. Enfin, dans un second temps, nous avons pu appréhender la notion
d'interopérabilité entre systèmes et réseaux par l'intermédiaire de passerelles, en analysant
une nouvelle fois le fonctionnement protocolaire de ce type de structure.

You might also like