Commit Graph

87 Commits

Author SHA1 Message Date
Saúl Ibarra Corretgé 7cafa205ee e2ee: stage 2
Adapt to E2EE changes in lib-jitsi-meet. Notably:

---
    e2ee: introduce per-participant randomly generated keys

    This the second stage in our E2EE journey.

    Instead of using a single pre-shared passphrase for deriving the key used for
    E2EE, we now establish a secure E2EE communication channel amongst peers.

    This channel is implemented using libolm, using XMPP groupchat or JVB channels
    as the transport.

    Once the secure E2EE channel has been established each participant will generate
    a random 32 byte key and exchange it over this channel.

    Keys are rotated (well, just re-created at the moment) when a participant joins
    or leaves.
---
2020-09-10 16:06:25 +02:00
Saúl Ibarra Corretgé 2b4f33bef8 e2ee: use a separate bundle for the worker 2020-09-10 16:06:25 +02:00
Hristo Terezov 5e85b5f63a fix(close3): Add close3.js 2020-08-28 11:33:19 -05:00
Saúl Ibarra Corretgé 4cfc8cd7a2 deps: update clean-css (reland)
Fix the incorrect paths (was a breaking change in version 4) by using the
`--skip-rebase` cli option.
2020-07-06 21:16:14 +02:00
Saúl Ibarra Corretgé 6e679f952f redux: refactor loading of middlewares and reducers
Up until now we relied on implicit loading of middlewares and reducers, through
having imports in each feature's index.js.

This leads to many complex import cycles which result in (sometimes) hard to fix
bugs in addition to (often) breaking mobile because a web-only feature gets
imported on mobile too, thanks to the implicit loading.

This PR changes that to make the process explicit. Both middlewares and reducers
are imported in a single place, the app entrypoint. They have been divided into
3 categories: any, web and native, which represent each of the platforms
  respectively.

Ideally no feature should have an index.js exporting actions, action types and
components, but that's a larger ordeal, so this is just the first step in
getting there. In order to both set example and avoid large cycles the app
feature has been refactored to not have an idex.js itself.
2020-06-16 11:24:15 +02:00
Saúl Ibarra Corretgé 4faeb84d2e build: fix using parallell make
We don't support it, so make sure targets run serially.

