Re: [sipcore] RFC5626 and REGISTER with multiple contacts

"Kevin P. Fleming" <kpfleming@digium.com> Wed, 09 May 2012 14:27 UTC

Return-Path: <kpfleming@digium.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 B21AD11E8072 for <sipcore@ietfa.amsl.com>; Wed, 9 May 2012 07:27:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.122
X-Spam-Level:
X-Spam-Status: No, score=-106.122 tagged_above=-999 required=5 tests=[AWL=-0.123, BAYES_00=-2.599, J_CHICKENPOX_38=0.6, RCVD_IN_DNSWL_MED=-4, 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 BIoMrlDoSp7f for <sipcore@ietfa.amsl.com>; Wed, 9 May 2012 07:27:40 -0700 (PDT)
Received: from mail.digium.com (mail.digium.com [216.207.245.2]) by ietfa.amsl.com (Postfix) with ESMTP id D13D921F847C for <sipcore@ietf.org>; Wed, 9 May 2012 07:27:33 -0700 (PDT)
Received: from [10.24.55.203] (helo=zimbra.hsv.digium.com) by mail.digium.com with esmtp (Exim 4.69) (envelope-from <kpfleming@digium.com>) id 1SS7rY-0002B6-Ap for sipcore@ietf.org; Wed, 09 May 2012 09:27:32 -0500
Received: from localhost (localhost.localdomain [127.0.0.1]) by zimbra.hsv.digium.com (Postfix) with ESMTP id 4DFEED8004 for <sipcore@ietf.org>; Wed, 9 May 2012 09:27:32 -0500 (CDT)
Received: from zimbra.hsv.digium.com ([127.0.0.1]) by localhost (zimbra.hsv.digium.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ISBqK9kV5M2k for <sipcore@ietf.org>; Wed, 9 May 2012 09:27:31 -0500 (CDT)
Received: from [10.24.250.46] (unknown [10.24.250.46]) by zimbra.hsv.digium.com (Postfix) with ESMTPSA id E3678D8002 for <sipcore@ietf.org>; Wed, 9 May 2012 09:27:31 -0500 (CDT)
Message-ID: <4FAA7EC0.2000402@digium.com>
Date: Wed, 09 May 2012 09:27:12 -0500
From: "Kevin P. Fleming" <kpfleming@digium.com>
Organization: Digium, Inc.
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1
MIME-Version: 1.0
To: sipcore@ietf.org
References: <3A324A65CCACC64289667DFAC0B88E12197E3BB890@ESESSCMS0360.eemea.ericsson.se> <4FA3EFD8.2080903@digium.com> <3A324A65CCACC64289667DFAC0B88E12197E438967@ESESSCMS0360.eemea.ericsson.se> <4FA7D98E.8090100@alum.mit.edu> <3A324A65CCACC64289667DFAC0B88E12197E438E96@ESESSCMS0360.eemea.ericsson.se> <CALiegfkjp=V8ZHZRuD7atXN5eqNbrXnO8tVxc9-U8k=637Ok9Q@mail.gmail.com> <3A324A65CCACC64289667DFAC0B88E12197E438EF2@ESESSCMS0360.eemea.ericsson.se> <CALiegfkBge3QWUVdk01bAOtqLA9UGN2meoR4Aoc_LJjfUGyMvg@mail.gmail.com> <3A324A65CCACC64289667DFAC0B88E12197E438F2D@ESESSCMS0360.eemea.ericsson.se> <4FA92331.5010001@alum.mit.edu> <CALiegfkhGow1kQF7cWz05CdpE9GO+h2M_Qmn0FtKnGRQtAbH2g@mail.gmail.com> <4FA928C6.4040302@alum.mit.edu> <4FA92E05.4060709@digium.com> <4FA93158.2020104@alum.mit.edu> <4FA936B8.6080801@digium.com> <4FA93FBE.7000508@alum.mit.edu> <3A324A65CCACC64289667DFAC0B88E12197E4394DF@ESESSCMS0360.eemea.ericsson.se>
In-Reply-To: <3A324A65CCACC64289667DFAC0B88E12197E4394DF@ESESSCMS0360.eemea.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
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: Wed, 09 May 2012 14:27:40 -0000

On 05/09/2012 06:49 AM, Ivo Sedlacek wrote:
> RFC5626 states that only one delivery (unless flow fails) is attempted to contacts with the same AOR and instance-id - see exceprt above.

That's correct, because as Inaki posted previously, the RFC is covering 
the case where a UA registers multiple contacts using different 
transports/addresses/etc. that reach the *same* UA. In that case, the 
proxy only needs to send the request using one of those Contact URIs, 
because they are all the same UA.

It's clear at this point that what you are trying to do was not 
contemplated by the combined authors of RFCs 3261, 3841 and 5626. That 
doesn't mean it can't be done, but there isn't a mechanism that exists 
today which is fully compliant with all of these RFCs and doesn't also 
result in requests being forked to your applications.

With that said, though, you've stated previously that your applications 
have mutually exclusive capability sets; if that's the case, and you 
registered Contact URIs for each of them, then a proxy following RFC3841 
rules would only select the *one* that is compatible with the caller's 
preferences. The others would be dropped from the candidate set before 
the request was forwarded, and no forking would occur, even if the 
registered URIs all had distinct sip.instance values.

If that's not true, then it appears that the underlying problem is that 
RFC3840 capability specifications aren't expressive enough to describe 
your UA's capabilities. You need both conjunctive and disjunctive logic, 
and grouping.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
Jabber: kfleming@digium.com | SIP: kpfleming@digium.com | Skype: kpfleming
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at www.digium.com & www.asterisk.org