Category: Standards Track October Session Description Protocol (SDP) Simple Capability Declaration

Similar documents
Category: Standards Track August 2002

Request for Comments: 4571 Category: Standards Track July 2006

Network Working Group Request for Comments: 4573 Category: Standard Track July MIME Type Registration for RTP Payload Format for H.

SDP Capability Negotiation

Request for Comments: Columbia U. November 2000

Internet Engineering Task Force (IETF) Category: Standards Track September 2010 ISSN:

Request for Comments: Category: Standards Track Columbia U. June An Offer/Answer Model with the Session Description Protocol (SDP)

Network Working Group Request for Comments: Category: Standards Track A. B. Roach dynamicsoft June 2002

Network Working Group. BCP: 131 July 2007 Category: Best Current Practice

Network Working Group. Ericsson September TCP-Based Media Transport in the Session Description Protocol (SDP)

Internet Engineering Task Force (IETF) Category: Standards Track December 2011 ISSN:

Request for Comments: 2976 Category: Standards Track October 2000

Network Working Group. Category: Standards Track June 2005

Contents. An Offer/Answer Model with the Session Description Protocol (SDP) Status of this Memo. Copyright Notice

Request for Comments: 3959 Category: Standards Track December 2004

Network Working Group Request for Comments: 3508 Category: Informational April H.323 Uniform Resource Locator (URL) Scheme Registration

SIP Video Profile Best Practices

Internet Engineering Task Force (IETF) Request for Comments: 8035 Updates: 5761 November 2016 Category: Standards Track ISSN:

[MS-EUMSDP]: Exchange Unified Messaging Session Description Protocol Extension

[MS-RTPRAD]: Real-Time Transport Protocol (RTP/RTCP): Redundant Audio Data Extensions

SIP Video Profile Best Practices

Network Working Group. February Media Gateway Control Protocol (MGCP) Redirect and Reset Package

Category: Standards Track August 2002

Network Working Group Request for Comments: 4424 February 2006 Updates: 4348 Category: Standards Track

Internet Engineering Task Force (IETF) Request for Comments: ISSN: R. Gilman September 2013

Network Working Group. Category: Standards Track January 1999 Updates: 2284, 1994, PPP LCP Internationalization Configuration Option

Network Working Group. Live Networks, Inc. July Session Description Protocol (SDP) Source Filters

Internet Engineering Task Force (IETF) Request for Comments: ISSN: June 2010

Network Working Group. Category: Standards Track September Telnet Encryption: DES3 64 bit Cipher Feedback

[MS-RTPRAD-Diff]: Real-Time Transport Protocol (RTP/RTCP): Redundant Audio Data Extensions

Request for Comments: 2711 Category: Standards Track BBN October 1999

Network Working Group Request for Comments: 5576 Category: Standards Track Helsinki University of Technology T. Schierl Fraunhofer HHI June 2009

Request for Comments: 3578 Category: Standards Track dynamicsoft J. Peterson NeuStar L. Ong Ciena August 2003

draft-ietf-sip-info-method-02.txt February 2000 The SIP INFO Method Status of this Memo

Ericsson D. Willis. Cisco Systems. April 2006

Category: Standards Track November Registration of Charset and Languages Media Features Tags. Status of this Memo

Request for Comments: 2771 Category: Informational February An Abstract API for Multicast Address Allocation

Request for Comments: 5079 Category: Standards Track December Rejecting Anonymous Requests in the Session Initiation Protocol (SIP)

Category: Standards Track December 2003

Internet Engineering Task Force (IETF) Request for Comments: ISSN: May 2014

Network Working Group. November Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)

Updates: 2710 September 2003 Category: Standards Track. Source Address Selection for the Multicast Listener Discovery (MLD) Protocol

[MS-TURNBWM]: Traversal using Relay NAT (TURN) Bandwidth Management Extensions

Category: Informational March Portable Font Resource (PFR) - application/font-tdpfr MIME Sub-type Registration

Category: Standards Track October Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)

Request for Comments: 5369 Category: Informational October Framework for Transcoding with the Session Initiation Protocol (SIP)

Network Working Group. Category: Informational September 2000

RTP Payload for Redundant Audio Data. Status of this Memo

AARNet Copyright SDP Deep Dive. Network Operations. Bill Efthimiou APAN33 SIP workshop February 2012

Network Working Group. Obsoletes: 3555 March 2007 Category: Standards Track

