# Terminology
-### Client
+## Client
A GStreamer-based application
-### Browser
+## Browser
A JS application that runs in the browser and uses built-in browser webrtc APIs
-### Peer
+## Peer
Any webrtc-using application that can participate in a call
-### Signalling server
+## Signalling server
Basic websockets server implemented in Python that manages the peers list and shovels data between peers
-# Overview
+### Overview
This is a basic protocol for doing 1-1 audio+video calls between a gstreamer app and a JS app in a browser.
-# Peer registration and calling
+### Peer registration and calling
Peers must register with the signalling server before a call can be initiated. The server connection should stay open as long as the peer is available or in a call.
* Closure of the server connection means the call has ended; either because the other peer ended it or went away
* To end the call, disconnect from the server. You may reconnect again whenever you wish.
-# Negotiation
+### Negotiation
Once a call has been setup with the signalling server, the peers must negotiate SDP and ICE candidates with each other.