Re: [martini] De-registration and GIN

Paul Kyzivat <pkyzivat@alum.mit.edu> Thu, 26 January 2012 03:33 UTC

Return-Path: <pkyzivat@alum.mit.edu>
X-Original-To: martini@ietfa.amsl.com
Delivered-To: martini@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8B92A11E80DE for <martini@ietfa.amsl.com>; Wed, 25 Jan 2012 19:33:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.614
X-Spam-Level:
X-Spam-Status: No, score=-2.614 tagged_above=-999 required=5 tests=[AWL=-0.015, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TT1OgSS-LIhV for <martini@ietfa.amsl.com>; Wed, 25 Jan 2012 19:33:39 -0800 (PST)
Received: from qmta07.westchester.pa.mail.comcast.net (qmta07.westchester.pa.mail.comcast.net [76.96.62.64]) by ietfa.amsl.com (Postfix) with ESMTP id 7A53511E80CD for <martini@ietf.org>; Wed, 25 Jan 2012 19:33:39 -0800 (PST)
Received: from omta04.westchester.pa.mail.comcast.net ([76.96.62.35]) by qmta07.westchester.pa.mail.comcast.net with comcast id S3Tz1i0030ldTLk573ZfuJ; Thu, 26 Jan 2012 03:33:39 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([24.62.229.5]) by omta04.westchester.pa.mail.comcast.net with comcast id S3Za1i02007duvL3Q3Zdha; Thu, 26 Jan 2012 03:33:39 +0000
Message-ID: <4F20C98F.4020704@alum.mit.edu>
Date: Wed, 25 Jan 2012 22:33:35 -0500
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:8.0) Gecko/20111105 Thunderbird/8.0
MIME-Version: 1.0
To: David Hancock <D.Hancock@cablelabs.com>
References: <76AC5FEF83F1E64491446437EA81A61F81DF4FC3A3@srvxchg>
In-Reply-To: <76AC5FEF83F1E64491446437EA81A61F81DF4FC3A3@srvxchg>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
Cc: "martini@ietf.org" <martini@ietf.org>
Subject: Re: [martini] De-registration and GIN
X-BeenThere: martini@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Discussion of en-mass SIP PBX registration mechanisms <martini.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/martini>, <mailto:martini-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/martini>
List-Post: <mailto:martini@ietf.org>
List-Help: <mailto:martini-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/martini>, <mailto:martini-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Jan 2012 03:33:40 -0000

David,

ISTM that deregistering "*" should deregister everything - gin or not, 
for multiple reasons:

- what you propose would make it cumbersome to remove everything.
- what you propose misuses the gin option. Requiring an option only
   requires that the recipient support the option. It doesn't in and of
   itself alter any behavior. Something else in the message should do
   that.
- I can't see any downside to doing so

But this is a somewhat non-obvious subject, so I would like to see some 
other opinions.

	Thanks,
	Paul

On 1/25/12 7:52 PM, David Hancock wrote:
> I have a couple of questions on de-registration and GIN.
>
> RFC 3261 Section 10.2.2 “Removing Bindings” provides a way to remove all
> contacts bound to a registered AOR.
>
> Here’s the text…
>
> The REGISTER-specific Contact header field value of "*" applies to
>
> all registrations, but it MUST NOT be used unless the Expires header
>
> field is present with a value of "0".
>
> Use of the "*" Contact header field value allows a registering UA
>
> to remove all bindings associated with an address-of-record
>
> without knowing their precise values.
>
> Question-1: How is this procedure applied when the AOR-to-contact
> binding was established using GIN (RFC 6140)? Does the sending PBX
> include "bnc" in the Contact header? I assume it does not, since "bnc"
> is a URI parameter and there is no actual contact URI in this case.
>
> On a related topic, RFC 6140 section 5.2 clarifies the interaction
> between explicit and GIN registration with the following text…
>
>       Although the SSP treats this registration as a number of discrete
>
>       rows for the purpose of re-targeting incoming requests, the renewal,
>
>       expiration, and removal of these rows is bound to the registered
>
>       contact.    In particular, this means that REGISTER requests that
>
>       attempt to de-register a single AOR that has been implicitly
>
>       registered MUST NOT remove that AOR from the bulk registration.    In
>
>       this circumstance, the registrar simply acts as if the UA attempted
>
>       to unregister a contact that wasn't actually registered (e.g., return
>
>       the list of presently registered contacts in a success response).    A
>
>       further implication of this property is that an individual extension
>
>       that is implicitly registered may also be explicitly registered using
>
>       a normal, non-bulk registration (subject to SSP policy).    If such a
>
>       registration exists, it is refreshed independently of the bulk
>
>       registration and is not removed when the bulk registration is
>
>       removed.
>
> So basically, an explicit de-registration should not impact bindings
> established via GIN, and vice versa.
>
> For example, PBX sip:pbx1@sp.com serving 4 E.164 numbers uses GIN to
> bind its extension AORs to two different contact addresses, thus
> creating the following bindings…
>
> 8 GIN bindings…
>
> sip:+13035550001@sp.com --> sip:+13035550001@192.158.10.1
>
> sip:+13035550002@sp.com --> sip:+13035550002@192.158.10.1
>
> sip:+13035550003@sp.com --> sip:+13035550003@192.158.10.1
>
> sip:+13035550004@sp.com --> sip:+13035550004@192.158.10.1
>
> sip:+13035550001@sp.com --> sip:+13035550001@192.158.20.1
>
> sip:+13035550002@sp.com --> sip:+13035550002@192.158.20.1
>
> sip:+13035550003@sp.com --> sip:+13035550003@192.158.20.1
>
> sip:+13035550004@sp.com --> sip:+13035550004@192.158.20.1
>
> Plus a UA explicitly registers one of the E.164 numbers to two different
> contact addresses to create the following additional bindings…
>
> 2 explicit bindings…
>
> sip:+13035550003@sp.com --> sip:192.158.30.1
>
> sip:+13035550003@sp.com --> sip:192.158.40.1
>
> Now the PBX or UA can use the "*" construct to delete all of their
> respective bindings.
>
> [1] from the PBX
>
>       REGISTER sip:sp.com SIP/2.0
>
>       To:<sip:pbx@sp.com>
>
>       From:<sip:pbx@sp.com>
>
>       Proxy-Require: gin
>
>       Require: gin
>
>       Supported: path
>
>       Contact: *
>
>       Expires: 0
>
> [2] from the UA
>
>       REGISTER sip:sp.com SIP/2.0
>
>       To:<sip:+13035550003@sp.com>
>
>       From:<sip:+13035550003@sp.com>
>
>       Contact: *
>
>       Expires: 0
>
> On receiving [1], the SP/registrar removes the 8 GIN bindings without
> touching the explicit bindings.
>
> On receiving [2], the SP/registrar removes the 2 explicit bindings
> without touching the GIN bindings.
>
> Since the Contact header doesn’t contain a "bnc" parameter in this case,
> the registrar behavior is governed by the presence/absence of the "gin"
> option-tag in the Require header.
>
> Question-2 – does the example align with RFC6140?
>
> Thanks
>
> David Hancock
>