7eda31315f
* Refactor calendar-sync feature to be loaded on web. For the web part it just adds new property to enable/disable calendar web integration, disabled by default. * Initial implementation of retrieving google calendar events. * Initial implementation of retrieving microsoft calendar events. * Fixes comments. * Rework to use the promise part of microsoft-graph-client api. * Moves dispatching some actions, fixing comments. * Makes sure we do not initializeClient google-api client multiple times. * Do not try to login when fetching calendar entries. The case where there is a calendar type google selected, but not logged in, trying to login on loading welcome page will show a warning that it tried to open a popup, which was denied by browser. * Updates profile display data on sign in. * Propagate google-api state to calendar-sync only if we use google cal. * Adds sign out action. * Clears the event listener when the popup closes. * Clears calendarIntegrationInstance on signOut. * WIP: UI for calendar settings, refactor auth flows * Clean up some unused constants, functions and exports. * break circular dependency of function and constant * Exports only isCalendarEnabled from functions. * Checks isSignedIn when doing fetchCalendarEntries on web. * address comments List microsoftApiApplicationClientID in undocument config. remove unused SET_CALENDAR_TYPE action use helper for calendar enabled in bootstrap reorder actions reorder imports change order of signin -> set type -> update profile add logging for signout error reword setting dialog desc to avoid redundancy add jsdoc to microsoft button props reorder calendar constants move default state to reducer (not reused anywhere) update comment about calendar-sync due to removal of getCalendarState update comment for getCalendarIntegration remove vague comment alpha order reducer, return default state on reset alpha order persistence registry remove unnecessary getType from apis update comments in microsoftCalendar alpha order google-api exports, use api.get in loadGoogleAPI set jsdoc for google signin props alpha order googleapi methods fix calendartab docs * Moves fetching calendar from APP_WILL_MOUNT to SET_CONFIG. The web part needs configuration in order to refresh tokens (Microsoft). * Fixes storing token expire time and refreshing tokens in Microsoft impl. * Address comments updateProfile changed to getCurrentEmail rename result to results stop storing integration in redux, store if ready for use use existing helpers to parse redirect url * update jsdocs, get google app id from redux * clear integration instead of actual sign out |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
android | ||
connection_optimization | ||
css | ||
debian | ||
doc | ||
flow-typed/npm | ||
fonts | ||
images | ||
ios | ||
lang | ||
modules | ||
react | ||
resources | ||
service | ||
sounds | ||
static | ||
.buckconfig | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.js | ||
.flowconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
.watchmanconfig | ||
CONTRIBUTING.md | ||
ConferenceEvents.js | ||
LICENSE | ||
Makefile | ||
README.md | ||
analytics-ga.js | ||
app.js | ||
base.html | ||
conference.js | ||
config.js | ||
connection.js | ||
favicon.ico | ||
index.android.js | ||
index.html | ||
index.ios.js | ||
interface_config.js | ||
logging_config.js | ||
package-lock.json | ||
package.json | ||
plugin.head.html | ||
title.html | ||
webpack.config.js |
README.md
Jitsi Meet - Secure, Simple and Scalable Video Conferences
Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses Jitsi Videobridge to provide high quality, secure and scalable video conferences. You can see Jitsi Meet in action here at the session #482 of the VoIP Users Conference.
The Jitsi Meet client runs in your browser, without the need for installing anything on your computer. You can also try it out yourself at https://meet.jit.si .
Jitsi Meet allows for very efficient collaboration. It allows users to stream their desktop or only some windows. It also supports shared document editing with Etherpad.
Installation
On the client side, no installation is necessary. You just point your browser to the URL of your deployment. This section is about installing the Jitsi Meet suite on your server and hosting your own conferencing service.
Installing Jitsi Meet is quite a simple experience. For Debian-based systems, we recommend following the quick-install document, which uses the package system. You can also see a demonstration of the process in this tutorial video.
For other systems, or if you wish to install all components manually, see the detailed manual installation instructions.
Download
Latest stable release |
---|
You can download Debian/Ubuntu binaries:
You can download source archives (produced by make source-package
):
You can get our mobile versions from here:
Building the sources
Node.js >= 8 and npm >= 6 are required.
On Debian/Ubuntu systems, the required packages can be installed with:
sudo apt-get install npm nodejs
cd jitsi-meet
npm install
To build the Jitsi Meet application, just type
make
Working with the library sources (lib-jitsi-meet)
By default the library is build from its git repository sources. The default dependency path in package.json is :
"lib-jitsi-meet": "jitsi/lib-jitsi-meet",
To work with local copy you must change the path to:
"lib-jitsi-meet": "file:///Users/name/local-lib-jitsi-meet-copy",
To make the project you must force it to take the sources as 'npm update' will not do it.
npm install lib-jitsi-meet --force && make
Or if you are making only changes to the library:
npm install lib-jitsi-meet --force && make deploy-lib-jitsi-meet
Alternative way is to use npm link.
It allows to link lib-jitsi-meet
dependency to local source in few steps:
cd lib-jitsi-meet
#### create global symlink for lib-jitsi-meet package
npm link
cd ../jitsi-meet
#### create symlink from the local node_modules folder to the global lib-jitsi-meet symlink
npm link lib-jitsi-meet
So now after changes in local lib-jitsi-meet
repository you can rebuild it with npm run install
and your jitsi-meet
repository will use that modified library.
Note: when using node version 4.x, the make file of jitsi-meet do npm update which will delete the link, no longer the case with version 6.x.
If you do not want to use local repository anymore you should run
cd jitsi-meet
npm unlink lib-jitsi-meet
npm install
Running with webpack-dev-server for development
Use it at the CLI, type
make dev
By default the backend deployment used is beta.meet.jit.si
, you can point the Jitsi-Meet app at a different backend by using a proxy server. To do this set the WEBPACK_DEV_SERVER_PROXY_TARGET variable:
export WEBPACK_DEV_SERVER_PROXY_TARGET=https://your-example-server.com
make dev
The app should be running at https://localhost:8080/
Contributing
If you are looking to contribute to Jitsi Meet, first of all, thank you! Please see our guidelines for contributing.
Embedding in external applications
Jitsi Meet provides a very flexible way of embedding it in external applications by using the Jitsi Meet API.
Security
WebRTC today does not provide a way of conducting multiparty conversations with end-to-end encryption. As a matter of fact, unless you consistently vocally compare DTLS fingerprints with your peers, the same goes for one-to-one calls. As a result when using a Jitsi Meet instance, your stream is encrypted on the network but decrypted on the machine that hosts the bridge.
The Jitsi Meet architecture allows you to deploy your own version, including all server components, and in that case your security guarantees will be roughly equivalent to these of a direct one-to-one WebRTC call. This is what's unique to Jitsi Meet in terms of security.
The meet.jit.si service is maintained by the Jitsi team at Atlassian.
Mobile app
Jitsi Meet is also available as a React Native app for Android and iOS. Instructions on how to build it can be found here.
Acknowledgements
Jitsi Meet started out as a sample conferencing application using Jitsi Videobridge. It was originally developed by then ESTOS' developer Philipp Hancke who then contributed it to the community where development continues with joint forces!