Re: [Sip] FW: I-D Action:draft-kaplan-sip-session-id-00.txt

"Ian Elz" <ian.elz@ericsson.com> Fri, 28 November 2008 16:40 UTC

Return-Path: <sip-bounces@ietf.org>
X-Original-To: sip-archive@optimus.ietf.org
Delivered-To: ietfarch-sip-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 969573A67A7; Fri, 28 Nov 2008 08:40:51 -0800 (PST)
X-Original-To: sip@core3.amsl.com
Delivered-To: sip@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 67D7A3A67A7 for <sip@core3.amsl.com>; Fri, 28 Nov 2008 08:40:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.899
X-Spam-Level:
X-Spam-Status: No, score=-4.899 tagged_above=-999 required=5 tests=[AWL=0.750, BAYES_00=-2.599, HELO_EQ_SE=0.35, J_CHICKENPOX_64=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zqDwnMcCSbPn for <sip@core3.amsl.com>; Fri, 28 Nov 2008 08:40:46 -0800 (PST)
Received: from mailgw3.ericsson.se (mailgw3.ericsson.se [193.180.251.60]) by core3.amsl.com (Postfix) with ESMTP id A12103A676A for <sip@ietf.org>; Fri, 28 Nov 2008 08:40:45 -0800 (PST)
Received: from mailgw3.ericsson.se (unknown [127.0.0.1]) by mailgw3.ericsson.se (Symantec Mail Security) with ESMTP id 8CDF520CCA; Fri, 28 Nov 2008 17:40:41 +0100 (CET)
X-AuditID: c1b4fb3c-ab0c8bb0000015b5-4b-49301f0948d4
Received: from esealmw126.eemea.ericsson.se (unknown [153.88.254.123]) by mailgw3.ericsson.se (Symantec Mail Security) with ESMTP id 614FE20493; Fri, 28 Nov 2008 17:40:41 +0100 (CET)
Received: from esealmw118.eemea.ericsson.se ([153.88.200.77]) by esealmw126.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Fri, 28 Nov 2008 17:40:40 +0100
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Fri, 28 Nov 2008 17:41:54 +0100
Message-ID: <C0E80510684FE94DBDE3A4AF6B968D2D0493D335@esealmw118.eemea.ericsson.se>
In-Reply-To: <E6C2E8958BA59A4FB960963D475F7AC31374A09EC2@mail>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [Sip] FW: I-D Action:draft-kaplan-sip-session-id-00.txt
Thread-Index: AclKfoqxkFCB9EHRT7mtNKPC52FJDQAAcB3QAX2SdRAAIen5UAAeULYw
References: <E6C2E8958BA59A4FB960963D475F7AC3136C7E982E@mail> <F4B3A18038FD4A41B80EE1DE5451726F@laura> <031c01c94a0f$7130acb0$1c91150a@cisco.com> <C0E80510684FE94DBDE3A4AF6B968D2D0481798D@esealmw118.eemea.ericsson.se> <039601c94a53$ba11f5d0$1c91150a@cisco.com> <XFE-RTP-201D1OrRlig000014c5@xfe-rtp-201.amer.cisco.com> <01bc01c94a80$563d3150$dc5b150a@cisco.com> <C0E80510684FE94DBDE3A4AF6B968D2D04913A0F@esealmw118.eemea.ericsson.se> <E6C2E8958BA59A4FB960963D475F7AC31374A09EC2@mail>
From: Ian Elz <ian.elz@ericsson.com>
To: Hadriel Kaplan <HKaplan@acmepacket.com>, Dan Wing <dwing@cisco.com>, "James M. Polk" <jmpolk@cisco.com>
X-OriginalArrivalTime: 28 Nov 2008 16:40:40.0621 (UTC) FILETIME=[0C9B75D0:01C95178]
X-Brightmail-Tracker: AAAAAA==
Cc: SIP List <sip@ietf.org>
Subject: Re: [Sip] FW: I-D Action:draft-kaplan-sip-session-id-00.txt
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: sip-bounces@ietf.org
Errors-To: sip-bounces@ietf.org

Hadriel,

May I take issue with your final statement "It won't solve all
scenarios, but that's ok - it's making it better than nothing."

Having something incomplete may be worse than nothing. We may have a
scenario where the partial solution gets implemented and then it will be
impossible to implement a final solution as you are required to be
backward compatible to the partial solution.

Let's try and get all the known problems out of this before it is
published. If as a result it only specifies the originating UAC
including the session-id then so be it. I don't want to get to a point
where middle node insert of modify the session-id and then have to
continue to support that scenario into the future.

That is not to say that all the problems will be identified. That only
happens when someone else tries to do something else in the future.

Ian Elz

System Manager
DUCI LDC UK
(Lucid Duck)

Office: + 44 24 764 35256
gsm: +44 7801723668
ian.elz@ericsson.com


-----Original Message-----
From: Hadriel Kaplan [mailto:HKaplan@acmepacket.com] 
Sent: 28 November 2008 03:07
To: Ian Elz; Dan Wing; James M. Polk
Cc: SIP List
Subject: RE: [Sip] FW: I-D Action:draft-kaplan-sip-session-id-00.txt

Hi Ian,
Thanks for your comments.  I should publish the update to this draft,
because it now covers the middlebox-insertion-case in text, whereas
before it was implicit.  And it adds text for UAC generation that was
incomplete, because I forgot to put a critical aspect to this in the
original draft about matching.

The basic concept is that if we want it to be usable as an alternative
dialog-matching mechanism for out-of-dialog requests, then whomever
generates a session-id has to have a local session-id lookup table, as
does any device needing to perform matching.  That table would simply be
a session-id value to dialog table, used for matching the value to a
dialog.

If a device doesn't do this, then we get the troubleshooting properties
but not the dialog-matching one, if a request gets to that specific node
and the real dialog+tags don't match.

But it's true this would mean a Proxy that generates it *and* wanting to
provide the matching property would need to be record-routing and have
such a table, making it more stateful.

With regard to the issue not being as complex for B2BUA's because UA-B
would send it to the B2BUA's contact:
Just being a B2BUA doesn't solve the problem without the match table
being done somewhere.  The problem with dialog-event and such in
out-of-dialog requests is not that B2BUA's can't "fix" it and set the
contact to themselves to make sure they get the request - they do that
already.  The problem is some of the requests aren't sent to their
contact-URI to begin with.

For example, in the Derive case it's sending it to the From-URI, which
B2BUA's sometimes do also change (ugh), but normally/hopefully to their
domain not their hostname/IP; or better yet they leave it alone.  [I
think that Derive is actually incorrect in sending it to the From-URI
AoR, because it means the Derive message can end up at any contact for
the AoR]

But the bigger issue is even if such things get sent to Contact-URIs and
the Contact-URI's are GRUU's, in theory the GRUU does not specify a
specific B2BUA instance, but instead the whole domain and thus can hit
any number of B2BUA's getting into that domain.  We have been asked by
some people in the IETF to leave contact GRUU's alone, and not replace
them with the B2BUA's contact.  We'd be happy to do that if we can make
requests going to the GRUU work, which without this type of matching
mechanism they won't.

Ultimately the matching and troubleshooting properties work best if UA's
generate the session-id themselves, and I hope it's simple enough that
they do - but in the meantime B2BUA's or stateful proxies can do it for
them to get it off the ground.  It won't solve all scenarios, but that's
ok - it's making it better than nothing.

-hadriel

> -----Original Message-----
> From: Ian Elz [mailto:ian.elz@ericsson.com]
> Sent: Thursday, November 27, 2008 11:31 AM
> To: Dan Wing; James M. Polk; Hadriel Kaplan
> Cc: SIP List
> Subject: RE: [Sip] FW: I-D Action:draft-kaplan-sip-session-id-00.txt
>
> Dan, Hadriel,
>
> I don't think that having a proxy insert the session-id would be
> workable.
>
> Take the following example.
>
> UA-A does not support the session-id so it is not included in the
> original request.
>
> UA-A        Proxy1        Proxy2       Proxy3         UA-B
>   |            |             |            |             |
>   | INV B (F1) |             |            |             |
>   |----------->|        INVITE B (F2)     |             |
>   |            |------------>+----------->+------------>|
>   |            |             |            |             |
>   |            |        200 OK (F3)       |             |
>   |   200 OK   |<------------+<-----------+<------------|
>   |<-----------|             |            |             |
>
> F1 INVITE B@home.com
>    Call-id: 123456789
>    From: <a@example.com>;tag=98765
>    To: <b@home.com>
>    Contact: <A@192.164.1.1>
>
> F2 INVITE B@home.com
>    Call-id: 123456789
>    From: <a@example.com>;tag=98765
>    To: <b@home.com>
>    Contact: <A@192.164.1.1>
>    Session-id: abcd1234
>
> F3  200 OK
>    Call-id: 123456789
>    From: <a@example.com>;tag=98765
>    To: <b@home.com>;tag=56789
>    Contact: <B@164.192.23.35>
>
>
> Note that as UA-A here does not support the session-id that this has
> been inserted by Proxy1.
>
> What happens however if UA-B now tries to SUBSCRIBE to UA-A using the
> dialog event.
>
> Assuming the dialog event has been modified to allow the session-id.
>
> UA-A        Proxy1        Proxy2       Proxy3         UA-B
>   |            |             |            |             |
>   |            |        SUBSCRIBE (F4)    |             |
>   |            |<------------+<-----------+<------------|
>   |            |             |            |             |
>
> The problem here is how the SUBSCRIBE containing the dialog event
> containing a session-id ensures that the new Request on a new dialog
is
> handled by Proxy1 to map the session-id to the call-id, to-tag,
from-tag
> format of the dialog event as handled by UA-A.
>
> [If I may be flippant?]. It looks like there is a requirement for a
new
> header: "Pass-to-this-proxy-at-some-time" to ensure that the correct
> proxy is included in the messaging sequence.
>
> You could possibly use a ROUTE header but as UA-B does not know which
if
> any of the proxies inserted the session-id it would be necessary to
> insert all the proxies which inserted themselves in the Record-Route
of
> F2 as Route headers in F4. This could however result in a lot of
proxies
> which would not normally want to see the SUBSCRIBE being involved in
the
> message sequence.
>
> The issue is not as complex for a B2BUA as UA-B could use the Contact
> received in F2 as the R-URI in the SUBSCRIBE (F4) which if the B2BUA
> mapped the Contact would ensure that the B2BUA which inserted the
> session-id would receive the new request.
>
> Ian Elz
>
_______________________________________________
Sip mailing list  https://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sipping@ietf.org for new developments on the application of sip