Giter Club home page Giter Club logo

opentok-meet's Introduction

Build Status Code Climate Test Coverage

opentok-meet

Opentok app with screen sharing using the WebRTC screen sharing and Archiving features. You can check it out running at meet.tokbox.com.

Mobile Applications

There are a few different mobile applications that have been built to interoperate with this application.

Running locally

  1. If you haven't already, sign up for OpenTok.
  2. Clone this repo
  3. cp config.json.sample config.json
  4. Add your OpenTok apikey and secret to config.json
  5. Create your screensharing extensions by following the instructions at https://github.com/opentok/screensharing-extensions and put your Chrome Extension ID in config.json.
  6. Run redis. You can find instructions for doing this here.
  7. yarn (you will need at least 1GB memory for this step)
  8. If you want to use SSL you will need to generate a key and make sure the server.key and server.crt files are in the main directory. You can find instructions for generating a self-signed certificate here. SSL is recommended so that screen-sharing works and so that you don't have to keep clicking the allow button to allow access to your camera. If you still don't want to use SSL then just update app.js to use http.createServer instead of https.createServer.
  9. npm start
  10. Go to https://localhost:3000

Running on Heroku

  1. If you haven't already, sign up for OpenTok.
  2. Create a Heroku instance
  3. Clone this repo
  4. In the repo run heroku git:remote -a <instance name> to add the remote to github.
  5. Add redistogo heroku addons:add redistogo
  6. Add your OpenTok API Key and Secret and your Chrome Screensharing Extension ID to the environment heroku config:set HEROKU=true OT_API_KEY=<YOUR_API_KEY> OT_API_SECRET=<YOUR_SECRET> CHROME_EXTENSION_ID=<YOUR_EXTENSION_ID>
  7. git push heroku master
  8. Visit your heroku URL

Running Tests

You can run the unit tests using npm test. This command is setup to work correctly in the Travis CI system as well as when running locally. But if you want it to run locally you need to setup a few things. You will need to sign up for Sauce Labs. This service offers free options for Open Source. You will need the following environment variables set.

export SAUCE_USERNAME=<YOUR_SAUCE_USERNAME>
export SAUCE_ACCESS_KEY=<YOUR_SAUCE_KEY>
export TRAVIS_JOB_NUMBER=<ANYTHING>

By default npm test will run the tests in Chrome Stable. If you want to run in different environments you can set the BROWSER and BVER environment variables. eg. export BROWSER=ie BVER=11;npm test. Supported combinations are:

  • ie (10,11)
  • chrome (stable, beta, unstable)
  • firefox (stable, beta, unstable)

These tests are also run in the cloud with every commit and every pull request using Travis-CI and Sauce Labs.

opentok-meet's People

Contributors

aiham avatar aullman avatar bostondv avatar ggarber avatar leahcimic 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

opentok-meet's Issues

Don't let you click the meet.tokbox.com URL

Right now when you click it it goes to that URL inside the app which breaks everything. Instead it should either:

  1. Launch the URL in a new window.
  2. Copy the URL to your clipboard.

Custom URL Handling

Add custom URL handling to the cordova app so that eg. if you go to: otMeet://{room} the app launches and takes you into that room.

hitting backspace in the editor can cause browser to navigate back

if you place your cursor at the very first character in the editor and then hit backspace, some browsers will navigate back. it also happens if you are just trying to delete everything and are mashing the backspace just to get rid of everything (which is how i found the issue).

on other sites, some pages ask you whether you want to navigate away or not, i'm not sure how thats triggered, but i think that might be appropriate here.

Make the screensharing extension ID a configurable parameter

Right now to get screen sharing to work you need to create your own screensharing extension and register it with your domain. Instructions can be found at: https://tokbox.com/opentok/tutorials/screen-sharing/js/#chrome-extension

Then you will need to replace the screensharing extension ID here: https://github.com/aullman/opentok-meet/blob/master/public/js/controllers.js#L70

It would be better if you could just add the extension ID to the config and there was documentation for setting it up in the README.

no camera access in ie plugin

Windows 8.1, ie11

Not sure if this is supported, but the access to the camera was never asked... I was able to enter a meet.tokbox session only with mic (that worked great), but no video.

Needless to say, there is a camera installed, accessed by Skype, Chrome, FF, etc...

add a disclaimer to the UI

