Git Product home page Git Product logo

mumble-web-proxy's Introduction

mumble-web-proxy

mumble-web-proxy is a Mumble to WebSocket+WebRTC proxy.

The Mumble protocol uses TCP for control and UDP for voice. This proxy bridges those to WebSocket for control and WebRTC for voice.

While not limited to, its primary use-case is allowing mumble-web to connect to vanilla Mumble 1.2/1.3 servers.

Note that it requires an extension to the Mumble protocol which has not yet been stabilized and as such may change at any time, so make sure to keep mumble-web and mumble-web-proxy in sync.

Installing

Prerequisites

  • Rust 1.45+ (e.g. via rustup)
  • libnice development headers (libnice-devel on Fedora, libnice-dev on Debian)
  • OpenSSL development headers (openssl-devel on Fedora, libssl-dev on Debian)
  • clang (clang on Fedora and Debian)

Building

For now, mumble-web-proxy must be built from source. Pre-built binaries may be provided at a later point in development.

Make sure you have Cargo (Rust's package manager) installed (e.g. via rustup), then run:

git clone https://github.com/johni0702/mumble-web-proxy
cd mumble-web-proxy
cargo build --release

The final binary will be at target/release/mumble-web-proxy.

Running

mumble-web-proxy can only accept insecure websocket connections, so you will want to run it behind some web server which can terminate TLS. See mumble-web's README for an example.

Run mumble-web-proxy --help to see available options. E.g. if you want the proxy to listen on port 64737 and connect to your Mumble server at mumbleserver:64738, run:

mumble-web-proxy --listen-ws 64737 --server mumbleserver:64738

Instead of specifying all the options directly in the arguments, you can also use --config <file> to point mumble-web-proxy at a toml file which contains them:

listen-ws = 64737
server = 'mumbleserver:64738'

Firewalls or NAT

If your mumble-web-proxy is running behind a firewall or NAT, you need to allocate a range of ports to it which it can use for ICE connection establishment.

mumble-web-proxy --listen-ws 64737 --server mumbleserver:64738 --ice-port-min 20000 --ice-port-max 21000

For NATs, you additionally need to provide it with its publicly reachable IP address(es):

--ice-ipv4 1.2.3.4 --ice-ipv6 1:2:3:4:5::6

License

mumble-web-proxy is available under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

mumble-web-proxy's People

Contributors

johni0702 avatar seeba8 avatar

Watchers

James Cloos 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.