Real-time Transport Protocol (Windows CE 5.0)
Many IP 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 IP phone functionality in Windows CE uses the RTP stack provided by the Real-time Communications (RTC) Catalog item.
For more information about RTC (and RTP) functionality in Windows CE-based IP 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 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 CE and is not relevant for an IP 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
VoIP Technology and Protocol Overview |
Send Feedback on this topic to the authors