GithubHelp home page GithubHelp logo

janus-gateway's Introduction

Janus WebRTC Gateway

Janus is an open source, general purpose, WebRTC gateway. This version of the gateway can only be installed on Linux systems: next versions will take into account cross compilation on different environments.

For some online demos and documentations, make sure you pay the project website a visit!

To discuss Janus with us and other users, there's a Google Group called meetecho-janus that you can use. If you encounter issues, though, please submit an issue on github instead.

##Dependencies To install it, you'll need to satisfy the following dependencies:

A couple of plugins depend on a few more libraries:

  • libopus (only needed for the bridge plugin)
  • libogg (only needed for the voicemail plugin)

Additionally, you'll need the following libraries and tools:

All of those libraries are usually available on most of the most common distributions. Installing these libraries on a recent Fedora, for instance, is very simple:

yum install libmicrohttpd-devel jansson-devel libnice-devel \
   openssl-devel libsrtp-devel sofia-sip-devel glib-devel \
   opus-devel libogg-devel libini_config-devel pkg-config gengetopt

On Ubuntu or Debian, it would require something like this:

aptitude install libmicrohttpd-dev libjansson-dev libnice-dev \
	libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev \
	libogg-dev libini-config-dev libcollection-dev pkg-config gengetopt
  • Note: apparently libopus is not available on Ubuntu: you'll have to install it manually.

Should you be interested in building the gateway documentation as well, you'll need an additional component installed too:

On Fedora:

yum install doxygen graphviz

On Ubuntu/Debian:

aptitude install doxygen graphviz

##Compile Once you have installed all the dependencies, just use:

sh install.sh

to start the whole compilation process. The script will try to check whether you have all the dependencies installed, and then issue a 'make' for you to start compiling. If Doxygen and graphviz are available, it will also build the documentation for you as well in the docs/html subfolder.

##Configure and start To start the gateway, you can use the janus executable. There are several things you can configure, either in a configuration file:

./conf/janus.cfg

or on the command line:

./janus --help

janus 0.0.2

Usage: janus [OPTIONS]...

-h, --help                    Print help and exit
-V, --version                 Print version and exit
-i, --interface=ipaddress     Interface to use (will be the public IP)
-p, --port=portnumber         Web server HTTP port (default=8088)
-s, --secure-port=portnumber  Web server HTTPS port (default=no HTTPS)
-n, --no-http                 Disable insecure HTTP web server  (default=off)
-b, --base-path=basepath      Base path to bind to in the web server 
							  (default=/janus) 
-P, --plugins-folder=path     Plugins folder (default=./plugins)
-C, --config=path             Configuration file to use
-F, --configs-folder=path     Configuration files folder (default=./conf)
-c, --cert-pem=filename       HTTPS/DTLS certificate
-k, --cert-key=filename       HTTPS/DTLS certificate key
-S, --stun-server=filename    STUN server(:port) to use, if needed (e.g., 
							  gateway behind NAT, default=none)
-X, --ice-ignore-list=list    Comma-separated list of interfaces or IP 
                              addresses to ignore for ICE gathering; 
                              partial strings are supported (e.g., 
                              vmnet8,192.168.0.1,10.0.0.1 or 
                              vmnet,192.168., default=vmnet)
-e, --public-ip=ipaddress     Public address of the machine, to use in SDP
-r, --rtp-port-range=min-max  Port range to use for RTP/RTCP (only available
							  if the installed libnice supports it)
-d, --debug-level=1-7         Debug/logging level (0=disable debugging, 
                              7=maximum debug level; default=4)

Options passed through the command line have the precedence on those specified in the configuration file. To start the gateway, simply run:

./janus

This will start the gateway, and have it look at the configuration file. By default, only an HTTP webserver is started. To enable HTTPS support, edit the configuration file accordingly or use the command line. The webserver will make use of the same certificates provided for DTLS. You can also change the base path that the webserver uses: by default this is /janus, but you can change it to anything you want and with any nesting you want (e.g., /mypath, /my/path, or /my/really/nested/path). This is done to allow you to more easily customize rules in any frontend you may have (e.g., Apache in front of your services).

In the absence of a configuration file, the only mandatory options to specify in the command line are the ones related to the DTLS certificate. A default certificate is provided with this package in the certs folder, which you can use launching the executable with these parameters:

./janus -c certs/mycert.pem -k certs/mycert.key

At this point, the gateway will be listening on the 8088 port (or whatever you changed that to) of your machine. To test whether it's working correctly, you can use the demos provided with this package in the html folder: these are exactly the same demos available online on the project website. Just copy the file it contains in a webserver, and open the index.html page in either Chrome or Firefox. A list of demo pages exploiting the different plugins will be available.

##Help us! Any thought, feedback or (hopefully not!) insult is welcome!

Developed by @meetecho

janus-gateway's People

Contributors

damonoehlman avatar

Watchers

Navid Nikpour avatar  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.