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

"DRAGE, Keith \(Keith\)" <drage@alcatel-lucent.com> Mon, 04 August 2008 10:11 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 EE3E43A6B03; Mon, 4 Aug 2008 03:11:04 -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 9D2443A6AFA for <sipping@core3.amsl.com>; Mon, 4 Aug 2008 03:11:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.915
X-Spam-Level:
X-Spam-Status: No, score=-0.915 tagged_above=-999 required=5 tests=[AWL=-1.516, BAYES_50=0.001, J_CHICKENPOX_18=0.6]
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 g44I850a2kLj for <sipping@core3.amsl.com>; Mon, 4 Aug 2008 03:11:01 -0700 (PDT)
Received: from ihemail4.lucent.com (ihemail4.lucent.com [135.245.0.39]) by core3.amsl.com (Postfix) with ESMTP id 4FA0D3A6B14 for <sipping@ietf.org>; Mon, 4 Aug 2008 03:09:40 -0700 (PDT)
Received: from ilexp03.ndc.lucent.com (h135-3-39-50.lucent.com [135.3.39.50]) by ihemail4.lucent.com (8.13.8/IER-o) with ESMTP id m74A90ju001076; Mon, 4 Aug 2008 05:09:53 -0500 (CDT)
Received: from DEEXP02.DE.lucent.com ([135.248.187.66]) by ilexp03.ndc.lucent.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 4 Aug 2008 05:09:49 -0500
Received: from DEEXC1U01.de.lucent.com ([135.248.187.20]) by DEEXP02.DE.lucent.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 4 Aug 2008 12:09:46 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Mon, 04 Aug 2008 12:09:46 +0200
Message-ID: <5D1A7985295922448D5550C94DE29180021D0B5A@DEEXC1U01.de.lucent.com>
In-Reply-To: <9019E197-7148-49DF-AD82-A2EB67898317@nostrum.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [Sipping] Current status of response to 3gpp Liaison Statementon offer/answer procedures
Thread-Index: AcjwwXh8IdJ32yTqQS6bwRvBMGXQrgFUGxHQ
References: <4822983A.2090906@ericsson.com> <4822F717.7030903@cisco.com> <CA9998CD4A020D418654FCDEF4E707DF05C0F826@esealmw113.eemea.ericsson.se> <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>
From: "DRAGE, Keith (Keith)" <drage@alcatel-lucent.com>
To: Robert Sparks <rjsparks@nostrum.com>, Paul Kyzivat <pkyzivat@cisco.com>
X-OriginalArrivalTime: 04 Aug 2008 10:09:46.0716 (UTC) FILETIME=[391291C0:01C8F61A]
X-Scanned-By: MIMEDefang 2.57 on 135.245.2.39
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-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: sipping-bounces@ietf.org
Errors-To: sipping-bounces@ietf.org

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