MMUSIC Working Group J. Hautakorpi Internet-Draft G. Camarillo Intended status: Standards Track Ericsson Expires: March
1,26, 2007 Ericsson August 28,September 22, 2006 The SDP (Session Description Protocol) Content Attribute draft-ietf-mmusic-sdp-media-content-05.txtdraft-ietf-mmusic-sdp-media-content-06.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on March 1,26, 2007. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document defines a new Session Description Protocol (SDP) media- level attribute, 'content'. The 'content' attribute defines the content of the media stream in more detailed level than the media description line. The sender of an SDP session description can attach the 'content' attribute to one or more media streams. The receiving application can then treat each media stream differently (e.g., show it on a big screen or small screen) based on its content. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Related Techniques . . . . . . . . . . . . . . . . . . . . . . 3 4. Motivation for the New Content Attribute . . . . . . . . . . . 4 5. The Content Attribute . . . . . . . . . . . . . . . . . . . . 5 6. The Content Attribute in the Offer/Answer Model . . . . . . . 6 7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8. Operation with SMIL . . . . . . . . . . . . . . . . . . . . . 78 9. Security Considerations . . . . . . . . . . . . . . . . . . . 8 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 910 12.1. Normative References . . . . . . . . . . . . . . . . . . 910 12.2. Informational References . . . . . . . . . . . . . . . . 910 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 Intellectual Property and Copyright Statements . . . . . . . . . . 12 1. Introduction The Session Description Protocol (SDP)  is a protocol that is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. One of the most typical use cases of SDP is the one where it is used with the Session Initiation Protocol (SIP) . There are situations where one application receives several similar media streams which are described in an SDP session description. The media streams can be similar in the sense that their content cannot be distinguished just by examining thetheir media description lines (e.g., two video streams). The 'content' attribute is needed,needed so that the receiving application can treat each media stream appropriately based on its content. This specification defines the SDP 'content' media-level attribute, which provides more information about the media stream than the 'm' line in an SDP session description. The main purpose of this specification is to allow applications to take automated actions based on the 'content' attributes. However, this specification does not define those actions. Consequently, two implementations can behave completely differently when receiving the same 'content' attribute. 2. Terminology In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119  and indicate requirement levels for compliant implementations. 3. Related Techniques The 'label' attribute  enables a sender to attach a pointer to a particular media stream. The name space of the 'label' attribute itself is unrestricted, sounrestricted; so, in principle it could also be used to convey information about the content of a media stream. However, in practice, this is not possible because of the need for backward compatibility. Existing implementations of the 'label' attribute already use values from that unrestricted namespace in an application specificapplication-specific way. SoSo, it is not possible to reserve portions of the 'label' attribute's namespace without possible conflict with already used, application specificalready-used application-specific labels. It is possible to assign semantics to a media stream with an external document that uses the 'label' attribute as a pointer. The downside of this approach is that it requires an external document. TypicallyTherefore, this kind of mechanism would be defined for some particularis only applicable to special use case, for examplecases where such external documents are used (e.g., centralized conferencing.conferencing). Yet another way to attach semantics to a media stream is by usingto use the 'i' SDP attribute, defined in . However, values of the 'i' attribute are intended for human users and not for automata. 4. Motivation for the New Content Attribute Currently, SDP does not provide any means to describe what is the content of a media stream (e.g., speaker's image, slides, sign language) in a form that the application can understand. Of coursecourse, the end user can see the content of the media stream and read its title, but the application cannot understand what the media stream contains. The application that is receiving multiple similar (e.g., same type and format) media stream needs, in some cases, to know what is the content of those streams. This kind of situation occurs, for example, in cases where presentation slides, the speaker's imageimage, and sign language are transported as separate media streams. It would be desirable that the receiving application could distinguish them in a way that it could handle them automatically in an appropriate manner. +--------------------------------------+ |+------------++----------------------+| || || || || speaker's || || || image || || || || || |+------------+| presentation || |+------------+| slides || || || || || sign || || || language || || || || || |+------------++----------------------+| +--------------------------------------+ Figure 1: Application's screen The Figure 1 presents a screen of a typical communication application. The 'content' attribute enablesmakes it possible for the application to make the decision ondecide where to show each media stream. From an end user's perspective, it is desirable that the user does not need to arrange media stream every time thea new media session starts. The 'content' attribute could also be used in more complex situations. This kindAn example of such a complex situation could be e.g.,is an application that iscontrolling theequipment in an auditorium. An auditorium can have many different output channels for thevideo (main(e.g., main screen and two smaller screens) and theaudio (main(e.g., main speakers, headsets for the participants). In this kind of environment, a lot of interaction from the end user who is operatingoperates the application would be required in absence of cues from a controlling application. So, the possibilityThe 'content' attribute would make it possible, for example, for suchan applicationend user needs to handle thespecify, only once, which output each media stream withoutof a given session should use. The application could automatically apply the same media layout for subsequent sessions. So, the 'content' attribute can help to reduce the amount of required end users' input is highly desirable.user interaction considerably. 5. The Content Attribute This specification defines a new media-level value attribute, 'content'. Its formatting in SDP is described by the following BNF : content-attribute = "a=content:" mediacnt-tag mediacnt-tag = mediacnt *("," mediacnt) mediacnt = "slides" / "speaker" / "sl" / "main" / "alt" / mediacnt-ext mediacnt-ext = token The 'content' attribute contains a token, which MAY be attached to a media stream by a sending application. It describesAn application MAY attach a content attribute to any media stream it describes. That attribute contains one or more tokens describing the content of the transmitted media stream to the receiving application. Multiple 'content' attribute values MAY be attached to a single media stream.This document provides a set of pre-defined values for the 'content' attribute. Other values can be defined in the future. The pre- defined values are: slides: This is athe media stream thatincludes presentation slides. The media type can be e.g.,be, for example, a video stream or a setnumber of instant messagemessages with pictures. A typicalTypical use casecases for this is e.g.,are online seminars and courses. This is similar to the 'presentation' role in H.239 .. speaker: This is athe media stream contains the image fromof the speaker. The media can be e.g.,be, for example, a video stream or a still image. Typical use case for this is e.g,are online seminars and courses. sl: This means thatthe media stream contains sign language. The media type is a video stream.A typical use case for this is one where thean audio stream that is translated into sign language.language, which is sent over a video stream. main: This means thatthe media stream is taken from the main source. A typical use case for this is a concert,concert where the camera is shooting the performer. alt: This means thatthe media stream is taken from the alternative source. A typical use case for this is an event,event where there is a separatethe ambient sound andis separated from the main sound. The alternative audio stream could be e.g.,be, for example, the sound of a jungle. Another example is the video of thea conference room while the main isstream carries the video of the speaker. This is similar to the 'live' role in H.239. All ofthese values can be used with any media type. The application can make decisions on how to handle a single media stream based on both the media type and the value of the 'content' attribute. Therefore the situation where one value of 'content' attribute occurs more than once in a single session descriptor is not problematic. 6. The Content Attribute in the Offer/Answer Model This specification does not define a means to discover whether or not the peer endpoint understands the 'content' attribute because 'content' values are just informative onlyat the offer/answer model  level. The fact that the peer endpoint does not understand the 'content' attribute does not keep the media session from being established. The only consequence is that end user interaction on the receiving side may be required to direct the individual media streams appropriately. Since the 'content' attribute does not have to be understood, an SDP answer MAY contain 'content' attributes even if none were present in the offer. Similarly, the answer MAY contain no 'content' attributes even if they were present in the offer. Furthermore, the values of 'content' attributes does not need to match in an offer and an answer. The 'content' attribute can also be used in scenarios where SDP is used in a declarative style. For example, 'content' attributes can be used in SDP session descriptors that are distributed with Session Announcement Protocol (SAP) .. 7. Examples There are two examples in this section. The first example, shown below, uses only onea single 'content' attribute value per media stream: v=0 o=Alice 292742730 29277831 IN IP4 184.108.40.206 s=Second lecture from information technology c=IN IP4 220.127.116.11 t=0 0 m=video 52886 RTP/AVP 31 a=rtpmap:31 H261/9000 a=content:slides m=video 53334 RTP/AVP 31 a=rtpmap:31 H261/9000 a=content:speaker m=video 54132 RTP/AVP 31 a=rtpmap:31 H261/9000 a=content:sl The second example, below, shows a case where there is more than one 'content' attribute value per media stream. The difference towith the previous example is that now the conferencing system might automatically mixesmix the video streams from the presenter and slides: v=0 o=Alice 292742730 29277831 IN IP4 18.104.22.168 s=Second lecture from information technology c=IN IP4 22.214.171.124 t=0 0 m=video 52886 RTP/AVP 31 a=rtpmap:31 H261/9000 a=content:slides,speaker m=video 54132 RTP/AVP 31 a=rtpmap:31 H261/9000 a=content:sl 8. Operation with SMIL The values of 'content' attribute, defined in Section 5, can also be used with SMIL .. SMIL contains a 'param' element, which is used for describing the content of a media flow. However, this 'param' elementelement, like 'content' attribute, provides onlyapplication specific description of media content. By using the values of the 'content' attribute, this 'param' element can also be used to describe the media content in globally interpretable way.Details on how to use the values of the 'content' attribute with SMIL's 'param' element are outside the scope of this specification. 9. Security Considerations An attacker may attempt to add, modify, or remove 'content' attributes from a session description. ThisDepending on how an implementation chooses to react to the presence or absence of a given 'content' attribute, this could result in an application behaving in an undesirable way. So, it is strongly RECOMMENDED that integrity protection be applied to the SDP session descriptions. ForIntegrity protection can be provided for session descriptionsdescription carried in SIP , e.g., by using S/MIME  or Transport Layer Security (TLS) . It is the natural choiceassumed that values of 'content' attribute do not contain data that would be truly harmful if it is exposed to provide such end-to-end integrity protection, as described in RFC 3261 . Other applications MAY use a different forman possible attacker. It must be noted that the initial set of integrityvalues does not contain any data that would require confidentiality protection. However, S/MIME and TLS can be used to protect confidentiality, if needed. 10. IANA Considerations This document defines a new 'content' attribute for SDP. It also defines an initial set of values for it. Some general information regarding 'content' attribute is presented in the following: Contact name: Jani Hautakorpi Jani.Hautakorpi@ericsson.com. Attribute name: 'content'. Type of attribute Media level. Subject to charset: No. Purpose of attribute: The 'content' attribute gives information from the content of the media stream to the receiving application. Allowed attribure values: "slides", "speaker", "sl", "main", "alt", and any other registered values. The IANA is requested to create a subregistry for 'content' attribute values under the Session Description Protocol (SDP) Parameters registry. The initial values for the subregistry are presented in the following, and IANA is requested to add them into its database: Value of 'content' attribute Reference Description ---------------------------- --------- ----------- slides RFC xxxx Presentation slides speaker RFC xxxx Image from the speaker sl RFC xxxx Sign language main RFC xxxx Main media stream alt RFC xxxx Alternative media stream Note for the RFC Editor: The'RFC xxxx' in theabove should be replaced by a reference to the coming RFC number of this draft. As per the terminology in RFC 2434 , the registration policy for new values for the 'content' parameter shall be 'Specification Required'. If new values for the'content' attribute are specified in the future, they should consist of a meta description of the contents of a media stream. New values for the'content' attribute should not describe things like what to do in order to handle a stream. 11. Acknowledgements Authors would like to thank Arnoud van Wijk and Roni Even, who provided valuable ideas for this document. We wish to thank also Tom Taylor for a thorough review. 12. References 12.1. Normative References  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", draft-ietf-mmusic-sdp-new-26 (work in progress), JanuaryRFC 4566, July 2006.  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997.  Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.  Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. 12.2. Informational References  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.  Ramsdell, B., "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification", RFC 3851, July 2004.  Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.1", RFC 4346, April 2006.  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002.  Handley, M., Perkins, C., and E. Whelan, "Session Announcement Protocol", RFC 2974, October 2000.  Levin, O. and G. Camarillo, "The SDP (SessionSession Description Protocol)Protocol (SDP) Label Attribute", draft-ietf-mmusic-sdp-media-label-01 (work in progress), January 2005. RFC 4574, August 2006.  Michel, T. and J. Ayars, "Synchronized Multimedia Integration Language (SMIL 2.0) - [Second Edition]", W3C REC REC-SMIL2- 20050107, January 2005.  ITU-T, "Infrastructure of audiovisual services - Systems aspects; Role management and additional media channels for H.300-series terminals", Series H H.239, July 2003. Authors' Addresses Jani Hautakorpi Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: Jani.Hautakorpi@ericsson.com Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: Gonzalo.Camarillo@ericsson.com Full Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. Intellectual Property StatementThe IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at email@example.com. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.Acknowledgment Funding for the RFC Editor function is currentlyprovided by the Internet Society.IETF Administrative Support Activity (IASA).