Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)
RFC 3605

Document Type RFC - Proposed Standard (October 2003; Errata)
Last updated 2013-03-02
Stream IETF
Formats plain text pdf html bibtex
Stream WG state WG Document
Document shepherd No shepherd assigned
IESG IESG state RFC 3605 (Proposed Standard)
Consensus Unknown
Telechat date
Responsible AD Jon Peterson
Send notices to <>, <>
Network Working Group                                         C. Huitema
Request for Comments: 3605                                     Microsoft
Category: Standards Track                                   October 2003

            Real Time Control Protocol (RTCP) attribute in
                  Session Description Protocol (SDP)

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.


   The Session Description Protocol (SDP) is used to describe the
   parameters of media streams used in multimedia sessions.  When a
   session requires multiple ports, SDP assumes that these ports have
   consecutive numbers.  However, when the session crosses a network
   address translation device that also uses port mapping, the ordering
   of ports can be destroyed by the translation.  To handle this, we
   propose an extension attribute to SDP.

1.  Introduction

   The session invitation protocol (SIP, [RFC3261]) is often used to
   establish multi-media sessions on the Internet.  There are often
   cases today in which one or both ends of the connection are hidden
   behind a network address translation device [RFC2766].  In this case,
   the SDP text must document the IP addresses and UDP ports as they
   appear on the "public Internet" side of the NAT.  In this memo, we
   will suppose that the host located behind a NAT has a way to obtain
   these numbers.  A possible way to learn these numbers is briefly
   outlined in section 3, however, just learning the numbers is not

   The SIP messages use the encoding defined in SDP [RFC2327] to
   describe the IP addresses and TCP or UDP ports used by the various
   media.  Audio and video are typically sent using RTP [RFC3550], which
   requires two UDP ports, one for the media and one for the control
   protocol (RTCP).  SDP carries only one port number per media, and

Huitema                     Standards Track                     [Page 1]
RFC 3605                 RTCP attribute in SDP              October 2003

   states that "other ports used by the media application (such as the
   RTCP port) should be derived algorithmically from the base media
   port."  RTCP port numbers were necessarily derived from the base
   media port in older versions of RTP (such as [RFC1889]), but now that
   this restriction has been lifted, there is a need to specify RTCP
   ports explicitly in SDP.  Note, however, that implementations of RTP
   adhering to the earlier [RFC1889] specification may not be able to
   make use of the SDP attributes specified in this document.

   When the NAT device performs port mapping, there is no guarantee that
   the mappings of two separate ports reflects the sequencing and the
   parity of the original port numbers; in fact, when the NAT manages a
   pool of IP addresses, it is even possible that the RTP and the RTCP
   ports may be mapped to different addresses.  In order to successfully
   establish connections despite the misordering of the port numbers and
   the possible parity switches caused by the NAT, we propose to use a
   specific SDP attribute to document the RTCP port and optionally the
   RTCP address.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in [RFC2119].

2.  Description of the Solution

   The main part of our solution is the declaration of an SDP attribute
   for documenting the port used by RTCP.

2.1.  The RTCP Attribute

   The RTCP attribute is used to document the RTCP port used for media
   stream, when that port is not the next higher (odd) port number
   following the RTP port described in the media line.  The RTCP
   attribute is a "value" attribute, and follows the general syntax
   specified page 18 of [RFC2327]: "a=<attribute>:<value>".  For the
   RTCP attribute:

   *  the name is the ascii string "rtcp" (lower case),

   *  the value is the RTCP port number and optional address.

   The formal description of the attribute is defined by the following
   ABNF [RFC2234] syntax:

   rtcp-attribute =  "a=rtcp:" port  [nettype space addrtype space
                         connection-address] CRLF
Show full document text