Re: [Sipping] Liaison Statement on offer/answer procedures

Paul Kyzivat <pkyzivat@cisco.com> Mon, 09 June 2008 14:50 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 589BE3A6C95; Mon, 9 Jun 2008 07:50:25 -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 67A793A6C65 for <sipping@core3.amsl.com>; Mon, 9 Jun 2008 07:50:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.528
X-Spam-Level:
X-Spam-Status: No, score=-6.528 tagged_above=-999 required=5 tests=[AWL=0.071, BAYES_00=-2.599, 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 f2aegVKUTIrb for <sipping@core3.amsl.com>; Mon, 9 Jun 2008 07:50:17 -0700 (PDT)
Received: from rtp-iport-1.cisco.com (rtp-iport-1.cisco.com [64.102.122.148]) by core3.amsl.com (Postfix) with ESMTP id B8B323A67EA for <sipping@ietf.org>; Mon, 9 Jun 2008 07:50:16 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.27,613,1204520400"; d="scan'208";a="10502172"
Received: from rtp-dkim-2.cisco.com ([64.102.121.159]) by rtp-iport-1.cisco.com with ESMTP; 09 Jun 2008 10:50:35 -0400
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 m59EoZ1V031739; Mon, 9 Jun 2008 10:50:35 -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.13.8/8.13.8) with ESMTP id m59EoYuG006488; Mon, 9 Jun 2008 14:50: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); Mon, 9 Jun 2008 10:50:32 -0400
Received: from [161.44.174.168] ([161.44.174.168]) by xfe-rtp-202.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 9 Jun 2008 10:50:31 -0400
Message-ID: <484D4360.4000307@cisco.com>
Date: Mon, 09 Jun 2008 10:51:12 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 2.0.0.14 (Windows/20080421)
MIME-Version: 1.0
To: Christer Holmberg <christer.holmberg@ericsson.com>
References: <4822983A.2090906@ericsson.com> <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><CA9998CD4A020D418654FCDEF4E707DF046C77F8@esealmw113.eemea.ericsson.se><484719AF.9060207@cisco.com><CA9998CD4A020D418654FCDEF4E707DF0688EB10@esealmw113.eemea.ericsson.se><4847FF97.1030804@cisco.com><CA9998CD4A020D418654FCDEF4E707DF046C7805@esealmw113.eemea.ericsson.se> <48493CE6.3050800@cisco.com> <C0E80510684FE94DBDE3A4AF6B968D2D037D84FF@esealmw118.eemea.ericsson.se> <CA9998CD4A020D418654FCDEF4E707DF046C780A@esealmw113.eemea.ericsson.se> <48499AD6.4060701@cisco.com> <4849B4A5.6090906@cisco.com> <CA9998CD4A020D418654FCDEF4E707DF046C780D@esealmw113.eemea.ericsson.se> <484AC895. 1050409@ cisco.com> <CA9998CD4A020D418654FCDEF4E707DF046C7811@esealmw113.eemea.ericsson.se>
In-Reply-To: <CA9998CD4A020D418654FCDEF4E707DF046C7811@esealmw113.eemea.ericsson.se>
X-OriginalArrivalTime: 09 Jun 2008 14:50:32.0016 (UTC) FILETIME=[2A855D00:01C8CA40]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=5031; t=1213023035; x=1213887035; 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[Sipping]=20Liaison=20Statement=20on=20 offer/answer=20procedures |Sender:=20 |To:=20Christer=20Holmberg=20<christer.holmberg@ericsson.co m>; bh=XLFf0Vi2mQYkgWTHThnTAgHYlskVLraLcMv3Toc/YQI=; b=RDQwFV/SfXonRw8DiSSY6NJyzV0Jtgn73XoLpIcjtWzpujAYjcbSLT15bR wckI81PHZw/s3LXzNFcplTG7Oy09lohB07baBIcfAAbnkgv53ZDwigxUFxRa S/CelKHA2C;
Authentication-Results: rtp-dkim-2; header.From=pkyzivat@cisco.com; dkim=pass ( sig from cisco.com/rtpdkim2001 verified; );
Cc: sipping List <sipping@ietf.org>, "Elwell, John" <john.elwell@siemens.com>, Mary Barnes <mary.barnes@nortel.com>, Gonzalo Camarillo <gonzalo.camarillo@ericsson.com>
Subject: Re: [Sipping] Liaison Statement on 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="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: sipping-bounces@ietf.org
Errors-To: sipping-bounces@ietf.org

