Share via


Real-time Transport Protocol (Windows Embedded CE 6.0)

1/5/2010

Many Voice over IP (VoIP) phones use the Real-time Transport Protocol (RTP) to transfer media - like voice - from one phone to another.

After a signaling protocol like SIP identifies the IP address (or fully qualified domain name) and media capabilities of the destination, the phone uses RTP to transfer media directly to the recipient. In other words, RTP packets generally do not use network intermediaries, like SIP proxy servers, that are common in SIP conversations.

In contrast to SIP, which uses a request-response model, RTP is a one-way protocol: a phone generates RTP packets and sends them to another phone (feedback about the link is handled by RTCP, explained at the end of this discussion).

This usually means that a conversation consists of two separate RTP streams: a single phone is both the source of one RTP stream and the destination of the other.

The source phone sends each RTP packet across the network to the destination phone. The destination phone uses RTP header information to reorder packets (if they arrived out of order), and correct for delay, as well as other audio fine tuning, and then it converts the digital information to analog form and outputs it using the phone's earpiece or speaker.

The default VoIP phone functionality in Windows Embedded CE uses the RTP stack provided by the Real-time Communications (RTC) Catalog item.

For more information about RTC (and RTP) functionality in Windows Embedded CE-based VoIP phones, see Real-time Communications. For information about the RTC Catalog item, see Real-time Communications (RTC) Client API.

Codecs and RTP

In a VoIP network, sound is converted to binary data (digitized) using an audio coder/decoder, called a codec. (A codec is a set of rules for converting between analog and digital representations of audio or video data.) As long as the destination phone understands the codec used by the source phone, it can decode and play as sound the data sent by the other phone.

After the source phone converts the audio to digital format, it separates the digital data into discrete pieces and places these pieces inside individual RTP packets.

RTP defines how to hold discrete pieces of digital data but does not define the format of this data. As a result, RTP can transfer data encoded by different codecs.

Windows Embedded CE includes a number of common codecs and also supports the use of custom codecs.

RTCP

RTP uses a complementary protocol called Real-time Transport Control Protocol (RTCP) to provide quality feedback to devices that generate RTP packets.

Usually the use of RTCP is abstracted by the RTC functionality in Windows Embedded CE and is not relevant for an VoIP phone developer.

For More Information

RTP is defined in IETF RFC 3550. Specific values for generic RTP fields for common audio and video formats are discussed in RFC 3551. For more information about these RFCs, search for their RFC numbers at the IETF Web site.

See Also

Other Resources

VoIP Technology and Protocol Overview