Re: [Sipping] Current status of response to 3gpp Liaison Statementon offer/answer procedures

Paul Kyzivat <pkyzivat@cisco.com> Tue, 05 August 2008 17:34 UTC

Return-Path: <sipping-bounces@ietf.org>
X-Original-To: sipping-archive@optimus.ietf.org
Delivered-To: ietfarch-sipping-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id AB4333A69B2; Tue, 5 Aug 2008 10:34:45 -0700 (PDT)
X-Original-To: sipping@core3.amsl.com
Delivered-To: sipping@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9393A3A69B2 for <sipping@core3.amsl.com>; Tue, 5 Aug 2008 10:34:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.202
X-Spam-Level:
X-Spam-Status: No, score=-6.202 tagged_above=-999 required=5 tests=[AWL=-0.203, BAYES_00=-2.599, J_CHICKENPOX_18=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7sgf6hcewPsg for <sipping@core3.amsl.com>; Tue, 5 Aug 2008 10:34:41 -0700 (PDT)
Received: from sj-iport-1.cisco.com (sj-iport-1.cisco.com [171.71.176.70]) by core3.amsl.com (Postfix) with ESMTP id 82E763A679C for <sipping@ietf.org>; Tue, 5 Aug 2008 10:34:41 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.31,311,1215388800"; d="scan'208";a="61804260"
Received: from sj-dkim-3.cisco.com ([171.71.179.195]) by sj-iport-1.cisco.com with ESMTP; 05 Aug 2008 17:35:12 +0000
Received: from sj-core-5.cisco.com (sj-core-5.cisco.com [171.71.177.238]) by sj-dkim-3.cisco.com (8.12.11/8.12.11) with ESMTP id m75HZBJI002947; Tue, 5 Aug 2008 10:35:11 -0700
Received: from xbh-rtp-201.amer.cisco.com (xbh-rtp-201.cisco.com [64.102.31.12]) by sj-core-5.cisco.com (8.13.8/8.13.8) with ESMTP id m75HZ4K5013500; Tue, 5 Aug 2008 17:35:11 GMT
Received: from xfe-rtp-201.amer.cisco.com ([64.102.31.38]) by xbh-rtp-201.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Tue, 5 Aug 2008 13:35:10 -0400
Received: from [161.44.174.168] ([161.44.174.168]) by xfe-rtp-201.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Tue, 5 Aug 2008 13:35:10 -0400
Message-ID: <48988F88.7090402@cisco.com>
Date: Tue, 05 Aug 2008 13:36:08 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
MIME-Version: 1.0
To: "DRAGE, Keith (Keith)" <drage@alcatel-lucent.com>
References: <4822983A.2090906@ericsson.com> <CA9998CD4A020D418654FCDEF4E707DF062C5DD8@esealmw113.eemea.ericsson.se> <482C2DE1.1080102@cisco.com> <CA9998CD4A020D418654FCDEF4E707DF062EC204@esealmw113.eemea.ericsson.se> <482C3F25.7070605@cisco.com> <0D5F89FAC29E2C41B98A6A762007F5D0BB548B@GBNTHT12009MSX.gb002.siemens.net> <482D8058.6030608@cisco.com> <CA9998CD4A020D418654FCDEF4E707DF046C77CA@esealmw113.eemea.ericsson.se> <48463DF1.7080109@ericsson.com><4846B581.2070901@cisco.com> <484D0377.7010306@ericsson.com> <5B46C4E4-D30A-4CFE-B8F1-788727CC0FD9@nostrum.com> <484D4D36.8080007@cisco.com><486A3292.3030205@cisco.com><486CE8D1.7060804@cisco.com><C0E80510684FE94DBDE3A4AF6B968D2D03C5BC33@esealmw118.eemea.ericsson.se><4889EA20.40306@cisco.com> <9019E197-7148-49DF-AD82-A2EB67898317@nostrum.com> <5D1A7985295922448D5550C94DE29180021D0B5A@DEEXC1U01.de.lucent.com> <4896EEC0.1020601@cisco.! com> <5D1A7985295922448D5550C94DE29180021D0F79@DEEXC1U01.de.lucent.com>
In-Reply-To: <5D1A7985295922448D5550C94DE29180021D0F79@DEEXC1U01.de.lucent.com>
X-OriginalArrivalTime: 05 Aug 2008 17:35:10.0533 (UTC) FILETIME=[9C1F2F50:01C8F721]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=34529; t=1217957711; x=1218821711; c=relaxed/simple; s=sjdkim3002; 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[Sipping]=20Current=20status=20of=20res ponse=20to=203gpp=20Liaison=20Statementon=0A=20offer/answer= 20procedures |Sender:=20; bh=YJ+Mox0poYiRYGDyq/XYd0i+6MEoS0TlwflliVQN93Y=; b=Scvre5vJcXjGQBorLaE30+Ug0LXLSSg/Vti0DzIHqWUqcFhUqwK9gHyVkW Hz7gKcvW4dkp755VkatRDso7puyJibaLLk7lLlMW2unjWUuVa5IJMAQJDxVj elAivfAZKv;
Authentication-Results: sj-dkim-3; header.From=pkyzivat@cisco.com; dkim=pass ( sig from cisco.com/sjdkim3002 verified; );
Cc: sipping <sipping@ietf.org>, Mary Barnes <mary.barnes@nortel.com>, Gonzalo Camarillo <gonzalo.camarillo@ericsson.com>
Subject: Re: [Sipping] Current status of response to 3gpp Liaison Statementon offer/answer procedures
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "SIPPING Working Group \(applications of SIP\)" <sipping.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/sipping>
List-Post: <mailto:sipping@ietf.org>
List-Help: <mailto:sipping-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Sender: sipping-bounces@ietf.org
Errors-To: sipping-bounces@ietf.org

I was talking about the two ends of a single hop.
AFAIK there is no requirement for e2e consistency of timers.

	Paul

DRAGE, Keith (Keith) wrote:
> The way I read Robert's text was that all the timers in all the SIP entities along the call path have to have consistent values end to end. It was this end-to-end constraint that I was querying.
> 
> I agree that for each hop we need the timer values on each end of the same hop to be consistent, which is what you seem to be saying, although I don't remember anything saying this in the specification either. It is this latter condition that you seem to be addressing.
> 
> Regards
> 
> Keith
> 
>  
> 
>> -----Original Message-----
>> From: Paul Kyzivat [mailto:pkyzivat@cisco.com] 
>> Sent: Monday, August 04, 2008 12:58 PM
>> To: DRAGE, Keith (Keith)
>> Cc: Robert Sparks; sipping; Mary Barnes; Gonzalo Camarillo
>> Subject: Re: [Sipping] Current status of response to 3gpp 
>> Liaison Statementon offer/answer procedures
>>
>> I will defer to Robert for a definitive statement on this. 
>> But AFAIK this is *not* *written* anywhere. I think it is a 
>> consequence of the specs - that as the state machines are 
>> defined they *will not work
>> correctly* if the two ends don't have he same values.
>>
>> 	Paul
>>
>> DRAGE, Keith (Keith) wrote:
>>> Robert wrote:
>>>
>>>> It is a hard requirement that any pair of transaction 
>> state machines 
>>>> (the client and server machines for any given hop) have the same 
>>>> timer values. Without that, behavior becomes very 
>> incorrect. And for 
>>>> INVITE/ 200/ACK the TU timers (which are all based on T1) 
>> have to be 
>>>> the same or you get into broken territory. The result is 
>> that if you 
>>>> change a timer somewhere in the network, you either change 
>> it across 
>>>> the whole network or you put in a node that's essentially 
>> playing the 
>>>> role of a SIP-SIP gateway that deals with complexity of 
>> having timers 
>>>> different on each side.
>>> Is this actually written anywhere. I expected to find it in 
>> RFC 3261 if it was written but a scan did not reveal this.
>>> I know IMS uses, for the mobile accesses, timer values that 
>> are T1 * 4 for UA to 1st proxy, and then the normal values in 
>> the network.
>>> Robert, can you be more specific on the implications of 
>> such a mismatch.
>>> Regards
>>>
>>> Keith
>>>
>>>> -----Original Message-----
>>>> From: sipping-bounces@ietf.org
>>>> [mailto:sipping-bounces@ietf.org] On Behalf Of Robert Sparks
>>>> Sent: Monday, July 28, 2008 3:51 PM
>>>> To: Paul Kyzivat
>>>> Cc: sipping; Mary Barnes; Gonzalo Camarillo
>>>> Subject: Re: [Sipping] Current status of response to 3gpp Liaison 
>>>> Statementon offer/answer procedures
>>>>
>>>> One comment inline:
>>>>
>>>> On Jul 25, 2008, at 3:58 PM, Paul Kyzivat wrote:
>>>>
>>>>> Copying Robert. I think his input on this would be invaluable.
>>>>>
>>>>> This is exactly the sort of response I was hoping to get to my 
>>>>> proposal. It really needs to be carefully vetted.
>>>>>
>>>>> Comments inline.
>>>>>
>>>>> 	Paul
>>>>>
>>>>> Ian Elz wrote:
>>>>>> Paul,
>>>>>> I have two potential issues with the rules you have
>>>> mentioned below.
>>>>>> Sorry for the delay in replying to your email but I have
>>>> taken some
>>>>>> vacation and one of the possible issues has just been noticed.
>>>>>> 1. Regarding rule 2. I am assuming that in this rule the UAC not 
>>>>>> sending an UPDATE also applies after any retransmission 
>> of the ACK 
>>>>>> due to receipt of a 200 OK retransmission. Perhaps this 
>> should be 
>>>>>> explicitly stated.
>>>>> What I had in mind was that UPDATE couldn't be used until all 
>>>>> retransmissions of the ACK has completed. So it would  be
>>>> 32 seconds.
>>>>> Since it is quite possible that there will be need of a new
>>>> O/A within
>>>>> that period (e.g. because the UAC goes on hold quickly),
>>>> the UAC will
>>>>> have to be prepared to use alternative means (reINVITE).
>>>>> The net effect is probably that the UAC will *never* use 
>> UPDATE for 
>>>>> O/A outside of an invite transaction.
>>>>>
>>>>>> I will preface by stating that this is an unlikely 
>> scenario but it 
>>>>>> can and will occur. The UAC is not allowed to send an 
>> UPDATE until 
>>>>>> after sending an ACK until the timer has expired. In the UAS the 
>>>>>> timer for receipt of an ACK is based upon T1 with the 
>> 200 OK being 
>>>>>> resent at 2 * T1, 4 * T1, 8 * T1 etc until 64 * T1. With the 
>>>>>> recommended value of T1 (0.5 s) then the timer is 32 s.
>>>>>> The setting of T1 however is only recommended and the
>>>> value of T1 on
>>>>>> the UAS may be different than as set on the UAC. If the
>>>> UAS has its
>>>>>> T1 set 4 X or greater than the T1 of the UAC then there 
>> may be an 
>>>>>> issue.
>>>>>> I will explain by showing the 200 OK retransmission 
>> times from the 
>>>>>> UAS.
>>>>>> T1 value                   0.5        1          2         4
>>>>>> 1st Retransmission          1         2          4         8
>>>>>> 2nd retransmission          2         4          8        16
>>>>>> 3rd retransmission          4         8         16        32
>>>>>> 4th retransmission          8        16         32        64
>>>>>> 5th retransmission         16        32         64       
>>>> 128 If the
>>>>>> UAC has T1 set to 0.5 seconds then there are
>>>> retransmission intervals
>>>>>> which are equal to or greater than the ACK timer when the UAS T1 
>>>>>> value is 2 seconds or greater. This could cause an issue.
>>>>>> This may be prevented by making recommendations about
>>>> timer setting.
>>>>> I don't know much about the timers. It has always baffled
>>>> me that we
>>>>> allow them to be changed. Its my impression that all bets
>>>> are off if
>>>>> the two ends of a transaction don't have the same timer values.
>>>> It is a hard requirement that any pair of transaction 
>> state machines 
>>>> (the client and server machines for any given hop) have the same 
>>>> timer values. Without that, behavior becomes very 
>> incorrect. And for 
>>>> INVITE/ 200/ACK the TU timers (which are all based on T1) 
>> have to be 
>>>> the same or you get into broken territory. The result is 
>> that if you 
>>>> change a timer somewhere in the network, you either change 
>> it across 
>>>> the whole network or you put in a node that's essentially 
>> playing the 
>>>> role of a SIP-SIP gateway that deals with complexity of 
>> having timers 
>>>> different on each side.
>>>>
>>>>>> 2. Regarding rule 1
>>>>>> This prevents the UAS from sending an UPDATE as part of a
>>>> re-INVITE
>>>>>> transaction.
>>>>>> We have come across a case for an initial INVITE where 
>> it becomes 
>>>>>> necessary for the UAS to send an early dialog UPDATE which
>>>> may also
>>>>>> be applicable in a re-INVITE case. I am not sure if it is
>>>> applicable
>>>>>> for a re-INVITE but others may be able to advise.
>>>>>> When a SIP INVITE passes via an MGC to an ISDN connection the IP 
>>>>>> address and port to be used can be controlled by the ISDN
>>>> PBX. When
>>>>>> the ISDN bearer identity is provided by the ISDN terminal, in an 
>>>>>> Alerting signal, the MGC may change the ephemeral (&
>>>> possibly H.248
>>>>>> context). If we have an INVITE sequence involving
>>>> preconditions the
>>>>>> extended INVITE sequence occurs with an UPDATE from the UAC to 
>>>>>> confirm reservation of resources. As an immediate response is 
>>>>>> required to this UPDATE the UAS can only respond with the
>>>> IP address
>>>>>> and port of the H.248 ephemeral that it selected initially.
>>>>>> In the ALERTING response to the SETUP request the ISDN terminal 
>>>>>> specifies a bearer which may result in a different the 
>> IP address 
>>>>>> and/or port. This requires that the UAS sends a further
>>>> UPDATE with a
>>>>>> modified sdp offer to change the IP address and/or port prior to 
>>>>>> sending the 200 OK.
>>>>>> While this scenario can occur for an initial INVITE it 
>> may also be 
>>>>>> possible for a re-INVITE; e.g. when a new media type is
>>>> added to an
>>>>>> existing session.
>>>>>> I am uncertain as to whether this will occur in this
>>>> situation and I
>>>>>> would welcome input from the list to show that it cannot.
>>>>> My point was that while an invite/reinvite is in progress,
>>>> any offer
>>>>> the UAS might want to send in an UPDATE can instead be sent in a 
>>>>> reliable provisional response.
>>>>>
>>>>> This *does* present a problem if the UAC supports UPDATE
>>>> but doesn't
>>>>> support reliable provisional responses. Is that an important case?
>>>>> Does anybody do that?
>>>>>
>>>>> If we must deal with the case where a UAC doesn't support
>>>> 100rel, but
>>>>> does support UPDATE, then this proposal won't work. If 
>> so, I don't 
>>>>> currently have any alternative.
>>>>>
>>>>> 	Paul
>>>>>
>>>>>> Ian Elz
>>>>>> System Manager
>>>>>> DUCI LDC UK
>>>>>> (Lucid Duck)
>>>>>> Office: + 44 24 764 35256
>>>>>> gsm: +44 7801723668
>>>>>> ian.elz@ericsson.com
>>>>>> -----Original Message-----
>>>>>> From: sipping-bounces@ietf.org
>>>> [mailto:sipping-bounces@ietf.org] On
>>>>>> Behalf Of Paul Kyzivat
>>>>>> Sent: 03 July 2008 15:57
>>>>>> To: sipping
>>>>>> Cc: Mary Barnes; Gonzalo Camarillo
>>>>>> Subject: Re: [Sipping] Current status of response to 
>> 3gpp Liaison 
>>>>>> Statement on offer/answer procedures I have been thinking
>>>> about how
>>>>>> we might solve the UPDATE ambiguity issue which the 
>>>>>> MULTI-OA-TRANSACTION has. I have a potential solution,
>>>> which involves
>>>>>> the following new restrictions:
>>>>>> 1) A UAS for a reINVITE MUST NOT send UPDATE requests
>>>>>>    within the scope of that INVITE. It must refrain from sending
>>>>>>    UPDATE until it has received an ACK for the INVITE.
>>>>>>    Note that this isn't much of a restriction, since the
>>>> same things
>>>>>>    can be accomplished with reliable provisional responses before
>>>>>>    the INVITE completes, and reINVITE can be used after sending a
>>>>>>    final response. The only limitation I can see is if reliable
>>>>>>    provisionals are not being used and yet a change is desired
>>>>>>    before completion of the INVITE. But I doubt that is 
>> a realistic
>>>>>>    case.
>>>>>> 2) A UAC for an INVITE or reINVITE MUST NOT send an 
>> UPDATE request
>>>>>>    immediately *after* the completion of the INVITE. It
>>>> must refrain
>>>>>>    until the timer has expired on the ACK. (I forget which
>>>> timer that
>>>>>>    is.)
>>>>>>    This also isn't much of a restriction. Anything that 
>> can be done
>>>>>>    by the UPDATE can also be done with a reINVITE.
>>>>>> With these restrictions, the recipient of an UPDATE 
>> never has any 
>>>>>> question of whether it should be part of the prior INVITE or not.
>>>>>> To be sure, lets cover the cases:
>>>>>> UAC (for the INVITE):
>>>>>> - An UPDATE that was legally sent by the UAS will arrive 
>> after the
>>>>>>   final response for the INVITE is received and the ACK sent.
>>>>>>   It will be unaffected by failure of the prior reINVITE.
>>>>>> - There is no possibility that a legally sent UPDATE will arrive
>>>>>>   before the final response. If one arrives it must have 
>> been sent
>>>>>>   by a UAS not compliant to these new rules. If one does arrive,
>>>>>>   I propose that it be assumed to have been sent within the
>>>>>>   INVITE, and hence be rolled back if the INVITE 
>> eventually fails.
>>>>>> - There is no possibility that a legally sent UPDATE will arrive
>>>>>>   after the receipt of a failing final response, and before any
>>>>>>   ACK has been sent. If one arrives it must have been sent
>>>>>>   by a UAS not compliant to these new rules. If one does arrive,
>>>>>>   I propose that it be assumed to have been sent after the
>>>>>>   final response, and hence not be subject to rollback.
>>>>>> UAS (for the INVITE):
>>>>>> - An UPDATE that is received before the final response to the
>>>>>>   INVITE has been sent is assumed to belong within the INVITE.
>>>>>>   If the final response is a failure, then any o/a effects of
>>>>>>   the UPDATE will be rolled back.
>>>>>> - An UPDATE that is received after the final response to the
>>>>>>   INVITE has been sent, but before the ACK has been received,
>>>>>>   is assumed to have been sent before the final response was
>>>>>>   received. Hence it is subject to rollback if the final response
>>>>>>   was failure. Since it hasn't yet been processed, and is to be
>>>>>>   rolled back, the response to it should be an error - perhaps
>>>>>>   487.
>>>>>> I think the above will resolve the issue and be 
>> interoperable with 
>>>>>> current implementations except in cases of message reordering. I 
>>>>>> doubt we can do any better than that.
>>>>>> 	Thanks,
>>>>>> 	Paul
>>>>>> Paul Kyzivat wrote:
>>>>>>> Some time ago 3gpp requested liaison regarding offer/answer 
>>>>>>> procedures. The liaison document may be found at:
>>>>>>>
>>>>>>> https://datatracker.ietf.org/liaison/444/
>>>>>>>
>>>>>>> Information about the discussion can be found at:
>>>>>>>
>>>>>>>
>> http://www.ietf.org/mail-archive/web/sipping/current/msg15771.html
>>>>>>> Some of us (especially Christer and I) have been 
>> discussing this 
>>>>>>> privately. Mary has asked for a clarification of the
>>>> current status
>>>>>>> to the group. This is my attempt to do so:
>>>>>>>
>>>>>>> To summarize the issue:
>>>>>>>
>>>>>>> - Assume one issues a re-INVITE,
>>>>>>> - and that results in multiple offer/answer exchanges  
>> (via PRACK 
>>>>>>> and UPDATE) prior to the completion of  the re-INVITE,
>>>>>>> - and then the re-INVITE *fails* (response >= 300)
>>>>>>>
>>>>>>> Then in what state is the session left, with regard to
>>>> SDP and media
>>>>>>> sessions?
>>>>>>>
>>>>>>> None of the RFCs clearly cover this case. The 
>> offer/answer draft 
>>>>>>> touched on it, but is not normative and so could not resolve it.
>>>>>>>
>>>>>>> We have concluded that there are two plausible ways of treating
>>>>>>> this:
>>>>>>>
>>>>>>> MULTI-OA-TRANSACTION:
>>>>>>>   The re-INVITE, and all the offers/answers that take 
>> place within
>>>>>>>   its scope, are treated as a transaction. All succeed or fail
>>>>>>>   together based on the outcome of the re-INVITE. So, if the
>>>>>>>   re-INVITE fails, then the media state reverts to what
>>>> it had been
>>>>>>>   before the re-INVITE began.
>>>>>>>
>>>>>>> SINGLE-OA-TRANSACTION:
>>>>>>>   Each time an answer is transmitted *reliably*, that is
>>>> considered
>>>>>>>   final, regardless of what happens subsequently. A 
>> failure of the
>>>>>>>   re-INVITE only rolls back an offer that offer that was not 
>>>>>>> reliably
>>>>>>>   answered prior to the failure response.
>>>>>>>
>>>>>>> The merits of MULTI-OA-TRANSACTION:
>>>>>>>
>>>>>>> The advantage of the MULTI-OA-TRANSACTION approach is
>>>> that it aligns
>>>>>>> with a real need. In some cases it is necessary to do
>>>> multiple o/a
>>>>>>> exchanges to transition from one stable state to another.
>>>>>>>
>>>>>>> A clear example of this is when preconditions are used. 
>> Multiple 
>>>>>>> exchanges are required to resolve the preconditions, and the 
>>>>>>> intermediate states may not be useful for exchanging media. The 
>>>>>>> ultimate failure is likely an indication that the preconditions 
>>>>>>> could not be resolved. Rolling back to the state prior 
>> to the re- 
>>>>>>> INVITE cleanly resolves this.
>>>>>>>
>>>>>>> A key to making this work is, when a re-INVITE failure
>>>> occurs, the
>>>>>>> UAC and UAS must agree on on which offers and answers
>>>> were part of
>>>>>>> the re-INVITE and hence must be rolled back. Those 
>> carried in the 
>>>>>>> re-INVITE itself, its responses, in PRACKs, and in the ACK, are 
>>>>>>> clearly within the scope of the re-INVITE. The UPDATEs
>>>> that are sent
>>>>>>> within the scope of the re-INVITE also must be included,
>>>> but in that
>>>>>>> case there is a problem. When an UPDATE is sent near the
>>>> time when
>>>>>>> the re-INVITE fails, the recipient of it cannot clearly
>>>> determine if
>>>>>>> it was sent before or after the re-INVITE failed.
>>>>>>> This case is discussed in section xxx of yyy.
>>>>>>>
>>>>>>> Adopting answer (1) requires that we find a resolution to this 
>>>>>>> ambiguity. The need to solve this problem is a disadvantage of 
>>>>>>> MULTI-OA-TRANSACTIONs.
>>>>>>>
>>>>>>> Another possible disadvantage is that this requires the
>>>> UAC and UAS
>>>>>>> to maintain enough state to accomplish the rollback.
>>>>>>>
>>>>>>> The merits of SINGLE-OA-TRANSACTION:
>>>>>>>
>>>>>>> These are, unsurprisingly, pretty much the inverse of MULTI-OA- 
>>>>>>> TRANSACTIONs.
>>>>>>>
>>>>>>> One advantage is that less state need be kept. Once an 
>> answer is 
>>>>>>> received reliably, or the confirmation of an answer sent
>>>> reliably is
>>>>>>> received, prior state may be discarded.
>>>>>>>
>>>>>>> Another advantage is that the ordering of an UPDATE
>>>> relative to the
>>>>>>> completion of the prior re-INVITE need not be of concern.
>>>>>>>
>>>>>>> The main disadvantage of this approach arises when multiple o/a 
>>>>>>> exchanges are required to achieve a stable state, such as with 
>>>>>>> preconditions. With this approach, each o/a exchange is
>>>> locked in as
>>>>>>> it occurs. If the re-INVITE subsequently fails, there may be 
>>>>>>> wreckage to clean up. Until it is cleaned up, the state
>>>> of the media
>>>>>>> session(s) may be problematic.
>>>>>>>
>>>>>>> General discussion:
>>>>>>>
>>>>>>> While I have used preconditions as an example of the need for 
>>>>>>> multiple o/a exchanges, they are not the only example.
>>>> While I don't
>>>>>>> recall seeing them in any of our use-case documents, I have 
>>>>>>> definitely seem them in the wild. For instance there are
>>>> cases where
>>>>>>> initial offers are made with a=inactive, and later revised to 
>>>>>>> a=sendrecv, not because the call is initially on hold,
>>>> but because
>>>>>>> the caller is waiting to see how things come out. This
>>>> may be "poor
>>>>>>> man's preconditions". These aren't always done within the
>>>> re-INVITE,
>>>>>>> but could be.
>>>>>>>
>>>>>>> Either approach will require some normative change, since the 
>>>>>>> existing text seems ambiguous as to which of these is the
>>>> "correct" 
>>>>>>> interpretation. The MULTI-OA-TRANSACTION requires
>>>> additional work to
>>>>>>> define a mechanism for determining of an UPDATE near the
>>>> end of an
>>>>>>> INVITE transaction falls within it, or beyond it. So far
>>>> there has
>>>>>>> been no proposal for how to do this. It seems likely 
>> that it will 
>>>>>>> require that something new be placed into some 
>> messages. And this 
>>>>>>> may present backward compatibility issues.
>>>>>>>
>>>>>>> Many UAs will never experience a re-INVITE containing
>>>> multiple O/A
>>>>>>> exchanges. But even those are impacted by this issue. If a re- 
>>>>>>> INVITE has an offer, and it is answered in a reliable 
>> provisional 
>>>>>>> response, and then the re-INVITE fails, we still have the issue.
>>>>>>> If one side assumes the O/A is rolled back, and the other
>>>> assumes it
>>>>>>> remains in effect, then we have an interoperability
>>>> error. So it is
>>>>>>> important to come to some conclusion.
>>>>>>>
>>>>>>> NOTE: There is a related issue which we have agreed to
>>>> rule out of
>>>>>>> scope for the current discussion. This is whether a change of 
>>>>>>> Contact address during a re-INVITE is rolled back if the
>>>> re-INVITE
>>>>>>> fails. We concluded that the two issues should not be
>>>> constrained to
>>>>>>> have the same answer. This latter issue is left for another day.
>>>>>>>
>>>>>>>    Thanks,
>>>>>>>    Paul
>>>>>>>
>>>>>>> Paul Kyzivat wrote:
>>>>>>>> Robert Sparks wrote:
>>>>>>>>> (off-list reply)
>>>>>>>>>
>>>>>>>>> I'm mostly comfortable with that approach. Let me ask a
>>>> question
>>>>>>>>> or two to see if I can remove some of the dangling bits of 
>>>>>>>>> discomfort.
>>>>>>>>> The conversation so far has been described to me (I
>>>> haven't been
>>>>>>>>> following it closely - sorry)  as  focusing _only_ on
>>>> the impact
>>>>>>>>> on the session(s) being negotiated.
>>>>>>>>> It is _not_ attempting to answer some of the gnarly
>>>> dialog-state
>>>>>>>>> questions we've uncovered for these failed requests
>>>> (specifically
>>>>>>>>> what happens to a failed attempt to update a remote 
>> target (by 
>>>>>>>>> changing the Contact in new requests), correct?
>>>>>>>> Early in the thread I proposed separating the concerns. The 
>>>>>>>> remainder of the thread had indeed focused on the o/a issues.
>>>>>>>>
>>>>>>>> I do think that the other dialog state, notably the
>>>> contact, issues
>>>>>>>> need to be addressed. But I think we must not 
>> constrain them to 
>>>>>>>> have the same answer that works for o/a. We can start 
>> a separate 
>>>>>>>> thread to discuss that now, or we can wait for the current o/a 
>>>>>>>> discussion to settle first to avoid losing focus.
>>>>>>>>
>>>>>>>>> If I misunderstand and the second thing's in scope for this 
>>>>>>>>> effort, then my comfort is much lower.
>>>>>>>>>
>>>>>>>>> Paul - you responded separately that you think this
>>>> touches 3261
>>>>>>>>> as well - roughly what is the character of those touches?
>>>>>>>> Hopefully it touches only slightly. The current text regarding 
>>>>>>>> rolling back state to where it was prior to reinvite 
>> *may* need 
>>>>>>>> some tweaking depending on what solution we come to.
>>>>>>>>
>>>>>>>> *If* we agree on the solution that does indeed cause
>>>> rollback even
>>>>>>>> if there have been PRACKs and/or UPDATEs along the way,
>>>> then maybe
>>>>>>>> it won't need to be changed at all.
>>>>>>>>
>>>>>>>> I am personally still undecided on which is the better
>>>> solution.  
>>>>>>>> They have complementary pros and cons. It really is a 
>> matter of 
>>>>>>>> picking your poison. The precondition stuff really does
>>>> cause nasty
>>>>>>>> problems. I just posted another response in the thread
>>>> about that.
>>>>>>>> I earlier suggested splitting off the precondition
>>>> issues as their
>>>>>>>> own problem, and solving the rest. But apparently 3gpp
>>>> wants this
>>>>>>>> resolved precisely *because* they want to know how it impacts 
>>>>>>>> preconditions. So my suggestion wasn't helpful.
>>>>>>>>
>>>>>>>> It would be helpful to get some additional perspectives
>>>> into this
>>>>>>>> discussion. So far there have been very few participants.
>>>>>>>>
>>>>>>>>    Paul
>>>>>>>>
>>>>>>>>> RjS
>>>>>>>>>
>>>>>>>>> On Jun 9, 2008, at 5:18 AM, Gonzalo Camarillo wrote:
>>>>>>>>>
>>>>>>>>>> Hi Paul,
>>>>>>>>>>
>>>>>>>>>> yes, it may make more sense to update RFCs 3262 and
>>>> 3311 than to
>>>>>>>>>> update RFC 3264... do people agree that the way to
>>>> document the
>>>>>>>>>> resolution of this issue would be to write a new RFC
>>>> that would
>>>>>>>>>> clarify how offer/answer works with re-INVITEs, PRACKs, and 
>>>>>>>>>> UPDATEs, and would include discussions on preconditions?
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>>
>>>>>>>>>> Gonzalo
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Paul Kyzivat wrote:
>>>>>>>>>>> Gonzalo,
>>>>>>>>>>>
>>>>>>>>>>> I generally agree with your characterization below. 
>>>> But as I see
>>>>>>>>>>> it there likely are no changes needed to 3264. It is 
>>>>>>>>>>> intentionally focused on the SDP, and not the
>>>> conveyance of the
>>>>>>>>>>> SDP in some containing protocol. The following is about the 
>>>>>>>>>>> extent of it in 3264:
>>>>>>>>>>>
>>>>>>>>>>>  Protocol operation begins when one agent sends an
>>>> initial offer
>>>>>>>>>>> to  another agent.  An offer is initial if it is
>>>> outside of any
>>>>>>>>>>> context  that may have already been established through the 
>>>>>>>>>>> higher layer  protocol.  It is assumed that the 
>> higher layer 
>>>>>>>>>>> protocol provides  maintenance of some kind of 
>> context which 
>>>>>>>>>>> allows the various SDP  exchanges to be associated together.
>>>>>>>>>>>
>>>>>>>>>>>  The agent receiving the offer MAY generate an
>>>> answer, or it MAY
>>>>>>>>>>> reject the offer.  The means for rejecting an offer are 
>>>>>>>>>>> dependent on  the higher layer protocol.  The offer/answer 
>>>>>>>>>>> exchange is atomic; if  the answer is rejected, the session 
>>>>>>>>>>> reverts to the state prior to the  offer (which may
>>>> be absence
>>>>>>>>>>> of a session).
>>>>>>>>>>>
>>>>>>>>>>> SIP messed this up somewhat with the
>>>> offerless-invite, and more
>>>>>>>>>>> when it introduced PRACK and UPDATE. The offerless-invite 
>>>>>>>>>>> creates a case when it is impossible to reject an
>>>> offer. But we
>>>>>>>>>>> aren't discussing that case here. Without PRACK and
>>>> UPDATE, and
>>>>>>>>>>> with an offer in the INVITE, it the success or 
>> failure of the 
>>>>>>>>>>> INVITE that determines the acceptance or rejection of
>>>> the offer. 
>>>>>>>>>>> (With an offerless invite, the ACK always accepts the
>>>> offer, for
>>>>>>>>>>> better or worse.)
>>>>>>>>>>>
>>>>>>>>>>> The use of PRACK and UPDATE while an INVITE 
>> transaction is is 
>>>>>>>>>>> progress creates an ambiguous situation due to the 
>> following 
>>>>>>>>>>> from section 14.1 of
>>>>>>>>>>> 3261:
>>>>>>>>>>>
>>>>>>>>>>>  If a UA receives a non-2xx final response to a
>>>> re-INVITE, the
>>>>>>>>>>> session  parameters MUST remain unchanged, as if no 
>> re-INVITE 
>>>>>>>>>>> had been issued.
>>>>>>>>>>>
>>>>>>>>>>> This implies that changes made via PRACK and UPDATE
>>>> during the
>>>>>>>>>>> INVITE transaction must be rolled back. Since the problem 
>>>>>>>>>>> created by
>>>>>>>>>>> 3262 and
>>>>>>>>>>> 3311, in conjunction with 3261, I think the fixes
>>>> will have to
>>>>>>>>>>> apply to those, not to 3264.
>>>>>>>>>>>
>>>>>>>>>>> Also, the issue about changing Contact addresses 
>> clearly has 
>>>>>>>>>>> nothing to do with 3264. And I am becoming increasingly 
>>>>>>>>>>> convinced that the rules for "committing" a change 
>> of Contact 
>>>>>>>>>>> address ought to be decoupled from the rules for
>>>> "committing" a
>>>>>>>>>>> change to media sessions.
>>>>>>>>>>>
>>>>>>>>>>> Before we get into the specifics, does the above make sense?
>>>>>>>>>>>
>>>>>>>>>>>   Thanks,
>>>>>>>>>>>   Paul
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Gonzalo Camarillo wrote:
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> we should be providing 3GPP with an answer to their liaison
>>>>>>>>>>>> soon:
>>>>>>>>>>>>
>>>>>>>>>>>> https://datatracker.ietf.org/liaison/444/
>>>>>>>>>>>>
>>>>>>>>>>>> The thing is that when working on the offer/answer
>>>> usage draft
>>>>>>>>>>>> below, we kept from making normative changes to 
>> offer/answer:
>>>>>>>>>>>>
>>>> http://www.ietf.org/internet-drafts/draft-ietf-sipping-sip-offe
>>>>>>>>>>>> ranswer-08.txt
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> However, it seems that there are a few cases that
>>>> would require
>>>>>>>>>>>> normative updates to RFC 3264. In this thread, two
>>>> cases have
>>>>>>>>>>>> been
>>>>>>>>>>>> identified: roll back and address changes during ongoing 
>>>>>>>>>>>> transactions.
>>>>>>>>>>>> I would like to see a list of such pending updates
>>>> in order to
>>>>>>>>>>>> decide whether we need to revise RFC 3264 at this point or 
>>>>>>>>>>>> document the current issues (like we are doing with
>>>> RFC 3261)
>>>>>>>>>>>> for a future update.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>
>>>>>>>>>>>> Gonzalo
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Christer Holmberg wrote:
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I do NOT think John's case is connected to the
>>>> rollback issue.
>>>>>>>>>>>>> The rollback issue is: what happens to data that has been 
>>>>>>>>>>>>> updated between the re-INVITE request and failure
>>>> response? It
>>>>>>>>>>>>> of course included the target, but is not related 
>> to where 
>>>>>>>>>>>>> responses are sent.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Responses are, afaik, always sent to where the 
>> request came 
>>>>>>>>>>>>> from, so if one updates the local target he has to
>>>> make sure
>>>>>>>>>>>>> that he listens to the "old" port if there are ongoing 
>>>>>>>>>>>>> transactions.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Christer
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> ________________________________
>>>>>>>>>>>>>
>>>>>>>>>>>>> Lähettäjä: Paul Kyzivat [mailto:pkyzivat@cisco.com]
>>>>>>>>>>>>> Lähetetty: pe 16.5.2008 14:38
>>>>>>>>>>>>> Vastaanottaja: Elwell, John
>>>>>>>>>>>>> Kopio: Christer Holmberg; sipping List
>>>>>>>>>>>>> Aihe: Re: [Sipping] Liaison Statement on offer/answer 
>>>>>>>>>>>>> procedures
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> John,
>>>>>>>>>>>>>
>>>>>>>>>>>>> This is a good point.
>>>>>>>>>>>>>
>>>>>>>>>>>>> It does expose a potentially long window when
>>>> address changes
>>>>>>>>>>>>> are problematic. I guess if a quick address change is 
>>>>>>>>>>>>> necessary then the INVITE, or reINVITE, can be CANCELed.
>>>>>>>>>>>>>
>>>>>>>>>>>>> IMO this is starting to identify an area that could
>>>> stand to
>>>>>>>>>>>>> have more specification. I guess this sounds like a best 
>>>>>>>>>>>>> practices draft, but its still a little fuzzy to
>>>> me. And I am
>>>>>>>>>>>>> far from clear whether this is tightly connected 
>> to the o/a 
>>>>>>>>>>>>> rollback issue.
>>>>>>>>>>>>>
>>>>>>>>>>>>>       Thanks,
>>>>>>>>>>>>>       Paul
>>>>>>>>>>>>>
>>>>>>>>>>>>> Elwell, John wrote:
>>>>>>>>>>>>>> Paul,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>>>> From: sipping-bounces@ietf.org 
>>>>>>>>>>>>>>> [mailto:sipping-bounces@ietf.org] On Behalf Of
>>>> Paul Kyzivat
>>>>>>>>>>>>>>> Sent: 15 May 2008 14:48
>>>>>>>>>>>>>>> To: Christer Holmberg
>>>>>>>>>>>>>>> Cc: sipping List
>>>>>>>>>>>>>>> Subject: Re: [Sipping] Liaison Statement on 
>> offer/answer 
>>>>>>>>>>>>>>> procedures
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Christer,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Saying "you shouldn't do it" to changing contact
>>>> address or
>>>>>>>>>>>>>>> media address ignores facts of life that may
>>>> require doing
>>>>>>>>>>>>>>> it.
>>>>>>>>>>>>>>> This
>>>>>>>>>>>>>>> overlaps
>>>>>>>>>>>>>>> strongly with the session mobility discussion that is 
>>>>>>>>>>>>>>> currently going on.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Specifically, if a UA is losing possession of its
>>>> address,
>>>>>>>>>>>>>>> or connectivity via that address, then it will 
>> have to do 
>>>>>>>>>>>>>>> *something*. If we are going to say that you shouldn't 
>>>>>>>>>>>>>>> change the contact address in a dialog, and
>>>> shouldn't change
>>>>>>>>>>>>>>> the media address in a media session, then we need to 
>>>>>>>>>>>>>>> specify some alternative.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Clearly there are at least two distinct cases here:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> - there is a desire to switch to a new address,
>>>> but the old
>>>>>>>>>>>>>>> address  can continue to be supported until and
>>>> unless use
>>>>>>>>>>>>>>> of the new one  can be established
>>>>>>>>>>>>>> [JRE] So if the contact address changes and we
>>>> successfully
>>>>>>>>>>>>>> conclude the UPDATE transaction, and then the 
>> old contact 
>>>>>>>>>>>>>> address disappears, it is likely that the Via 
>> list on the 
>>>>>>>>>>>>>> re-INVITE request will have become invalidated 
>> too, so the 
>>>>>>>>>>>>>> final response will not reach the UAC. Correct?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> John
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> Sipping mailing list
>>>>>>>>>>>>>> https://www.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://www.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://www.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://www.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://www.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://www.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://www.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