Re: [sipcore] RFC 3261: 305 Use Proxy

Brett Tate <brett@broadsoft.com> Mon, 09 December 2013 12:54 UTC

Return-Path: <brett@broadsoft.com>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 861F11AE2AF for <sipcore@ietfa.amsl.com>; Mon, 9 Dec 2013 04:54:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PB7Gsd7BEZjy for <sipcore@ietfa.amsl.com>; Mon, 9 Dec 2013 04:54:07 -0800 (PST)
Received: from smtpout01.partnerhosted.com (smtpout01.partnerhosted.com [173.225.22.21]) by ietfa.amsl.com (Postfix) with ESMTP id 84E0B1ADF32 for <sipcore@ietf.org>; Mon, 9 Dec 2013 04:54:07 -0800 (PST)
Received: from CASUMHUB04.citservers.local (172.16.98.225) by Xedge02.citservers.local (172.16.98.248) with Microsoft SMTP Server (TLS) id 14.2.247.3; Mon, 9 Dec 2013 04:55:57 -0800
Received: from MBX08.citservers.local ([fe80::2564:652:8dc8:caae]) by CASUMHUB04.citservers.local ([::1]) with mapi id 14.02.0247.003; Mon, 9 Dec 2013 04:55:57 -0800
From: Brett Tate <brett@broadsoft.com>
To: Andrew Allen <aallen@blackberry.com>, "pkyzivat@alum.mit.edu" <pkyzivat@alum.mit.edu>, "sipcore@ietf.org" <sipcore@ietf.org>
Thread-Topic: [sipcore] RFC 3261: 305 Use Proxy
Thread-Index: Ac7zeYtfzrfjjjZ2SuC5iKD08D8RQQANol6AAAhyCrMAQGnC4A==
Date: Mon, 09 Dec 2013 12:55:56 +0000
Message-ID: <576A8B541C219D4E9CEB1DF8C19C7B881A06D259@MBX08.citservers.local>
References: <52A36EF3.3040702@alum.mit.edu> <BBF5DDFE515C3946BC18D733B20DAD2338E75169@XMB104ADS.rim.net>
In-Reply-To: <BBF5DDFE515C3946BC18D733B20DAD2338E75169@XMB104ADS.rim.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [172.16.98.77]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [sipcore] RFC 3261: 305 Use Proxy
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Dec 2013 12:54:10 -0000

> 3GPP specifications make use of the 305 Use Proxy response 
> but don't go into details of how the Contact header is utilised.

Sounds like RFC 3261. :)

How does 3GPP interpret "305 (Use Proxy) responses MUST only be generated by UASs"?

For instance, can proxies and B2BUAs generate 305 responses?  If yes, can it be sent even though the middle box was not the last loose route entry?

Because of all the middle boxes and loose routing within 3GPP (including during call setup), which device does 3GPP expect to act upon the 305?  And if the immediate hop prior does not act upon the 305 should it proxy the 305 (thus potentially being subsequently bypassed and causing another 305)?

> My assumption is that the Route header is used as this is 
> used to redirect an INVITE request via a different proxy 
> and so you need to preserve the Request-URI which contains 
> the address of the destination UA.

How does the device acting upon the 305 alter an existing loose route to accommodate the Contact?

For instance, let's assume that the original INVITE contained a Route to traverse 3 proxies (first, second, and third) and no additional Route entries were added by middle boxes (to simplify the example).  How should each proxy and UAC adjust the Route if they were to act upon the 305?

I assume that a 305 with multiple Contact headers does not indicate to traverse multiple proxies.

> This behavior also seems to align with the loose 
> routing concepts of RFC 3261 - i.e. you leave the 
> Request-URI alone when routing.

Loose routing was introduce by RFC 3261.  305 existed within RFC 2543.  Based upon your interpretation, it sounds like RFC 2543 devices acting upon a 305 would have sent the INVITE to the Contact location without adding a Route and without altering the Request-URI.

This interpretation also appears to complicate the default handling discussed within RFC 3261 section 5.1.1.  More specifically, the 300 handling of 305 would result in the other interpretation of the 305 (i.e. replace Request-URI).

RFC 3261 section 5.1.1:

"SIP response codes are extensible. SIP applications are not required
 to understand the meaning of all registered response codes, though
 such understanding is obviously desirable. However, applications MUST
 understand the class of any response code, as indicated by the first
 digit, and treat any unrecognized response as being equivalent to the
 x00 response code of that class, with the exception that an
 unrecognized response MUST NOT be cached. For example, if a client
 receives an unrecognized response code of 431, it can safely assume
 that there was something wrong with its request and treat the
 response as if it had received a 400 (Bad Request) response code."