| < draft-ietf-mmusic-sdp-media-label-00.txt | draft-ietf-mmusic-sdp-media-label-01.txt > | |||
|---|---|---|---|---|
| MMUSIC O. Levin | MMUSIC O. Levin | |||
| Internet-Draft Microsoft Corporation | Internet-Draft Microsoft Corporation | |||
| Expires: March 29, 2005 G. Camarillo | Expires: July 1, 2004 G. Camarillo | |||
| Ericsson | Ericsson | |||
| September 28, 2004 | January 2004 | |||
| The SDP (Session Description Protocol) Label Attribute | The SDP (Session Description Protocol) Label Attribute | |||
| draft-ietf-mmusic-sdp-media-label-00.txt | draft-ietf-mmusic-sdp-media-label-01.txt | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is subject to all provisions | This document is an Internet-Draft and is subject to all provisions | |||
| of section 3 of RFC 3667. By submitting this Internet-Draft, each | of section 3 of RFC 3667. By submitting this Internet-Draft, each | |||
| author represents that any applicable patent or other IPR claims of | 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 is aware have been or will be disclosed, and any of | |||
| which he or she become aware will be disclosed, in accordance with | which he or she become aware will be disclosed, in accordance with | |||
| RFC 3668. | RFC 3668. | |||
| skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on March 29, 2005. | This Internet-Draft will expire on July 1, 2004. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2004). | Copyright (C) The Internet Society (2004). | |||
| Abstract | Abstract | |||
| This document defines a new Session Description Protocol (SDP) | This document defines a new Session Description Protocol (SDP) | |||
| media-level attribute: "label". The "label" attribute carries a | media-level attribute: "label". The "label" attribute carries a | |||
| pointer to a media stream in the context of an arbitrary network | pointer to a media stream in the context of an arbitrary network | |||
| skipping to change at page 3, line 9 ¶ | skipping to change at page 3, line 9 ¶ | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 10.1 Normative References . . . . . . . . . . . . . . . . . . . . 6 | 10.1 Normative References . . . . . . . . . . . . . . . . . . . . 6 | |||
| 10.2 Informative References . . . . . . . . . . . . . . . . . . . 6 | 10.2 Informative References . . . . . . . . . . . . . . . . . . . 6 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 6 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| Intellectual Property and Copyright Statements . . . . . . . . 7 | Intellectual Property and Copyright Statements . . . . . . . . 7 | |||
| 1. Introduction | 1. Introduction | |||
| SDP is being used by a variety of distributed over the network | SDP is being used by a variety of distributed over the network | |||
| applications. These applications deal with multiple sessions being | applications. These applications deal with multiple sessions being | |||
| described by SDP [2] and serving multiple users or services in the | described by SDP [4] and serving multiple users or services in the | |||
| context of a single application instance. Applications of this kind | context of a single application instance. Applications of this kind | |||
| need a means to identify a particular media stream across multiple | need a means to identify a particular media stream across multiple | |||
| SDP descriptions exchanged with different users. | SDP descriptions exchanged with different users. | |||
| The XCON framework [6] is an example of a centralized conference | The XCON framework is an example of a centralized conference | |||
| architecture that uses SDP according to the offer/answer mechanism | architecture that uses SDP according to the offer/answer mechanism | |||
| defined in [3] to establish media streams with each of the conference | defined in [3] to establish media streams with each of the conference | |||
| participants. Additionally, XCON identifies the need to uniquely | participants. Additionally, XCON identifies the need to uniquely | |||
| identify a media stream in terms of its role in a conference | identify a media stream in terms of its role in a conference | |||
| regardless of its media type, transport protocol, and media format. | regardless of its media type, transport protocol, and media format. | |||
| This can be acomplished by using an external document that points to | This can be acomplished by using an external document that points to | |||
| the appropriate media stream and provides information (e.g., the | the appropriate media stream and provides information (e.g., the | |||
| media stream's role in the conference) about it. | media stream's role in the conference) about it. | |||
| This specification defines the SDP [2] "label" media-level attribute, | This specification defines the SDP [4] "label" media-level attribute, | |||
| which provides a pointer to a media stream which is described by an | which provides a pointer to a media stream which is described by an | |||
| m= line in an SDP session description. | 'm' line in an SDP session description. | |||
| 2. Terminology | 2. Terminology | |||
| In this document, the key words "MUST", "MUST NOT", "REQUIRED", | In this document, the key words "MUST", "MUST NOT", "REQUIRED", | |||
| "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT | "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT | |||
| RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as | RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as | |||
| described in BCP 14, RFC 2119 [1] and indicate requirement levels for | described in BCP 14, RFC 2119 [1] and indicate requirement levels for | |||
| compliant implementations. | compliant implementations. | |||
| 3. Motivation for the New label Attribute | 3. Motivation for the New label Attribute | |||
| Even though SDP and its extensions already provide a few ways to | Even though SDP and its extensions already provide a few ways to | |||
| refer to a media stream, none of them is appropriate to be used in | refer to a media stream, none of them is appropriate to be used in | |||
| the context of external documents that may be created before the | the context of external documents that may be created before the | |||
| session description itself and need to be handled by automata. | session description itself and need to be handled by automata. | |||
| The "i" SDP attribute, defined in RFC 2327 [2], can be used to label | The 'i' SDP attribute, defined in RFC 2327 [4], can be used to label | |||
| media streams. Nevertheless, values of the "i" attribute are | media streams. Nevertheless, values of the 'i' attribute are | |||
| intended for human users and not for automata. | intended for human users and not for automata. | |||
| The "mid" SDP attribute, defined in RFC 3388 [4], can be used to | The 'mid' SDP attribute, defined in RFC 3388 [6], can be used to | |||
| identify media streams as well. Nevertheless, the scope of "mid" is | identify media streams as well. Nevertheless, the scope of 'mid' is | |||
| too limited to be used by applications dealing with multiple SDP | too limited to be used by applications dealing with multiple SDP | |||
| sessions. This is due to the fact that values of the "mid" attribute | sessions. This is due to the fact that values of the 'mid' attribute | |||
| are meaningful in the context of a single SDP session, not in the | are meaningful in the context of a single SDP session, not in the | |||
| context of a broader application (e.g., a multiparty application). | context of a broader application (e.g., a multiparty application). | |||
| Another way of referring to a media stream is by using the order of | Another way of referring to a media stream is by using the order of | |||
| the m-line in the SDP session document (e.g., the 5th media stream in | the 'm' line in the SDP session document (e.g., the 5th media stream | |||
| the session description). This is the mechanism used in the | in the session description). This is the mechanism used in the | |||
| offer/answer model [3]. | offer/answer model [3]. | |||
| The problem with this mechanism is that it can only be used to refer | The problem with this mechanism is that it can only be used to refer | |||
| to media streams in session descriptions that exist already. There | to media streams in session descriptions that exist already. There | |||
| are scenarios where a static document needs to refer, using a | are scenarios where a static document needs to refer, using a | |||
| pointer, to a media stream that will be negotiated by SDP means and | pointer, to a media stream that will be negotiated by SDP means and | |||
| created in the future. When the media stream is eventually created, | created in the future. When the media stream is eventually created, | |||
| the application needs to label the media stream so that the pointer | the application needs to label the media stream so that the pointer | |||
| in the static document points to the proper media stream in the | in the static document points to the proper media stream in the | |||
| session description. | session description. | |||
| 4. The Label Attribute | 4. The Label Attribute | |||
| This specification defines a new media-level value attribute: | This specification defines a new media-level value attribute: | |||
| "label". Its formatting in SDP is described by the following BNF: | 'label'. Its formatting in SDP is described by the following BNF | |||
| [2]: | ||||
| label-attribute = "a=label:" pointer | label-attribute = "a=label:" pointer | |||
| pointer = token | pointer = token | |||
| The "label" attribute contains a token which is defined by an | The 'label' attribute contains a token which is defined by an | |||
| application and is used in its context. The new attribute can be | application and is used in its context. The new attribute can be | |||
| attached to m-lines in multiple SDP documents allowing the | attached to 'm' lines in multiple SDP documents allowing the | |||
| application to logically group the media streams across SDP sessions | application to logically group the media streams across SDP sessions | |||
| when necessary. | when necessary. | |||
| 5. The Label Attribute in the Offer/Answer Model | 5. The Label Attribute in the Offer/Answer Model | |||
| This specification does not define a means to discover whether or not | This specification does not define a means to discover whether or not | |||
| the peer endpoint understands the "label" attribute because "label" | the peer endpoint understands the 'label' attribute because 'label' | |||
| values are informative only at the offer/answer model level. | values are informative only at the offer/answer model level. | |||
| At the offer/answer level, it means that the fact that an offer does | At the offer/answer level, it means that the fact that an offer does | |||
| not contain label attributes does not imply that the answer should | not contain label attributes does not imply that the answer should | |||
| not have them. It also means that the fact that an offer contains | not have them. It also means that the fact that an offer contains | |||
| label attributes does not imply that the answer should have them too. | label attributes does not imply that the answer should have them too. | |||
| In addition to the basic offer/answer rule above, applications that | In addition to the basic offer/answer rule above, applications that | |||
| use "label" as a pointer to media streams MUST specify its usage | use 'label' as a pointer to media streams MUST specify its usage | |||
| constraints. For example, such applications MAY mandate support for | constraints. For example, such applications MAY mandate support for | |||
| "label". In this case, the application will define means for | 'label'. In this case, the application will define means for | |||
| negotiation of the "label" attribute support as a part of its | negotiation of the 'label' attribute support as a part of its | |||
| specification. | specification. | |||
| 6. Example | 6. Example | |||
| The following is an example of an SDP session description that uses | The following is an example of an SDP session description that uses | |||
| the "label" attribute: | the 'label' attribute: | |||
| v=0 | v=0 | |||
| o=bob 280744730 28977631 IN IP4 host.example.com | o=bob 280744730 28977631 IN IP4 host.example.com | |||
| s= | s= | |||
| c=IN IP4 192.0.2.2 | c=IN IP4 192.0.2.2 | |||
| t=0 0 | t=0 0 | |||
| m=audio 6886 RTP/AVP 0 | m=audio 6886 RTP/AVP 0 | |||
| a=label:1 | a=label:1 | |||
| m=audio 22334 RTP/AVP 0 | m=audio 22334 RTP/AVP 0 | |||
| a=label:2 | a=label:2 | |||
| 7. Security Considerations | 7. Security Considerations | |||
| An attacker may attempt to add, modify, or remove "label" attributes | An attacker may attempt to add, modify, or remove 'label' attributes | |||
| from a session description. This could result in an application | from a session description. This could result in an application | |||
| behaving in a non-desirable way. So, it is strongly RECOMMENDED that | behaving in a non-desirable way. So, it is strongly RECOMMENDED that | |||
| integrity protection be applied to the SDP session descriptions. For | integrity protection be applied to the SDP session descriptions. For | |||
| session descriptions carried in SIP [5], S/MIME is the natural choice | session descriptions carried in SIP [5], S/MIME is the natural choice | |||
| to provide such end-to-end integrity protection, as described in RFC | to provide such end-to-end integrity protection, as described in RFC | |||
| 3261 [5]. Other applications MAY use a different form of integrity | 3261 [5]. Other applications MAY use a different form of integrity | |||
| protection. | protection. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| Contact name: Orit Levin oritl@microsoft.com. | Contact name: Orit Levin oritl@microsoft.com. | |||
| Attribute name: "label". | Attribute name: "label". | |||
| Type of attribute Media level. | Type of attribute Media level. | |||
| Subject to charset: Not. | Subject to charset: Not. | |||
| Purpose of attribute: The "Label" attribute associates a media | Purpose of attribute: The 'label' attribute associates a media | |||
| stream with a label. This label allows the media stream to be | stream with a label. This label allows the media stream to be | |||
| referenced by external documents. | referenced by external documents. | |||
| Allowed attribute values: Any octet string. | Allowed attribute values: A token. | |||
| 9. Acknowledgements | 9. Acknowledgements | |||
| Robert Sparks, Adam Roach, and Rohan Mahy provided useful comments on | Robert Sparks, Adam Roach, and Rohan Mahy provided useful comments on | |||
| this document. | this document. | |||
| 10. References | 10. References | |||
| 10.1 Normative References | 10.1 Normative References | |||
| [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
| Levels", BCP 14, RFC 2119, March 1997. | Levels", BCP 14, RFC 2119, March 1997. | |||
| [2] Handley, M. and V. Jacobson, "SDP: Session Description | [2] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
| Protocol", RFC 2327, April 1998. | Specifications: ABNF", RFC 2234, November 1997. | |||
| [3] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | [3] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | |||
| Session Description Protocol (SDP)", RFC 3264, June 2002. | Session Description Protocol (SDP)", RFC 3264, June 2002. | |||
| [4] Camarillo, G., Eriksson, G., Holler, J. and H. Schulzrinne, | [4] Handley, M., Jacobson, V. and C. Perkins, "SDP: Session | |||
| "Grouping of Media Lines in the Session Description Protocol | Description Protocol", draft-ietf-mmusic-sdp-new-21 (work in | |||
| (SDP)", RFC 3388, December 2002. | progress), October 2004. | |||
| 10.2 Informative References | 10.2 Informative References | |||
| [5] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., | [5] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., | |||
| Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: | Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: | |||
| Session Initiation Protocol", RFC 3261, June 2002. | Session Initiation Protocol", RFC 3261, June 2002. | |||
| [6] Koskelainen, P. and H. Khartabil, "Requirements for Conference | [6] Camarillo, G., Eriksson, G., Holler, J. and H. Schulzrinne, | |||
| Policy Control Protocol", draft-ietf-xcon-cpcp-reqs-04 (work in | "Grouping of Media Lines in the Session Description Protocol | |||
| progress), August 2004. | (SDP)", RFC 3388, December 2002. | |||
| Authors' Addresses | Authors' Addresses | |||
| Orit Levin | Orit Levin | |||
| Microsoft Corporation | Microsoft Corporation | |||
| One Microsoft Way | One Microsoft Way | |||
| Redmond, WA 98052 | Redmond, WA 98052 | |||
| USA | USA | |||
| EMail: oritl@microsoft.com | EMail: oritl@microsoft.com | |||
| End of changes. 25 change blocks. | ||||
| 34 lines changed or deleted | 35 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||