[Sipping] Re: draft-camarillo-sip-body-handling-01 and draft-bryan-sipping-midi-01

Paul Kyzivat <pkyzivat@cisco.com> Fri, 08 June 2007 16:37 UTC

Return-path: <sipping-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1HwhTA-0006Ru-A3; Fri, 08 Jun 2007 12:37:48 -0400
Received: from sipping by megatron.ietf.org with local (Exim 4.43) id 1HwhT7-0006Rp-S2 for sipping-confirm+ok@megatron.ietf.org; Fri, 08 Jun 2007 12:37:45 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1HwhT7-0006Rh-IB for sipping@ietf.org; Fri, 08 Jun 2007 12:37:45 -0400
Received: from rtp-iport-2.cisco.com ([64.102.122.149]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1HwhT6-0003Df-19 for sipping@ietf.org; Fri, 08 Jun 2007 12:37:45 -0400
Received: from rtp-dkim-2.cisco.com ([64.102.121.159]) by rtp-iport-2.cisco.com with ESMTP; 08 Jun 2007 12:37:44 -0400
X-IronPort-AV: i="4.16,400,1175486400"; d="scan'208"; a="123149996:sNHT58268134"
Received: from rtp-core-2.cisco.com (rtp-core-2.cisco.com [64.102.124.13]) by rtp-dkim-2.cisco.com (8.12.11/8.12.11) with ESMTP id l58GbhRJ023855; Fri, 8 Jun 2007 12:37:43 -0400
Received: from xbh-rtp-211.amer.cisco.com (xbh-rtp-211.cisco.com [64.102.31.102]) by rtp-core-2.cisco.com (8.12.10/8.12.6) with ESMTP id l58GbZ5l022993; Fri, 8 Jun 2007 16:37:35 GMT
Received: from xfe-rtp-202.amer.cisco.com ([64.102.31.21]) by xbh-rtp-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 8 Jun 2007 12:37:24 -0400
Received: from [161.44.174.150] ([161.44.174.150]) by xfe-rtp-202.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 8 Jun 2007 12:37:23 -0400
Message-ID: <466985C7.3010204@cisco.com>
Date: Fri, 08 Jun 2007 12:37:27 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 1.5.0.12 (Windows/20070509)
MIME-Version: 1.0
To: "sipping (E-mail)" <sipping@ietf.org>
References: <E1HvIZ0-0002i7-GW@stiedprstage1.ietf.org> <17BA3E22-B340-44DA-BC89-59B3EADD106C@csperkins.org>
In-Reply-To: <17BA3E22-B340-44DA-BC89-59B3EADD106C@csperkins.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 08 Jun 2007 16:37:23.0598 (UTC) FILETIME=[4A84E2E0:01C7A9EB]
DKIM-Signature: v=0.5; a=rsa-sha256; q=dns/txt; l=8104; t=1181320663; x=1182184663; 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=20draft-camarillo-sip-body-handling-01=20and=20draft -bryan-sipping-midi-01 |Sender:=20 |To:=20=22sipping=20(E-mail)=22=20<sipping@ietf.org>; bh=XPPq3QtWP7a39/XfRpm4u35ItwlmLs5YyyYboLxThJo=; b=eBX04s6HL8JirmiJAVtn+U/iwCHbiah08nSSXIeuQE6kIUULLENEwXpD6VaWaBCza6OpbyFq vQpi06NJLnKlD/x+gFwkP/kHzFP4A9vUvmyBqJ2WP6TWtohSOdSwA49a;
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: 2bf730a014b318fd3efd65b39b48818c
Cc: Cullen Jennings <fluffy@cisco.com>, dbryan@sipeerior.com
Subject: [Sipping] Re: draft-camarillo-sip-body-handling-01 and draft-bryan-sipping-midi-01
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SIPPING Working Group \(applications of SIP\)" <sipping.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
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>
Errors-To: sipping-bounces@ietf.org

(I don't know whether to submit this to sip or sipping. I've picked 
sipping - I think the readership is much the same.)

I just noticed draft-bryan-sipping-midi-01, and wanted to use it as an 
example of issues related to Content-Disposition as discussed in 
draft-camarillo-sip-body-handling-01.

In the midi draft the Alert-Info header is being used to specify that a 
special ringback should be played, with the tone in a body part 
referenced by a CID: URI. The body part itself has:

    Content-Disposition: render;handling=optional

This is conformant to 3261, which specifies the Alert-Info header and 
allows it to contain any kind of URI.

However 3261 also specifies another way to convey altering info: a body 
part with a Content-Disposition of "alert". In particular Section 14.1 
of 3261 says:

    A UAC MAY choose not to add an Alert-Info header field or a body with
    Content-Disposition "alert" to re-INVITEs because UASs do not
    typically alert the user upon reception of a re-INVITE.

It appears that when this was written there was no thought to the 
possibility of using a CID URI, and so a second mechanism was provided 
for the case when the alerting data was being sent with the message.

IMO it is better to stick with a single mechanism, and use Alert-Info in 
all cases. But that still leaves the question of what the 
Content-Disposition type should be in this case in order to get the 
proper processing.

That is discussed in draft-camarillo-sip-body-handling-01. It says:

    UAs process message bodies and body parts in the following way.  On
    receiving a SIP message, if a body part is not referenced in any way
    (e.g., there are no header fields or other body parts with a
    Content-ID URL pointing to it), the UA processes the body part as
    indicated by its disposition type and the context in which the body
    part was received.

    OPEN ISSUE 4: this means that a UA would need to parse all body parts
    to find references between them before being able to fully process
    them.  If we are OK with this, we need to include text here
    explaining it.

    If the SIP message contains a reference to the body part, the UA
    processes the body part according to the reference and the
    disposition type of the body part.

I have some discomfort with the above, because it depends on processing 
of the entire message for references to body parts in order to decide 
how those body parts should be processed. IMO it would be better if the 
decision about processing body parts without references was independent 
of the processing of body parts based on a reference. By this I mean 
that if a body part has a disposition type that implies a certain type 
of processing, then that type of processing should be performed, whether 
or not there is a reference to it from elsewhere. And if a header 
references a body part, then the processing implied by that header 
should be applied regardless of whether or not the body part was 
processed independent of the reference.

This means that when constructing a message with a header that 
references a body part, the content disposition of the body part should 
be chosen so that something reasonable will be done if the recipient 
doesn't notice and process the header with the reference.

In the case of passing alerting information, using Alert-Info with a CID 
URI, I see three possible C-D values that might make sense:

- render
- alert
- ignore (hypothetical disposition)

A UA that *doesn't* process the Alert-Info header, or doesn't support 
CID as a URI type in the Alert-Info header would presumably behave as 
follows:

- render: hard to say how this might be handled. It might be rendered
   just as a ringback would. Or it might not be rendered until the call
   is answered, or it might be ignored, or rendered to some different
   device (speaker?) than the handset Its not at all well defined.

- alert: the UA should decide that this contains alerting info.
   It should alert with it appropriately, or decide that it doesn't
   wish to honor it.

- ignore: the UA should do nothing with this body part.

A UA that *does* process the Alert-Info header, and does support CID as 
a URI type in the Alert-Info would presumably behave as follows:

- render: treat as a ringback based on the Alert-Info. Also process
   the body on its own as above. If the independent processing was also
   as a ringback then all may be fine. Otherwise odd things occur,
   such as rendering it twice.

- alert: process as a ringback on its own and as a result of the
   Alert-Info. Seems like a reasonable result would occur.

- ignore: ignore on its own, and process as a ringback as a result
   of the Alert-Info - a reasonable result.

So in this case it seems that "render" is a risky choice. Either "alert" 
or "ignore" would be better. Since "ignore" is currently not defined, 
"alert" may be preferable. But I think "ignore" is cleaner, were it 
defined.

Then lets consider the results based on what Gonzalo has written in 
draft-camarillo-sip-body-handling-01:

- Regardless of the disposition, if the UA supports Alert-Info and
   CID then it should use this body to alert.

- If it doesn't wish to honor the Alert-Info it is still expected
   to detect that there is a CID reference, and suppress independent
   processing of the body part.

So, my feeling is:

- for now draft-bryan-sipping-midi-01 should probably recommend use
   of "alert" as the Content-Disposition type.

- we ought to define a new Content-Disposition type that means to
   ignore the body part in the absence of some other information
   about how to process it. This could be done as part of
   draft-camarillo-sip-body-handling-nn. And change the recommended
   body processing in that draft along the lines I have discussed here.

	Paul

Colin Perkins wrote:
> On 4 Jun 2007, at 20:50, Internet-Drafts@ietf.org wrote:
>> A New Internet-Draft is available from the on-line Internet-Drafts
>> directories.
>>
>>
>>     Title        : Telephony Tones Using MIDI in SIP
>>     Author(s)    : C. Jennings, D. Bryan
>>     Filename    : draft-bryan-sipping-midi-01.txt
>>     Pages        : 68
>>     Date        : 2007-6-4
>>     
>> This document describes conventions for using MIDI to generate tones
>>    on SIP UAs.  This does not define any changes to SIP but describes
>>    how to use the existing Alert-Info header to play tones that can be
>>    used to indicate specialized PSTN tones such as the ringback tones
>>    from various countries.  The tones are described using MIDI which
>>    results in a compact representation that is simple for a UA to
>>    generate and easy to render into audio.
>>
>>    This work is being discussed on the sipping@ietf.org mailing list.
>>    This draft was revived at request of a few people so it could be
>>    discussed.  Parts of it need to be updated since it was written in
>>    2003.
>>
>> A URL for this Internet-Draft is:
>> http://www.ietf.org/internet-drafts/draft-bryan-sipping-midi-01.txt
> 
> Interesting draft. A couple of comments:
> 
> How would this compare to sending audio/tone [RFC 4733 section 4.3.3] 
> data in SIP? (I realise the audio/tone format is currently only defined 
> for transport via RTP, but it could easily be extended for this use, and 
> is simpler than MIDI).
> 
> Also, one could presumably achieve a similar effect using early media 
> with either the RFC 4733 or RFC 4695 RTP payload formats. Some 
> discussion of the trade-off between the approaches would be valuable.
> 
> --Colin Perkins
> http://csperkins.org/
> 
> 
> 
> 
> _______________________________________________
> 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
> 


_______________________________________________
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