RTP

 

1) Présentation du protocole


RTP est un protocole de transport de média sur IP utilisé pour transmettre des flux temps réel audio/video dans un réseau IP. Le protocole est décrit dans les RFC 3550 & 3551. Il s’accompagne du protocole RTCP, qui est utilisé pour le monitoring en temps réel de la qualité de transmission ainsi que pour la transmission d’information à propos du media transmis.

 

Le schéma ci-dessous décrit les différentes utilisations du protocole.

 

 

Tulip permet de simuler chacun de ces quatre éléments réseaux :

 

 - Media terminal: Simulation d’un ou plusieurs terminaux émettant et recevant du media vers un host.

 

 - RTP mixer: Simulation d’un serveur de mixage de flux media, qui reçoit plusieurs flux medias et émet vers chaque participant un flux media résultant.

 

 - RTP gateway: passerelle media, fourni un point d’entrée vers un autre réseau média (différents codecs VOIP, PSTN, PLMN).

 

 - IP PBX: host à travers lequel de multiples flux RTP/RTCP sont envoyés/reçus.

 

Tulip gère la couche applicative, tandis que le système exploitation prend en charge les couches inférieures. Le séquentiel spécifie uniquement le nom du fichier wav à jouer, ainsi que les paramètres de la session media. Les paquets RTCP sont envoyés/reçus par Tulip.

 

2) Spécificités transport

 

 - Mode de transport

 

La transmission RTP s’effectue à l’aide du protocole UDP, et de manière symétrique (pas de notion client/serveur). Il est toutefois possible d’avoir une communication unidirectionnelle (envoi seul ou réception seule).

Par conséquent, le fichier de configuration spécifie uniquement les sockets UDP locales et distantes.

 

Exemple:

<ENVIRONMENT>

   <LOCAL IP="192.168.1.11" MIN_PORT="1000" MAX_PORT="30000"/>

   <REMOTE HOST="192.168.1.1" PORT="1111"/>

</ENVIRONMENT>

 

Tulip transporte le RTP en mode UDP multi socket : les paquets RTP sont émis depuis plusieurs sockets UDP, un par agent de trafic. La plage de port est spécifiée dans le fichier de configuration. Ce mode permet de simuler une gateway RTP, un IPPBX, ou encore un terminal seul.

 

 - Répétitions

 

RTP étant un protocole utilisé pour transmettre des flux temps réel, il n’y a pas de mécanisme de répétition.


 - Routage des paquets

 

Le routage des paquets arrivant sur une socket UDP locale s’effectue naturellement vers le traffic agent utilisant cette socket : pas de routage basé sur la couche applicative.

 

3) Description de la session media

 

TULIP permet de spécifier les parameters de session media suivants:

 

-      Le codec utilisé pour transmettre le media : pour l’instant TULIP supporte le PCMU (G711U) et PCMA (G711A).

 

-      Le packet time (durée entre deux paquets RTP) peut être spécifié ou laissé à sa valeur par défaut (dépendant du codec, et spécifié dans la RFC 3551).

 

-      Le payload type, qui est un champ présent dans chaque paquet RTP (et identifie le codec utilisé pour une session donnée).

 

-      Le nombre de répétitions du son transmis par streaming (soit un nombre fini, soi la valeur « INFINITE »).

 

Cette déclaration est effectuée dans le fichier de configuration, à l’intérieur d’un bloc RTP_PARAMS.

 

Exemple:

  <RTP_PARAMS>

       <CODEC NAME="G711U" PACKET_TIME="30" PAYLOAD_TYPE="3"/>

       <LOOP NB="1"/>

  </RTP_PARAMS>

 

Plus tard, pendant l’exécution d’un scenario, les ports source/destination RTP/RTCP sont définis à la volée. TULIP utilise des paramètres de trafic (voir section dédiée) qui sont hardcodés pour véhiculer ces informations.

 

