[Wish] Prototype client/server WHIP implementations
Lorenzo Miniero <lorenzo@meetecho.com> Thu, 09 September 2021 09:59 UTC
Return-Path: <lorenzo@meetecho.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 79F1A3A03EC
for <wish@ietfa.amsl.com>; Thu, 9 Sep 2021 02:59:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.399
X-Spam-Level:
X-Spam-Status: No, score=-2.399 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.499, DKIM_SIGNED=0.1,
DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
header.d=aruba.it
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 mPv3P4-9g_jy for <wish@ietfa.amsl.com>;
Thu, 9 Sep 2021 02:59:37 -0700 (PDT)
Received: from smtpcmd0756.aruba.it (smtpcmd0756.aruba.it [62.149.156.56])
by ietfa.amsl.com (Postfix) with ESMTP id 603B03A03EB
for <wish@ietf.org>; Thu, 9 Sep 2021 02:59:36 -0700 (PDT)
Received: from lminiero ([2.232.93.8]) by Aruba Outgoing Smtp with ESMTPSA
id OGq7mJXirxZXhOGq8mYuuX; Thu, 09 Sep 2021 11:59:31 +0200
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aruba.it; s=a1;
t=1631181571; bh=OE8U73/m6eNxqY8fimiYbAHY1mnGgfrdGwq4UaA/ah8=;
h=Date:From:To:Subject:MIME-Version:Content-Type;
b=PguV133byjwCOwQQ6K08sc+wsLuigj/MwGVp6qOlBwb2xS6m8P3Awlm2UtCgOX3UO
cZtKF326yN2ABMFgylRhoCBt9CE27CGhcNhDv0N9Ug94I/rqfDd4xT+J4QPfSpYOBc
8GhoyRSEKou/NLys53Xd3s9A4wg/oAoKrFsRVfbVTN4blgZm1BO9S7AYrNcavPISO0
GTZy0KMy1EZRQg+5JrxHM+tFFwcODUalPFCcVa1Rs9iqEViCktACwWjWT36lWzDjMR
vzIHscJRtMUhev5ukoGg0GjhUE6iy+ENcPzSvSvXr2TadFb5KljDAoEoiA7YKvA2+j
CeCkIuryeF8jA==
Date: Thu, 9 Sep 2021 11:59:27 +0200
From: Lorenzo Miniero <lorenzo@meetecho.com>
To: wish@ietf.org
Message-ID: <20210909115927.4b409e2b@lminiero>
Organization: Meetecho
X-Mailer: Claws Mail 3.18.0 (GTK+ 2.24.33; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-CMAE-Envelope: MS4wfGzd+PFtZGc+Y0WgHZ/7IeMzM2ygIj8j+sy4NuHr2jElgjPNlijuQYKfPyUu010P3c6cb9YeVDW9nHAmjD1x2AZImBYQAiffUx8jRubl62wByJ67ySFa
qqtqG4SzYW2loahjZw2J2a+zrAQdFHXv17A=
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/_Gnni_iSsxTHBSZPE2XJRiPfg6k>
Subject: [Wish] Prototype client/server WHIP implementations
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: Thu, 09 Sep 2021 09:59:43 -0000
Hi all, FYI, I just created a couple of repositories that host a prototype implementation of both the server and client side of WHIP. They're quite barebone and nothing to write home about, but hopefully they should be helpful to perform some interoperability tests, and more importantly check whether the specification works as it is. The server side is a simple node.js frontend to the open source Janus WebRTC server, meaning it implements the WHIP API on one end, and translates those interactions to the Janus API on the other end, in order to eventually create a PeerConnection to the VideoRoom (SFU): https://github.com/lminiero/simple-whip-server The client side, instead, is a basic command-line application that takes advantage of GStreamer's webrtcbin stack, implementing what I figured out a WHIP client was supposed to talk like: https://github.com/lminiero/simple-whip-client While I've been testing them against each other, the idea of course is that they should also be able to talk to any other WHIP client/server implementation, which is the main purpose of the interoperability tests I'd like to happen sooner or later. I know Sergio was interested in doing something in that direction at the next IETF hackathon, but of course if anything else happens earlier than that as well I'd be glad to hear how that goes! About the implementation choices, I did make some assumptions on the specification in the prototypes (e.g., see discussion on tokens from the latest post by Sergio), but in general it should be a reasonably faithful implementation of the current specification. The client doesn't seem to be able to detect when a PeerConnection goes down (e.g., when someone else sends a DELETE on its its behalf), but that seems to be a limitation in the current implementation of GStreamer's webrtcbin (apparently changes in the DTLS state don't update the overall state of the webrtcbin element); I'll try to find a workaround for that. Hope this helps, Lorenzo -- I'm getting older but, unlike whisky, I'm not getting any better https://twitter.com/elminiero
- [Wish] Prototype client/server WHIP implementatio… Lorenzo Miniero
- Re: [Wish] Prototype client/server WHIP implement… Sergio Garcia Murillo
- Re: [Wish] Prototype client/server WHIP implement… Juliusz Chroboczek