Re: [Wish] WG Last Call for draft-ietf-wish-whip

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Mon, 06 February 2023 09:07 UTC

Return-Path: <sergio.garcia.murillo@gmail.com>
X-Original-To: wish@ietfa.amsl.com
Delivered-To: wish@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A06A3C15155C for <wish@ietfa.amsl.com>; Mon, 6 Feb 2023 01:07:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Q43chSiKei0U for <wish@ietfa.amsl.com>; Mon, 6 Feb 2023 01:07:49 -0800 (PST)
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EA080C151539 for <wish@ietf.org>; Mon, 6 Feb 2023 01:07:49 -0800 (PST)
Received: by mail-ed1-x52e.google.com with SMTP id v10so10888329edi.8 for <wish@ietf.org>; Mon, 06 Feb 2023 01:07:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=+MIArLv2rPFq/ElxeQSIj01Cs5ZT9KCuElLLwfXeW1I=; b=NiGS5cvZSzTvvgcUTYg840q6n/EiijMM6Vj/D0dRksAenwG1jWn/XMJsF+1/B9gqs+ PYOT1w7+bobxDg8aMe5p6IxQdgeOIbuXkLsj413j28SkU+/xJYlNR0sIVcV6RPR3LgtW Fa2fUC6dxRMnbW1QzO4p447eYASl0M2ssmDadr7BjtsGb3PSTxvRYF73wh5UlxWwjh/+ Yp5ncqcx0Dc8JyKM/1X+ZfU6X+UcBOzJ4FplKGNo5BpTB4XqLxMasDQ9EtQsdcExFabj d9fY+EJGJEI4zegUCH/Qnu2c12KmmtAV0MOxI5PVbhQECr4keJm+IsdQg+erXaicxu/m wy0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+MIArLv2rPFq/ElxeQSIj01Cs5ZT9KCuElLLwfXeW1I=; b=J1Y9yLBLPIOVNNoSjo3amQVNrw3chkG98sON6GlrQHfBr8gA/Jh5dmKdp3zL825TDx gP13qC4xd0qC/HLcILWCr+bb3cpjhtfep7DOgpyFvwd2Zs2qjgoVSzgVoOAmw6SqJjh5 TFwUQ5LcCGhGCS+CxsqGRP75VZX1G96AmgL81Wn2uPxSiBld41uR6O6Jbt/GEZrNNiYJ HPQW94xzw8xcy13MzHcGNiSQlKT05ageCUjbL2J30CB5aflBkbrswGZsUYocDBAdECcM QmkaAAHShMi3odn12fWCSdoFlLIPIOZDNcIOmWSso0CX3oJ/xdrNuvUBEDLHbjhynt8q sa6w==
X-Gm-Message-State: AO0yUKUgV18A0/DyGxvj6jGqI0c7hZN8SWhuy21UxpNGvPoMkjlKqViV fIIgO3SGT6VXOyipOcL9Zsh1avM81fmphj7B8WVfHr/D8XclwA==
X-Google-Smtp-Source: AK7set/5uy01f7/Y/bnop9qvcInPGREmog0ugb1ZPtqwFogXijqkDVA0EcI+qHuVutpeEeDHaSFm/RaMPX3Q8xExb0k=
X-Received: by 2002:a50:cd50:0:b0:4aa:c337:97a7 with SMTP id d16-20020a50cd50000000b004aac33797a7mr130267edj.2.1675674467629; Mon, 06 Feb 2023 01:07:47 -0800 (PST)
MIME-Version: 1.0
References: <5372AA95-F2A7-4E98-8FBA-92CD18D6A9C0@sn3rd.com> <87bkmh2x6a.wl-jch@irif.fr>
In-Reply-To: <87bkmh2x6a.wl-jch@irif.fr>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Date: Mon, 06 Feb 2023 10:07:37 +0100
Message-ID: <CA+ag07bqkUjMKvupmokrQiz95=hBD4fEK1VBc2z1Bvd=7irpLw@mail.gmail.com>
To: Juliusz Chroboczek <jch@irif.fr>
Cc: Sean Turner <sean@sn3rd.com>, WISH List <wish@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000066fc9f05f4045d41"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/DIqZhGazqYVnyNqYkDy8n2sLDA4>
Subject: Re: [Wish] WG Last Call for draft-ietf-wish-whip
X-BeenThere: wish@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: WebRTC Ingest Signaling over HTTPS <wish.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wish>, <mailto:wish-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wish/>
List-Post: <mailto:wish@ietf.org>
List-Help: <mailto:wish-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wish>, <mailto:wish-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Feb 2023 09:07:51 -0000

Hi Juliusz, see my comments inline below

On Sun, Jan 29, 2023 at 4:11 PM Juliusz Chroboczek <jch@irif.fr> wrote:

> 1. No reliable way to discover ICE servers
>
> ICE servers are communicated to the client in the answer to the initial
> offer.  I must be missing something, but I believe that by the time the
> offer has been sent, it is too late to update the PeerConnection's
> configuration: for example, if the client uses the W3C WebRTC API, any
> call to pc.setConfiguration will have no effect after ICE gathering has
> started.
>
> A workaround would be to request the list of ICE servers before generating
> the initial offer, but support for doing that is NOT RECOMMENDED (Section
> 4.4
> of the draft).
>
>
We have already discussed about this in here:
https://github.com/wish-wg/webrtc-http-ingest-protocol/issues/66

Basically, the suggested proposal is to use this code flow:

offer = pc.createOffer();
[answer,iceServers] = POST(offer)
pc.setConfigutation({iceServers});
pc.setLocalDescription(offer);
pc.setRemoteDescription(answer);

This is guaranteed to work on all JSEP compatible clients. In fact in
Chrome (IIRC), you can even do the SLD before POST and it would still work.

The only case where it would not work is when the client doesn't support
trickle ICE, but it still supports STUN/TURN, when you want to wait for the
full local description with all the candidates before doing the POST.

In that case, if the media server has publicly addressable ICE candidates,
the WHIP client will be able to successfully connect to the media server
even if NO candidates are signaled on the SDP offer.

So, the only case in which the connection will be unsuccessful is if both
the whip client and the media server are behind restrictive NATs, which is
a very uncommon corner case.



> 2. No way to discover whether Trickle ICE is available
>
> Trickle ICE is optional in the client->server direction.  However, the
> document does not specify what the client is to do if it sends an initial
> offer with only host candidates, and later gathers additional candidates
> only to discover that the server does not support Trickle ICE.
>
> More precisely, the draft does not specify how a client should behave
> after the following exchange:
>
>   C: POST /endpoint
>   S: 201 Created (Location: /resource)
>   C: PATCH /resource
>   S: 405 Not Implemented
>   C: ???
>

Even if the media server doesn't support ICE trickle candidate signaling,
the ICE connection may still be successful, as the media server should
support receiving STUN binding requests from unknown ips:ports as long as
the ice username/fragments are correct.

Trickle ICE is only needed in case that the media server is behind a NAT
and we need to do nat hole punching.

Best regards
Sergio