for internal testing use at tokbox, we need to add a small disclaimer to the UI with a message along the lines of "this application is used for testing and stabilization of new platform features, you may also use opentokrtc.com for a similar experience that will not be used for testing"

Feature suggestion: Presenter mode

The other day I found that sometimes when somebody is presenting (like during all hands meetings) and there are a 5 or 6 other participants, we observe that the presenter stream struggles to keep up with bitrate because it is competing with the subscriber streams he's seeing as well,
Would be possible to add new "presenter mode", where the person that is presenting clicks that button and automatically switch all the subscribers into restricted frame rate mode?
I think that will give us much better experiences in scenarios where there is a high priority stream over the rest.

Add "Audio-Only" Button

This button would turn video off for yourself and everyone else. Can be useful if trying to conserve bandwidth on mobile.

Get the Info.plist changes into cordova

Right now you have to manually edit OpenTokMeet-Info.plist and add

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
            <key>CFBundleURLIconFile</key>
            <string>Icon-72</string>
            <key>CFBundleURLName</key>
            <string>com.tokbox.meet</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>otmeet</string>
            </array>
        </dict>
    </array>
    <key>UIStatusBarHidden</key>
    <true/>

I think if I made a plugin I could add these plist changes in that.

Cordova app doesn't work anymore

Need to do some more investigating but I spent a few minutes and couldn't get the cordova app to work anymore. It doesn't seem to publish or subscribe...

Handle reconnecting in long running rooms better

This is an issue with the "dishes" room and will become an issue if we put this in meeting rooms. If you get disconnected there is no messaging, it just shows the spinning wheel. It should tell you that you've been disconnected and give you a reconnect button, or attempt to automatically reconnect.

Screen-sharing is broken

It doesn't show up on the subscribing side. I think this is since adding the new IE javascript. I don't think it's publishing the Screen Publisher.

Get the buttons to show up in the cordova version

Get the buttons to show up. Right now they're covered by the subscribers. Unfortunately might need a permanent bar at the bottom. Buttons to include:

Add "Join" Button - pops up UI to let you join another room
Add "Hangup"/"Connect" Buttons - session.disconnect() session.connect()
Add "Unpublish" Button - session.unpublish()

"Restart browser after update" button

Hey!

I tried meet.tokbox.com with ie11 and Windows 8.1. I already had some beta installed of your plugin, and it automatically updated. After that, a window saying "please restart your browser" (or something like that) window appeard, with an "okay" button in it.

When pressing the button, nothing happened. Is that normal?

Green bands in archiving

Hey, Adam

Probably is not a hangout's issue, but there are some green stripes on the bottom of the video when playing the recorded video... Attached image with the problem
image

international char messages in plugin

Windows 8.1, ie11
The "allow access to mic" window has a menu with all the devices configured. My computer is in spanish, so all the microphone devices start with "Micrófono XXX". The first "o" char is messed up in the dialog

Attaching screenshot
screenshot2

sessionId not defined!

this is my node.js version
/usr/local/node.js/bin/node -v
v0.10.33

error info:

TypeError: Cannot read property 'sessionId' of undefined
at /home/opensource/opentok-meet/app.js:125:40
at /home/opensource/opentok-meet/node_modules/opentok/lib/opentok.js:332:21
at Request._callback (/home/opensource/opentok-meet/node_modules/opentok/lib/client.js:48:14)
at Request.self.callback (/home/opensource/opentok-meet/node_modules/opentok/node_modules/request/request.js:373:22)
at Request.emit (events.js:98:17)
at Request. (/home/opensource/opentok-meet/node_modules/opentok/node_modules/request/request.js:1318:14)
at Request.emit (events.js:117:20)
at IncomingMessage. (/home/opensource/opentok-meet/node_modules/opentok/node_modules/request/request.js:1266:12)
at IncomingMessage.emit (events.js:117:20)
at _stream_readable.js:943:16

1500 "Session.publish :: undefined"

I have created .key and .crt files in the same directory.
But by creating a new room shows the error as mentioned here.
"1500 "Session.publish :: undefined"
OT.exception :: title: Unable to Publish (1500) msg: Session.publish :: undefined

How to solve it..?

layout issue in mozilla firefox

a few streams failed to connect and it seemed to throw the whole layout engine off. screenshot provided. the top desktop screen was set to be primary using the stretch button.
screen shot 2014-05-28 at 8 18 45 pm

Archiving is broken

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.