Preliminary. [MS-EUMSDP]: Exchange Unified Messaging Session Description Protocol Extension

Request for Comments: April Control of Service Context using SIP Request-URI

Expires: August 2, 2003 February SIP Authenticated Identity Body (AIB) Format draft-ietf-sip-authid-body-01. Status of this Memo

[MS-TURNBWM]: Traversal using Relay NAT (TURN) Bandwidth Management Extensions

Category: Standards Track January 1999

Network Working Group Request for Comments: 2671 Category: Standards Track August 1999

Request for Comments: K. Norrman Ericsson June 2006

Request for Comments: 4759 Category: Standards Track Neustar Inc. L. Conroy Roke Manor Research November 2006

Request for Comments: 3306 Category: Standards Track Microsoft August 2002

Request for Comments: 3601 Category: Standards Track September 2003

Network Working Group Request for Comments: 3634 Category: Standards Track Comcast Cable J. Bevilacqua N. Davoust YAS Corporation December 2003

Network Working Group Request for Comments: January IP Payload Compression Using ITU-T V.44 Packet Method

Network Working Group. Category: Standards Track W3C/INRIA/MIT July 2003

Internet Engineering Task Force (IETF) Request for Comments: 7197 Category: Standards Track. H. Ou. Cisco. April 2014

Request for Comments: 3206 Category: Standards Track February 2002

Request for Comments: February Mobile IP Vendor/Organization-Specific Extensions

Network Working Group Request for Comments: 5372 Category: Standards Track Sony October 2008

Internet Engineering Task Force (IETF) Category: Informational August 2012 ISSN:

Request for Comments: 4393 Category: Standards Track March MIME Type Registrations for 3GPP2 Multimedia Files

Network Working Group. Intended status: Standards Track Columbia U. Expires: March 5, 2009 September 1, 2008

Category: Informational 1 April 2001

Network Working Group Request for Comments: 3397 Category: Standards Track Apple Computer, Inc. November 2002

Transcoding Services Invocation in the Session Initiation Protocol

Network Working Group Request for Comments: 4060 Category: Standards Track May 2005

Network Working Group. Sun Microsystems October 2001

Request for Comments: 3401 Updates: 2276 October 2002 Obsoletes: 2915, 2168 Category: Informational

Request for Comments: 3119 Category: Standards Track June A More Loss-Tolerant RTP Payload Format for MP3 Audio

September The Internet Assigned Number Authority (IANA) tel Uniform Resource Identifier (URI) Parameter Registry. Status of This Memo

Request for Comments: 3192 Obsoletes: 2304 October 2001 Updates: 2846 Category: Standards Track

Request for Comments: 3968 Updates: 3427 December 2004 BCP: 98 Category: Best Current Practice

Z24: Signalling Protocols

Request for Comments: 3191 Obsoletes: 2303 October 2001 Updates: 2846 Category: Standards Track. Minimal GSTN address format in Internet Mail

Conference Establishment & Control

Request for Comments: 3764 Category: Standards Track April enumservice registration for Session Initiation Protocol (SIP) Addresses-of-Record

Authentication, Authorization and Accounting Requirements for the Session Initiation Protocol

Network Working Group Request for Comments: Category: Standards Track April 2001

Intended status: Informational Expires: June 6, 2019 A. Hutton Atos R. Jesske Deutsche Telekom T. Stach Unaffiliated December 3, 2018

Intended status: Standards Track October 15, 2012 Expires: April 18, 2013

Internet Engineering Task Force (IETF) Category: Standards Track April 2010 ISSN: RTP and the Datagram Congestion Control Protocol (DCCP)

Request for Comments: 2304 Category: Standards Track March 1998

Request for Comments: 5115 Category: Standards Track UCL January Telephony Routing over IP (TRIP) Attribute for Resource Priority

RFC 3173 IP Payload Compression Protocol September 2001

Network Working Group Request for Comments: IBM L. Masinter AT&T December 1999

Columbia University G. Camarillo Ericsson October 2005

Request for Comments: 3861 Category: Standards Track August 2004

September Copyright (C) The Internet Society (2000). All Rights Reserved.

Obsoletes: 2070, 1980, 1942, 1867, 1866 Category: Informational June 2000

Internet Engineering Task Force (IETF) Request for Comments: Nokia Research Center May 2014

Network Working Group Request for Comments: December 1998

Request for Comments: Columbia University December An RTP Payload Format for Generic Forward Error Correction

