Re: [martini] De-registration and GIN

David Hancock <D.Hancock@CableLabs.com> Thu, 26 January 2012 15:49 UTC

Return-Path: <D.Hancock@CableLabs.com>
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 9EBD421F85E3 for <martini@ietfa.amsl.com>; Thu, 26 Jan 2012 07:49:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.744
X-Spam-Level:
X-Spam-Status: No, score=0.744 tagged_above=-999 required=5 tests=[AWL=1.208, BAYES_00=-2.599, HELO_EQ_MODEMCABLE=0.768, HOST_EQ_MODEMCABLE=1.368]
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 GCCWOu1wuwG7 for <martini@ietfa.amsl.com>; Thu, 26 Jan 2012 07:49:36 -0800 (PST)
Received: from ondar.cablelabs.com (ondar.cablelabs.com [192.160.73.61]) by ietfa.amsl.com (Postfix) with ESMTP id 9F13721F85D4 for <martini@ietf.org>; Thu, 26 Jan 2012 07:49:36 -0800 (PST)
Received: from kyzyl.cablelabs.com (kyzyl [10.253.0.7]) by ondar.cablelabs.com (8.14.5/8.14.5) with ESMTP id q0QFnX7J031079; Thu, 26 Jan 2012 08:49:33 -0700
Received: from srvxchg.cablelabs.com (10.5.0.15) by kyzyl.cablelabs.com (F-Secure/fsigk_smtp/407/kyzyl.cablelabs.com); Thu, 26 Jan 2012 08:49:33 -0700 (MST)
X-Virus-Status: clean(F-Secure/fsigk_smtp/407/kyzyl.cablelabs.com)
Received: from srvxchg.cablelabs.com ([10.5.0.15]) by srvxchg ([10.5.0.15]) with mapi; Thu, 26 Jan 2012 08:49:34 -0700
From: David Hancock <D.Hancock@CableLabs.com>
To: Paul Kyzivat <pkyzivat@alum.mit.edu>
Date: Thu, 26 Jan 2012 08:49:33 -0700
Thread-Topic: De-registration and GIN
Thread-Index: Aczb20wtWnekupg9TpiVSM07m7/MBwAY4rZI
Message-ID: <76AC5FEF83F1E64491446437EA81A61F81DF5C7E7B@srvxchg>
References: <76AC5FEF83F1E64491446437EA81A61F81DF4FC3A3@srvxchg>, <4F20C98F.4020704@alum.mit.edu>
In-Reply-To: <4F20C98F.4020704@alum.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Approved: ondar
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 15:49:37 -0000

Paul,

Good points.  

In the example I was trying to extend the following RFC6140 requirement to the de-register "*" case...

   "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."

But I had forgotten that requiring an option in itself doesn't change behavior, and in the case of GIN it's the presence of the "bnc" URI parameter that tells the registrar to do the special GIN processing. So yes, that is a problem in my example.

If the "*" removes everything, then it does mean that an explicit de-registration using "*" could remove a AOR-->contact row that was established using GIN. Presumaly the deleted row would be added back in on the next GIN refresh. 

Would appreciate hearing other comments/thoughts on this.

Thanks
David

________________________________________
From: Paul Kyzivat [pkyzivat@alum.mit.edu]
Sent: Wednesday, January 25, 2012 8:33 PM
To: David Hancock
Cc: martini@ietf.org
Subject: Re: De-registration and GIN

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
>