Re: [Wish] WHEP - WebRTC Http Egress Protocol

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Wed, 03 August 2022 07:13 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 8734DC13CCCA for <wish@ietfa.amsl.com>; Wed, 3 Aug 2022 00:13:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 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_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 R5n99uxptDn1 for <wish@ietfa.amsl.com>; Wed, 3 Aug 2022 00:13:10 -0700 (PDT)
Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) (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 B56F0C14CF16 for <Wish@ietf.org>; Wed, 3 Aug 2022 00:13:10 -0700 (PDT)
Received: by mail-pj1-x1031.google.com with SMTP id s5-20020a17090a13c500b001f4da9ffe5fso1092439pjf.5 for <Wish@ietf.org>; Wed, 03 Aug 2022 00:13:10 -0700 (PDT)
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; bh=03lVBhprxI2/kCM8O0Yx61JJtujvnzn7uvdyboYm3Zw=; b=JsGBCQyeZtd7Gnbfna932yemeO9mNxEHblG4LwLc6fjtXS+CS6oG18lbc3rtlu1SR9 9JEAqkbwYdiXs39Q94OCzs9NbAkbekUSMWCHHYP/mVTF+Kq3APIeehTm5iUWkA0alHHP 72sWbJPkMaVAArscRZRquSds9zCY/eAyQzLzuiGWxuQopLpVFr1TUt/QDMVzEUp5LPSM nNmjb+ubs9Td24Xw2hmpnpTMUFpPvwYE0IzwsOmOvESA5bPLuxZ2AD++m8GEUlfnKrzj VgCKDASz3zEtgaTkZbavF7YpTfr1gWVzYu03IFtzqGOd6aJregTl3lJ/4mVG/DdFevmw 7TyA==
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; bh=03lVBhprxI2/kCM8O0Yx61JJtujvnzn7uvdyboYm3Zw=; b=45EGiKzrOFc7yk30FXkBthLvU94o5SsQjurbAuCIWqixscIxJ3X7KoaR38igfFNkc6 pO5ZgFjNMOqyieu1uBkWo1I9+8gzZBsCcynxuUqOdDZcAdCMWJHRH03yxqLCtRMBUh2x JQa5g97i7GMVhiIeULunDpIMlaPvgVDGTOYXvg9gxgTtg6VFFvsxr80WJdV/YKmWRHv4 dazM2cUmJq4yRxgYb0sHDlRNuEuCJuLNSQtT01MZCrsFOnI+SREvMldeGCxz+0jbovjW D0YBv4kfKZhN5x1Qgdye/Bmhrp2A1mcXBiZZDTgJZzAK9MqvndlMADv+lWGl6nmE9Jqg M+dg==
X-Gm-Message-State: ACgBeo0y4c+iJwh0+SYmiW4qfGQqDnhfFfWS6nSFm4LZFsN4nuo10vpd HXUFDmjmxC2pOwyziXOgP00yWgQ99cNxIo/94W3oeZ/DhbTnUw==
X-Google-Smtp-Source: AA6agR6sKSZOnsxKXuOk3tied5OX72pkpxG4i/BYNgUb3wiv9PRYfLbrZfUbGXsRruFBCyAh4wlzDgD6CrMs3jbkHzE=
X-Received: by 2002:a17:902:aa0b:b0:16b:c4a6:1dc9 with SMTP id be11-20020a170902aa0b00b0016bc4a61dc9mr24816008plb.83.1659510789801; Wed, 03 Aug 2022 00:13:09 -0700 (PDT)
MIME-Version: 1.0
References: <CA+ag07b+O6Yh3WDZgm1DjmLiCfeeY4r0NN3n3U=vNBTxJRMBdA@mail.gmail.com> <CAMyc9bWOp8MfLsM583Nh9aZc_Tf-ihMchZ7cfOHyK6NMnHjZKQ@mail.gmail.com>
In-Reply-To: <CAMyc9bWOp8MfLsM583Nh9aZc_Tf-ihMchZ7cfOHyK6NMnHjZKQ@mail.gmail.com>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Date: Wed, 03 Aug 2022 09:12:50 +0200
Message-ID: <CA+ag07Yqqr=_UqY_vQxL3yErHRVzriR2Dxt0-D-sD8i-TezLtA@mail.gmail.com>
To: Cameron Elliott <cameron@cameronelliott.com>
Cc: WISH List <Wish@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000208be405e550f7c7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/vViYuHHXRsFxfSlAU1McOf9_H20>
Subject: Re: [Wish] WHEP - WebRTC Http Egress Protocol
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: Wed, 03 Aug 2022 07:13:14 -0000

Hi Cameron,

Thank you very much for your feedback!

I would also prefer to have a single method, but our current PoC uses the
SDP offer in the HTTP request, and the alternative option was suggested
later by Gustavo Garcia and I think it was a nice addition to the protocol.

Anyway, having both options in would be similar to SIP, which allows the
invite to have the sdp offer, or be empty and send the SDP answer in the
ACK. (I know, maybe SIP is not a good source of inspiration).

I agree that the audio only/video only is not a very compelling reason for
having the media server doing the SDP offer, and the clients not supporting
createOffer is also not a very strong case.

However, I think it would be very interesting to allow WHIP/WHEP
integrations:

                +------------+     +-----------+      +------------+
                |            |     | WHIP      |      | WHEP       |
                |    GW      |     | Endpoint  |      | Endpoint   |
                +-----+------+     +-----+-----+      +-----+------+
                      |                  |                  |
                      |        HTTP POST |                  |
                      +------------------+----------------->|
                      |        201 CREATED (SDP OFFER)      |
                      |<-----------------+------------------+
                      |   HTTP POST (SDP OFFER)             |
                      +----------------->|                  |
                      |   201 CREATED (SDP ANSWER           |
                      |<-----------------+                  |
                      |   HTTP PATCH (SDP|ANSWER)           |
                      +------------------+----------------->|
                      |   200 OK         |                  |
                      |<-----------------+------------------+
                      |                  |                  |


I am not very concerned about endpoints support, there will be pressure to
implement both methods, so I am always more worried about clients for
WHIP/WHEP than media server support.

Best regards
Sergio


On Tue, Aug 2, 2022 at 12:14 AM Cameron Elliott <cameron@cameronelliott.com>
wrote:

> TL;DR
> Some will complain, but I predict the following if two models of where the
> offer is created does get adopted:
> 1. Some (WHEP-like) endpoints will only accept an offer from the client.
> (busy industry programmers)
> 2. Some (WHEP-like) endpoints will only handle generating an offer.  (busy
> industry programmers)
> 3. Some (full-WHEP) endpoints will implement both client-offer and
> endpoint-offer generation. (good life programmers)
>
> I would encourage some assertiveness, and chop WHEP to either
> client-offers or endpoint-offers.
> (endpoint offers does have the advantage the endpoint can present
> audio-only or video-only SDPs)
>
>
> --- Full message ---
>
>
> I want to provide some initial thoughts on the first WHEP draft.
> I've been exploring HTTP POST for egress since early 2021.
> I wrote a library called whip-whap-js
> <https://github.com/x186k/whip-whap-js> which can be used for egress.
> I am now using Sergio's Js WHIP library for egress (which it works fine
> for).
>
> The draft proposes both single-POST and double-POST models.
> Said another way, supporting both client-offer and endpoint-offer egress.
>
> One reason given in the draft is to support audio-only SDPs as controlled
> by the endpoint.
> One reason given in the slides is that some WebRTC stacks don't support
> 'createOffer()' calls.
>
> In my explorations, I initially used double-POST for egress, (endpoint
> offer).
> Eventually, I switched to single-POST as it just seemed cleaner.
>
>
> Thoughts:
> - The concern about audio-only (or video-only?) service sounds really good.
> But if this is true, can a client ever in practice generate an offer?
> Does the end-user/controller/developer choosing/controlling a client need
> to know a-priori that the WHEP endpoint
> can offer audio-only or video-only, and thus *choose* or *configure* a
> WHEP client to do an empty-payload first POST?
> Needing end-users or dev-ops people to understand whether the endpoint
> always does 2 tracks or just one track seems problematic.
>
> - The double complexity of implementing both client-offers and
> endpoint-offers is not huge or overwhelming, but
> it seems to offer little concrete value vs choosing one or the other.
> Testing, development, debugging interop will be harder.
>
> - Some will grumble as I believe there are both client-offers and
> endpoint-offers in use already, but the conceptual
> simplicity and reduced testing would be fantastic if just one of the two
> was chosen for the standard.
>
> People in industry under time pressures are going to be very tempted, or
> maybe forced to choose
> one of client-offers vs. endpoint-offers, especially if they initially are
> controlling the client also.
> When this happens, there will three different kinds of WHEP (WHEP-like
> anyway) servers:
> 1. Full spec, handling both client-offers and server-offers
> 2. Not to spec, handling just client-offers
> 3. Not to spec, handling just endpoint-offers
>
> Thanks,
> Cameron
>
>
>
>
>
>
>
>
>
>
>
> On Mon, Aug 1, 2022 at 6:34 AM Sergio Garcia Murillo <
> sergio.garcia.murillo@gmail.com> wrote:
>
>> Hi all,
>>
>> As we didn't have enough time to discuss it during the last IETF meeting,
>> I would like to introduce the WHEP draft again and ask for feedback and
>> next steps.
>>
>> The draft is here:
>>
>> https://www.ietf.org/id/draft-murillo-whep-00.html
>>
>> The github repo for filling issues is here:
>> https://github.com/murillo128/webrtc-http-egress-protocol
>>
>> And these are the corrected slides that I intended to present during the
>> meeting.
>>
>> https://docs.google.com/presentation/d/1vOTbc-SfvQEtr62CuFlb1dqwaz6ag_zY6L-8kEKXIsY/edit?usp=sharing
>>
>> As I said during the meeting, the current draft is almost the same as
>> WHIP but changing the direction attribute and taking into account some
>> peculiarities about playback.
>>
>> So my feeling is that this draft would be best discussed here and would
>> be better not create a new WG for this, but this would require a recharter
>> of the WG, so not sure if it is possible.
>>
>> Do you have any feedback on the draft itself or what do you think is the
>> best way forward to move it inside IETF?
>>
>> Best regards
>> Sergio
>>
>>
>> --
>> Wish mailing list
>> Wish@ietf.org
>> https://www.ietf.org/mailman/listinfo/wish
>>
> --
> Wish mailing list
> Wish@ietf.org
> https://www.ietf.org/mailman/listinfo/wish
>