Transcription:

Network Working Group F. Andreasen Request for Comments: 3407 Cisco Systems Category: Standards Track October 2002 Session Description Protocol (SDP) Simple Capability Declaration 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 (2002). All Rights Reserved. Abstract This document defines a set of Session Description Protocol (SDP) attributes that enables SDP to provide a minimal and backwards compatible capability declaration mechanism. Such capability declarations can be used as input to a subsequent session negotiation, which is done by means outside the scope of this document. This provides a simple and limited solution to the general capability negotiation problem being addressed by the next generation of SDP, also known as SDPng. 1. Conventions Used in this Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [2]. 2. Introduction The Session Description Protocol (SDP) [3] describes multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. SDP was not intended to provide capability negotiation. However, as the need for this has become increasingly important, work has begun on a "next generation SDP" (SDPng) [4,5] that supports both session description and capability negotiation. SDPng is not anticipated to be backwards compatible with SDP and work on SDPng is currently in the early stages. However, several other protocols, e.g. SIP [6] and Media Gateway Control Protocol (MGCP) [7], use SDP and are likely to Andreasen Standards Track [Page 1]

continue doing so for the foreseeable future. Nevertheless, in many cases these signaling protocols have an urgent need for some limited form of capability negotiation. For example, an endpoint may support G.711 audio (over RTP) as well as T.38 fax relay (over UDP or TCP). Unless the endpoint is willing to support two media streams at the same time, this cannot currently be expressed in SDP. Another example involves support for multiple codecs. An endpoint indicates this by including all the codecs in the "m=" line in the session description. However, the endpoint thereby also commits to simultaneous support for each of these codecs. In practice, Digital Signal Processor (DSP) memory and processing power limitations may not make this feasible. As noted in [4], the problem with SDP is that media descriptions are used to describe session parameters as well as capabilities without a clear distinction between the two. In this document, we define a minimal and backwards compatible capability declaration feature in SDP by defining a set of new SDP attributes. Together, these attributes define a capability set, which consists of a capability set sequence number followed by one or more capability descriptions. Each capability description in the set contains information about supported media formats, but the endpoint is not committing to use any of these. In order to actually use a declared capability, session negotiation will have to be done by means outside the scope of this document, e.g., using the offer/answer model [8]. It should be noted that the mechanism is not intended to solve the general capability negotiation problem targeted by SDPng. It is merely intended as a simple and limited solution to the most urgent problems facing current users of SDP. 3. Simple Capability Declaration Attributes The SDP Simple Capability Declaration (simcap) is defined by a set of SDP attributes. Together, these attributes form a capability set which describes the complete media capabilities of the endpoint. Any previous capability sets issued by the endpoint for the session in question no longer apply. The capability set consists of a sequence number and one or more capability descriptions. Each such capability description describes the media type and media formats supported and may include one or more capability parameters to further define the capability. A session description MUST NOT contain more than one capability set, however the capability set can describe capabilities at both the session and media level. Capability descriptions provided at the session level apply to all media streams of the media Andreasen Standards Track [Page 2]

type indicated, whereas capability descriptions provided at the media level apply to that particular media stream only. We refer to these respectively as session capabilities and media stream capabilities. A media stream capability may or may not be of the same media type as the media stream to which it applies. The capability set MUST begin with a single sequence number followed by one or more capability descriptions listing all media formats the endpoint is currently able and willing to support. More specifically, if a media format is included in a media ("m=") line, then by definition the media format MUST be included in either a session capability or a media stream capability for that media line. The endpoint MAY include additional media formats in a capability if it is capable of supporting those media formats in a session with its peer. An endpoint MUST NOT include capabilities it knows it cannot use in a particular session. An endpoint receiving a capability set from another endpoint MAY use any of the media formats included in that capability set in a later attempt to negotiate media streams with the other endpoint, e.g., using the offer/answer model [8]. If a new capability set is received from the other endpoint, the old capability set MUST NOT be used any longer. Session capabilities can be used for any media streams of the indicated media type, whereas media stream capabilities can only be used for their associated media line. However, an endpoint receiving a capability set with a given media format MUST NOT assume that a subsequent attempt to negotiate a media stream using just this media format will succeed. The individual capability descriptions in a capability set can be provided contiguously or they can be scattered throughout the session description. The first capability description MUST, however, follow immediately after the sequence number. The sequence number is on the form: a=sqn: <sqn-num> where <sqn-num> is an integer between 0 and 255 (both included). The initial sequence number MUST be 0 (zero) and it MUST be incremented by 1 modulo 256 with each new capability set issued by the endpoint. Receivers may not necessarily see all capability sets issued and hence MUST NOT reject a capability set due to gaps in sequence numbers. The sequence number MUST either be provided as a sessionlevel or media-level attribute, however there MUST NOT be more than one occurrence of the sequence number attribute in the session description (since there cannot be more than one capability set). Andreasen Standards Track [Page 3]

