[Sip] Re: draft-ietf-sip-replaces-04.txt

Paul Kyzivat <pkyzivat@cisco.com> Wed, 20 August 2003 14:53 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA12191 for <sip-archive@odin.ietf.org>; Wed, 20 Aug 2003 10:53:31 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19pUKi-0007zj-A1 for sip-archive@odin.ietf.org; Wed, 20 Aug 2003 10:53:08 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id h7KEr8LI030730 for sip-archive@odin.ietf.org; Wed, 20 Aug 2003 10:53:08 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19pUKa-0007zB-Jb; Wed, 20 Aug 2003 10:53:00 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19pUJx-0007yo-3Z for sip@optimus.ietf.org; Wed, 20 Aug 2003 10:52:21 -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 KAA12165 for <sip@ietf.org>; Wed, 20 Aug 2003 10:52:13 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19pUJu-0001XE-00 for sip@ietf.org; Wed, 20 Aug 2003 10:52:18 -0400
Received: from sj-iport-1-in.cisco.com ([171.71.176.70] helo=sj-iport-1.cisco.com) by ietf-mx with esmtp (Exim 4.12) id 19pUJt-0001Wk-00 for sip@ietf.org; Wed, 20 Aug 2003 10:52:17 -0400
Received: from flask.cisco.com (IDENT:mirapoint@flask.cisco.com [161.44.122.62]) by sj-core-3.cisco.com (8.12.6/8.12.6) with ESMTP id h7KEp07d028504; Wed, 20 Aug 2003 07:51:03 -0700 (PDT)
Received: from cisco.com ([161.44.79.70]) by flask.cisco.com (Mirapoint Messaging Server MOS 3.3.6-GR) with ESMTP id ABR43210; Wed, 20 Aug 2003 10:50:59 -0400 (EDT)
Message-ID: <3F438AD3.7070800@cisco.com>
Date: Wed, 20 Aug 2003 10:50:59 -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: Rohan Mahy <rohan@cisco.com>
CC: sip <sip@ietf.org>
References: <2FA96440-D2A5-11D7-B410-0003938AF740@cisco.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit
Subject: [Sip] Re: draft-ietf-sip-replaces-04.txt
Sender: sip-admin@ietf.org
Errors-To: sip-admin@ietf.org
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Id: Session Initiation Protocol <sip.ietf.org>
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>
Content-Transfer-Encoding: 7bit


Rohan Mahy wrote:
> 
>>>> But in Section 4 I see:
>>>>
>>>>    For example, if Alice replaces Cathy in an early dialog with Bob, 
>>>> but
>>>>    he does not answer, Alice's replacement request will not match other
>>>>    dialogs to which Bob's UA redirects, nor other branches to which his
>>>>    proxy forwards. Although this specification takes reasonable
>>>>
>>>> In this, Cathy is X and Bob is Y. If Alice replaces Cathy, that must 
>>>> be by Alice sending an invite/replaces to Bob. You seem not to want 
>>>> this to fail either.
[snip]
>> Its just confusing. I now think I understand that you intend this as a 
>> counterexample, of what bad things could happen if the restriction 
>> were not in place.
> 
> yes
> 
>> But as worded it isn't clear that it is an example that isn't possible 
>> given the restriction.
> 
> bummer.  can you propose some rewording?
> 
>> And I think it is nonsensical - what would lead Alice to do such a 
>> stupid thing? I'm not sure it is possible to come up with an example 
>> that makes much sense.
> 
> you'd be *amazed*.

How about the following changes:

- in the second to last paragraph of section 4, modify the following:

    "If the Replaces header field
    matches an early dialog that was initiated by the UA, it accepts the
    new INVITE by sending a 200-class response, and shuts down the
    replaced dialog by sending a CANCEL."

   after "replaced dialog" insert ", any other early dialogs, and any
   other pending forks".

- in section 4, delete the following:

   "For example, if Alice replaces Cathy in an early dialog with Bob, but
    he does not answer, Alice's replacement request will not match other
    dialogs to which Bob's UA redirects, nor other branches to which his
    proxy forwards."

- add a new section 4.1:

4.1 Example of Incorrect Client Behavior

     The following is an example of an attempt to violate the rule
     against sending a replacement request to the non-initiating end
     of an early dialog.

                Bob         Bob         Bob          Bob
     Alice      Proxy       desk        home         lab
      |           |           |          |             |
      |--INVITE-->|--INVITE-->|          |             |
      |<----180---|<----180---|          |             |
      |           |--------INVITE------->|             |
      |<----180---|<---------180---------|             |
      |           |           |  Bob hears desk phone  |
      |           |           |  ringing from lab but  |
      |           |           |  isn't REGISTERed yet  |
      |           |           |                        |
      |           |           |<--fetch dialog state --|
      |           |           |---response ----------->|
      |           |           |<--INVITE/Replaces------|
      |           |           |----------481---------->|
      |<----200---|<---------200---------|             |
      |--------------ACK---------------->|             |
      |           |--CANCEL-->|          |             |
      |           |<---200----|          |             |
      |           |<---487----|          |             |
      |           |----ACK--->|          |             |

     Were this not illegal, it could result in something like
     the following:

                Bob         Bob         Bob          Bob
     Alice      Proxy       desk        home         lab
      |           |           |          |             |
      |--INVITE-->|--INVITE-->|          |             |
      |<----180---|<----180---|          |             |
      |           |--------INVITE------->|             |
      |<----180---|<---------180---------|             |
      |           |           |  Bob hears desk phone  |
      |           |           |  ringing from lab but  |
      |           |           |  isn't REGISTERed yet  |
      |           |           |                        |
      |           |           |<--fetch dialog state --|
      |           |           |---response ----------->|
      |           |           |<--INVITE/Replaces------|
      |           |           |----------180---------->|
      |           |<---4xx----|          |             |
      |           |----ACK--->|          |             |
      |<----200---|<---------200---------|             |
      |--------------ACK---------------->|             |

     In this case, Bob at his lab computer would simply listen to
     his desk phone ringing. Meanwhile, Alice's call is answered
     by someone at Bob's home. For a working example, see section 7.1.

- Note that this couterexample is still non-sensical - it is an 
erroneous attempt to achieve Bob's intent. I can't think of an a better 
case to expose the issue.

	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