Re: [sipcore] New Version Notification for draft-ibc-sipcore-sip-websocket-00 (previously draft-ibc-rtcweb-sip-websocket-00)

Gilad Shaham <gilad@voxisoft.com> Mon, 05 December 2011 14:17 UTC

Return-Path: <gilad@voxisoft.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 1D97621F8B6B for <sipcore@ietfa.amsl.com>; Mon, 5 Dec 2011 06:17:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.679
X-Spam-Level:
X-Spam-Status: No, score=-2.679 tagged_above=-999 required=5 tests=[AWL=-0.003, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
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 uiO-WqAZmjlf for <sipcore@ietfa.amsl.com>; Mon, 5 Dec 2011 06:17:11 -0800 (PST)
Received: from mail-qy0-f172.google.com (mail-qy0-f172.google.com [209.85.216.172]) by ietfa.amsl.com (Postfix) with ESMTP id C6F6621F8BD8 for <sipcore@ietf.org>; Mon, 5 Dec 2011 06:17:10 -0800 (PST)
Received: by qcsf15 with SMTP id f15so1754122qcs.31 for <sipcore@ietf.org>; Mon, 05 Dec 2011 06:17:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=voxisoft.com; s=google; h=mime-version:x-originating-ip:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=exkWIJL3mSnR+naCf70uScV61VEn91AvzN9XLSZvS90=; b=YRAp3QhBEDK5aYDil8crWKUzn/7LfVHomHARWvPrTJ+mzCqmaVBwfm02X8/v2aTq90 NNvwGjNbRvsqyHuEStRvCSQXXLVldk+32sa35rYiU5+SDcchWiB/7jwcQbOF3EDeIQ3V cdQXA5yhDDE+q10EkPDU1v/Ca9tHnMZeGnRpg=
Received: by 10.229.65.150 with SMTP id j22mr1979197qci.289.1323094630262; Mon, 05 Dec 2011 06:17:10 -0800 (PST)
MIME-Version: 1.0
Received: by 10.229.159.198 with HTTP; Mon, 5 Dec 2011 06:16:49 -0800 (PST)
X-Originating-IP: [109.64.26.1]
In-Reply-To: <CALiegf=3HF3TdKof+Pghqzmzs192sDXRvO_GzU7TDODAT+bVwg@mail.gmail.com>
References: <CALiegfm8Dv8kHE1xrt59vBzLzB29mOvjH6YR2m=vm=p_BtSBTw@mail.gmail.com> <CAGTXFp82jNsCUBM=j=Tq1Xc5cOr7P1Hbp9gv5MQyeVBoOS5=ng@mail.gmail.com> <5470070492D34F4EAC60E4ED91CB3841@gsmlaptop> <CALiegfmdxJQ+fAevUCfOaJjRkja-vW2Sqh-83-J=3_E5Ba1j6A@mail.gmail.com> <CA+cEqjc+2JR8S5i=kcpSz96KC_Mtd9OThafcGgeeAXaFEzZoWQ@mail.gmail.com> <CALiegfnCym7NdEs=TH=UtYjsK6jgqkVfHaeyHo1VU1QMTb-VyA@mail.gmail.com> <CA+cEqjctnA4_0Oef-juusN3=LUiao414DYUJhO6od+JYkutkJg@mail.gmail.com> <CALiegf=3HF3TdKof+Pghqzmzs192sDXRvO_GzU7TDODAT+bVwg@mail.gmail.com>
From: Gilad Shaham <gilad@voxisoft.com>
Date: Mon, 05 Dec 2011 16:16:49 +0200
Message-ID: <CA+cEqjfNrboyiDjMmVQGFMXJWqyXpN5Uxiza3Pz454eWSH7v7w@mail.gmail.com>
To: Iñaki Baz Castillo <ibc@aliax.net>
Content-Type: multipart/alternative; boundary="0016e65dabb470e89204b358f9ce"
Cc: José Luis Millán <jmillan@aliax.net>, "SIPCORE (Session Initiation Protocol Core) WG" <sipcore@ietf.org>
Subject: Re: [sipcore] New Version Notification for draft-ibc-sipcore-sip-websocket-00 (previously draft-ibc-rtcweb-sip-websocket-00)
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: Mon, 05 Dec 2011 14:17:12 -0000

On Mon, Dec 5, 2011 at 11:51 AM, Iñaki Baz Castillo <ibc@aliax.net> wrote:

> 2011/12/5 Gilad Shaham <gilad@voxisoft.com>:
> >> Yes, using localhost would be another option, but it has a drawback in
> >> case the WebSocket SIP UA does not use GRUU: in that case a remote
> >> peer would see "localhost" as the target of of WS UA. If it sends a
> >> REFER to a third participant containing "Refer-To:
> >> <sip:alice@localhost;transport=ws>" then the third participant would
> >> try to open a WS connection to itself. Well, as the draft states, GRUU
> >> is required for SIP UA's using WebSocket transport, at least in web
> >> browsers.
> >>
> >> So I'm not sure wheter using "localhost" is better than using
> >> "anonymous.invalid". Maybe it is better to use "invalid.domain"?
> >>
> > So, if we were to have normative text that defines this, it would
> probably
> > explain why localhost or any routable domain name is a bad choice as
> opposed
> > to a non-routable domain. Should a UA be free to choose based on a set of
> > rules or are we defining one host part for all? Should it generate parts
> or
> > all of this domain dynamically to assist with matching incoming
> requests? Is
> > one free to use an invalid IP (such as the infamous 0.0.0.0)?
>
> Take into account that when a JavaScript code (running in a web
> browser) open a WebSocket connection given a WS URI with domain, the
> JavaScript code is not aware of the resulting IP nor the IP family
> (IPv4 or IPv6). So IMHO using a IP address in Via/Contact is a bad
> idea.
>
I agree the later messages should not try to resolve an IP address, but I
still don't see why it's that much different to have an invalid IP rather
than an invalid domain. The advantage of an IP is that you are sure no one
would try to resolve it, although it's true you would have no idea whether
to place IPv4 or IPv6 in there and you'd just have to choose one of them.
So it's not that I think one is better than the other, but some may ask for
this option from compatibility point of view - I assume some
implementations were never built with domain name in Contact header or in
Via header in mind, although this is perfectly legitimate to do so. Anyway,
if you strongly object to IP, domain is good too.

>
> Assuming that a domain is used, I think that which one to set should
> not be normative, for the following reasons:
>
> 1) If Outbound is being used (and it's a MUST for these kind of SIP
> endpoints) the host in Via and Contact does not matter (for
> registration or dialogs).
>
> 2) If GRUU is used, the host in Contact would be a globally routable
> URI. If GRUU is not used, then there is no way  at all for SIP REFER
> mechanism to work (since a SIP WebSocket client can only be contacted
> via the WS connection it has opened with the WS server). So the domain
> in Contact does not matter (with GRUU it will always work, without
> GRUU it will never work).
>
>
> Seems right. So we are saying a UA MAY include an invalid host part in the
registration Contact header and any request top Via header. The UA MUST
support Outbound and SHOULD (or MUST) support GRUU.
Actually, there is good reason to consider mandating GRUU for this
scenario. The reason is that suppose 2 different users named Alice register
to 2 different AORs. Both Alice users go through the same proxy (named P1)
that supports websockets and it forwards the requests to the different
registrars. When an incoming request to one of the Alices comes in, a proxy
will forward the request to alice@<invalid host> through P1, but P1 cannot
distinguish the two and they are in fact different users. I also believe
UAs should be encouraged to compare the instance id of incoming requests.