Re: [Wish] Initial comments on draft-murillo-whip-02

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 30 August 2021 17:49 UTC

Return-Path: <christer.holmberg@ericsson.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 7A8F13A1BA1 for <wish@ietfa.amsl.com>; Mon, 30 Aug 2021 10:49:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.552
X-Spam-Level:
X-Spam-Status: No, score=-2.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.452, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G53Zh6WxRZt5 for <wish@ietfa.amsl.com>; Mon, 30 Aug 2021 10:49:13 -0700 (PDT)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40069.outbound.protection.outlook.com [40.107.4.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2916F3A1BA9 for <wish@ietf.org>; Mon, 30 Aug 2021 10:49:12 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dy4PpuQm645u9mhHorCO3ysC9TfZdLGuWUYIvD9ocK/XSbnxvuFuesEM38uuQfRbTtmekQaAATqw0gcjt240a/lEzUhxNd46n3qEw7bmg1ZR/lgkj7ynfUmU/jbsXSWWfQhY1wdEDbG3kVLx406cPr70OGXlKFGp7Vw8r4+xQiSZ+pdNT7AfL7sFZOTE007slKaZDoGm2brjlYwJUynz2ZbUYqxD7+uHqEGq0GCxK2F7jFyKfiUHIBCM7F7BBJv0+JShxGme/l4cq/SrOoEY+rgQJ9nASY2St+D8QH1wBayjViQnlA5hDnY5j91wR0x97O9S56FheSB4bLZlPvQlVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=cVfKvFL1puY2B8lTxwd6umSySMuKbYG0Kkl8gaIeBC0=; b=gjvAU2jjKNxsekFeZeEJgnr2WO67r0dSiRNu9XS4sxxo0LiTkFhIs/Co6oKoiahWXOhMPEil0Rbc1iQAFxyT0Magp562uG4MpKxK4UEXFKgkyWK/Q+sfrxVj4I0Y/cAKTU6UFQUsUPMW7S0RKZUJmJXMorxftDllv5pZK63YoicjEctyanJOssN8ri5InLTufchH0otsP601+9xCe9rpkie/Dll1/zbLEY6Ty0mkCSxaaFKatA2eUSW5xgn4uXhSVlrpfNldAgtUWvPyKBAh0AnLwb0me1p81KrO9/P7DUdJrchCYhdPEKERrz8ub1ysqAUxu1zBs8wzq/ziKGJrrQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cVfKvFL1puY2B8lTxwd6umSySMuKbYG0Kkl8gaIeBC0=; b=FfiVGwjwQH/jZiuOV3GuyAVosm7mZx5dnjIjr5RB/l6Gon2VBiCFIEUzIo5zV4zLm7SpnyM5HP+NQHY+YNr3xLfuoU97PpJHhbIY/eITwKaOu8N75xNfSJd09vxgsxe7df52LA3vxYxswBBnI6pUE/XKzk6MlSXuDRGI3PVSqiI=
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com (2603:10a6:7:9f::27) by HE1PR0701MB2489.eurprd07.prod.outlook.com (2603:10a6:3:70::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.16; Mon, 30 Aug 2021 17:49:10 +0000
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::49b7:5cc:5aeb:fb2a]) by HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::49b7:5cc:5aeb:fb2a%4]) with mapi id 15.20.4478.017; Mon, 30 Aug 2021 17:49:10 +0000
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
CC: "wish@ietf.org" <wish@ietf.org>
Thread-Topic: [Wish] Initial comments on draft-murillo-whip-02
Thread-Index: AdeIm8xMrd6krm7WRZOghWk/uXTq9gPUbOgAAH/eQuAAtNXAAABAF19u
Date: Mon, 30 Aug 2021 17:49:09 +0000
Message-ID: <HE1PR07MB44411D43C99E521FFDA8C51993CB9@HE1PR07MB4441.eurprd07.prod.outlook.com>
References: <HE1PR07MB4441D8BE799E5344CD77BA7B93F09@HE1PR07MB4441.eurprd07.prod.outlook.com> <CA+ag07bt4kF3KhV_eoNDmYojdzudNbz4fsf_zrev-ym-PPUP4w@mail.gmail.com> <HE1PR07MB44418D5DBB0CF1976B36254293C69@HE1PR07MB4441.eurprd07.prod.outlook.com> <CA+ag07aZjhHJCWEUtkMXozDQNKAROA6XPqeXc5hqVzEubzkS7A@mail.gmail.com>
In-Reply-To: <CA+ag07aZjhHJCWEUtkMXozDQNKAROA6XPqeXc5hqVzEubzkS7A@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2dc3f9fa-3dc1-40cf-1748-08d96bde78a9
x-ms-traffictypediagnostic: HE1PR0701MB2489:
x-microsoft-antispam-prvs: <HE1PR0701MB2489F575B341BBFB995AE83693CB9@HE1PR0701MB2489.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 5SGCRQqnNtGStEhpK6W5jB6ZBrgYymDV/tGwundvddVU24qH5AEoIJjVmjgy3vPaP1Zg7ZV5/+9pJfjQfz7DcHJ/zAl4eAH3J9fbnr3yHNOXG/lxu35f2/S3Qjx+l2xVihb+PvlvYUKUwrJnujnGEU6GJ31pmitmH2gXND4GOsajHNzvB8z40abB8EhnLISjI/ZsgytOk+aXKxZDOfWlAkEmtQNxb3y5o9gm6dq5yeFKBV2Dl3t/S8pbdBQzTC9NSajrL+pl3Kn6rZq3FfpsYxUqjwFP8fWIPRQw+GkDg94IwvHdkd6lynpOPQOMjafOixlMR9fq5C1dqNEz8tHOXH9R7KW/GFk6NofWBJpANBjR9viY1GLp2WKlO3QDpnAOEN0FiIhr0T9UMAJw4aBTNMrd1oVCp2exidOsVWUX0veiCjVKg0WBkvqbAx21Jg/lIu+P8pnWHFJWH2vqgY6/vo9e/NV5DT9MQJ8ieeTjAH3S6fgQcaHxcNFGqUp3knsJNyQPUkRWWqDGHa0hUfhkVPbHziLfTdt9Pk99I3J15pVrWayx5JTy6NS0rv+9tEUSrgb8Fw+U5pKlGzjhhDcI6veHblZp3k1eukNknLhfmJ5ApO2+z3ac49oQRDQf0wtF5hfT0vCh2oG6kBwl+uCn/UUYl7azKZpWtmKGeLxtkzG8L1zaOas2rLThHL+ss2M1Tf7RcuSzgjRmX8Pc/3PkwDWtaM/UdEzojjzDbbZR6bef9lxfqtPMwIjBsXw2jY2qCbscoRVCSKmPzBYg87YJ+VTVMvRn9IGdei+n2QPiT9A=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR07MB4441.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(136003)(366004)(39860400002)(346002)(376002)(33656002)(86362001)(9686003)(6916009)(76116006)(4326008)(71200400001)(83380400001)(66556008)(64756008)(66476007)(66446008)(66946007)(5660300002)(7696005)(55016002)(19627405001)(2906002)(52536014)(316002)(38100700002)(44832011)(122000001)(6506007)(26005)(38070700005)(966005)(8676002)(478600001)(186003)(8936002); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: g+SIf8q4jKXJPZHPvnrQsvvMngKSKXtGtEKMLOGk0Q7WCLwtu0/lyVfH74vHa3tMc2FsL2pxKDuOKOhTclKzv+QgNpyKSIkYDHcaPx+nVfpuT4XGwAtr8XiXZ1tIP47PWSSVtgtzugYeEZHaWeGpsd2FzxIA5SPe13HUShmXbPqhphrsSVU7u7HMQjWIASFoQmiTM38ndL37Zusj8ryuirCgPFltfQcPD/HTf0MEKTQJo6YpcPPIAxJtgW7XZ52lR9SSPPYAdzRlR+WP6eKk4fCbbJXWp8esU50V27IBD13sd1atFAHMT927BCZUI634hA1W8mfVWg9N2XpQHyhD/dAt8P0gIvU1y4sO05AnPI68bnwSkSyuyENQUO6R0fFotn4jmxlIHrTNl/J6ZqVKRu/+lxQVTel3bS6HJ8xbt3fGQ94Aa7HdpDz0b5HGdfLmbWEZrhqfc81ft8IDQemy1mVmdvST+TcnbFZJQ3A20axnuNbFwYHxPqTCdKCwLkC2R/5PbAJ74digIdY4FfryG4D90CbOfxWHxz292jq5B81tCPboDSJ2/aAYEmYVJpl4cGX9NDy88WNvQWGW8mJoiBuUpFRghk0jHeumVxhpd1kGVgF02jPdfiUa7rAfqL5gevjJb3DqTgBli4kBhlK4HI6t4kiYkE/eiypz7WCBg237KVrMB5MQfogOJlQhwyfTUuZ0o/qY6OjuGicmuGboJmo2QAmujWTIKn0mh1ZnMtOhmMiKM+Ucrh6NeBj+o1Rv3N0pt2f9waowqtJdy1zbM6PTeqRD2U0oio53jXsHDx5Ys9hJkXxuXsKxU80up5vLjBVDcoCsnJCfrOHsyvy8NQXcZeKNifQ36QBAnVveHkSslRW+x49NenIskrPB7EmwsBtVWeVkyGrcYV5hiB2Ozw4B6/ih8uIP6HMUJIOMrg59Zp4azSI/Zed3iO3d55RDkrPzEBRQi6ijveqxkkR4RSyF+D9NtIbt4OIkxsblPNlUQZNrF9UAr7HRTprBJ5cbPzw5oj+1hbzum5ZSsDMu3iRX3RG8wkmyPAywO/V5ZH6AT4wZ702ruzJouVPh/L0waRDGJcP/wdkfNxF3I6eZucFNJ09/rI83IfM3q/XlVdxWAsosKEgtJHS+pYppetZ4A81412hauHVStUXuwQHJXy6ipFF6GYnPTwY/v0sZYXiZxyhUbwznd/nuYS2J5iKtlg8c7TD/kjPYkH698aPwpRT4mXELvL61f3fRUgY/aAtNHx0hP726hkZ5OP5UMSfLNe3aWffdZXfA0yhRNR2w4zcCXJ/2Tf4snENYpo166bs=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_HE1PR07MB44411D43C99E521FFDA8C51993CB9HE1PR07MB4441eurp_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB4441.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2dc3f9fa-3dc1-40cf-1748-08d96bde78a9
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Aug 2021 17:49:09.9465 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZgiTacHph2tzOueIi55xfW9gB+bPVd082cUjyTbuL4fAjMarEQTw2nw6ocMsDuTgkggtwtMJd+NN2E9ei2aiiRxxYqy250Lq+MTfEF013EM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2489
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/XhY5Nh0KWq7RhB3PVROade-GmsM>
Subject: Re: [Wish] Initial comments on draft-murillo-whip-02
X-BeenThere: wish@ietf.org
X-Mailman-Version: 2.1.29
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, 30 Aug 2021 17:49:20 -0000

