[Sipping] Managing multiple body parts

Paul Kyzivat <pkyzivat@cisco.com> Wed, 21 April 2004 23:19 UTC

Received: from optimus.ietf.org (optimus.ietf.org [132.151.1.19]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id TAA29392 for <sipping-archive@odin.ietf.org>; Wed, 21 Apr 2004 19:19:14 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BGQbk-0000Y5-7N for sipping-archive@odin.ietf.org; Wed, 21 Apr 2004 18:54:20 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i3LMsK6k002093 for sipping-archive@odin.ietf.org; Wed, 21 Apr 2004 18:54:20 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BGQGx-0005qJ-1h for sipping-web-archive@optimus.ietf.org; Wed, 21 Apr 2004 18:32:51 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id SAA25398 for <sipping-web-archive@ietf.org>; Wed, 21 Apr 2004 18:32:46 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BGQGt-0001gz-Nd for sipping-web-archive@ietf.org; Wed, 21 Apr 2004 18:32:47 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BGQFN-0001Ct-00 for sipping-web-archive@ietf.org; Wed, 21 Apr 2004 18:31:14 -0400
Received: from optimus.ietf.org ([132.151.1.19]) by ietf-mx with esmtp (Exim 4.12) id 1BGQBI-0000Gf-00 for sipping-web-archive@ietf.org; Wed, 21 Apr 2004 18:27:00 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BGPqG-0003G6-MT; Wed, 21 Apr 2004 18:05:16 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BGOtX-0003Z2-Ar for sipping@optimus.ietf.org; Wed, 21 Apr 2004 17:04:35 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA14279 for <sipping@ietf.org>; Wed, 21 Apr 2004 17:04:32 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BGOtV-0005Ot-3N for sipping@ietf.org; Wed, 21 Apr 2004 17:04:33 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BGOsU-00058Q-00 for sipping@ietf.org; Wed, 21 Apr 2004 17:03:30 -0400
Received: from rtp-iport-2.cisco.com ([64.102.122.149]) by ietf-mx with esmtp (Exim 4.12) id 1BGOrb-0004oJ-00; Wed, 21 Apr 2004 17:02:35 -0400
Received: from rtp-core-2.cisco.com (64.102.124.13) by rtp-iport-2.cisco.com with ESMTP; 21 Apr 2004 14:01:31 -0700
X-BrightmailFiltered: true
Received: from flask.cisco.com (IDENT:mirapoint@flask.cisco.com [161.44.122.62]) by rtp-core-2.cisco.com (8.12.10/8.12.6) with ESMTP id i3LL226L014439; Wed, 21 Apr 2004 17:02:03 -0400 (EDT)
Received: from cisco.com ([161.44.79.59]) by flask.cisco.com (Mirapoint Messaging Server MOS 3.3.6-GR) with ESMTP id AHT76259; Wed, 21 Apr 2004 17:02:02 -0400 (EDT)
Message-ID: <4086E14A.6080403@cisco.com>
Date: Wed, 21 Apr 2004 17:02:02 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Miguel Garcia <Miguel.An.Garcia@nokia.com>
CC: SIMPLE mailing list <simple@ietf.org>, SIPPING mailing list <sipping@ietf.org>, Gonzalo Camarillo <gonzalo.camarillo@ericsson.com>
References: <406DF1EC.4050400@cisco.com> <4085401C.2000008@nokia.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit
Subject: [Sipping] Managing multiple body parts
Sender: sipping-admin@ietf.org
Errors-To: sipping-admin@ietf.org
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
List-Id: SIPPING Working Group (applications of SIP) <sipping.ietf.org>
List-Post: <mailto:sipping@ietf.org>
List-Help: <mailto:sipping-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=subscribe>
X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on ietf-mx.ietf.org
X-Spam-Status: No, hits=0.0 required=5.0 tests=AWL autolearn=no version=2.60
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

I changed the subject of this because it is generalized.

See below for details. The general question is:

Is there a need for some sort of draft (beyond what is already in 3261) 
explaining how body parts are to be arranged and tagged so that they 
will be found and processed in an interoperable way?

I think there is. I have spent time working on sip stack support for 
managing body parts, and I came up with all kinds of questions about 
what is valid and what is not.

	Paul

Miguel Garcia wrote:
> Hi Paul:
> 
> Thanks for your comments. Answers inline.
> 
> ext Paul Kyzivat wrote:
> 
>> Miguel,
>>
>> In general the approach in the draft seems reasonable to me.
>>
>> I see one area of ambiguity, having to do with how multipart bodies 
>> are handled. The draft says to remove the list and include everything 
>> else. But even your example doesn't do that - it also removes the 
>> multipart/mixed wrapper. Of course in this particular example that 
>> makes perfect sense, but it goes beyond what the draft says to do.
> 
> 
> We start from the the fact that there will be as a minimum, two bodies, 
> the list, and the actual payload. There might be more bodies, such as 
> multiple payloads, S/MIME signatures, etc.
> 
> I guess the algorithm should be:
> 
> - If there is any kind of security body for the exploder (e.g., signed 
> with the public key of the exploder), then remove that body.
> 
> - Remove the list itself (in a typical use case, unless an extension 
> says the oposite; I am referring to Ben's suggestion to allow it).
> 
> - If there is only one body left, then remove the multipart/mixed wrapper.
> 
> - Send the remaining stuff.

This seems like the ad hoc approach. It will probably work in a lot of 
cases. In the absence of more general rules this is probably a pragmatic 
approach to take.

But I think there is a more general problem - not specific to message 
exploders, or exploders, or message - that applies to management of body 
parts in general.

Part of it is just:
- in a hierarchy of mime entities, how do I identify the body parts that 
interest me?

And the flip side of that is:
- How do I arrange the body parts that I need to convey into a hierarchy 
of mime entities so that the recipient will find and process them correctly?

This is then further complicated by servers in the signaling path that 
are permitted to mess with body parts. (That currently is only B2BUAs, 
but with the m2m and m2e discussions it may eventually include proxies.) 
For them there are the following additional questions:

- Should I (and if so how) modify the mime entity hierarchy to remove 
body parts that I have processed?

- How should I modify the mime entity hierarchy to add additional body 
parts that are to be processed further downstream, so that the recipient 
will process them correctly?

>> There are more complex cases:
>>
>> - for security there could be signed body parts.
>>
>>    - The signature could be on the multipart containing the message
>>      and list. It would have to be removed.
>>
>>    - The signature could be on just the message. Presumably
>>      it should remain.
> 
>  >
> 
> I agree.
> 
>>
>> - There could be other body parts referenced by cid: urls in
>>    other headers in the message.
> 
> 
> Yes, they should remain.
> 
>>
>> I think there needs to be a more prescriptive way of defining what 
>> gets passed on in the exploded messages. This is really just a 
>> manifestation of a more general problem of how to decide how different 
>> body parts should be processed. It potentially exists in a normal, 
>> unexploded, MESSAGE.
>>
>> I think at least part of the answer lies with Content-Disposition. I 
>> think there should be clarity about the content-disposition should be 
>> for the body part(s) that MESSAGE interprets as message content. 
>> Probably "render" (which is default for sip) would be an appropriate 
>> content-disposition for message content.
> 
> 
> Agree so far. It may happen that some of this stuff is generic enough 
> (not MESSAGE specific).

Yes, very much so.

>> Also, I think there should be some clarity about what the 
>> content-disposition should be for various kinds of multipart 
>> containers when used in the various ways they may be used in sip. I'm 
>> not quite sure what the answer is here.
>>
>> The list itself is of course referenced from a cid: url. It is the url 
>> and its placement that determines how the corresponding body part 
>> should be processed. For these, the content-disposition should be some 
>> value that doesn't imply some other sort of processing. I think it 
>> can't be any of "session", "render", "alert", or "icon". Maybe it 
>> could be "attachment".
> 
> 
> I will be happy to have a very clear deterministic way to find out what 
> to pass and what to keep to the other side of the exploder, base on 
> presumabley the content-disposition. Let's see if I can come up with 
> something.

I'm interested in this. Do you think this is suitable as a new work 
item? (Probably for sipping at first.)

	Paul


_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sip@ietf.org for new developments of core SIP