Confirmed users
120
edits
Tarek.ziade (talk | contribs) No edit summary |
Ametaireau (talk | contribs) No edit summary |
||
Line 5: | Line 5: | ||
=Overview= | =Overview= | ||
The loop project aims to provide a WebRTC application firefox users can use from within Firefox. | |||
The server part handles registration of the clients, generation of temporary links and communication with the WebRTC infrastructure provider. | |||
=Definitions= | =Definitions= | ||
- Simple Push URL: an URL the server can ping in order to wake up the client. | |||
- FxA assertion: a Firefox Account assertion (read token) containing a way to identify the user on the server | |||
- Provider tokens: In order to initiate a call between two parties, the provider issues tokens, session ids and client need to have an API key. | |||
=APIs= | =APIs= | ||
A "*" means this URI requires authentication (Ideally you should pass a valid BrowserID assertion, current implementation does that with a session cookie). | |||
'''POST /registration''' | '''POST /registration''' | ||
Line 35: | Line 37: | ||
List incoming calls for the authenticated user. (No parameter required.) | List incoming calls for the authenticated user. (No parameter required.) | ||
=User Flow= | |||
Let's say Bob wants to be called by Alice. | |||
The workflow is as follows: | |||
1. Bob registers with SimplePush, he gets a simple push url back and listens to the WebSocket connection; | |||
2. Bob asks the server to generate a call url for him; | |||
3. Bob gives this URL to Alice; | |||
4. Alice clicks on the link, server validates the URL and displays a WebApp with a message "do you want to call Bob"? | |||
5. Alice decides to call Bob, server validates the URL | |||
6. Server gets provider tokens; | |||
7. Server stores the callee token and session id in database; | |||
8. Server pings the Simple Push Server to wake up Bob's client; | |||
9. Server returns caller token, session id and API Key to Alice's client | |||
10. Bob client wakes up, go on the server to look at the list of incoming calls; | |||
11. Server returns the list of calls (containing provider information) to Bob's client. | |||
12. Connection can be done between Alice and Bob! |