Secure video chat via pure WebRTC
Welcome to Briefing. Yet another secure video chat.
Privacy is the driving force behind this project. It uses secure technologies like WebRTC to directly connect between participants. The website that provides the web app and mediates the communication stores as few data as possible and does not know anything about the contents of established conversations. No accounts are required. No cookies are used.
The difference between Briefing and most similar projects is, that it does not use a central server that distributes the video streams (SFU). The advantage of an SFU is that it saves bandwidth due to the fact that the own video does not being uploaded to each participant but only once. The SFU can also do more optimizations the clients might not support. But then the video signal is not end-to-end encrypted any more i.e. you have to trust the SFU provider. Briefing instead sends data from peer to peer directly ("Mesh") and is therefore end-to-end encrypted by default by WebRTC implementations.
FAQ- Some answers to some questions
Why starting another video conf tool?
During the Corona pandemic I tried to create a peer-to-peer solution for home schooling called peer.school. Although the project has been retired for various reasons, I learned so much about WebRTC and video/audio communication, that I did want to reuse this knowledge in this project.
Why is it free and Open Source?
Only a free project does not require the user to create an account and unveil payment information, that could be used to identify that person. This is why the project is free and will remain free, as long as no additional costs like maintaining TURN servers etc. will require some funding. If you want to support me and the project directly you can via PayPal. If you are interested in sponsoring please contact me at [email protected].
Which servers are actually involved in a call?
- Briefing web site (provides the web app)
- Briefing signaling server (coordinates peers in rooms)
- Briefing STUN/TURN server (helps traversing fire walls)
Feature X is missing! Found bug Y!
Please visit the GitHub project to see if your request is already on the list or place a new issue. Your contribution is of course welcome as well.
How about native apps?
Frankly this is not required, because your browser can handle it all. You can of course put Briefing on your home screen e.g. in iOS Safari tap on the "Share" icon and choose "Add to Home Screen". You can do the same in browsers like Google Chrome
Setting up your own server
An official server is available at https://brie.fi/ng/, but if you want to use your own one, we provide a Docker image at holtwick/briefing
.
You will have to set up a reverse proxy to terminate HTTPS traffic (including websockets) and a STUN/TURN server.
To configure your instance, you can use the following environment variables:
TURN
is the "host:port" address of the TURN server to use (for proxying between networks) - it is required.TURN_USERNAME
is the username for the TURN server (using a shared secret is recommended).TURN_PASSWORD
is the password for the TURN server (using a shared secret is recommended).TURN_SECRET
is the shared secret used to generate temporary TURN passwords, and must be the same asstatic-auth-secret
inturnserver.conf
.TURN_WHITELIST
is a comma-separated list of domains that may access the TURN server when using a shared secret (this is checked through the "Referrer" header).STUN
is the "host:port" address of the STUN server to use (for IP discovery) - if empty, the value ofTURN
will be used.
For signal server code see peer2school-server