Hi,

General:
=======

Q_GEN_1:

>>>> The motivation behind WHIP seems to be broadcasting.
>>>>
>>>> But, unless I’ve missed something, what the draft does is defining how to do SDP O/A using HTTPS. So, it could be used for any SDP O/A use-case. It doesn’t even have to be WebRTC, as long as the client and server support the required extensions etc.
>>>
>>> The SDP O/A is restricted to one audio and/or video track in sendonly, indeed anyone could do an SDP O/A in an HTTP POST with whatever semantics they want, but the WISH wg is chartered to specifically cover the ingestion use case only.
>>
>> Maybe it would be good to say that the mechanism can be enhanced for other usages too, but those are outside the scope of the document.
>
> The protocol is only targeting ingest, I think it is a bad idea to open the possibility of enhancing it for other usages
> without explicting mentioning them too. Implementing an SDP O/A over HTTP for the viewing side will have not much similarities
> with current whip proposal to consider it an enhancement, even if they share HTTP as a transport layer.
>>
>> Also, if you are not planning on using the WebRTC data channel I think it would be good to explicitly indicate that.
>
> Nothing prevents an extension to include datachannel support in the future, although it may be worth adding this as note.

I think that would be good, because I am sure the question would come up.

---

Q_SEC-1_2:

>>>> The text says:
>>>>
>>>>   “RTSP, which is based on RTP and maybe the closest in terms of features to webrtc, is not compatible with WebRTC
>>>>   SDP offer/answer model.”
>>>>
>>>> What is “the WebRTC offer/answer model”?
>>>
>>> This seems editorial to me, do you have an alternative wording for this?
>>>
>> I assume what you want to say is that the features used by WebRTC have not been defined for RTSP.
>> But, it is not only about offer/answer, it is also about e.g., ICE etc.
>>
>> I guess it would also be good to say "which is ALSO based on RTP".
>
> Seems fine to me.

