Re: [rtcweb] JSEP-bis and WebRTC-Extensions Section 5.2
Justin Uberti <justin@fixie.ai> Wed, 05 July 2023 21:30 UTC
Return-Path: <justin@fixie.ai>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 528ADC151525 for <rtcweb@ietfa.amsl.com>; Wed, 5 Jul 2023 14:30:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.653
X-Spam-Level:
X-Spam-Status: No, score=-5.653 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, NUMERIC_HTTP_ADDR=1.242, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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=fixie-ai.20221208.gappssmtp.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 mvN1RaLLlXde for <rtcweb@ietfa.amsl.com>; Wed, 5 Jul 2023 14:30:31 -0700 (PDT)
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) (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 52E56C14F736 for <rtcweb@ietf.org>; Wed, 5 Jul 2023 14:30:31 -0700 (PDT)
Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-3fa94ea1caaso11193035e9.1 for <rtcweb@ietf.org>; Wed, 05 Jul 2023 14:30:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fixie-ai.20221208.gappssmtp.com; s=20221208; t=1688592629; x=1691184629; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=nRODgqVRHFl0Rzm/dCQJo3TqUz1U50pKq5tFlw5s7ZE=; b=qmOGJbNI8RPczT9U3VpkcDF0nGPil4S1YowvbftjEPi8ByHjsREfmH26Wk7XDwHQzL sXXhhDNC4EG+S7k/QJ4LNd8TVCG0VtINtRn3RVL8tBTgbUIhVI+noVfpNpkINYxc8orv U6i9u03pJkq1IUYYC3SOXnmUkejV6s6fsIIeWbGWPWjUlFCwFS8j9UtIkCnKWyjJVTWh VK6Rg83cHn9X+9gJc8p5ZMifH+Y6gKfAKz23czplpKcS1AHx/6uE+uxW2h58Q9DCCdgM KSe9dWaBsg/tcEVe6t+5V/2wl+PQPYO92bltOBWSoreT/XFkDE771ucFGwR1LFFY3zMx kJqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688592629; x=1691184629; 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=nRODgqVRHFl0Rzm/dCQJo3TqUz1U50pKq5tFlw5s7ZE=; b=Zq+cwzQNiTSPPhZdIluKJwPCUHCCIis47cnwWPrTqnKSycyyajmnCdE7XBh5/2RxEy 0uZbYaaNIzn3cROtWqScMf8LrgYkuE77HruZ1QWxVSuHI/XP9KCmOm24t2e3HfNadlbU bLXCS7EsV6efCMMDTtvjt4gsh3iFaJplu3i2jEeKPNgjIj0injdA7InLS0mIthxjENgL OLY950l0pxvvw4taeOFUvMOXiKkg4O7UtHEw69nv894SMx++pkgDDweIOoCfpX6rd9pv ZgHK298sI61lcUxRQLzMDSNz3T/aqSSSSciF9M4YHDZuIFcpnot6RlaUCBDbsLMzTHL8 6GeQ==
X-Gm-Message-State: ABy/qLYtVrqnl9D2Kxf269Ds2UKE8d+X87uXN1nfPg8ls8JiEJFVMWAU x2Ot5pJfnOh2XgPcFh4z3H54z6EDDy9gwncbAaUEZQR2Ku5ZhPKt4GZQbg==
X-Google-Smtp-Source: APBJJlGEdUHaGGUA32Egp0H3hRf9+V4RnXe5KpGW1Ko2K4rp3r1Zqf0f7M+jIuW+tIU06LXx1Hgs07BnUaI2uh7hgB8=
X-Received: by 2002:a1c:7408:0:b0:3fb:2d92:ecf1 with SMTP id p8-20020a1c7408000000b003fb2d92ecf1mr253062wmc.7.1688592629279; Wed, 05 Jul 2023 14:30:29 -0700 (PDT)
MIME-Version: 1.0
References: <CAPn_nMPhh0x5-_BKa0xF595Y8LXo5oRQjJqFgxFLtcCf+-FpOw@mail.gmail.com> <HE1PR07MB44416F5D6CCD8940D5974E3193709@HE1PR07MB4441.eurprd07.prod.outlook.com> <61AC7C19-2806-483F-9526-637DB5D46104@westhawk.co.uk> <HE1PR07MB444193373683D3D0E2F0735F93709@HE1PR07MB4441.eurprd07.prod.outlook.com> <8A7B8A70-7E37-4B0F-917D-C2FF62B84768@westhawk.co.uk> <HE1PR07MB4441C0C4B70C1DD980EAE23393709@HE1PR07MB4441.eurprd07.prod.outlook.com> <CAPn_nMOJXhC8Ae_QSS+ariACcXx__mXRF1pUK6UQSbFuL3m5WQ@mail.gmail.com> <HE1PR07MB444104909398325EA92E91BE93779@HE1PR07MB4441.eurprd07.prod.outlook.com> <HE1PR07MB4441A8F3E41CBA130ED2B7EE93779@HE1PR07MB4441.eurprd07.prod.outlook.com> <CAPn_nMPg5c5tq_4Huf97LTt8-moE4nVdV=2hbt_eLrx1pWox5Q@mail.gmail.com> <1FDC8668-3120-48F9-9819-E015137048BA@sn3rd.com>
In-Reply-To: <1FDC8668-3120-48F9-9819-E015137048BA@sn3rd.com>
From: Justin Uberti <justin@fixie.ai>
Date: Wed, 05 Jul 2023 14:30:18 -0700
Message-ID: <CAPn_nMOCHacC+Pq02fSZfHYJo-n4gDRM=jsm79gW0qxpv269WQ@mail.gmail.com>
To: Sean Turner <sean@sn3rd.com>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>, "rtcweb@ietf.org" <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d6c06805ffc41b87"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/xZp65WjrLlFTq9dJKGrSWQG_Cag>
Subject: Re: [rtcweb] JSEP-bis and WebRTC-Extensions Section 5.2
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2023 21:30:35 -0000
Finally had a chance to crank this out. Based on this thread, I made the following updates: - updated 4.1.8 (createOffer) to indicate that offers reflect the application's preferences as well as the implementation's capabilities - removed text from that section that asserted that you couldn't reoffer your full capabilities in a re-offer scenario (previously discussed and agreed upon) - added RTCP and FEC mechanisms to the list of things that application might control - used Tim's language of "supported by the application" rather than "enabled" to make things simpler PTAL: https://github.com/rtcweb-wg/jsep/pull/1033/ On Mon, Jun 5, 2023 at 8:34 AM Sean Turner <sean@sn3rd.com> wrote: > Thanks Justin! > > spt > > > On Jun 4, 2023, at 21:41, Justin Uberti <justin= > 40fixie.ai@dmarc.ietf.org> wrote: > > > > > > > > On Wed, May 10, 2023 at 1:37 AM Christer Holmberg < > christer.holmberg@ericsson.com> wrote: > > Hi, > > > > > > > > Also note the following sentence in Section 4.1.8.: > > > > > > > > “An options parameter may be supplied to provide additional control over > the generated offer.” > > > > > > > > Doesn’t this cover the issue? > > > > > > I think it would be worthwhile to tweak the sentence from 4.1.8 that you > previously mentioned to indicate that the mechanisms included in the SDP > are not just those supported by the browser, but also preferred by the > application. We can wave hands about the exact mechanism for how this is > done, perhaps referring to the possibility of future APIs. > > > > I'll rework this PR to include such text as well as the other changes > previously noted in option b). > > > > > > Another question: when I call createOffer, how does the browser/library > determine what has been “enabled”, compared to what is “supported”? > > > > > > > > Regards, > > > > > > > > Christer > > > > > > > > > > > > > > > > From: Christer Holmberg <christer.holmberg=40ericsson.com@dmarc.ietf.org> > > > Sent: Wednesday, 10 May 2023 11.01 > > To: Justin Uberti <justin@fixie.ai>; Christer Holmberg < > christer.holmberg@ericsson.com> > > Cc: rtcweb@ietf.org > > Subject: RE: [rtcweb] JSEP-bis and WebRTC-Extensions Section 5.2 > > > > > > > > Hi, > > > > > > > > >Part of the issue here is that we did spec the setCodecPreferences API > in JSEP allowing the JS application to control what formats it > > > > >wants to negotiate, so in many ways this change is just bringing RTP > extensions in line with media formats (IOW, we already have > > > > >some disparities in the spec). As to the solution here, we also have to > deal with more than just the notion of "enabled" - there is > > > > >also the change in how RTP header extensions are added in subsequent > offers, which would probably be harder to do in a generic > > > > >statement, as it would have to override normative text later in the > document. > > > > > > > > > >However I do recognize Christer's concern that there could be other > parts of JSEP that need the same treatment (specifically, FEC mechanisms > > > > >and RTCP feedback mechanisms). To address this, we could do one of the > following: > > > > >a) Add a generic statement as Christer proposes suggesting that > "supported", as it pertains to JSEP, means the parameters that the JSEP > > > > >implementation can handle AND are enabled by the application, and have > this apply to all relevant parts. > > > > >b) Extend the PR below to handle all the cases where the application > might want to override "supported" (FEC and RTCP are the only remaining > > > > >ones, I believe). We could use "supported by the application" as Tim > mentions to make the change more editorial. > > > > >c) Just go forward with the current PR and revisit the situation in the > future when needed > > > > > > > > > >I tend to think that b) will actually be the most surgical and > unambiguous change, so I lean in that direction at the moment. > > > > > > > > I am ok with both a) and b). > > > > > > > > But, in Section 4.1.8 there is the following sentence: > > > > > > > > “The createOffer method generates a blob of SDP that contains an offer > > > > per [RFC3264] with the supported configurations for the session, > > > > including descriptions of the media added to this PeerConnection, the > > > > codec, RTP, and RTCP options supported by this implementation, and > > > > any candidates that have been gathered by the ICE agent.” > > > > > > > > What does “implementation” refer to? The browser? If so, wouldn’t that > sentence have to be changed too, as it now says that the SDP generated > using createOffer will contain the RTP and RTCP options supported by the > implementation (not the application)? > > > > > > > > Regards, > > > > > > > > Christer > > > > > > > > > > > > On Sun, May 7, 2023 at 12:51 PM Christer Holmberg <christer.holmberg= > 40ericsson.com@dmarc.ietf.org> wrote: > > > > Hi, > > > > > > > > >> Are there actually some real implementation issues behind the > proposed change, or is it only > > > > >> about W3C and IETF using different terminology? > > > > > > > > > > It’s an API layer thing. At present there are no ways for a javascript > application to manage which RTP > > > > > header extensions are present in an offer*. So the current behaviour > is to offer _everything_ the > > > > > library/stack is capable of. The W3C is creating an API point that > allows the javascript application to > > > > > decide which extensions (of all the ones supported by the stack) are > useful/relevant/safe for the application. > > > > > > > > > > If both side’s webRTC implementations support a lot of RTP header > extensions, the current wording will have > > > > > them _all_ offered and all accepted in an answer, even if none of them > add any value to the application - bloating > > > > > the packet size needlessly. Specifically: ’supported’ is taken to > mean supported by the user agent - rather than > > > > > supported by the application as a whole. > > > > > > > > > > (This is my understanding of the issue at least) > > > > > > > > Wouldn't it be better to have a generic statement, saying that for some > features there are APIs that, for some features, > > > > allow the JS application to control what options are offered. That would > also be future proof, and we would not have > > > > to update the JSEP spec every time there is a new API that allows the JS > application to control what options are offered > > > > for a certain feature. > > > > > > > > Regards, > > > > > > > > Christer > > > > > > > > > > > > > > > > Sent from Outlook for iOS > > > > From: rtcweb <rtcweb-bounces@ietf.org> on behalf of Tim Panton < > thp@westhawk.co.uk> > > Sent: Sunday, May 7, 2023 1:16:27 PM > > > > To: Christer Holmberg <christer.holmberg=40ericsson.com@dmarc.ietf.org> > > > > Cc: rtcweb@ietf.org <rtcweb@ietf.org> > > Subject: Re: [rtcweb] JSEP-bis and WebRTC-Extensions Section 5.2 > > > > > > > > I was also thinking about this too - and I somewhat agree. > > > > > > > > We could replace ‘supported' with 'supported by the current application’ > since at a high level what this change does is to differentiate between > extensions that the library (libwebrtc etc) can support vs extensions the > current application wants to support. > > > > > > > > It also makes it clearer that this is an editorial change. > > > > > > > > T. > > > > > > > > On 7 May 2023, at 11:10, Christer Holmberg <christer.holmberg= > 40ericsson.com@dmarc.ietf.org> wrote: > > > > > > > > Hi, > > > > > > > > I have issues with the proposed change. > > > > > > > > First, AFAIK, "enabled" is not used in any other O/A specification. > > > > > > > > Second, my reading of "supported" is that it is something that the > endpoint is actually willing to/capable of using within the session. > > > > > > > > Third, within the JSEP O/A procedures, "supported" is used for other > features (e.g., FEC mechanisms). Using other terminology for one feature > will only confuse the reader, in my opinion. > > > > > > > > Fourth, if it is unclear what "supported" really means we should rather > clarify that. > > > > > > > > Regards, > > > > > > > > Christer > > > > > > > > Sent from Outlook for iOS > > > > From: rtcweb <rtcweb-bounces@ietf.org> on behalf of Justin Uberti < > justin@fixie.ai> > > Sent: Saturday, May 6, 2023 3:30:33 AM > > To: rtcweb@ietf.org <rtcweb@ietf.org>; superuser@gmail.com < > superuser@gmail.com> > > Subject: [rtcweb] JSEP-bis and WebRTC-Extensions Section 5.2 > > > > > > > > The WebRTC W3C WG is working on an extension spec that suggests behavior > for RTP header extension O/A that conflicts slightly with the current > version of JSEP. Rather than have this sort of ad-hoc extensions extension > to JSEP in the W3C spec, it was suggested that we could apply a tiny patch > to JSEP before JSEP-bis is finalized (it's currently in the RFC Editor > state). Murray was supportive of this but wanted to make sure the WG was > fully behind this change first. > > > > > > > > For context, Section 5.2 in the W3C extension spec basically says that > WebRTC endpoints can control the extensions that are in use, and as a > result O/A negotiation should a) use only the extensions that are enabled > by the endpoint, and b) always reoffer all extensions, rather than the > previously negotiated set. > > > > > > > > I've made a PR that captures this request at > https://github.com/rtcweb-wg/jsep/pull/1033/files, and it basically makes > two surgical changes: > > > > 1) replaces the use of "supported RTP header extensions" with "enabled > RTP header extensions" > > > > 2) changes the text around "extensions... present in the most recent > answer" to instead say "extensions... enabled on the associated > transceiver" (similar to how codecs are handled in JSEP). > > > > > > > > Please let me know if this sounds reasonable to you or you have concerns. > > > > > > > > Thanks, > > > > Justin > > > > > > > > _______________________________________________ > > rtcweb mailing list > > rtcweb@ietf.org > > https://www.ietf.org/mailman/listinfo/rtcweb > > > > > > > > > > > > _______________________________________________ > > rtcweb mailing list > > rtcweb@ietf.org > > https://www.ietf.org/mailman/listinfo/rtcweb > > > > _______________________________________________ > > rtcweb mailing list > > rtcweb@ietf.org > > https://www.ietf.org/mailman/listinfo/rtcweb > >
- [rtcweb] JSEP-bis and WebRTC-Extensions Section 5… Justin Uberti
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Justin Uberti
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Christer Holmberg
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Tim Panton
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Christer Holmberg
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Tim Panton
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Christer Holmberg
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Justin Uberti
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Roman Shpount
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Christer Holmberg
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Roman Shpount
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Christer Holmberg
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Christer Holmberg
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Christer Holmberg
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Harald Alvestrand
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Justin Uberti
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Sean Turner
- Re: [rtcweb] JSEP-bis and WebRTC-Extensions Secti… Justin Uberti