RFC 
 TOC 
Network Working Group  C. Jennings 
INTERNET DRAFT  Cisco Systems 
<draft-jennings-sipping-multipart-00>   February 2005 
Category: Standards Track   
Expires: August 2005   

SIP Offer/Answer with Multipart MIME
draft-jennings-sipping-multipart-00

Status of this Memo

By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3668.

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 in August 2005.

Copyright Notice

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

Abstract

This document addresses the issues around using multipart with the SIP offer/answer framework. It specifies a way to make an offer with a multipart/alternative MIME body and for the answer to indicate which of the parts was selected for the answer. This is needed for general backwards compatibility to allow migration in situations such as moving from SDP to SDPng or moving from non end-to-end encrypted SDP to encrypted SDP.


 RFC 
 TOC 

Table of Contents

Introduction and Overview
Conventions
Mechanisms
 3.1  Sending Offers
 3.2  Receiving Offers and Sending Answers
 3.3  Receiving Answers
Syntax
Multipart Outside of Offer/Answer
Example SIP SRTP Call
Security considerations
IANA
Acknowledgments
10  References
 10.1  Normative References
 10.2  Informational References
§  Author's Address
§  Intellectual Property and Copyright Statements


 TOC 

1 Introduction and Overview

SIP (RFC 3261 [5]) uses an offer/answer negotiation mechanism described in [1]. This system carries offers in formats such as SDP [6] and various signed and encrypted versions of SDP. However, the current offer/answer scheme does not allow a backwards compatibility mode in which a UA can make both old and new types of offers and allow the other UA to select the type of offer that it supports. This specification extends the SIP to allow for these backwards compatible offer/answer schemes.

The mechanism for doing this is based on multipart alternative MIME types[2]. The UA making the offer uses a multipart alternative and includes a Content-ID for each one of the parts. The UA receiving the offer selects one of the parts in the offer and sends an answer based on that part. When the UA sends the answer, it indicates the Content-ID of the selected offer part by including this in a new Content-Related-To header that is defined in this specification.

This approach can allow migration from SDP to SDPng[7]. It can also allow migration from offers that are not S/MIME protected (as described in RFC 3261) to ones that are, and allow SRTP [8] keying material to be passed in the S/MIME protected SDP using a mechanism such as SDES [8].


 TOC 

2 Conventions

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 [4].


 TOC 

3 Mechanisms

3.1 Sending Offers

A UA that can support multiple types of offers SHOULD construct a multipart/alternative body with a body for each type it supports. Each body MUST include a unique Content-ID header.

If the UA receives an error response that indicates that multipart/alternative is not supported, it MAY retry the request using an offer that consists of only a SDP body.

3.2 Receiving Offers and Sending Answers

If a UA receives multiple SDP offers in an multipart/alternative body, it MUST interpret these as it would a normal multipart alternative, as defined in RFC 2046 [2], which means it picks the last alternative that it can support. Any S/MIME bodies that cannot be decrypted MUST be treated as unsupportable.

When the UA constructs the answer, it MUST include a MIME Content-Related-To header field as defined in Section 4 with the value set to the value of the header field for the Content-ID of the offer that was selected. The answer MAY also be a multipart/alternative.

3.3 Receiving Answers

When the UA receives an answer, it MUST look at the Content-Related-To header field value to find which answer has been used. If the answer is a multipart/alternative, the UA selects the preferred body in the same way it would for an offer. It then proceeds with normal offer/answer processing.


 TOC 

4 Syntax

This specification defines a new MIME header called "Content-Related-To". This updates RFC 2045 [3] with:

 rid := "Content-Related-To" ":" msg-id 

and adds "[rid CRLF]" to the Identity headers in RFC 2045.

The Content-Related-To header is used in answers and has a msg-id value that is the same as the Content-ID value of the offer to which this answer is related.


 TOC 

5 Multipart Outside of Offer/Answer

Applications such as presence and 911 location information result in information with significant privacy requirements being sent in SIP. Particular MIME types may define special meanings when both encrypted and unencrypted bodies are received, but, unless otherwise specified, the UA SHOULD use the encrypted version if it can decrypt it, and ignore the unencrypted version. There is no requirement that the two versions have the same information.


 TOC 

6 Example SIP SRTP Call

In this example, large parts of the message are omitted to highlight what is relevant to this specification. The lines in the example that are prefixed by $ represent encrypted blocks of data.

In this example, Alice calls Bob and offers both an RTP and an SRTP session. The SDP for the SRTP session contains the SRTP keying material, and the SDP is encrypted with S/MIME. It is assumed that Alice has Bob's public key.

Alice sends an INVITE to Bob that offers two alternative SDP bodies, one of which is encrypted and contains the SRTP keying information. The encrypted version is preferred so it comes second. Both parts contain Content-ID headers.

 INVITE sip:bob@biloxi.example.com SIP/2.0
 ...
 Content-Type: multipart/alternative;boundary=boundary

 --boundary
 Content-ID: 123
 Content-Type: application/sdp
 Content-Disposition: session

 < SDP offer for ordinary RTP only >
 --boundary
 Content-ID: 456
 Content-Type: application/pkcs7-mime
 Content-Disposition: session

 $ Content-Type: application/sdp
 $
 $ < encrypted SDP with key for SRTP >
 --boundary

Assuming that Bob's UA supports encryption and had Alice's public key, it would select the second alternative part as the offer and then construct an appropriate answer. The 200 includes the MIME Content-Related-To header that indicates which alternative MIME body was chosen.

 200 OK
 ...
 Content-ID: 789
 Content-Related-To: 456
 Content-Type: application/pkcs7-mime
 Content-Disposition: session

 $ Content-Type: application/sdp
 $
 $ < encrypted SDP with key for SRTP >
 

 TOC 

7 Security considerations

TODO


 TOC 

8 IANA

The MIME Content-Related-To header does not require any IANA actions.


 TOC 

9 Acknowledgments

Thanks for comments from Flemming Andreasen, Paul Kyzivat, Mark Baugher, and Dan Wing.


 TOC 

10  References

10.1  Normative References

[1] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002.
[2] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996.
[3] Freed, N. and N.S. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.
[4] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[5] 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.

10.2  Informational References

[6] Handley, M. and V. Jacobson, "SDP: Session Description Protocol", RFC 2327, April 1998.
[7] Kutscher, D, Ott, J and C Bormann, "Session Description and Capability Negotiation", Internet-Draft draft-ietf-mmusic-sdpng-07, October 2003.
[8] Andreasen, F, Baugher, M and D Wing, "Session Description Protocol Security Descriptions for Media Streams", Internet-Draft draft-ietf-mmusic-sdescriptions-07, July 2004.
[9] Baugher, M., McGrew, D., Naslund, M., Carrara, E. and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004.

 TOC 

Author's Address

  Cullen Jennings
  Cisco Systems
  170 West Tasman Drive
MS: SJC-21/2
  San Jose, CA 95134
  USA
Phone:  +1 408 902-3341
EMail:  fluffy@cisco.com
 

 TOC 

Intellectual Property Statement

The 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 ietf-ipr@ietf.org.

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 (2005). 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.

Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society.