---

Q_SEC-1_3:

>>>> The text says:
>>>>
>>>>   “This document proposes a simple protocol for supporting WebRTC as
>>>>   ingest method which is:
>>>>
>>>>   …
>>>>
>>>>   o  Fully compliant with Webrtc and RTCWEB specs.”
>>>>
>>>> Based on some of the suggested restrictions, related to e.g., SDP O/A transactions (only allowing the initial O/A), ICE (related to trickle and restart), and the SDP setup attribute
>>>> misalignment (allowing setup:active in the initial offer) etc, I don’t think that is “fully compliant”. Or, if I have misunderstood, what exactly are you referring to?
>>>
>>> That any webrtc compliant endpoint can implement WHIP.
>>
>> I think it would be better to say that WHIP is designed in order to be compliant with WebRTC, but that a set of restrictions apply.
>
> Fine for me too

---

Section 4:
========

Q_SEC-4_1:

>>>> The text talks about usage of the Location header field in the 201 response. But, I assume usage is optional,
>>>> and that a server can choose to use the WISH endpoint for the whole session?
>>>
>>> No, it is not optional, the url of the created resource is returned in the 201 response and it must be used
>>> for doing the ice trickle and termination request. Nothing prevents the server from using the same url as
>>> the whip endpoint one.
>>
>> Isn´t that the implicit meaning if the Location header is not present?
>
> I would prefer to add as few optionalities to the protocol as possible. It would be trivial for the server
> to just return the current URL and not to have to test each interoperability with each client for both
> when the location header is present or not.

