Re: [Sip] Support for Multipart/MIME
Paul Kyzivat <pkyzivat@cisco.com> Wed, 23 May 2007 14:35 UTC
Return-path: <sip-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1HqrvZ-0000jM-Vg; Wed, 23 May 2007 10:35:01 -0400
Received: from sip by megatron.ietf.org with local (Exim 4.43) id 1HqrvY-0000jD-BB for sip-confirm+ok@megatron.ietf.org; Wed, 23 May 2007 10:35:00 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1HqrvY-0000j5-1V for sip@ietf.org; Wed, 23 May 2007 10:35:00 -0400
Received: from rtp-iport-2.cisco.com ([64.102.122.149]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1HqrvW-00045L-H3 for sip@ietf.org; Wed, 23 May 2007 10:35:00 -0400
Received: from rtp-dkim-2.cisco.com ([64.102.121.159]) by rtp-iport-2.cisco.com with ESMTP; 23 May 2007 10:34:58 -0400
X-IronPort-AV: i="4.14,570,1170651600"; d="scan'208"; a="121836356:sNHT61334968"
Received: from rtp-core-1.cisco.com (rtp-core-1.cisco.com [64.102.124.12]) by rtp-dkim-2.cisco.com (8.12.11/8.12.11) with ESMTP id l4NEYwB3004083; Wed, 23 May 2007 10:34:58 -0400
Received: from xbh-rtp-201.amer.cisco.com (xbh-rtp-201.cisco.com [64.102.31.12]) by rtp-core-1.cisco.com (8.12.10/8.12.6) with ESMTP id l4NEYjBi028096; Wed, 23 May 2007 14:34:58 GMT
Received: from xfe-rtp-202.amer.cisco.com ([64.102.31.21]) by xbh-rtp-201.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 23 May 2007 10:34:40 -0400
Received: from [161.44.174.124] ([161.44.174.124]) by xfe-rtp-202.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 23 May 2007 10:34:40 -0400
Message-ID: <46545100.5040707@cisco.com>
Date: Wed, 23 May 2007 10:34:40 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 1.5.0.10 (Windows/20070221)
MIME-Version: 1.0
To: Gonzalo Camarillo <Gonzalo.Camarillo@ericsson.com>
Subject: Re: [Sip] Support for Multipart/MIME
References: <7374777208BDC7449D5620EF9423256703F85957@esealmw113.eemea.ericsson.se> <0ee901c7931e$dd43f9b0$c4a36b80@amer.cisco.com> <1ECE0EB50388174790F9694F77522CCF106564B4@zrc2hxm0.corp.nortel.com> <4643B58A.3060407@cisco.com> <464ABDD6.9000503@ericsson.com> <464AF68A.4010105@cisco.com> <1ECE0EB50388174790F9694F77522CCF10788B8C@zrc2hxm0.corp.nortel.com> <4653FA1F.7050008@ericsson.com>
In-Reply-To: <4653FA1F.7050008@ericsson.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 23 May 2007 14:34:40.0423 (UTC) FILETIME=[7F1D8B70:01C79D47]
DKIM-Signature: v=0.5; a=rsa-sha256; q=dns/txt; l=8158; t=1179930898; x=1180794898; c=relaxed/simple; s=rtpdkim2001; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=pkyzivat@cisco.com; z=From:=20Paul=20Kyzivat=20<pkyzivat@cisco.com> |Subject:=20Re=3A=20[Sip]=20Support=20for=20Multipart/MIME |Sender:=20 |To:=20Gonzalo=20Camarillo=20<Gonzalo.Camarillo@ericsson.com>; bh=nHPIn0IIc158jNGJ1mbCmI9jQIk8YyR803sLkrenb+g=; b=kd6BXU5xyHdK+EG12TQ67WacFdT6Tgz4OXNIXBNHocsnDPv3JolYlVjgHaYpD2pT0jYV/J1h buXpC7h5/S34Tb+focvgfZedfxtqPBFnffDI0LmbO5FdOkgidKt+NLdE;
Authentication-Results: rtp-dkim-2; header.From=pkyzivat@cisco.com; dkim=pass ( sig from cisco.com/rtpdkim2001 verified; );
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 86f85b2f88b0d50615aed44a7f9e33c7
Cc: sip@ietf.org, Francois Audet <audet@nortel.com>, Dan Wing <dwing@cisco.com>, "Christer Holmberg (JO/LMF)" <christer.holmberg@ericsson.com>
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=subscribe>
Errors-To: sip-bounces@ietf.org
Gonzalo, Thank you for doing this. It is a great start. I largely agree with what you have written. One specific comment about the draft: - Open issue in section 3: perhaps a new Reason code, to be used with a 415 response would be adequate. I think there are a number of loose ends, some mentioned, some not. In many cases, while I have an opinion what the right answer might be I think it needs discussion. Here is what I came up with: - How to determine what processing a body part should receive In many cases the processing of a body part is determined by: the content disposition, the content type, and perhaps the context within which the message is received. For instance, this is true for type sdp with disposition session in an INVITE; for type text/plain with disposition render in a MESSAGE; and for type kpml with disposition ??? in a SUBSCRIBE. In these cases there is no overt *reference* to the body part. In other cases the processing is determined by the context of a reference to the body part via a cid: url that references the Content-ID of the body part. You mentioned this as well. The case I am concerned with is when there is ambiguity between these. For instance 3261 defines Content-Dispositions "alert" and "icon". While these aren't described very well, it appears that if a body part is present with disposition "alert" then it should be used for alerting based on its presence, without any overt reference. But there is also an Alert-Info header, which *could* contain a cid: url. If there was an Alert-Info header with a cid: url that referenced a body part, must that body part be of disposition "alert"? Its my feeling that the definition of each disposition should specify how use decisions should be made for body parts having this disposition. There should be one or more dispositions that state that their use is to be determined by how they are referenced. And headers that might reference body parts should define the acceptable dispositions for the body parts that are referenced. If a message contains a body part with type and disposition that defines how it is processed without need of a reference, and there *also* is a reference to it, then it should be processed both ways. (This however should happen rarely or never.) - What Content-Disposition type should multipart bodies have? When you have a multipart body, it has a disposition, and each of its contained body parts also has a disposition. I have never seen any specification of what disposition the multipart itself should have. None of the examples I have seen have had a Content-Disposition header in the multipart. According to the sip defaulting rules, a multipart body without a C-D header has disposition "render", which seems a bit weird. In the case of multipart/alternative, I think the disposition type of all the contained body parts should be identical. I think it would also make sense for the multipart/alternative itself to contain the same disposition. That would simplify processing, because the whole thing could be ignored if the disposition has a type that will be ignored. In the case of multipart/mixed, the disposition types of the contained body parts will typically vary. The type of the mixed body simply needs to be something that causes it to be processed. Using the default of "render" seems weird to me. It would make sense to me to have some special C-D type for this purpose. Potentially it could be defined as the default C-D for multipart/mixed in the same way that "session" is the default for type application/sdp. - Must the recipient of a message process all multipart bodies and their contents? Recursively? Note that a multipart body can contain other multipart body parts, thus potentially forming a tree of body parts of arbitrary shape and depth. So, the developer of a UA will want to know: do I have to parse all of that? I think the answer is: like anything else, you make this decision based on the disposition type and handling. (If you understand multipart/mixed (and you should) then you also understand that multipart/X where you don't know X should be processed the same as multipart/mixed.) If handling is optional and the disposition type and content type are known to you, then you must parse it. Each contained body part is then processed based on its own disposition. If the handling is optional and the disposition type or content type are not known to you then you can ignore it. (This puts a premium on having an agreed to disposition type that is typically used for multipart/mixed and which everyone that supports multipart is expected to support.) - What "handling" value should be used for multipart bodies and the contained body parts? If a body part is referenced by a cid: url in a header (or in another body part I suppose), then the handling of the body part should be required. Contained, non-multipart body parts that aren't referenced by cid: can have handling required or optional as appropriate for their use. A multipart body should have handling of required if any of the parts it contains are required. Otherwise it may have optional handling. Multipart/alternative is tricky. Only one alternative is to be used, and it is assumed that some alternatives may not be understood. So it seems that all except the first contained body part should have optional handling. The first may be required or optional depending on whether its ok to handle none. And the handling of the multipart/alternative container is as above. - What about "gratuitous" nesting of multiparts? It seems that it is technically valid to wrap a body part, such as an SDP offer, in one or many levels of multipart wrappers. A recipient who receives such a thing, and processes it according to what Gonzalo has specified and what I have suggested above, should be able to deal with this. But its not a good thing. So I think we ought to at least state that the sender of a request SHOULD NOT use a multipart wrapper when there is only one part, and SHOULD NOT nest one multipart/mixed within another unless there is a *reference* to the nested one. (Instead of nesting, include all the parts in the outer multipart.) And a sender SHOULD NOT nest one multipart/alternative within another. Thanks, Paul Gonzalo Camarillo wrote: > Hi, > > I have taken a stab at writing a quick draft about both issues (I agree > it makes sense to tackle them in a single document). Until it appears in > the archives, you can fetch it from: > > http://users.piuha.net/gonzalo/temp/draft-camarillo-sip-body-handling-00.txt > > > I have marked a few open issues so that we can continue discussions > around those on the list (this is, of course, just an initial draft). > > Cheers, > > Gonzalo > > > Francois Audet wrote: >> My preference is one document. >>> -----Original Message----- >>> From: Paul Kyzivat [mailto:pkyzivat@cisco.com] Sent: Wednesday, May >>> 16, 2007 05:18 >>> To: Gonzalo Camarillo >>> Cc: Audet, Francois (SC100:3055); sip@ietf.org; Dan Wing; Christer >>> Holmberg (JO/LMF) >>> Subject: Re: [Sip] Support for Multipart/MIME >>> >>> Hi Gonzalo, >>> >>> I guess the question is whether we want to write a document >>> specifically focused on Content-Disposition, or if we want to combine >>> work on that with work on specifying use of multipart. >>> >>> They aren't the same thing, but content-disposition becomes more >>> significant when there are multiple body parts, so there is some >>> justification for combining the work. >>> >>> Paul >>> >>> Gonzalo Camarillo wrote: >>>> Hi, >>>> >>>> yes, Paul and I talked about writing a draft to clarify a >>> few issues >>>> that relate to content dispositions in SIP a while ago. We >>> were quite >>>> busy at that point and did not have time to write it, but >>> maybe it is >>>> time to do it now. >>>> >>>> Cheers, >>>> >>>> Gonzalo > _______________________________________________ Sip mailing list https://www1.ietf.org/mailman/listinfo/sip This list is for NEW development of the core SIP Protocol Use sip-implementors@cs.columbia.edu for questions on current sip Use sipping@ietf.org for new developments on the application of sip
- Re: [Sip] SIPit 20 survey summary Frank W. Miller
- [Sip] SIPit 20 survey summary Robert Sparks
- [Sip] Which sip.instance to use (GRUU and Outboun… Jerry Yin
- Re: [Sip] SIPit 20 survey summary Jeroen van Bemmel
- Re: [Sip] SIPit 20 survey summary Juha Heinanen
- RE: [Sip] SIPit 20 survey summary Brian Rosen
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Mark R. Lindsey
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Juha Heinanen
- Re: [Sip] SIPit 20 survey summary Cullen Jennings
- Re: [Sip] SIPit 20 survey summary Frank W. Miller
- Re: [Sip] SIPit 20 survey summary Cullen Jennings
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Mark R. Lindsey
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Juha Heinanen
- Re: [Sip] SIPit 20 survey summary Hannes Tschofenig
- Re: [Sip] SIPit 20 survey summary Jeroen van Bemmel
- Re: [Sip] SIPit 20 survey summary Henning Schulzrinne
- Re: [Sip] SIPit 20 survey summary Juha Heinanen
- Re: [Sip] SIPit 20 survey summary Hannes Tschofenig
- Re: [Sip] SIPit 20 survey summary Hannes Tschofenig
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Scott Lawrence
- Re: [Sip] SIPit 20 survey summary Frank W. Miller
- Re: [Sip] SIPit 20 survey summary Juha Heinanen
- Re: [Sip] SIPit 20 survey summary Henning Schulzrinne
- Re: [Sip] SIPit 20 survey summary Henning Schulzrinne
- Re: [Sip] SIPit 20 survey summary Hannes Tschofenig
- Re: [Sip] SIPit 20 survey summary Hannes Tschofenig
- Re: [Sip] SIPit 20 survey summary Hannes Tschofenig
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Jeroen van Bemmel
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Hannes Tschofenig
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Jeroen van Bemmel
- [Sip] geoloc implementation (Was: SIPit 20 survey… Dale.Worley
- Re: [Sip] geoloc implementation (Was: SIPit 20 su… Paul Kyzivat
- [Sip] Support for Multipart/MIME Cullen Jennings
- Re: [Sip] geoloc implementation (Was: SIPit 20 su… Juha Heinanen
- RE: [Sip] geoloc implementation (Was: SIPit 20 su… Brian Rosen
- Re: [Sip] Support for Multipart/MIME Dale.Worley
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- Re: [Sip] Support for Multipart/MIME Frank W. Miller
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME James M. Polk
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Dan Wing
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME James M. Polk
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Ted Hardie
- Re: [Sip] Support for Multipart/MIME Dean Willis
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Ted Hardie
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Dan Wing
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- Re: [Sip] Support for Multipart/MIME Dean Willis
- RE: [Sip] Support for Multipart/MIME Dan Wing
- Re: [Sip] Support for Multipart/MIME Ted Hardie
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Dan Wing
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Dan Wing
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Francois Audet
- Re: [Sip] Support for Multipart/MIME Cullen Jennings
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Klaus Darilion
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Hannes Tschofenig
- Re: [Sip-implementors] [Sip] SIPit 20 survey summ… Dale.Worley
- RE: [Sip] Support for Multipart/MIME Francois Audet
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME Francois Audet
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Francois Audet
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Francois Audet
- RE: [Sip] Support for Multipart/MIME Elwell, John
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME - order of b… Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME - order of b… Francois Audet
- RE: [Sip] Support for Multipart/MIME - order of b… Christer Holmberg (JO/LMF)
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME - S/MIME Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME - support of… Christer Holmberg (JO/LMF)
- Re: [Sip] Support for Multipart/MIME - support of… Gonzalo Camarillo
- RE: [Sip] Support for Multipart/MIME - support of… Christer Holmberg (JO/LMF)
- Re: [Sip] Support for Multipart/MIME - support of… Paul Kyzivat
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME Dan Wing
- RE: [Sip] Support for Multipart/MIME - when is it… Christer Holmberg (JO/LMF)
- RE: [Sip] Support for Multipart/MIME - support of… Christer Holmberg (JO/LMF)
- Re: [Sip] Support for Multipart/MIME Gonzalo Camarillo
- RE: [Sip] Support for Multipart/MIME Dan Wing
- Re: [Sip] Support for Multipart/MIME Paul Kyzivat
- Re: [Sip] Support for Multipart/MIME Cullen Jennings