on master help sign in
Create uturn.md
commit1e7a6c193cf9ed3635b9e215575ce4068d74f8bd authormartyr-binbex <phil.quirk@gmail.com> dateThu 28 Oct 2021, 09:40 (5 years ago) parent376e970
1 file changed+34
content/grants/uturn.md+34
content/grants/uturn.mdnew file+34
@@ -0,0 +1,34 @@
1++++
2+title = "UTurn"
3+date = 2021-10-28
4+[taxonomies]
5+grant_type = ["Proposal"]
6+grant_category = ["App Dev"]
7+[extra]
8+image = ""
9+description = "TURN server support for WebRTC"
10+reward = 1
11+assignee = "~martyr-binbex"
12+id = ""
13+completed = false
14+link = ""
15++++
16+
17+## Overview
18+WebRTC over Urbit needs TURN servers to relay the voice and video data. TURN servers are relay servers used when peers are behind NATs and can't make direct connections. Because they relay video and voice data they consume a lot of bandwidth. Therefore there are no free TURN servers on the internet. This makes running one a great service for stars to provide.
19+
20+We need a way for a ship operator to easily run coturn (an open source TURN server) and allow other ships to use it.
21+
22+
23+## Deliverables
24+
25+### coturn docker container
26+coturn has an official Docker container. Create a new container from the official one with easy customization so that ship operators can drop it in a container service and go.
27+
28+### uturn gall agent
29+Write a gall agent called uturn which makes calls into coturn's rest interface. It needs a generator to configure the url of the coturn server (which is not necessarily running on the same machine as the ship) and whatever authentication password is retrieved from the docker container. uturn should also be able to find authenticated STUN servers. The agent should have a poke to open a new TURN session for a client and return a one-time password. It should use a whitelist to gate access from ships.
30+
31+### icepond integration with uturn
32+Integrate icepond with uturn so that it can find configured TURN and STUN servers and advertise them back to clients. This requires writing a thread that pokes uturn and returns a list of server/auth details.
33+
34+