Exemple:

     <SET_AGENT_PARAM PARAM="LOCAL_PORT_RTP"   VALUE="1000"/>

     <SET_AGENT_PARAM PARAM="LOCAL_PORT_RTCP"  VALUE="1001"/>

     <SET_AGENT_PARAM PARAM="REMOTE_PORT_RTP"  VALUE="12008"/>

     <SET_AGENT_PARAM PARAM="REMOTE_PORT_RTCP" VALUE="12009"/>

4) Commandes spécifiques protocole

La libraire RTP implémente les commandes suivantes :

SEND: déclenche le streaming du fichier son wav en paramètre, devant se trouver dans le répertoire source. Les paramètres de la session devront avoir été définis précédemment.

Exemple:

     <SET_AGENT_PARAM PARAM="LOCAL_PORT_RTP"   VALUE="1000"/>

     <SET_AGENT_PARAM PARAM="LOCAL_PORT_RTCP"  VALUE="1001"/>

     <SET_AGENT_PARAM PARAM="REMOTE_PORT_RTP"  VALUE="12008"/>

     <SET_AGENT_PARAM PARAM="REMOTE_PORT_RTCP" VALUE="12009"/>

 

     <SEND>conversation.wav</SEND>

 

TEST_SEND: déclenche le streaming du fichier son wav en paramètre dans le pipeline de test, ce fichier devant se trouver dans le répertoire source. Les paramètres de la session devront avoir été définis précédemment.

 

Exemple:

     <SET_AGENT_PARAM PARAM="LOCAL_PORT_RTP"   VALUE="1000"/>

     <SET_AGENT_PARAM PARAM="LOCAL_PORT_RTCP"  VALUE="1001"/>

     <SET_AGENT_PARAM PARAM="REMOTE_PORT_RTP"  VALUE="12008"/>

     <SET_AGENT_PARAM PARAM="REMOTE_PORT_RTCP" VALUE="12009"/>

 

     <TEST_SEND PIPELINE="INPUT">conversation.wav</TEST_SEND>

 


5) Scénarii exemples

 

Ci-dessous, quelques scénarii exemples RTP:

 

1)    Simulation de MRF SIP-RTP /samples/SIP_RTP

 

Ce package de test fournit une illustration de l’utilisation de deux instances TULIP master/slave. Concrètement, l’instance master est un serveur SIP, qui établit et démarre une session de streaming RTP envoyée vers le client distant ou local. Le son joué en streaming est un fichier wav.

 

Fichiers scénario inclus:

tulip.xml : fichier de configuration de l’instance master SIP.

GO_SIP.xml : séquentiel lanceur, lance le traffic agent serveur SIP.

CALLED_SIP.xml : séquentiel serveur SIP qui reçoit des requêtes SIP et y répondre de manière à établir la session RTP.

tulip_server.xml : fichier de configuration de l’instance slave RTP.

GO_RTP.xml : séquentiel lanceur, lance les agents RTP en mode pool.

MRF.xml : séquentiel effectuant le streaming du son wav.

Windows.wav : fichier wav transmis par streaming.

 

La topologie est de type « CALLED only + pool remote ».

 

2)    Traffic RTP /samples/TRAFFIC_RTP_12_CAPS (mode test)

 

Ce package de test génère de multiples streaming d’un même fichier audio à travers le pipeline de test.

 

Fichiers scénario inclus :

tulip.xml : fichier de configuration des traffic agents RTP.

GO_RTP.xml : séquentiel lanceur, lance les agents RTP ainsi que les agents de test.

OTHER.xml : séquentiel effectuant le streaming du son wav vers le pipeline de test.

TEST.xml : séquentiel simulant le streaming du fichier son vers le pipeline d’entrée, et réceptionnant le flux émis par les agents RTP.

Windows.wav: fichier wav transmis par streaming.

 

La topologie est de type « CALLER+CALLED (mode test) ».

RTP
 
Accueil
Applications
Téléchargements
Commandes TULIP
Documentation
Plugins
Nous contacter