Each capability description in the capability set is on the form: a=cdsc: <cap-num> <media> <transport> <fmt list> where <cap-num> is an integer between 1 and 255 (both included) used to number the capabilities, and <media>, <transport>, and <fmt list> are defined as in the SDP "m=" line. The capability description refers to a send and receive capability by default. When generating a capability set, the capability number MUST start with 1 in the first capability description, and be incremented by the number of media formats in the <fmt list> for each subsequent capability description. The media formats in the <fmt list> are numbered from left to right. Receivers of a capability set MUST NOT, however, reject capability descriptions due to gaps in the capability numbers. The capability number provides a convenient handle within the context of the capability set (as referenced by the sequence number) which may be used to reference a particular capability by means outside of this specification. A capability description can include one or more capability parameter lines on the form: a=cpar: <cap-par> a=cparmin: <cap-par> a=cparmax: <cap-par> where <cap-par> is either bandwidth information ("b=") or an attribute ("a=") in its full <type>=<value> form (see [3]). A capability parameter line provides additional parameters for the preceding "cdsc" attribute line. Capability parameter lines for a capability description SHOULD immediately follow the "cdsc" line they refer to. Nevertheless, the capability description includes all capability parameter lines until the next capability description ("cdsc") or media ("m=") line in the session description. The "cpar" attribute should normally be used when capability parameter values are to be specified. When provided, it means that the endpoint is declaring that it supports the media formats in the preceding "cdsc" line in accordance with the <cap-par> value specified. This can, for example, be used to specify "fmtp" parameters. If a session negotiation is attempted without considering the <cap-par> value, it may fail due to lack of endpoint support. A capability description may contain zero, one, or more "cpar" attribute lines describing either the same or different parameters. Describing the same parameter more than once can be used to specify alternatives. Andreasen Standards Track [Page 4]

Where a minimum numerical value is to be specified, the "cparmin" attribute should be used. There may be zero, one, or more "cparmin" attribute lines in a capability description, however a given parameter MUST NOT be described by a "cparmin" attribute more than once. Where a maximum numerical value is to be specified, the "cparmax" attribute should be used. There may be zero, one, or more "cparmax" attribute lines in a capability description, however a given parameter MUST NOT be described by a "cparmax" attribute more than once. Ranges of numerical values can be expressed by using a "cparmin" and a "cparmax" attribute for a given parameter. It follows from the previous rules, that only a single range can be specified for a given parameter. Capability descriptions may be provided at both the session-level and media-level. A capability description provided at the session-level applies to all the media streams of the indicated media type in the session description. A capability description provided at the media-level only applies to that particular media stream (regardless of media type). If a capability description with media type X is provided at the session-level, and there are no media streams of type X in the session description, then it is undefined which of the media streams the capability description applies to (except if there is only one media stream). It is therefore RECOMMENDED, that such capabilities are provided at the media-level instead. Below we show an example session description using the above simple capability declaration mechanism: v=0 o=- 25678 753849 IN IP4 128.96.41.1 s= c=in IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 18 96 a=rtpmap:96 telephone-event a=fmtp:96 0-15,32-35 a=sqn: 0 a=cdsc: 1 audio RTP/AVP 0 18 96 a=cpar: a=fmtp:96 0-16,32-35 a=cdsc: 4 image udptl t38 a=cdsc: 5 image tcp t38 Andreasen Standards Track [Page 5]

