Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F7313336
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/README.webrtc b/README.webrtc
index 25a5a2f..03a50f1 100644
--- a/README.webrtc
+++ b/README.webrtc
@@ -1,161 +1,168 @@
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 | +----------+
- | | | Chat and |
- | | | file |
- | | | transfer |
- +-------------+ +----------+
+ +--------+ +---------+ +-------------+ +-------------+
+ | | | | | | | SIP |
+ | WebRTC | SylkRTC | | | Janus +<--->+ audio/video |
+ | client +<------->+ Sylk | | SFU | | client |
+ | | API | Server | | Server | +-------------+
+ +--------+ | webrtc | +-------------+ +-------------+
+ | gateway | <------------------>| |
+ | app | <----------+ | SIP |
+ | | <---+ | | Message |
+ +--------+ +---------+ | | | client |
+ | | +---------------^---+ | +-------------+
+ | XMPP |<------->| Sylk XMPP gateway | | +-------------+
+ | chat | +-------------------+ | | SIP |
+ | client | MUC +----------------------+--+ | MSRP chat |
+ | |<------->| Sylk Conference app |<--->| client |
+ +--------+ +-------------------------+ +-------------+
End-point requirements
----------------------
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
* One-to-One Audio / video calling between SIP and Web clients
* Multi-party conferencing (WebRTC end-points only)
+ * One-to-one messaging between end-points
* Codec agnostic
SylkRTC API
-----------
Desktop API
A JavaScript library implementing SylkRTC API is available at:
https://github.com/AGProjects/sylkrtc.js
Mobile API
A React native API is available at:
https://github.com/AGProjects/react-native-sylkrtc.js
SIP Proxy
---------
A SIP Proxy is required for one-to-one calls.
A guide for setting up a SIP Proxy is available here:
https://sylkserver.com/download/#sip-proxy-setup
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.
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.
Configuration
-------------
See webrtcgateway.ini.sample sample file for available options and their
meaning.
\ No newline at end of file
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Feb 1, 11:39 AM (1 d, 5 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3489309
Default Alt Text
(5 KB)
Attached To
Mode
rSYLK SylkServer
Attached
Detach File
Event Timeline
Log In to Comment