GithubHelp home page GithubHelp logo

satnami / jangouts Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jangouts/jangouts

0.0 2.0 0.0 6.55 MB

Videoconferencing based on WebRTC and Janus Gateway with an UI inspired by Google Hangouts

License: MIT License

Ruby 1.75% JavaScript 81.12% Shell 0.70% HTML 12.90% CSS 3.54%

jangouts's Introduction

Jangouts

Jangouts (for "Janus Hangouts") is a solution for videoconferencing based on WebRTC and the excellent Janus Gateway with a user interface loosely inspired by Google Hangouts. It aims to provide a completely self-hosted open source alternative to Google Hangouts and similar solutions. Currently Jangouts supports conferences with video, audio, screen sharing and textual chat organized into an unlimited amount of conference rooms with a configurable limit of participants per room.

Example screen of Jangouts 0.4.0

Installation

Jangouts is a JavaScript application running exclusively client-side (i.e. in the browser). The server simply needs to provide a bunch of static files through a web server.

Step 1. Janus Gateway

All the server-side WebRTC handling is performed by Janus Gateway, so the first requirement is a running janus server with support for data channels compiled in, with the videoroom plugin enabled and with a valid list of rooms in the janus.plugin.videoroom.cfg file. For most Linux distributions that translates into installing the janus or janus-gateway package. Make sure those packages include data channels support. Compiling Janus Gateway from the sources is, of course, also an option.

For (open)SUSE distributions, a proper package can be easily found at software.opensuse.org and installed using 1 Click Install.

For security reasons, the (open)SUSE package does not include the SSL certificates shipped by default with Janus Gateway. To generate a self-signed certificate, use OpenSSL:

cd /usr/share/janus/certs
sudo openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \
  -keyout mycert.key -out mycert.pem

In (open)SUSE, the gateway can be then started (after adjusting the list of rooms at /etc/janus/janus.plugin.videoroom.cfg if desired) with the command:

sudo systemctl start janus.service
sudo systemctl enable janus.service # to start it also after reboot

Step 2. Download and configure Jangouts

The easiest way to get Jangouts is to download the latest archive from the Jangouts releases page at Github. For deployment purposes, the only relevant directory in that archive is the one called dist, which contains the files to be served by the HTTP server to the participants' browsers. That includes the file called config.json that can be tweaked to point the participants to any Janus server, to enable extra debugging, etc. The file already contains sensible defaults that should work out of the box for most cases. It's fine to have some configuration parameters set to null in that file, Jangouts will try to guess the proper value during runtime.

Step 3. Serve the dist folder

Given than a Janus Gateway server is running and reachable and that config.json contains the proper values (usually just the default ones), all that needs to be done is to serve the content of the dist directory to the clients. Any web server, such as Apache, can be used for that purpose.

The simplest way (although not the cleanest) to do such thing in an (open)SUSE system would be:

  1. sudo zypper in apache2
  2. Copy the content of dist directly into /srv/www/htdocs/
  3. sudo systemctl start apache2.service

See the deployment instructions for more information about how to properly configure Apache.

A note about security and browsers

Browsers will refuse to allow screen sharing through WebRTC for connections not using SSL. In some cases, they will even refuse to send any WebRTC content at all, neither video or audio. Thus, to allow users of your Jangouts instance to use the screen sharing functionality (or, in some cases, to use Jangouts at all) you will have to provide HTTPS access to both the files and the Janus gateway, like shown in the deployment instructions.

Troubleshooting

If Jangouts does not work, please check the troubleshooting guide.

Developing Jangouts

In order to modify Jangouts, it's necessary to install some development tools. That setup is detailed in the development instructions.

Acknowledgments

License

This software is released under the terms of the MIT License. See the license file for more information.

Find us

Jangouts developers can be usually found at:

jangouts's People

Contributors

ancorgs avatar imobachgs avatar jreidinger avatar bimalkant-lauhny avatar cyntss avatar sandr3j avatar chrisbr avatar mohsini172 avatar magarcia avatar mdeniz avatar aniabui avatar bmwiedemann avatar qantas94heavy avatar

Watchers

James Cloos avatar Mhd Sami Al Mouhtaseb avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.