I just think it is not a good idea to make changes to core HTTP, so in my opinion it is more about HTTP interoperability than WHIP interoperability.

And, what if you are using an HTTP library that will remove the header if the endpoint isn't changed?

---

Section 4.1:
==========

Q_SEC-4-1_1:

>>>> The text says:
>>>>
>>>>   “In order to simplify the protocol, there is no support for exchanging
>>>>   gathered trickle candidates from media server ICE candidates once the
>>>>   SDP answer is sent.  So in order to support the WHIP client behind
>>>>   NAT, the WHIP media server SHOULD be publicly accessible.”
>>>>
>>>> Just because the server doesn’t support trickle, it doesn’t mean it has to be publicly accessible. Not supporting trickle just
>>>> means that the server needs to collect all candidates before sending the answer.
>>>
>>> We can remove the  last sentence as it is superfluous, adding a new github issue
>>> https://protect2.fireeye.com/v1/url?k=26929152-7909a816-2692d1c9-861d41abace8-717a11d6e023f0d4&q=1&e=d10bad7b-9658-47e5-8a4e-
>>> 85689e02a197&u=https%3A%2F%2Fgithub.com%2Fmurillo128%2Fwebrtc-http-ingest-protocol%2Fissues%2F13
>>
>> Also perhaps saying something like "no support for exchanging further candidates (ICE trickle)"
>
> Looks good to me

---

Q_GEN_2:

>> As a frequent user of a broadcasting/ingestion application myself, once the connection has been
>> established, I am able to send at least START, STOP, PAUS and RESUME commands. In case of sport
>> events, you are also able to send commands regarding scores etc.
>>
>> There doesn't seem to be any of that in WHIP. Instead, at least as far as the server is concerned,
>> the media ingestion starts once the connection has been established, ends once the connection is
>> terminated, and there is no way to exchange any kind of non-media data during the session. Perhaps
>> that is good enough when teenagers want to ingest something with their mobile, but I doubt it will
>> be useful for more professional usages.

If that is true, I think it would be good to point out in the draft.

> In terms of features, the WHIP protocol matches the ones offered by RTMP which is still widely used
> and offered on most profesional hardware encoders and main open source broadcasting software
> (i.e. ffmpeg/OBS/vmixer/...). Not sure how that is not suited for "professional usages".

RTMP supports PAUSE, RESUME etc commands, doesn't it? :)

Let me explain how the sport event ingestion software I am using works:

First you establish the session, choose what sports event you are going to stream etc.

After that, the media ingestion starts. But, the server does not start the broadcasting of the media yet. It only broadcasts the stream to the one doing the ingestion, so that he/she can check that everything works.

After that, the user sends a command to the server to start the actual broadcasting.

Etc.

So, the user has explicit control of when the actual broadcasting begins, even if the media ingestion has began earlier.

As I am not the implementer of the software I don't know all the protocol level details, other than it uses RTMP.

> Regarding the metadata exchanged during the session, which could be done either by datachannel
> or by a new whip protocol extension with another http url,

I had a datachannel in mind, and that's why I asked about it earlier :)

But, if commands are outside the scope of WHIP, I think it would be good to explcitly say it.

---

Q_GEN_3:

>> There is almost no text regarding WHY someone should use this mechanism, instead of existing ones.
>> There is a sentence saying "and content providers still rely heavily on protocols like RTMP". Ok,
>> so why is that a bad thing? Why should one use WHIP instead? Now it seems like the only reason is
>> because it is an IETF standard, but I hope there is more than that.
>
> We could add more info about the benefits of using webrtc end to end.

I think that would be useful.

Regards,

Christer