Re: [sipcore] RFC5626 and REGISTER with multiple contacts

"Worley, Dale R (Dale)" <dworley@avaya.com> Thu, 03 May 2012 15:37 UTC

Return-Path: <dworley@avaya.com>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 484F521F850C for <sipcore@ietfa.amsl.com>; Thu, 3 May 2012 08:37:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.518
X-Spam-Level:
X-Spam-Status: No, score=-102.518 tagged_above=-999 required=5 tests=[AWL=-0.519, BAYES_00=-2.599, J_CHICKENPOX_38=0.6, USER_IN_WHITELIST=-100]
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 MkBmXnTuvNb4 for <sipcore@ietfa.amsl.com>; Thu, 3 May 2012 08:37:23 -0700 (PDT)
Received: from p-us1-iereast-outbound.us1.avaya.com (p-us1-iereast-outbound.us1.avaya.com [135.11.29.13]) by ietfa.amsl.com (Postfix) with ESMTP id AC19D21F84F0 for <sipcore@ietf.org>; Thu, 3 May 2012 08:37:23 -0700 (PDT)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: Av8EAAKlok/GmAcF/2dsb2JhbABEsnaBB4IJAQEBAQIBEihECwIBCA0FAyEQMhcOAQEEARIIGodmBZ0qnS2QJWMEnBaKKoME
X-IronPort-AV: E=Sophos;i="4.75,524,1330923600"; d="scan'208";a="7410780"
Received: from unknown (HELO co300216-co-erhwest.avaya.com) ([198.152.7.5]) by p-us1-iereast-outbound.us1.avaya.com with ESMTP; 03 May 2012 11:37:21 -0400
Received: from unknown (HELO DC-US1HCEX3.global.avaya.com) ([135.11.52.22]) by co300216-co-erhwest-out.avaya.com with ESMTP; 03 May 2012 11:34:22 -0400
Received: from DC-US1MBEX4.global.avaya.com ([169.254.2.202]) by DC-US1HCEX3.global.avaya.com ([135.11.52.22]) with mapi; Thu, 3 May 2012 11:37:21 -0400
From: "Worley, Dale R (Dale)" <dworley@avaya.com>
To: Ivo Sedlacek <ivo.sedlacek@ericsson.com>, "sipcore@ietf.org" <sipcore@ietf.org>
Date: Thu, 03 May 2012 11:37:20 -0400
Thread-Topic: RFC5626 and REGISTER with multiple contacts
Thread-Index: Ac0pG+Agd7EhJGWVQWCqariXDqhddwAIFbhD
Message-ID: <CD5674C3CD99574EBA7432465FC13C1B22726A0AA3@DC-US1MBEX4.global.avaya.com>
References: <3A324A65CCACC64289667DFAC0B88E12197E3BB890@ESESSCMS0360.eemea.ericsson.se>
In-Reply-To: <3A324A65CCACC64289667DFAC0B88E12197E3BB890@ESESSCMS0360.eemea.ericsson.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [sipcore] RFC5626 and REGISTER with multiple contacts
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.12
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: Thu, 03 May 2012 15:37:24 -0000

> From: Ivo Sedlacek [ivo.sedlacek@ericsson.com]
> 
> I can understand the reason for rejection where the contacts represent
> different UA instances, or have different IP addresses or ports.
> 
> However, the same sip.instance *and* the same IP address and port are
> used in each of the contact registered by the REGISTER request in the
> case above. I also assume that the reg-id would be the same for each
> contact associated with a given flow.
> 
> Is there a reason why REGISTER with multiple contacts, each having the
> same sip.instance, the same IP address and port and the same reg-id,
> should be rejected?

The underlying concept of "SIP Outbound" processing is that the
"contact" that is registered is not the contact URI that is provided,
but the *flow* which the UA created to the edge proxy -- a request to
the AoR is to be routed to the UA by being sent down the specified
flow.  Of course, the contact URI will be used as the request-URI, but
the request will not be routed based on RFC 3263 processing of the
contact URI.

An advantage of that concept is that the contact URI provided by the
UA does not need to be a URI by which the edge proxy could contact the
UA.  And in many practical situations, the UA may not be able to
determine a usable contact URI.

Within that concept, it is difficult for a UA to use one REGISTER for
multiple contacts, because all contacts would necessarily be
associated with the same flow, and if they are all reached via the
same flow, how are they distinguished?

In your architecture, I think the concept is that the physical UA
device would demultiplex requests to the various effective UAs based
on the request-URI of incoming requests.  Within that context, it
seems reasonable that multiple contact URIs could be presented in one
Outbound REGISTER.  But I don't think that RFC 5626 envisioned that
possibility -- RFC 5626 assumes that each flow originates from only
one UA.

However, looking at the algorithms presented in RFC 5626, it appears
to me that if your device sends two different REGISTERs for two
different UAs down the *same* flow, the two UAs become registered to
the same flow, but with their different contact URIs.  Important
point:  This requires that the different UAs use *different*
sip.instance values, otherwise the second registration replaces the
first registration.

And now that you've raised the question, it appears to be reasonable
that multiple such contacts could be registered with one REGISTER
request; the algorithms in the RFC would handle the situation in the
obvious way.

One critical thing is that if you want the proxy to treat these
various application UAs as distinct UAs, you will have to provide each
one with a different sip.instance.  The philosophy of SIP is that the
sip.instance is unique to the UA, and no aspect of SIP will ever be
designed to "correctly" handle multiple UAs that present the same
sip.instance.

Once you give each UA a different sip.instance, each UA has an
independent space of reg-ids, as reg-id is only used when it is
combined with the sip.instance.

However, it would probably be easier to have the device register one
contact without any capabilities declaration.  Then, all calls are
routed to the device, and its demultiplexer can determine which of the
application UAs should receive forks of the INVITE, and reject the
INVITE if there are none.

Dale