Fixe: https://github.com/jitsi/jitsi-meet/issues/6647
2020-05-14 11:14:43 +02:00
ludovicm67 bdd129b9a2 feat(analytics): include MatomoHandler by default 2020-05-06 15:32:49 +02:00
ludovicm67 4c635a2a63 feat(analytics): add Matomo support 2020-05-06 15:32:49 +02:00
Pierre Pronchery 73d948d150
Also ship robots.txt in the source package (#5811) 2020-04-10 12:19:11 -05:00
Andrei Gavrilescu 761ac6a730 feat: integrate rnnoise based service for voice activity (VAD) detection 2019-10-04 12:55:18 +02:00
Cristian Florin Ghita 3b750ddd5a Add video background blur 2019-07-04 06:26:32 -07:00
Hristo Terezov 59fc3642a6 feat(amplitude): add mobile implementation 2019-03-12 16:48:08 +01:00
Hristo Terezov e5a8d95f1f feat(Amplitude): Integration. 2019-01-07 14:32:31 +00:00
Radium Zheng 0827e02de9 use official repo for libflac.js 2018-08-08 09:19:53 +10:00
Radium Zheng 5daa91ec1b update libflac.js to 4 and use proper fork 2018-08-08 09:19:28 +10:00
Radium Zheng 07bc70c2f5 Implement local recording
index.js of local recording

local-recording(ui): recording button

local-recording(encoding): flac support with libflac.js

Fixes in RecordingController; integration with UI

local-recording(controller): coordinate recording on different clients

local-recording(controller): allow recording on remote participants

local-recording(controller): global singleton

local-recording(controller): use middleware to init LocalRecording

cleanup and documentation in RecordingController

local-recording(refactor): "Delegate" -> "Adapter"

code style

stop eslint and flow from complaining

temp save: client status

fix linter issues

fix some docs; remove global LocalRecording instance

use node.js packaging for libflac.js; remove vendor/ folder

code style: flacEncodeWorker.js

use moment.js to do time diff

remove the use of console.log

code style: flac related files

remove excessive empty lines; and more docs

remove the use of clockTick for UI updates

initalize flacEncodeWorker properly, to avoid premature audio data transmission

move the realization of recordingController events
from LocalRecordingButton to middleware

i18n strings

minor markup changes in LocalRecordingInfoDialog

fix documentation
2018-08-08 09:18:16 +10:00
damencho 31dec2cf99 Cleans libs folder before create it and deploy to it. 2018-05-01 09:15:57 -05:00
Saúl Ibarra Corretgé 169c47ac7f misc: add helper make dev command
Running webpack-dev-server is not enough, so add a helper which takes are of
doing the needful.
2018-04-20 11:37:28 +02:00
virtuacoplenny 59d046dca9 feat(info): new dialog design (#2452)
* feat(info): new dialog design

- Add display of a dial in number.
- Add a static page to show a full list of dial in numbers.
- Add password management.
- Invite modal will be changed soon to remove password and
  dial-in.

* squash: add classes for torture tests

* squash: class for local lock for torture tests

* squash: more classes for torture tests

* squash: more classes, work around linter

* squash: remove unused string?

* squash: work around linter and avoid react warnings

* squash: pixel push, add bold

* squash: font size bump

* squash: NumbersTable -> NumbersList

* squash: document response from fetching numbers

* squash: showEdit -> editEnabled, pixel push padding for alignment

* squash: pin -> conferenceID

* squash: prepare to receive defaultCountry from api
2018-02-13 13:46:47 -06:00
hristoterezov 083f6b400b chore(capabilities.json): deploy 2018-02-01 17:21:52 -06:00
hristoterezov 4c65262a87 fix(browser-caps): Deploy. 2018-01-25 10:44:24 -06:00
bgrozev 090f2f9ccb Restructures the analytics events (#2333)
* ref: Restructures the pinned/unpinned events.

* ref: Refactors the "audio only disabled" event.

* ref: Refactors the "stream switch delay" event.

* ref: Refactors the "select participant failed" event.

* ref: Refactors the "initially muted" events.

* ref: Refactors the screen sharing started/stopped events.

* ref: Restructures the "device list changed" events.

* ref: Restructures the "shared video" events.

* ref: Restructures the "start muted" events.

* ref: Restructures the "start audio only" event.

* ref: Restructures the "sync track state" event.

* ref: Restructures the "callkit" events.

* ref: Restructures the "replace track".

* ref: Restructures keyboard shortcuts events.

* ref: Restructures most of the toolbar events.

* ref: Refactors the API events.

* ref: Restructures the video quality, profile button and invite dialog events.

* ref: Refactors the "device changed" events.

* ref: Refactors the page reload event.

* ref: Removes an unused function.

* ref: Removes a method which is needlessly exposed under a different name.

* ref: Refactors the events from the remote video menu.

* ref: Refactors the events from the profile pane.

* ref: Restructures the recording-related events.

Removes events fired when recording with something other than jibri
(which isn't currently supported anyway).

* ref: Cleans up AnalyticsEvents.js.

* ref: Removes an unused function and adds documentation.

* feat: Adds events for all API calls.

* fix: Addresses feedback.

* fix: Brings back mistakenly removed code.

* fix: Simplifies code and fixes a bug in toggleFilmstrip

when the 'visible' parameter is defined.

* feat: Removes the resolution change application log.

* ref: Uses consistent naming for events' attributes.

Uses "_" as a separator instead of camel case or ".".

* ref: Don't add the user agent and conference name

as permanent properties. The library does this on its own now.

* ref: Adapts the GA handler to changes in lib-jitsi-meet.

* ref: Removes unused fields from the analytics handler initializaiton.

* ref: Renames the google analytics file and add docs.

* fix: Fixes the push-to-talk events and logs.

* npm: Updates lib-jitsi-meet to 515374c8d383cb17df8ed76427e6f0fb5ea6ff1e.

* fix: Fixes a recently introduced bug in the google analytics handler.

* ref: Uses "value" instead of "delay" since this is friendlier to GA.
2018-01-03 13:24:07 -08:00
hristoterezov 3b35bbd5cf chore(Makefile): add alwaysontop.js to Makefile 2017-11-10 12:02:13 -06:00
hristoterezov 96e83989a5 feat(device_selection): Implement popup 2017-06-07 09:23:40 -05:00
Lyubo Marinov 5106f9f958 Process do_external_connect.js through webpack 2017-04-11 18:29:18 -05:00
Saúl Ibarra Corretgé bc60bd23b2 build: remove no longer needed Makefile rule
- we now use pinned dependencies, so there is no need to run npm update
- AFAICT the node-sass workaround is no longer needed
2017-03-24 11:02:09 +01:00
Aaron van Meerten afc96808e8 added support of static directory in debian install and Makefile for source package 2017-03-20 19:22:06 -05:00
Ilya Daynatovich 2e81b8493e Introduce unsupported browser page 2017-01-26 07:27:31 -06:00
Lyubomir Marinov 818ddad2c3 Do not distribute unminimized artifacts
The build process is capable of bundling both minimized and unminimized
artifacts for lib-jitsi-meet, jitsi-meet and external_api. However,
there does not seem to be a good reason to (1) always wait for the
building of the two versions and (2) distributing the unminimized
artifacts.
2016-09-29 11:31:28 -05:00
Lyubomir Marinov c8f79dbd2d Switch from Browserify to Webpack 2016-09-29 11:31:28 -05:00
hristoterezov c7cd771de2 Revert "Switch from Browserify to Webpack" 2016-09-28 16:37:24 -05:00
Lyubomir Marinov ce3090b8fe Do not distribute unminimized artifacts
The build process is capable of bundling both minimized and unminimized
artifacts for lib-jitsi-meet, jitsi-meet and external_api. However,
there does not seem to be a good reason to (1) always wait for the
building of the two versions and (2) distributing the unminimized
artifacts.
2016-09-28 13:57:53 -05:00
Lyubomir Marinov f6662745d1 Switch from Browserify to Webpack 2016-09-28 13:57:53 -05:00
damencho bfc174ffdc Installs node-sass on every update, fixes a problem in some operating systems. 2016-09-12 12:02:43 -05:00
Ilya Daynatovich e28f646cef Fixed styles for unsupported browser page 2016-09-08 11:15:17 -05:00
Ilya Daynatovich 4044e11da2 Set up SASS and change base font 2016-09-02 12:55:33 +03:00
damencho 53288fc997 Moves analytics js next to libraries so it can be dynamically loaded. 2016-08-10 13:28:15 -05:00
bgrozev d2a6c4a97f Merge pull request #719 from jitsi/jibri-retries
Jibri retries
2016-07-11 15:53:25 -05:00
damencho 3e473ea9d7 Executes npm update before making.
Executes npm update before making, in order to update latest version of packages like lib-jitsi-meet which are updated from git. The npm install method is supposed to only resolve dependencies and not update to latest versions.
2016-07-08 10:52:04 -05:00
paweldomas 62dd54ab31 Display spinner for RETRYING recording status 2016-07-08 14:53:00 +02:00
hristoterezov 21c2469dd6 Removes unnecessary whitespaces from Makefile 2016-06-20 13:23:00 -05:00
hristoterezov 02f176c75a Changes the implementation of the iframe API to use postis 2016-06-17 15:35:40 -05:00
Boris Grozev d79971a737 An initial version of a "keyboard shortcuts" help panel. 2016-06-14 20:16:38 -05:00
hristoterezov 8deb003ef6 JWT client support 2016-06-13 16:11:44 -05:00
Boris Grozev 62fd07e98e Copy the map files for the non-minified version to the deploy dir. 2016-06-10 19:44:27 +00:00
Boris Grozev ee8a270a36 Don't run npm update, because it sometimes causes the lib-jitsi-meet npm link to be removed. 2016-06-10 19:43:29 +00:00
Etienne CHAMPETIER 5d9d6b4642 Fix missing base.html in source-package
Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>
2016-06-01 15:58:55 +02:00
damencho c5e7ca8a26 Adds non-minified versions of app.bundle and lib-jitsi-meet to the libs folder which is included in the deb package. 2016-05-09 11:49:04 +03:00
hristoterezov c3338d3bf2 Implements custom context menu to flip the local video 2016-05-06 20:50:37 -05:00
Etienne CHAMPETIER ca31bb935b Fix "make source-package"
Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>
2016-04-26 13:51:09 +02:00