Internet Engineering Task Force SIP WG Internet Draft G. Camarillo Ericsson J. Rosenberg dynamicsoft draft-camarillo-mmusic-alt-01.txt June 17, 2003 Expires: December 2003 The Alternative Semantics for the Session Description Protocol Grouping Framework STATUS OF THIS MEMO This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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 To view the list Internet-Draft Shadow Directories, see http://www.ietf.org/shadow.html. Abstract This document defines the alternative (ALT) semantics for the SDP grouping framework. The ALT semantics allow offering alternative transport addresses to establish a particular media stream. This is useful in scenarios that involve IPv4 and IPv6 and/or network address translators. G. Camarillo et. al. [Page 1] Internet Draft SIP June 17, 2003 Table of Contents 1 Introduction ........................................ 3 1.1 Scope ............................................... 3 1.2 Terminology ......................................... 4 2 ALT Semantics ....................................... 4 2.1 Preference .......................................... 4 2.2 Media Stream Establishment Attempts ................. 4 2.2.1 ICE ................................................. 5 2.2.2 Public Addresses .................................... 5 2.3 Backward Compatibility and the "ice" SIP Option Tag ................................................. 5 2.4 ALT and Media Configurations ........................ 6 3 Example ............................................. 6 4 IANA Considerations ................................. 7 5 Security Considerations ............................. 7 6 Authors' Addresses .................................. 8 7 Normative References ................................ 8 8 Informative References .............................. 9 G. Camarillo et. al. [Page 2] Internet Draft SIP June 17, 2003 1 Introduction An SDP [1] session description contains the media parameters to be used to establish a number of media streams. For a particular media stream, an SDP session description contains, among other parameters, the transport addresses and the codec to be used to transfer media. SDP allows providing a set of codecs per media stream, but only one transport address. Being able to provide a set of transport addresses to be tried to establish a media stream is useful when a system cannot determine its own transport address as seen from the remote end. This happens when the end-points support both IPv4 and IPv6 or when there is one or more NATs (Network Address Translator) between them. In these cases, although the end-point cannot provide a definitive transport address to be used for the session at establishment time, it can provide a set of possible candidates. Those candidates include local IPv4 and IPv6 addresses and addresses obtained using STUN [7], RSIP [8] and/or TURN [9]. This document defines the alternative (ALT) semantics for the SDP grouping framework [2]. The ALT semantics allow expressing alternative transport addresses for a particular media stream. 1.1 Scope The ALT semantics are intended to address scenarios where a system cannot determine its own transport address as seen from the remote end but can provide a set of possible candidates. When a transport address that lets the end points communicate to each other is found, it is supposed to be used for the rest of the session. Therefore, the set of addresses grouped with ALT is not intended to be used as a fail-over mechanism (in case the address in use becomes unreachable). Maintaining some addresses (e.g., addresses obtained using TURN) throughout the duration of the session would imply to keep state in the network that would be used only in case of failure. ALT is not intended to address the pick-one-codec-out-of-N problem either. In the offer/answer model [3], when an offerer provides a set of codecs for a media stream, the answerer can use any of them at a given time. Therefore, the offerer needs to be ready to receive any of those codecs during the whole session. The offer/answer model does not have the concept of offering a set of codecs so that the answerer chooses one and sticks to it for the duration of the session. New semantics (different than ALT) may be developed in the future to address the fail-over and the pick-one-codec-out-of-N problems. G. Camarillo et. al. [Page 3] Internet Draft SIP June 17, 2003 1.2 Terminology In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in RFC 2119 [4] and indicate requirement levels for compliant SIP implementations. 2 ALT Semantics We define a new "semantics" attribute within the SDP grouping framework [2]: ALT (Alternative). Media lines grouped using ALT semantics provide alternative transport addresses for a single logical media stream. The entity receiving a session description with an ALT group MUST be ready to receive media over any of the grouped m lines until connectivity is achieved. 2.1 Preference The entity generating a session description may have an order of preference for all the alternative transport addresses offered. We define the q media level attribute to provide this information. q = "a=q:" qvalue The q attribute contains a qvalue, as defined in RFC 3261 [5]: qvalue = ( "0" [ "." 0*3DIGIT ] ) / ( "1" [ "." 0*3("0") ] ) The qvalue reflects the desire that the end point has to receive media on that address, and is assigned as a value from 0 to 1 (1 being most preferred). For example: a=q:1.0 2.2 Media Stream Establishment Attempts An entity receiving a set of streams grouped using ALT semantics cannot assume that it will be possible to successfully use all the alternative transport addresses offered. Some of the m lines may G. Camarillo et. al. [Page 4] Internet Draft SIP June 17, 2003 contain transport addresses that are unreachable for the recipient of the session description. Such entity needs to discover which is the transport address with the highest preference (i.e., highest qvalue) that can be used for the session. There are two mechanisms to perform this discovery; ICE (Interactive Connectivity Establishment) [6] and public addresses. 2.2.1 ICE ICE is intended to be used within the offer/answer model [3]. If the media lines grouped with ALT in an offer contain "a=stun" attributes, the answerer MUST use ICE [6] to determine the particular transport address to be used. This will involve sending STUN requests in parallel to all the transport addresses, as described in ICE. 2.2.2 Public Addresses The public addresses mechanism MUST only be used if the generator of the session description can ensure somehow that the addresses that appear in the session description are all public IP addresses. For example, a server could group a multicast IPv4 address and a multicast IPv6 address using ALT and distribute the session description using a web page, email or SAP [10]. An entity receiving a session description with an ALT group without "a=stun" lines SHOULD try to establish the m line with higher preference whose address understands. How an m line is established depends on the type of the media stream. Establishing an RTP-based m line involves sending or waiting for RTP or RTCP packets. It is RECOMMENDED) that the public address mechanism is only used with multicast addresses or when the remote party does not support ICE. 2.3 Backward Compatibility and the "ice" SIP Option Tag The receiver of a session description with an ALT group is supposed to establish only one media stream. However, if the entity receiving such a session description does not understand the ALT semantics or the grouping framework, it will establish all the streams of the ALT group. If this entity sends media in parallel over all the streams at the same time, the resulting session bandwidth will be much higher than the expected by the creator of the session. If this entity listens to all the streams (e.g., a session multicast on an IPv4 and an IPv6 address), the incoming bandwidth as seen by that entity will be equally high. The ALT semantics MUST NOT be used when this situation is unacceptable. G. Camarillo et. al. [Page 5] Internet Draft SIP June 17, 2003 Note, that if the offer/answer model [3] is being used the offerer will notice that the answerer did not understand ALT upon reception of the answer, as described in RFC 3388 [2]. Such an offerer MAY reissue a new offer with only one m line immediately. The use of ICE requires further considerations. If an answerer that does not support ICE receives an m line with a private address and with an "a=stun" line it will try to send media packets directly to that address (i.e., it will not use STUN). Those media packets might arrive to an end-point that happens to use the same private IP address as the offerer but is in a different realm. Therefore, the offerer MUST ensure that the answerer supports ICE before using private IP addresses in a session description. In scenarios where SIP [5] and the offer/answer model [3] are involved, the "ice" SIP option tag (defined below) MUST be used to ensure that the answerer understands the ALT semantics and supports ICE. Therefore, we define the option tag "ice" for use in the Require and Supported header fields. A SIP entity that includes the "ice" option tag in a Supported header field understands the ALT semantics defined in this document and supports ICE as defined in [6]. 2.4 ALT and Media Configurations The creator of a session description MAY want to use different media configurations (e.g., audio codec) for different transport addresses in the same ALT group. The receiver of such a session may find some of the m lines unacceptable. They may contain codecs that the answerer does not support or contain any other parameter that makes them unacceptable. The receiver follows the steps described in Section 2.2 using only those m lines that were found, in principle, acceptable. If the session description is part of an offer/answer exchange, the answerer will, following normal SIP procedures, set their ports to zero in the answer. 3 Example An answerer receiving the offer below will start the ICE procedures using 192.0.2.2:6886 and 10.0.1.2:22334. v=0 o=bob 280744730 28977631 IN IP4 host2.example.com s= t=0 0 G. Camarillo et. al. [Page 6] Internet Draft SIP June 17, 2003 a=group:ALT 1 2 m=audio 6886 RTP/AVP 0 c=IN IP4 192.0.2.2 a=mid:1 a=q:1.0 a=stun:user asd8866 m=audio 22334 RTP/AVP 0 c=IN IP4 10.0.1.2 a=mid:2 a=q:1.0 a=stun:user asd8866 4 IANA Considerations IANA needs to register the following new "semantics" attribute for the SDP grouping framework [2]: Semantics Token Reference ------------------- ----- --------- Alternative ALT [RFCxxxx] It should be registered in the SDP parameters registry (http://www.iana.org/assignments/sdp-parameters) under Semantics for the "group" SDP Attribute. This document defines a SIP option tag (alt) in Section 2.3. It should be registered in the SIP parameters registry (http://www.iana.org/assignments/sip-parameters) under "Option Tags", with the description below. A SIP entity that includes the "ice" option tag in a Supported header field understands the ALT semantics and supports ICE. 5 Security Considerations An attacker adding group lines using the ALT semantics to an SDP session description could make an end-point use only one out of all the streams offered by the remote end, when the intention of the remote-end might have been to establish all the streams. An attacker removing group lines using ALT semantics could make and end-point establish a higher number of media streams. If the end- point sends media over all of them, the session bandwidth may G. Camarillo et. al. [Page 7] Internet Draft SIP June 17, 2003 increase dramatically. It is thus STRONGLY RECOMMENDED that integrity protection be applied to the SDP session descriptions. For session descriptions carried in SIP [5], S/MIME is the natural choice to provide such end-to-end integrity protection, as described in RFC 3261. Other applications MAY use a different form of integrity protection. 6 Authors' Addresses Gonzalo Camarillo Ericsson Advanced Signalling Research Lab. FIN-02420 Jorvas Finland electronic mail: Gonzalo.Camarillo@ericsson.com Jonathan Rosenberg dynamicsoft 72 Eagle Rock Ave East Hanover, NJ 07936 USA electronic mail: jdrosen@dynamicsoft.com 7 Normative References [1] M. Handley and V. Jacobson, "SDP: session description protocol," RFC 2327, Internet Engineering Task Force, Apr. 1998. [2] G. Camarillo, G. Eriksson, J. Holler, and H. Schulzrinne, "Grouping of media lines in the session description protocol (SDP)," RFC 3388, Internet Engineering Task Force, Dec. 2002. [3] J. Rosenberg and H. Schulzrinne, "An offer/answer model with session description protocol (SDP)," RFC 3264, Internet Engineering Task Force, June 2002. [4] S. Bradner, "Key words for use in RFCs to indicate requirement levels," RFC 2119, Internet Engineering Task Force, Mar. 1997. [5] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. R. Johnston, J. Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: session initiation protocol," RFC 3261, Internet Engineering Task Force, June 2002. [6] J. Rosenberg, "Interactive connectivity establishment (ICE): a methodology for nettwork address translator (NAT) traversal for the session initiation protocol (SIP)," internet draft, Internet G. Camarillo et. al. [Page 8] Internet Draft SIP June 17, 2003 Engineering Task Force, Feb. 2003. Work in progress. 8 Informative References [7] J. Rosenberg, J. Weinberger, C. Huitema, and R. Mahy, "STUN - simple traversal of user datagram protocol (UDP) through network address translators (nats)," RFC 3489, Internet Engineering Task Force, Mar. 2003. [8] M. Borella, D. Grabelsky, J. Lo, and K. Taniguchi, "Realm specific IP: protocol specification," RFC 3103, Internet Engineering Task Force, Oct. 2001. [9] J. Rosenberg, "Traversal using relay NAT (TURN)," internet draft, Internet Engineering Task Force, Mar. 2003. Work in progress. [10] M. Handley, C. E. Perkins, and E. Whelan, "Session announcement protocol," RFC 2974, Internet Engineering Task Force, Oct. 2000. The IETF takes no position regarding the validity or scope of any intellectual property 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; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication 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 implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. Full Copyright Statement Copyright (c) The Internet Society (2003). 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 G. Camarillo et. al. [Page 9] Internet Draft SIP June 17, 2003 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. G. Camarillo et. al. [Page 10]