summaryrefslogtreecommitdiff
path: root/REST-API
diff options
context:
space:
mode:
Diffstat (limited to 'REST-API')
-rw-r--r--REST-API49
1 files changed, 49 insertions, 0 deletions
diff --git a/REST-API b/REST-API
new file mode 100644
index 0000000..ec1c2ca
--- /dev/null
+++ b/REST-API
@@ -0,0 +1,49 @@
+The server now implements two REST APIs:
+
+1) A token-based validation API for clients that want to stream
+2) A simple API to list or abort streams running on the server
+
+
+Token-based Validation:
+=======================
+
+The server maintains a hash table of (sessionid, udp-host, udp-port) tuples
+against which incoming (HTTP PUT/POST) and outgoing (HTTP GET) streams are
+validated. The following API is available to manipulate this table:
+
+Adding Tokens:
+--------------
+
+> Adding a token for an HTTP stream
+ POST http://[host]:8000/add-token?type=http&sessionid=[sessionid]
+
+> Adding a token for an RTP-UDP stream on host:port
+ POST http://[host]:8000/add-token?type=rtp-udp&sessionid=[sessionid]&udp-clients=[host]:[port]
+
+> Adding a token for an HTTP stream and RTP-UDP streams on host1:port1,host2:port2
+ POST http://[host]:8000/add-token?type=http,rtp-udp&sessionid=[sessionid]&udp-clients=[host1]:[port1],[host2]:[port2]
+
+Revoking Tokens:
+----------------
+
+> Revoking a token
+ DELETE http://[host]:8000/revoke-token?sessionid=[sessionid]
+
+Listing Tokens:
+----------------
+
+> Listing all tokens
+ GET http://[host]:8000/list-tokens
+
+This will return a JSON array of dicts with the "sessionid", "host", and "port"
+for each token.
+
+
+Listing and Aborting Running Streams:
+=====================================
+
+> Listing all streams
+ GET http://[host]:8000/list-streams
+
+> Aborting a running stream
+ DELETE http://[host]:8000/abort-stream?sessionid=[sessionid]