This document summarizes the SkyViewer computer networks project created by four students. SkyViewer allows for in-browser video chatting using WebRTC without plugins. It supports major browsers and platforms. The motivation was to create a seamless video chatting website without downloads. WebRTC enables this through standards for connectivity, encryption, and adapting to network conditions. Users can chat by entering a temporary username on the website to connect in their browser in a peer-to-peer fashion. The project implements WebRTC, PubNub for signaling, and other modules to handle connections, media streams, and integration with TURN servers. Future improvements include calling features and remote access abilities.
2. Introduction
ï§ SkyViewer is a fast in-browser solution for video chatting.
ï§ SkyViewer makes use of WebRTC to achieve the in-browser
functionality.
ï§ WebRTC (Web Real-Time Communication) is an API definition
drafted by the World Wide Web Consortium (W3C) that
supports applications for voice calling, video calling, and P2P
file sharing without the need of either internal or external
plugins.
ï§ It supports Google Chrome, Mozilla Firefox, Opera, Android,
and iOS.
3. Motivation
â Current video chatting solutions (Skype, Hangouts, WebEx,
GoToMeeting etc.) require the users or participants to
download/install any extension or application.
â WebRTC is natively supported by most popular browsers
hence, we can use this as an advantage.
â We wanted to create a website that would allow users to
seamlessly video chat without any hassle.
4. WhyWebRTC?
1. Itâs free.
2. Platform and device independent.
3. Advanced voice and video quality: Opus codec for voice and VP8
codec for video.
4. Secure voice and video: WebRTC uses SRTP (Secure Real-time
Transport Protocol) for encryption and authentication.
5. Adaptive to network conditions: WebRTC supports the negotiation
of multiple media types and endpoints.
5. Non-Technical Project Overview
1. Alice and Bob want to video chat. SkyViewer will achieve this in-
browser without the need to download or install any software,
extension, or plugin.
2. Both of them open the SkyViewer website and they are presented with
a field to enter a temporary username (Note that neither of them need
to login or create an account).
3. Bob shares his username with the Alice. Alice can now enter the
username of Bob in the field and press on âCallâ.
4. Both the hosts are connected via P2P.
5. The username is deleted once the tab/window is closed or the session
expires.
6. HowWebRTC works?
â SessionTraversal of UDP through NAT (STUN)
â Traversal Using Relay NAT (TURN)
â Interactive Connectivity Establishment (ICE)
7. Implementation
We have used the following modules along with a simple HTML website:
pubnub.js (Online service):
Connection establishment, parameter satisfaction, check conditions and
send encrypted key to other user
webrtc.js:
Instantiate session, video id of camera with permission, sync stream,
media configuration, session handling, and defines ICE servers
rtc-controller.js:
Used for user join, call, leave, video, audio, and integrate with ICE server
8. Changelog
â V1.0: Simple calling. No mute, end, pause.
â V1.02: Added mute and pause button.
â V1.03: Multiple callers,
â V1.04: Change in makemycall function.
â V1.05: Key changed to default. Multiple Access through same username
disallowed.
â V1.06 : Styling.