on master help sign in
Merge pull request #1237 from martyr-binbex/patch-1

Create uturn.md

commitfc6bc69e1a9942215c95d0d0f5df507fdbe00249 authorEdward Amsden <edward@tlon.io> dateFri 19 Nov 2021, 13:07 (5 years ago) parent387bcd398f236c
1 file changed+37
content/grants/uturn.md+37
content/grants/uturn.mdnew file+37
@@ -0,0 +1,37 @@
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+Expected completion: 31 Dec 2021
26+Payment: 1 star
27+
28+### coturn docker container
29+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.
30+
31+### uturn gall agent
32+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.
33+
34+### icepond integration with uturn
35+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.
36+
37+