Re: [Sipping] Possible Solution to HERFP

Adam Roach <adam@nostrum.com> Sat, 09 July 2005 05:09 UTC

Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1Dr7au-0007fc-5d; Sat, 09 Jul 2005 01:09:40 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1Dr7ar-0007fX-GK for sipping@megatron.ietf.org; Sat, 09 Jul 2005 01:09:37 -0400
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id BAA10435 for <sipping@ietf.org>; Sat, 9 Jul 2005 01:09:36 -0400 (EDT)
Received: from ylpvm12-ext.prodigy.net ([207.115.57.43] helo=ylpvm12.prodigy.net) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1Dr82M-0007Ia-DL for sipping@ietf.org; Sat, 09 Jul 2005 01:38:04 -0400
Received: from pimout5-ext.prodigy.net (pimout5-int.prodigy.net [207.115.4.21]) by ylpvm12.prodigy.net (8.12.10 outbound/8.12.10) with ESMTP id j6959MXb027596 for <sipping@ietf.org>; Sat, 9 Jul 2005 01:09:23 -0400
X-ORBL: [70.245.133.1]
Received: from [192.168.0.101] (ppp-70-245-133-1.dsl.rcsntx.swbell.net [70.245.133.1]) by pimout5-ext.prodigy.net (8.13.4 outbound domainkey aix/8.13.4) with ESMTP id j6959GID100834; Sat, 9 Jul 2005 01:09:25 -0400
Message-ID: <42CF5C20.3060304@nostrum.com>
Date: Sat, 09 Jul 2005 00:09:52 -0500
From: Adam Roach <adam@nostrum.com>
User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Rohan Mahy <rohan@ekabal.com>
Subject: Re: [Sipping] Possible Solution to HERFP
References: <dbf0b6ae20c7c5636fe0b2660c1dc1c3@ekabal.com>
In-Reply-To: <dbf0b6ae20c7c5636fe0b2660c1dc1c3@ekabal.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Spam-Score: 2.4 (++)
X-Scan-Signature: d8ae4fd88fcaf47c1a71c804d04f413d
Content-Transfer-Encoding: 7bit
Cc: 'sipping' WG <sipping@ietf.org>
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SIPPING Working Group \(applications of SIP\)" <sipping.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:sipping@ietf.org>
List-Help: <mailto:sipping-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=subscribe>
Sender: sipping-bounces@ietf.org
Errors-To: sipping-bounces@ietf.org

Looks good overall.

Preliminary comments:

---
60 seconds seems an awfully large threshold for retransmission of 
unacknowledged 130s. Wouldn't something more like 4 seconds be more 
appropriate? It seems unlikely that INVITE requests will pend for long 
enough for a 130 response to be retransmitted -- in which case, I'd just 
as soon not have to run another timer.
---
With reliable responses, the document requires the proxy to include an 
offer or an answer in the 130. I suspect that you'll encounter a lot of 
times in which this simply isn't possible. The first that comes to mind 
is S/MIME encrypted bodies. I also shudder to think that I'll have to 
deploy SDPng (or any alternate session description format) in the middle 
of my network before clients can make use of it. I suspect we can get by 
without the offer or answer for 130s.
---
The sending of CANCELs to branches which are to be abandoned seems like 
it might be problematic. I could just be remembering some subtle 
protocol issues incorrectly, though.

Let's say you have a UAC (supporting herf), which sends a request to 
proxy A. Proxy A forks the request to Proxy B and UAS1. Proxy B forks 
the request to UAS2 and UAS3. UAS2 responds with a 401. Following the 
procedure you outline, Proxy B then sends a 130 to Proxy A. Proxy A then 
forwards this 130 to the UAC. The UAC doesn't have credentials for the 
indicated realm, so it sends a CANCEL to the URI indicated in the 
Contact header field of the 130. Proxy A sees this CANCEL, and matches 
it to the pending response context (with branches to UAS1 and Proxy B). 
Consequently, Proxy A returns a 200 to the CANCEL and generates its own 
CANCEL requests for its two client transactions.

Even if Proxy B is able to deduce what is going on here (and I don't 
think it can), UAS1 has now become unreachable.
---
And a couple of tiny nits that you can completely ignore:

    * I think I would call 130 something more like "Branch Error"
      instead of "Reparable Error." Most errors conveyed won't be reparable.

    * Appendix A is certainly useful for describing the problem, but I
      can already imagine the confused emails on the sip implementors
      list asking about the 155 error response code, and the use of
      COMET. I would suggest removal of section A.2.

/a


Rohan Mahy wrote:

> Hi Folks,
>
> I just submitted a new individual I-D that describes a possible  
> solution to the Heterogeneous Error Response Forking Protocol.  Until  
> it appears in the archives, you can find it here:
>
> https://scm.sipfoundry.org/rep/ietf-drafts/rohan/herf-fix/draft-mahy- 
> sipping-herfp-fix-00.txt
> https://scm.sipfoundry.org/rep/ietf-drafts/rohan/herf-fix/draft-mahy- 
> sipping-herfp-fix-00.html
>
> thanks,
> -rohan
> (as an individual)
>
>
> _______________________________________________
> Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
> This list is for NEW development of the application of SIP
> Use sip-implementors@cs.columbia.edu for questions on current sip
> Use sip@ietf.org for new developments of core SIP



_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sip@ietf.org for new developments of core SIP