Re: [Sip] Support for Multipart/MIME

Paul Kyzivat <pkyzivat@cisco.com> Wed, 09 May 2007 22:26 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 1HlucY-0004Gw-9Q; Wed, 09 May 2007 18:26:54 -0400
Received: from sip by megatron.ietf.org with local (Exim 4.43) id 1HlucW-0004Gr-Vy for sip-confirm+ok@megatron.ietf.org; Wed, 09 May 2007 18:26:52 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1HlucW-0004Gj-MU for sip@ietf.org; Wed, 09 May 2007 18:26:52 -0400
Received: from rtp-iport-1.cisco.com ([64.102.122.148]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1HlucW-0007PT-9n for sip@ietf.org; Wed, 09 May 2007 18:26:52 -0400
Received: from rtp-dkim-2.cisco.com ([64.102.121.159]) by rtp-iport-1.cisco.com with ESMTP; 09 May 2007 18:26:52 -0400
X-IronPort-AV: i="4.14,512,1170651600"; d="scan'208"; a="59843997:sNHT50620372"
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 l49MQqi0019177; Wed, 9 May 2007 18:26:52 -0400
Received: from xbh-rtp-211.amer.cisco.com (xbh-rtp-211.cisco.com [64.102.31.102]) by rtp-core-1.cisco.com (8.12.10/8.12.6) with ESMTP id l49MQp0Z010907; Wed, 9 May 2007 22:26:51 GMT
Received: from xfe-rtp-201.amer.cisco.com ([64.102.31.38]) by xbh-rtp-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 9 May 2007 18:26:51 -0400
Received: from [161.44.174.124] ([161.44.174.124]) by xfe-rtp-201.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 9 May 2007 18:26:51 -0400
Message-ID: <46424AAA.5060705@cisco.com>
Date: Wed, 09 May 2007 18:26:50 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 1.5.0.10 (Windows/20070221)
MIME-Version: 1.0
To: Dean Willis <dean.willis@softarmor.com>
Subject: Re: [Sip] Support for Multipart/MIME
References: <7374777208BDC7449D5620EF9423256703CB4EDA@esealmw113.eemea.ericsson.se> <0c1401c7926e$6872f290$c4a36b80@amer.cisco.com> <XFE-RTP-201K4dz4oRq000054d1@xfe-rtp-201.amer.cisco.com> <p06240607c267dd30be52@[76.102.225.135]> <D41AD8C9-B180-4EC6-B388-A326A7223B7D@softarmor.com>
In-Reply-To: <D41AD8C9-B180-4EC6-B388-A326A7223B7D@softarmor.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 09 May 2007 22:26:51.0035 (UTC) FILETIME=[23B15EB0:01C79289]
DKIM-Signature: v=0.5; a=rsa-sha256; q=dns/txt; l=4508; t=1178749612; x=1179613612; 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:=20Dean=20Willis=20<dean.willis@softarmor.com>; bh=0kpKvCZtBqF1BOeD3JKhoYz85X5NoM2dhQjGIuZUGhk=; b=S/X97kYzOZEFY9iYs2bX6kkuvYviO6um7uuZ/5QeJrP0xPbzCF9TTj7EkdXwglrZER/rEXaC BHP55hO/LV7PmOsWXiI+pbFSfn5Az1nxjfRr+f5qcvwnuKnyr4FR189K;
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: 2857c5c041d6c02d7181d602c22822c8
Cc: sip@ietf.org, "James M. Polk" <jmpolk@cisco.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


Dean Willis wrote:
> 
> On May 9, 2007, at 3:22 PM, Ted Hardie wrote:
> 
>> At 2:40 PM -0500 5/9/07, James M. Polk wrote:
>>> It's possible/probable/obvious (depending on who you talk to) that 
>>> multipart will have to be supported for emergency calling, in which 
>>> there is an SDP body and a Location message body...
>>>
>>> This doesn't mean UAs that *don't* establish voice/video dialogs will 
>>> have to support multipart, just for those UAs that do establish 
>>> voice/video dialogs with emergency response centers (again, depending 
>>> on who you talk to).
>>
>> That won't be multipart/alternative, though, as the location body and 
>> the SDP body
>> won't be alternatives but independent items.   I think they would be
>> multipart/mixed.  See this from RFC 2046:
> 
> Right. Mixed is a far cleaner semantic problem than alternative. It 
> means "Use all of these that you understand, to the best of your 
> ability, and complain if there's nothing you understand."

IIUC you needn't complain if you don't understand any of the parts.

Rather, the handling parameter of the Content-Disposition header of each 
part needs to be examined. For handling=optional the part can be ignored 
if you don't understand it. For handling=required you need to complain 
if you don't understand it.

So for example, you could have an INVITE that contains a multipart/mixed 
where the parts are:
- a part with Content-Type:text/plain and
   Content-Disposition:render;handling=optional.
- a part with Content-Type:image/gif and
   Content-Dispostion:icon;handling=optional

This should be treated as an offerless INVITE even if neither subpart is 
understood.

The case of location conveyance does present an interesting issue that I 
have wondered about for some time and never found an answer to:

Suppose you are making a call, and for some reason think that providing 
location information will be helpful. But it isn't critical that the 
recipient understand it. So you send a request like:

    INVITE sips:bob@biloxi.example.com SIP/2.0
    Via: SIP/2.0/TLS pc33.atlanta.example.com;branch=z9hG4bK74bf9
    Max-Forwards: 70
    To: Bob <sips:bob@biloxi.example.com>
    From: Alice <sips:alice@atlanta.example.com>;tag=9fxced76sl
    Call-ID: 3848276298220188511@atlanta.example.com
    Geolocation: <cid:alice123@atlanta.example.com>
      ;inserted-by=endpoint
    Supported: geolocation
    Accept: application/sdp, application/pidf+xml
    CSeq: 31862 INVITE
    Contact: <sips:alice@atlanta.example.com>
    Content-Type: multipart/mixed; boundary=boundary1
    Content-Length: ...

    --boundary1

    Content-Type: application/sdp

    ...SDP here

    --boundary1

    Content-Type: application/pidf+xml
    Content-ID: alice123@atlanta.example.com
    Content-Disposition:???;handling=optional

    <?xml version="1.0" encoding="UTF-8"?>
        <presence xmlns="urn:ietf:params:xml:ns:pidf"
           xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
           xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
           xmlns:gs="urn:ietf:params:xml:ns:pidf:geopriv10:geoShape"
           entity="pres:alice@atlanta.example.com">
         <tuple id="sg89ae">
          <timestamp>2007-03-20T14:00:00Z</timestamp>
          <status>
           <gp:geopriv>
             ...
           </gp:geopriv>
          </status>
         </tuple>
        </presence>
    --boundary1--

You need the Content-Dispostion header so that you can insert the 
handling=optional parameter. But what is the content-disposition value? 
None of the currently defined values, such as "session", or "render" 
seems appropriate.

In some sense its content-disposition is irrelevant because the 
processing of the part is determined by the cid: reference in the 
Geolocation header. But a UAS that doesn't understand the Geolocation 
header won't know that.

We have some parts whose handling is governed by their type and 
disposition, without need of explicit reference from another header. And 
we have other parts that shouldn't be processed at all unless there is 
an explicit reference to them elsewhere that has itself been understood. 
IMO there needs to be a Content-Disposition that covers the latter case. 
But that has never been recognized and specified.

This of course is a potential issue even if the body part is there by 
itself, without an enclosing multipart.

	Paul


_______________________________________________
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