RTP

 

 

1) Protocol presentation

 

RTP is a media transport protocol over IP used to transmit real-time audio/video flows within an IP network. The protocol is described in RFCs 3550 & 3551. RTCP goes alongside RTP, and allows monitoring in real time transmission quality as well as some information about transmitted media.

The diagram below describes the different uses of this protocol:

 

 

Tulip allows simulating each of these four network elements:

 

- Media terminal: simulation of one or more terminals sending to and receiving media from a host.

 

- RTP mixer: simulates a media flow mixer, which receives several RTP flows, mixes them together, and sends the result to each participant.

 

- RTP gateway: media gateway, entry point to another media network (with different voip codecs, PSTN, PLMN).

 

- IP PBX: single host through which are sent/received many media flows.

                                        

2) Transport specificities

 

 - Transmission mode

 

RTP is transmitted over UDP transport protocol, in a symmetric fashion (no client/server role). It is also possible to have a unidirectional communication (send only or receive only)

Consequently, the configuration file only needs to specify the local/remote UDP sockets.

 

Example:

<ENVIRONMENT>

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

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

</ENVIRONMENT>

 

Tulip transmits RTP in multi-socket UDP mode: the RTP packets are sent from several UDP sockets, one per traffic agent. The port range is specified in the configuration file. This mode allows simulating a RTP gateway, an IP PBX, or a single RTP terminal.

 

 - Repetitions

 

RTP being used to transmit real-time flows, there is no repetition mechanism implemented.

 

 - Packets routing

 

The UDP packets received on each local sockets are naturally routed towards the traffic agent using that socket: no applicative routing is needed.

 

3) Media session description

 

Tulip allows specifying the following media session description parameters:

 

-      The codec which will be used to transmit the sound: right now it supports PCMU (G711u) or PCMA (G711A).

 

-      The packet time may be chosen or left at its default value (codec dependent, specified in RFC 3551).

 

-      The payload type within each RTP packet can be chosen.

 

-      The number of times the sound will be played during the streaming (either a finite number, or “INFINITE”).

 

This declaration is performed in the configuration file as follow, within a RTP_PARAMS statement.

 

Example:

  <RTP_PARAMS>

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

       <LOOP NB="1"/>

  </RTP_PARAMS>

 

Later on, during the scenario execution, the RTP/RTCP source/destination ports still need to be defined on the fly. Tulip uses some hardcoded agent parameters (see related section for more information) to convey this information:

 

Example:

     <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) Protocol specific commands

 

The RTP library implements the following commands:

 

SEND: performs the streaming of the specified wav file in parameter (the file should be located within the source directory). The media session parameters have to be defined beforehand.

 

Example:

     <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: starts the streaming of the specified wav audio file into the test pipeline. The media session parameters have to be defined beforehand.

 

Example:

          <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) Example scenarii

 

Below, some example scenarii using RTP:

 

1)    SIP-RTP MRF simulation /samples/SIP_RTP

 

This test package provides an illustration of the use of two TULIP instances (SIP is  master and RTP is slave). The SIP instance receives the incoming call and sets up a RTP streaming session with the remote client. The media transmitted is a wav file.

 

Included scenario files:

tulip.xml: SIP instance configuration file.

GO_SIP.xml: launcher scenario, starts the SIP server traffic agent

CALLED_SIP.xml: SIP server scenario, receives the incoming call and reply in order to setup the RTP session.

tulip_server.xml: RTP instance configuration file.

GO_RTP.xml: launcher scenario, starts the RTP agents in pool mode.

MRF.xml: scenario which performs the wav file streaming.

Windows.wav: audio file transmitted in the streaming session.

 

The test topology type is « CALLED only + pool remote ».

 

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

 

This test package performs multiple streaming transmissions of an audio file through the test pipeline.

 

Included scenario files:

tulip.xml: configuration of the RTP traffic agents.

GO_RTP.xml: launcher scenario, starts the RTP agents as well as the test agents.

OTHER.xml: scenario which performs the wav sound streaming to the test pipeline.

TEST.xml: scenario which performs the wav sound streaming to the test pipeline, and receives the RTP flow from the RTP traffic agents.

Windows.wav: audio file transmitted in the streaming session.

 

The test topology type is « CALLER+CALLED (test mode) ».

RTP
 
Home page
Applications
Downloads
TULIP commands
Documentation
Plugins
Contact us