This project aims to be a convenient location for WebRTC library developers to perform interoperability tests.
The project is open to everyone.
The developers likely to interested are those involved in WebRTC projects.
The libraries that currently have a Client and Server implementation are:
Additional libraries/applications that currently have a Server implementation are:
master
branch, commit ID 637b0d8dc25b660d3b05370e60a95249a5228a39
20 Aug 2021 (gst-build commit ID ebcca1e5ead27cab1eafc028332b1984c84b10b2
26 Mar 2021).0.10.7
, commit ID 04229be3eeceb28dbc57a70a57928aab223895a5
.6.16.1~1.g907a859
.m90
branch, commit ID a4da76a880d31f012038ac721ac4abc7ea3ffa2d
, commit date Fri Apr 9 21:03:39 2021 -0700
.The current interoperability tests are:
Peer Connection Test: The initial, and simplest, test is a WebRTC Server Peer
and/or Client Peer
that tests the ability to negotiate a peer connection up to a successful DTLS handshake. A description of how the Peer Connection Test works is available here.
Data Channel Echo Test: This test builds on the Peer Connection Test and adds a data channel
test. It tests the ability of the peers to create a data channel and then checks that the Server Peer
can echo a string message sent by the Client Peer
.
Test run at 2024-10-26 21:54:32.034633
Server | aiortc | libdatachannel | pion | sipsorcery | webrtc-rs | werift |
---|---|---|---|---|---|---|
aiortc | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
gstreamer | ✔ | ✔ | ✔ | ✔ | ✔ | |
janus | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
kurento | ✔ | ✔ | ✔ | ✔ | ||
libdatachannel | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
libwebrtc | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
pion | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
sipsorcery | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
webrtc-rs | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
werift | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Test run at 2024-10-26 21:50:20.282070
Server | libdatachannel | sipsorcery | werift |
---|---|---|---|
libdatachannel | ✔ | ✔ | ✔ |
sipsorcery | ✔ | ✔ | ✔ |
werift | ✔ | ✔ | ✔ |
If you are interested in adding a library to this project the recommended steps are listed below. The steps don't necessarily have to be completed in any specific order.
Write a Peer Connection Test Client application according to the specification or base it off an existing application.
Test your client by building and running one of the Peer Connection Test Servers or you can use one of the Peer Connection Test Server Docker Images:
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/aiortc-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/gstreamer-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/janus-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/kurento-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/libdatachannel-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/libwebrtc-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/pion-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/sipsorcery-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/webrtc-rs-webrtc-echo
docker run -it --rm --init -p 8080:8080 ghcr.io/sipsorcery/werift-webrtc-echo
If you encounter any problems open an Issue. When done submit a Pull Request for your application.
Repeat the process for a Peer Connection Test Server.
Create a Dockerfile and add a Pull Request for it so your Peer Connection Test application(s) can be included in the automated testing.