Web-RTC Based Video
Conferencing Term Project Presentation
ELEC 6861 – Fall 2013
December 10, 2013
Agenda
Team member introduction
Introduction to Web-RTC
Architecture
Main tasks
STUN and ICE- Signaling and NAT traversal
Firebase- Front End Presence
Challenges.
Conclusions
Research.
Team Members
Onkar Kadam
Masters in Electrical and Computer Engineering
Purvesh Patel
Masters in Electrical and Computer Engineering
Introduction to Web-RTC
Real-time communications capabilities into browsers.
Accessible using HTML5 and JavaScript APIS.
Interaction between browsers.
Peer-to-peer Connection model.
No plugins required.
Transport : HTTP over TCP or WebSocket.
W3C and IETF standards.
Architecture
This arrangement is called a triangle due to the shape of the signaling (sides of triangle) and media or data flows (base of triangle).
Peer connection between browsers.
Architecture(contd.)
Three Main Tasks
Acquiring audio and video.
WebSocket Server (websocket API)
Communicating audio and video.(RTCpeerconnection)
MediaStream (getUserMedia)
Represents stream of audio and/or video.
Can contain multiple tracks.eg audio and video
getUserMedia() - single local media stream.
Asks permission from the user to access microphone and camera.
getUserMedia()
successCallback – successful setup .
errorCallback- failure to access.
Signalling
Session control information: initialize ,terminate , report error
Network information: Ip address and port.
Media Information: Codecs, resolution, bitrate.
Signaling is not part of the WEBRTC framework.
SIP, XMPP,WebSocket.
WebSocket API
Socket connections between browser and websocket server.
Node -Websocket module.
Server side.
https://github.com/Worlize/WebSocket-Node/tree/master/test
RTCPeerConnection
Handles stable communication of streaming data between peers.
Shields developers from the complexities.
Signal Processing.
Codec handling.
Bandwidth management.
Noise reduction.
RTCPeerConnection(Continued)
Create a new RTCPeerConnection and add the stream from getUserMedia():
Create an offer and set it as the local description for caller and as the remote description for callee.
Callee adds remotestream.
Callee accepts the offer by sending remote description.
Session is established.
RTCPeerConnection(Continued)
Session Traversal Utilities for NAT(STUN)
For Peer-to-peer communication over the web.
Tell me what my Public IP address is?
STUN servers used to discover the IP address of the outermost NAT device.
The public IP address becomes IP address of the candidate.
Beyond Firewalls and NAT.
stun.l.google.com:19302.
Interactive Connectivity Establishment(ICE).
Hole Punching.
Maintains route between peers.
Used in conjunction Stun server to resolve all possible IP address that a connection traverses.
Firebase- Presence
Scalable, real-time backend for applications.
Online-Offline status of users .
API available to identify a session.
JavaScript script + HTML5 for showing it in the browser.
DEMONSTRATION
Tools and APIS
RTCPeerConnection API
WebSocket module ,NodeJS
Firebase : presence.
Windows Internet sharing: Network layer.
Features
Dial-in multiparty Video , Voice and text conferencing.
Sub-conferencing.
Single socket.
Over the web(STUN and ICE).
Challenges
Very less resources for java, sailfin ,etc..
Initial Decision of implementing in the cloud (eucalyptus community cloud ).
Integrating multiple technologies .
Network establishment(adhoc, lan , etc..) over concordia wireless network.
XMPP.
Future Scope
Single interface for all participants.
Use of SIP signaling , XMPP signaling.
Over the web rather than private networks to leverage facilities like STUN,ICE,firebase.
Conclusion
Web-RTC is new , not all browsers support Web-RTC.
Still a work in progress.
Independent of the device, dependent upon the browser.
Improvements must be done for noise and echo cancelling.
Accessible from anywhere.
The future of conferencing almost certainly lies in technology initiatives like Web-RTC.
References
http://www.html5rocks.com/en/tutorials/webrtc/basics/
https://labs.ericsson.com/developercommunity/blog/beyond-html5-peer-peer-conversational-video
http://www.html5rocks.com/en/tutorials/websockets/basics/
https://www.firebase.com/blog/2013-06-17-howto-build-a-presence-system.html
Top Related