diff --git a/README.webrtc b/README.webrtc index fae4f49..260b7ba 100644 --- a/README.webrtc +++ b/README.webrtc @@ -1,138 +1,136 @@ SylkServer WebRTC gateway ------------------------- The WebRTC gateway application enables web based clients to communicate transparently with SIP endpoints using WebRTC suite of standards and protocols. To perform this function SylkServer must run on a computer with a public reachable IP adddress. A ready to go client is available, see Sylk WebRTC client for more information. Architecture ------------ +--------+ +-------------+ +----------+ +-------------+ | | | | | | | SIP | | WebRTC | SylkRTC API | | | Janus +<--->+ audio/video | | client +<------------->+ SylkServer | | | | calls | | | | WebRTC | +----------+ +-------------+ +--------+ | gateway | +----------+ +-------------+ | | | Presence | | SIMPLE | | | | and chat +<--->+ IM | | | | gateway | | Presence | +-------------+ +----------+ +-------------+ End-point requirements ---------------------- The WebRTC gateway doesn't do media transcoding, so after taking care of the WebRTC-specific media features (ICE and DTLS mainly), endpoints will exchange plain RTP media between them, therefore SIP end-points must have a set of compatible audio (Opus) and video codecs (H.264 and VP8). As a WebRTC client, a standard browser with WebRTC support can be used (e.g. Firefox or Google Chrome). Features -------- * SIP account registration * Audio / video calling * Codec agnostic SylkRTC API ----------- A JavaScript library implementing SylkRTC API is available at: https://github.com/AGProjects/sylkrtc.js Janus ----- For implementing WebRTC capabilities, SylkServer uses an external component called Janus. https://github.com/meetecho/janus-gateway Janus can be installed by following the instructions on its README file: https://github.com/meetecho/janus-gateway/blob/master/README.md The only requirement is that Janus is compiled with WebSocket supports, since that's the transport SylkServer uses in order to communicate with Janus. -Note: libsrtp >= 1.5.0 is recommended. - To configure janus the following settings are relevant for WebRTC gateway (read their description in the janus configuration files): 1. janus.cfg [general] api_secret = some_secret_key_shared_with_sylkserver ;debug_level = 5 [nat] ice_lite = true ice_tcp = true ;ice_enforce_list = ip_or_interface ;ice_ignore_list = vmnet [media] force-bundle = true force-rtcp-mux = true [plugins] disable = libjanus_voicemail.so,libjanus_recordplay.so,libjanus_streaming.so,libjanus_echotest.so,libjanus_videocall.so,libjanus_textroom.so [transports] disable = libjanus_http.so,libjanus_rabbitmq.so,libjanus_pfunix.so 2. janus.plugin.sip.cfg [general] ;local_ip = ip_for_sip keepalive_interval = 0 user_agent = SylkServer (WebRTC gateway) register_ttl = 600 ;rtp_port_range = 20000-40000 3. janus.plugin.videoroom.cfg ; comment out the rooms defined in this file to prevent janus from ; creating some static rooms (having an empty file for it is fine) 4. janus.transport.websockets.cfg [general] ws = yes ws_interface = lo ws_port = 8188 wss = no [admin] admin_ws = no Running ------- After installing SylkServer with WebRTC capability, start the server and point your web browser to: https://hostname:10888/webrtcgateway/ It's recommended to change the API secret used between SylkServer and Janus, check the webrtcgateway.ini and janus.cfg configuration files.