RTP overview

Purpose

The Multimedia Protocols RTP (Real-Time Transport Protocol) component provides RTP communication services. This overview shows the usage of the RTP/RTCP protocol as defined in RFC 3550.

Required background

The clients that make use of this API need to be familiar with RFC 3550 standard.

Key concepts

The component has the following key concepts:

RTP

RTP provides end-to-end network transport services for data with real-time characteristics, such as interactive audio and video. It is built on top of the User Datagram Protocol (UDP).

RTP contains two closely linked parts:

  • RTP: Real-Time Transport Protocol to carry data that has real-time properties.

  • RTCP: RTP Control Protocol to provide feedback on the quality of service being provided by RTP.

RTCP

RTP Control Protocol used to provide feedback on the quality of service being provided by RTP. RTP and RTCP support transmission of the data and the control packets.

Architectural Relationship

The RTP component of MM-protocols uses the following:

  • Comms-infras ESOCK 

  • Networking INSOCK

API summary

The following are some of the main classes used for RTP communication.

Class Name Description

RRtpSession

A handle to an RTP session that abstracts all RTP information going to and from an RTP socket, and its corresponding RTCP data.

RRtpPacket

A handle to an RTP packet used to access the packet through the interface provided by this handle.

RRtpSendPacket

Derived from RRtpPacket and used as a handle to an RTP send packet.

RRtpReceivePacket

Derived from RRtpPacket and used as a handle to an RTP receive packet.

RRtpReceiveSource

A handle to a receive stream. An object of this type represents the stream of data on a single SSRC and delivers the RTP packets and RTCP information in the order they arrive.

RRtpSendSource

A handle to a send stream, used to manage the creation and sending of packets.

The following diagram shows the RTP classes and their relationships.

Figure: Class diagram for RTP classes

Typical uses

Any application requiring RTP as its transport protocol should use this API. RTP provides the following key services:

  • Payload-type identification

  • Sequence numbering

  • Time stamping

  • Delivery monitoring

The RTP API allows you to perform the following tasks:

  1. Creating and Managing an RTP session

  2. Registering for and handling events

  3. Accessing an RTP packet

  4. Creating a send stream

  5. Sending an RTP packet

  6. Creating receive stream

  7. Sending and receiving non RTP-data

  8. Managing RTCP packets and reports

  9. Managing send and receive reports

  10. Securing RTP with SRTP

Note: Before using any of these services, a connection to the socket server must have been made and the socket must be open.

See also

RTPExample: RTP packet streaming