Giter VIP home page Giter VIP logo

tubertc's Introduction

Tuber-time Communications

Deploy Code Climate Slack Status

Peer-to-peer video chat that works. It's tuber-time!

Features

  • Video chat with up to 15 people (limited only by user interface)
  • Buttons to selectively mute audio and turn off video
  • Client and server written in a single language: JavaScript
  • Supported without client software by browsers with WebRTC

Anti-Features

  • Does not require client software
  • Does not require a Google+ account
  • Does not send video stream through a 3rd party
  • Does not spike your CPU at 100% utilization

Requirements

Install to Heroku

tubertc supports Heroku as a demonstration platform. Deployment can be done via the one-click Deploy to Heroku button or the commands below:

heroku login
git clone https://github.com/trailofbits/tubertc.git
cd tubertc
heroku create --http-git
git push heroku master
heroku ps:scale web=1
heroku open
heroku logs --tail

Configuration

The server port, debug level, and SSL settings are configured via the settings.json file. tubertc uses port 8080, debug mode, and HTTP by default.

Testimonials

tubertc is the most usable open source video chat I've seen

-- Kyle McDonald

FAQ

I'm using Chrome and I get a PermissionDeniedError

Chrome 47 and higher block non-TLS access to WebRTC. Try accessing Tuber with HTTPS. If you would like to help us develop Tuber, please consider writing tools that assist with the creation and installation of TLS certificates for local installations.

Some users can't send or receive audio/video

Tuber has trouble talking with users behind NAT. Supporting users behind NAT requires a properly configured and tested STUN/TURN server. As it stands, Tuber works fine on most corporate LANs but, due to this issue, has trouble working reliably on the open internet.

tubertc's People

Contributors

computerality avatar dguido avatar djcas9 avatar ericqweinstein avatar h3xx avatar ianwalston avatar kindman1031 avatar myadhdoutlet avatar pmarkowsky avatar yying avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tubertc's Issues

Helper utilities for setting up TLS

If you're deploying this to an internal network, you might skip the step of creating an TLS certificate. This is problematic because getUserMedia won't work post-Chrome 47 for non-HTTPS connections.

Tuber should come with a set of helper utilities for creating a TLS certificate so this is less of a problem.

Need someone to look over the code.

Rewrote the entire UI and underlying easyrtc implementation. It is working in my limited testing scenario but I would like another pair of eyes to take a look at it. At least, I hope it works as well as before and that the microphone/camera toggle buttons are more intuitive.

Ansible script for the server

This might be nice for easier corporate deployments. Although tuber works fine on a flat corporate lan by itself, it would be better if this installation method included a stun/turn server too.

Implement chat commands

Create a framework for intercepting chat messages with the prefix '/' and allow for the implementation of custom chat commands.

First custom chat command should be one to "ping" either the room or a specific user in the channel. This "ping" should be done in the form of playing a sound and popping up a notification.

Fix the functionality of the initial enable/disable camera, microphone.

Currently, disabling the camera or microphone initially will disable the device for the entire duration of the video call. This is not ideal and probably confusing to the user. An ideal solution would be to only disable camera/microphone if the related device is not found. If the user voluntarily disables the camera/microphone, it should be toggle-able during the video call.

This should not be too difficult to implement. For initial camera/microphone disabling, we should have JavaScript that disables the camera/microphone immediately after getUserMedia.

Start with the video off

Hangouts generally starts with the video off, or asks before you want to join a chat. Maybe we can improve the call joining screen to let you configure video?

Make chat pane resizable by the user

The current chat pane is 80/20 which might be a bit small, perhaps add a resizable pane (similar to IFRAME) or a button that changes the ratio to 60/40.

Naming

A competitor has joined the game:

  • Afternoon Citadel
  • syscall

Add tests

With vows or mocha or whatever people use these days. Travis-CI is already enabled for this repo, I just need to add in the button for it.

Bundle or auto-configure a STUN/TURN server

Figure out how to handle people using Android Chrome

Right now, if a user uses Chrome on Android and suspends the device (pressing the power button), the user is does not automatically hang up from the call. Is there a way to detect this scenario and force a hang up?

Closing tubertc disables sound on cgc amd64 kernel

System setup:

  • Ubuntu 14.04 desktop
  • xubuntu-desktop
  • CGC amd64 kernel (cgc kernel changes were not rebased onto ubuntu kernel sources, so this could just be a kernel issue).

How to duplicate:

  1. Open up a tubertc video conference. Make sure sound is not muted.
  2. Close tubertc.
  3. Sound will now be muted.

Chat input field UI issues

The chat input field can scroll horizontally and refuses to return to the beginning cursor position after sending the message.

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.