DesignWebRTC
Version 4 (Adrian Georgescu, 07/31/2015 04:35 pm)
1 | 1 | Saúl Ibarra Corretgé | h1. SylkServer WebRTC Gateway (Moonshot) |
---|---|---|---|
2 | 1 | Saúl Ibarra Corretgé | |
3 | 1 | Saúl Ibarra Corretgé | h2. Goal |
4 | 1 | Saúl Ibarra Corretgé | |
5 | 1 | Saúl Ibarra Corretgé | Allow end-users that have access to a web-based tablet to communicate with the rest of the Internet without having to download and configure locally a SIP or XMPP client. Optionally, a temporary or permanent address can be created on the fly and assigned to the user for receiving incoming calls. A web page will be designed that can be customizable by third-party web developers where users will be able to enter an address and start an audio or chat session. |
6 | 1 | Saúl Ibarra Corretgé | |
7 | 1 | Saúl Ibarra Corretgé | h2. Background |
8 | 1 | Saúl Ibarra Corretgé | |
9 | 1 | Saúl Ibarra Corretgé | WebRTC provides a media library that allows web developers to load a web page through which Java script runs code that can access the microphone, speakers and camera. The soon to emerge standard provides a media stream and its SDP (session description protocol) that can be used by a signaling protocol like SIP or XMPP to locate another users and negotiate a media session. ICE methodology is used to probe a media path. |
10 | 1 | Saúl Ibarra Corretgé | |
11 | 1 | Saúl Ibarra Corretgé | SylkServer allows transparent bridging of call flows for audio, chat, presence file transfer between SIP and XMPP protocols and supports ICE. All these call flow have an equivalent in WebRTC realm. |
12 | 1 | Saúl Ibarra Corretgé | |
13 | 1 | Saúl Ibarra Corretgé | h2. Addressing |
14 | 1 | Saúl Ibarra Corretgé | |
15 | 1 | Saúl Ibarra Corretgé | WebRTC is not a signaling protocol and does not introduce any new addressing scheme. To allow users to have a globally reachable address for receiving incoming calls we envisage a mechanism by which an external end-user controlled identity management system can be mapped to a SIP/XMPP address provided by the operator that runs SylkServer. For example we can link the webfinger profile of end-users with a user@domain addresses reachable through SylkServer. |
16 | 1 | Saúl Ibarra Corretgé | |
17 | 1 | Saúl Ibarra Corretgé | h2. Implementation |
18 | 1 | Saúl Ibarra Corretgé | |
19 | 1 | Saúl Ibarra Corretgé | To achieve the goal we propose to make SylkServer WebRTC enabled. A web server with web sockets support will be added to SylkServer and an API will be created that allows the end-users that loaded the page to join a conference or start an outgoing session to any other client on the Internet that uses user@domain addressing. The server will be zero configuration for the protocol mechanics. |
20 | 1 | Saúl Ibarra Corretgé | |
21 | 1 | Saúl Ibarra Corretgé | h2. Deliverables |
22 | 1 | Saúl Ibarra Corretgé | |
23 | 1 | Saúl Ibarra Corretgé | The outcome is a software with an open source license that can be packaged either as a server or a client running on end-user computers. |
24 | 1 | Saúl Ibarra Corretgé | |
25 | 3 | Saúl Ibarra Corretgé | * SIP SIMPLE client SDK support for WebRTC (written in C and Python) |
26 | 3 | Saúl Ibarra Corretgé | * Gateway application (part of SylkServer) (in Python) |
27 | 4 | Adrian Georgescu | * Additions to "janus":https://github.com/meetecho/janus-gateway webrtc server component (written in C) |
28 | 3 | Saúl Ibarra Corretgé | * sylkRTC API server side implementation (Python) |
29 | 3 | Saúl Ibarra Corretgé | * sylkRTC API client side implementation (JavaScript) |
30 | 3 | Saúl Ibarra Corretgé | * Web page front-end (HTML, CSS & JavaScript) |
31 | 3 | Saúl Ibarra Corretgé | * Multiparty video conferencing (t.b.d.) |
32 | 3 | Saúl Ibarra Corretgé | * Debian / Ubuntu packaging |
33 | 1 | Saúl Ibarra Corretgé | |
34 | 2 | Saúl Ibarra Corretgé | The software will be freely available for download on GitHub public repositories and as a a public service at http://sip2sip.info |