The sender of this session description is currently prepared to send and receive G.729 audio as well as telephone-events 0-15 and 32-35. The sender is furthermore capable of supporting: * PCMU encoding for the audio media stream, * telephone events 0-16 and 32-35, * T.38 fax relay using udp or tcp (see [9]). Note, that the first capability number specified is 1, whereas the next is 4 since three media formats were included in the first capability description. Also note that the rtpmap for payload type 96 was not included in the capability description, as it was already specified for the media ("m=") line. Conversely, it would of course not have been valid to provide the rtpmap in the capability description and then omit the "a=rtpmap" line. Below, we show another example of the simple capability declaration mechanism, this time with multiple media streams: v=0 o=- 25678 753849 IN IP4 128.96.41.1 s= c=in IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 18 a=sqn: 0 a=cdsc: 1 audio RTP/AVP 0 18 m=video 3458 RTP/AVP 31 a=cdsc: 3 video RTP/AVP 31 34 The sender of this session description is currently prepared to send and receive G.729 audio and H.261 video. The sender is furthermore capable of supporting: * PCMU encoding for the audio media stream, * H.263 for the video media stream. Note that the first capability number specified is 1, whereas the next is 3, since two media formats were included in the first capability description. Also note that the sequence number applies to the entire capability set, i.e. both audio and video, and hence is only supplied once. Finally, note that the media formats 18 and 31 are listed in both the media lines and the capability set as required. The above session description could have equally been supplied as follows: Andreasen Standards Track [Page 6]

v=0 o=- 25678 753849 IN IP4 128.96.41.1 s= c=in IP4 128.96.41.1 t=0 0 a=sqn: 0 a=cdsc: 1 audio RTP/AVP 0 18 a=cdsc: 3 video RTP/AVP 31 34 m=audio 3456 RTP/AVP 18 m=video 3458 RTP/AVP 31 i.e., with the capability set provided at the session-level. 4. Security Considerations Capability negotiation of security-sensitive parameters is a delicate process, and should not be done without careful evaluation of the design, including the possible susceptibility to downgrade attacks. Use of capability re-negotiation may make the session susceptible to denial of service, without design care as to authentication. 5. IANA Considerations This document defines the following new SDP parameters of type "attfield" (attribute names): Attribute name: sqn Long form name: Sequence number. Type of attribute: Session-level and media-level. Subject to charset: No. Purpose: Capability set numbering. Appropriate values: See Section 3. Attribute name: cdsc Long form name: Capability description. Type of attribute: Session-level and media-level. Subject to charset: No. Purpose: Describe capabilities in a capability set. Appropriate values: See Section 3. Attribute name: cpar Long form name: Capability parameter line. Type of attribute: Session-level and media-level. Subject to charset: No. Purpose: Provide capability description parameters. Appropriate values: See Section 3. Andreasen Standards Track [Page 7]

Attribute name: cparmin Long form name: Minimum capability parameter line. Type of attribute: Session-level and media-level. Subject to charset: No. Purpose: Provide minimum capability description parameters. Appropriate values: See Section 3. Attribute name: cparmax Long form name: Maximum capability parameter line. Type of attribute: Session-level and media-level. Subject to charset: No. Purpose: Provide maximum capability description parameters. Appropriate values: See Section 3. 6. Normative References [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [3] Handley, M. and V. Jacobson, "SDP: session description protocol", Request for Comments 2327, April 1998. 7. Informative References [4] Kutscher, Ott, Bormann and Curcio, "Requirements for Session Description and Capability Negotiation", Work in Progress. [5] Kutscher, Ott and Borman, "Session Description and Capability Negotiation", Work in Progress. [6] Handley, M., Schulzrinne, H., Schooler, E. and J. Rosenberg, "SIP: session initiation protocol", RFC 2543, March 1999. [7] Arango, M., Dugan, A., Elliott, I., Huitema, C. and S. Pickett, "Media Gateway Control Protocol (MGCP) Version 1.0", RFC 2705, October 1999. [8] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with SDP", Work in Progress. [9] ITU-T Recommendation T.38 Annex D, "SIP/SDP Call Establishment Procedures". Andreasen Standards Track [Page 8]

8. Acknowledgments This work draws upon the ongoing work on SDPng in the IETF MMUSIC Working Group; in particular [4]. Furthermore this work was inspired by the CableLabs PacketCable project. The author would like to recognize and thank Joerg Ott and Jonathan Rosenberg who provided many detailed comments and suggestions to improve this specification. Colin Perkins, Orit Levin and Tom Taylor provided valuable feedback as well. 9. Author s Address Flemming Andreasen Cisco Systems 499 Thornall Street, 8th floor Edison, NJ EMail: fandreas@cisco.com Andreasen Standards Track [Page 9]

10. Full Copyright Statement Copyright (C) The Internet Society (2002). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Andreasen Standards Track [Page 10]