response at end.

Christer Holmberg wrote:
> Hi,
>  
>>>>>>> - If an UPDATE (inside or outside of a reINVITE) fails, any o/a in
>>>>>>> the UPDATE has no effect on the media session state.
>>>>>>> [Ian Elz ] OK, but how will we determine if an UPDATE is inside or
>>>>>>> outside a re-INVITE?
>>>>>> [Christer] I assume that any stateful entity must know whether it has
>>>>>> a pending re-INVITE transaction for a specific call or not.
>>>>> That's not actually enough. A UAS (or dialog stateful proxy) cannot know
>>>>> whether an UPDATE received shortly after a 2xx is sent upstream was sent
>>>>> before or after the 2xx was received by the UAC. We could add an
>>>>> explicit indication to that effect, I suppose...
>>>> Yes. Taking this approach to the current problem requires that we find a
>>>> solution to knowing whether the update was sent inside the reinvite or not.
>>> If the UAS sends a 2xx response to the re-INVITE I guess it really doesn't matter when the UPDATE was sent.
>>> But, if the UAS sends a non-2xx response to the re-INVITE I guess it would need to know when the UPDATE was sent: was it sent still assuming that the re-INVITE will succeed, OR was it sent bacause the re-INVITE did NOT succeed?
>>> If we would go for the non-rollback alternative we wouldn't have this problem since the re-INVITE failure response doesn't affect UPDATE/PRACK offer/answers, and then it doesn't matter when the UPDATE was sent.
>> Exactly! That is an advantage of the non-rollback solution.
>> But the rollback solution has the advantage of providing a solution to
>> the precondition rollback problem.
>>
>> We need to pick our poison.
>  
> Let's discuss the non-rollback alternative for a while.
> 
> For the pre-conditions case, when the re-INVITE fails, it most likely means that the UAS finally chose not to accept whatever was proposed in the re-INVITE request (maybe a new stream). Now,  before the re-INVITE failure response, intermediate o/a transactions may have succeeded, resources may have been reserved etc, e.g. because the UAS user wasn't "asked" about the new stream until a certain point.
> 
> So, since the re-INVITE failure response now wouldn't affect the suceeded intermediate o/a transactions, I guess the UAC (or UAS) would have to initiate a "manual fallback", by sending a new re-INVITE/UPDATE offer, with the SDP that was used before the previous failed re-INVITE request was sent - or maybe try some different offer (maybe it simply isn't possible to fall back to exactly the same SDP state as before the failed re-INVITE).
> 
> So, the non-rollback alternative would work also for pre-conditions, assuming the UAC does the "manual fallback", and we wouldn't have the race-condition problem that Anders brought up. 
> 
> Also, wouldn't automatically "force" the SDP state back to it's previous state, in case it for whatever reason isn't possible for the UAC/UAS. We would give the users more choise on how to deal with the situation.

Before answering that, I think there is a related issue of when the o/a 
changes actually take effect. Is it *immediately* (when the offer is 
sent and when the answer is sent), or is it only when all the 
preconditions have been resolved?

Consider a case where what is proposed is a codec change - to a higher 
bandwidth codec. Until the increased bandwidth is obtained, you can't 
really use the new codec. But the situation is reversed for downgrading 
- you need to switch to the lower bandwidth codec *before* giving up 
bandwidth. This could be solved by initially offering both the old and 
new codecs, along with proposing the bandwidth change. The switch in 
which codec is used would happen appropriately. But that depends on some 
careful conventions for codec usage, and we know there are 
implemenations out that that can't actually support simultaneous use of 
multiple codecs.

Even that doesn't fully resolve the problem. Suppose you had previously 
negotiated a bandwidth of B1 and have been happily using it. Then you 
decide to switch to bandwidth B2 ( which is > B1) and send an offer with 
preconditions for this, indicating that it isn't yet satisfied. If you 
get an answer that leaves this unresolved, what do you have? Can you 
assume you still have the old bandwidth, or not?

Life gets simpler if we assume that none of the o/a changes in the 
context of a reINVITE (and PRACKs and UPDATEs within the reINVITE scope) 
take effect until the successful completion of the reINVITE. (As 
contrasted to having them take effect immediately and then be rolled 
back on a failure.)

	Thanks,
	Paul

> Comments?
> 
> Regards,
> 
> Christer
> 
>  
> 
> _______________________________________________
> 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