Homekolab.org
Diffusion kolab 944d24a6e7d4

Mediasoup based Kolab Meet

Authored by mollekopf on Oct 28 2021, 12:51 PM.

Description

Mediasoup based Kolab Meet

Summary:
Squashed commit of the following:

commit 5a393cb02c68f85c53899d7fbf372fb18a8a1eae
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Oct 27 13:36:43 2021 +0200

CS fixes

commit 29f8c8e547988335b032423bc16adfada4b81697
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Oct 27 13:34:06 2021 +0200

Remove TODO

commit c0922153f147459171996fafa5b2db3ffacf4427
Merge: ff4d0912 92065832
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Oct 27 13:01:49 2021 +0200

Merge branch 'dev/kolabmeet' of ssh://git.kolab.org/source/kolab into dev/kolabmeet

commit ff4d09123788f80c2a77a7080fc1ae07150da40b
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Oct 27 12:58:30 2021 +0200

Use full uuid as room session identifier

commit 18c83a682def5c96780ba9245f17ba71658ffae2
Merge: 6b33c381 05652e38
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Oct 27 12:19:57 2021 +0200

Merge branch 'master' into dev/kolabmeet

commit 92065832688aa16dbc197e41796351a441107de0
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Oct 26 16:43:26 2021 +0200

The room is removed in the close event in server.js

commit 3ec0f9b8ab8876c9d51b63fbfcf2354f968e6ad5
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Oct 26 16:35:05 2021 +0200

We have to send signals I'm relatiely sure, so remove TODO

AFAIK mediasoup will not send any signal to the client, this must be
done by our implementation.
The observer signal on the client side is triggered by our own call to
e.g. client.pause() and is primarily useful other parts of the
application, but doesn't save us the signaling.

See also https://mediasoup.discourse.group/t/consumer-observer-on-pause-fn-event-is-not-emitting/2216/3

commit 6b33c381ec7a05cc9280ad27ab610b2b58467c32
Merge: 432cfb78 8396cd3f
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Oct 19 13:40:43 2021 +0200

Merge branch 'master' into dev/kolabmeet

commit 432cfb78aff041b24218f448997189b3078ad52a
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Oct 18 13:36:38 2021 +0200

Fix chat message notification badge

commit 462a7793cad2ad99bde44c399aaed69e8dece994
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Oct 18 13:30:03 2021 +0200

Update npm deps

- lock mediasoup to v3.8, the new v3.9 version is not working with our code
- use socket.io v4
- fox some vulnerabilities

In result the minifed room.js file is 36 KB smaller

commit 3081428288e09aaa3b2175c2f78115037d0b6d7d
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Oct 18 11:55:35 2021 +0200

Improve logging websocket response data

commit 3055d7e4e0e9187582f599f609219ee804e0ec73
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Oct 8 23:23:34 2021 +0200

Note about the turn url transport parameter

commit 69563b80f1b81757d0b56763d11d9c50525fc2f1
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Oct 8 10:18:28 2021 +0200

Meet readme

commit 11f6cb875808beaf5cfbc26bdb8173f5dbfb949d
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Oct 8 10:17:26 2021 +0200

Dump stats and entries for all instead of just last

Should probably be enhanced to allow filtering by peer or room as well

commit 359306986053cbc8ba826e13524afbc3ffa2c053
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 17:54:29 2021 +0200

Set the MEET_SERVER_URL to something that work by default

The meetmedia prefix is necessary, and https does not currently work for
the api (probably because of the httpOnly setting?).

commit 1ce16ba084ccb63a7d1644159d80a813de53f092
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 17:38:12 2021 +0200

MEET_PUBLIC_IP => MEET_WEBRTC_LISTEN_IP

To be clear what this is used for.

commit 90e55cc8d3444ae893c290a7076810526f83f4f8
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Oct 6 14:55:55 2021 +0200

The new mediaserver is running on 12443

commit 1fdb7ca8e5c65dcb930c38f5d1cc83e73f03ed2d
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 17:25:08 2021 +0200

Log the transport info

commit 97de76f1bed7d41150a776ad77d4106e2f225703
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 16:15:37 2021 +0200

Remove an existing node_modules entry to make room for the symlink

commit 8b0f1b9ce49ff71deebadedecee70d65588c91d8
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 16:15:20 2021 +0200

Readme info

commit cad3221a0c3a5d1da561a7a50298efee24ac7b6f
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 16:03:26 2021 +0200

Avoid using a disfunctional fallback

127.0.0.1 seems to be a bad idea in general.

commit 3f8d48f74e9670eb9b2b7a4dd54487a2e40dcace
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 15:52:20 2021 +0200

Monitor the transport connection state

When trying to connect to 127.0.0.1 on firefox, it will just silently
never reach the connected state and now media will be streamed.

commit 9a7d0e3416da5f73a8e1eeaff750790e3cc170cc
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 12:07:50 2021 +0200

Fixed performancetestbench

commit 836afcd438af7ef61d27ebef8f9c806b339edb1c
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Oct 7 12:04:44 2021 +0200

Fixed meet test

commit cb2af46c952a15e2b85db2be9f2c0462f825daff
Merge: 4c9db1b3 b6665965
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Oct 6 09:23:27 2021 +0200

Merge branch 'master' into dev/kolabmeet

commit 4c9db1b3885e49bb93c81c0dd93c4f9d3c1efe08
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Oct 6 08:58:06 2021 +0200

OpenViduRoomSeeder -> MeetRoomSeeder

commit a7a3b1a9d3108fd1d64f63ffd6cd0927a2280043
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Oct 5 11:42:59 2021 +0200

Remove unused openvidu override file

commit 38806e5ca179bf9d94b3f6b22d22b1028e9b97cc
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Thu Sep 23 15:37:36 2021 +0200

app/config/openvidu.php -> app/config/meet.php

commit 106452f7c6f431a75daa85644e67ee01bd15f787
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 17 15:58:59 2021 +0200

Rename: OpenVidu -> Meet

commit c1f097193e6a55c5a6f8e23c20f17fd1e08edf15
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 17 14:27:19 2021 +0200

Fix subscriber dropdown menu

commit 340fbfa16048309aa12d5b08ba9df3e459dec6a3
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 17 13:02:16 2021 +0200

Rename: openvidu -> meet

commit 78079a7370c37d03b813e07207884a7a3790358f
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 17 12:10:24 2021 +0200

Kolab4 <-> Meet server API authentication (with configurable tokens)

commit 369515b690e23b73f4e301c893368eca1bc15d3d
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Thu Sep 16 15:04:31 2021 +0200

Screen sharing

commit 1ba97bb2849d72852850b7b47a99a82099c0c1a7
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 14 13:19:39 2021 +0200

Make openvidu:sessions command working

commit 90ecc832cc08cba1b1cd1fd1edbff74794c8307d
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 14 13:06:02 2021 +0200

Convert tabs to spaces

commit 6bb2c675d2f38328f3d7427b23229d15354cfb12
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 14 12:56:34 2021 +0200

CS fixes

commit 706982f7e640a561d30158c358bd459404c45d82
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 14 10:42:47 2021 +0200

Get rid of cookies, session, redis

commit de87f86af7c001cc0c713f444f5f6bdbb7eb1fbe
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 14 09:44:40 2021 +0200

Peer authentication and some server code cleanup

commit 6d2c303523911f5734afdae8046bf13d1f325a5f
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 10 15:17:40 2021 +0200

Ignore browser console errors/warnings irrelevant for testing

commit 4a754bf9e0253a1e740fb4088298b15bdcbd594d
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 10 14:54:52 2021 +0200

Fix bugs regarding language interpreters

commit 546d086278eaed66b39512ee190df852f042ea9d
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 10 13:15:44 2021 +0200

Fix various bugs and make tests happy

commit 31663e351ac10aa59de8c920e6520461d0b0051b
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Thu Sep 9 12:56:36 2021 +0200

Add webhook tests

commit a0f6681cfcae9cd13587b282e26e5fcf07edc3dc
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Sep 8 15:34:56 2021 +0200

Move join request accept/deny handling to websocket + webhook

From now on we do almost everything via websocket, it means that server.js
is our authorization point for all operations. Only authorizing the room owner
to create a session is done via Kolab4 API.

commit eaee5387fe57250736565217baf07ecb134dc670
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Sep 8 13:28:44 2021 +0200

Various fixes regarding session state

commit 026be94b075372340dcac8b361e3f0ae04b534d2
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 7 14:29:59 2021 +0200

Fix some media setup issues

commit bb3c8a607e7b48772fa314d2ee84cbfcd8f1fedb
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 7 13:19:21 2021 +0200

Use pauseConsumer/resumeConsumer requests

commit 547f6564844fd2d661955c7725fd99826e7f6dd4
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Sep 7 12:31:19 2021 +0200

Room closing webhook and some fixes and cleanups

commit 8cad147cd156f1eadaeed2a7be6818e97fb3abb9
Merge: 3ed5cf72 8f367a9e
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Sep 6 15:44:27 2021 +0200

Merge branch 'dev/kolabmeet' of ssh://git.kolab.org/source/kolab into dev/kolabmeet

commit 3ed5cf7200bea6e0c98a1970daadce61f97ba51c
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Sep 6 15:43:41 2021 +0200

Uncomment plain transport commands

commit 8f367a9e97e1d3d4e2582ea116a66c6b92672ca5
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Sep 6 15:38:01 2021 +0200

wording

commit 95cb327a904ac9cdf3abeff9e8ac2c28215d1268
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Sep 6 15:33:08 2021 +0200

Language interpreters

commit 59d44e089b1e6ae201aae4e1c02c52a028fb011f
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Sep 6 11:52:52 2021 +0200

Use time limited TURN credentials

Instead of adding random username/password combinations to a redis db,
that then has to be maintained somehow, we can use the mechanism for
time-limited turn credentials that are based on a static secret.

Instead of a completely static secret it would be possible to store a
secret in the redis db, that could be rotated on an interval.

commit 0849eef874f79aef80542156c90a101e3b87b872
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Sep 6 10:35:52 2021 +0200

Join requests

commit 86bf683e18dabefd21fd9e3c3da6c05eb5e572a7
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Sep 6 08:46:32 2021 +0200

Cleanup

commit acac5ccfc6295959eae8503b02a12ed33fb2633c
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Sun Sep 5 09:37:55 2021 +0200

Scalability docs

commit 4768c12c8a8935abe0c5389e2b9d7885f9ba5aeb
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Sat Sep 4 22:49:13 2021 +0200

Less noise and wait for mocha to print results before exiting

commit c099bfdf285d2a81565d6fa4db76860b08faef5f
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Sat Sep 4 14:02:25 2021 +0200

Fixed lint issues

commit 352ff4e76745189b5e9d25b7b7a00bb8bd1f5f0c
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Sat Sep 4 13:59:00 2021 +0200

Test fixes

commit 68b366060274552f143429fade70fb375a51d72d
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Sat Sep 4 13:40:10 2021 +0200

Fixed lint issues

commit 3d4e135d579e1be5ea28b47ec32e11cf6fd4021b
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Sat Sep 4 13:35:40 2021 +0200

Applied npm run lint-fix

commit dc44eeb892fe5b6539deac0ce6b07b7fc2b475ce
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Sat Sep 4 13:23:49 2021 +0200

This is required for the performance test

commit 48323eb68b9d489b0f50b4677abb6f5db6e110a2
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 3 15:18:22 2021 +0200

Cleanup

commit 311af3e392441d33a9a4a14297bba67735ea79e0
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 3 13:51:33 2021 +0200

Audio volume meter

commit 1b050e278516b15937f36cb04f574cce12fcf06c
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 3 11:59:57 2021 +0200

Move makePicture() to Media

commit 99a078ceb8c2c9f0568b33e261e4dd871eee5c0e
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 3 11:41:51 2021 +0200

turnServers -> iceServers in the API

commit 845c944a995ca9fb9da247d5cd261ee3a84351cf
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Sep 3 11:31:38 2021 +0200

Switching publisher/subscriber role, devices setup dialog

commit b1021a0301707b4f6ef655f772b2a0ed779b8bb2
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Sep 2 14:50:52 2021 +0200

Register performancetestbench script

commit 140fa59d62015e1dade9a70d25f3f6ee09822a9a
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Sep 2 14:50:14 2021 +0200

Prepared indent rule

commit 89f8aee6d1378dfa5a61cab72c40ab54eec65748
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Sep 2 13:33:40 2021 +0200

Less noise by default

commit 11b3fd5e11b47d38be9e23ce5c11979d9fe75992
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Sep 2 13:25:35 2021 +0200

Prepare fixing the brace style

commit d7e02e9de73085074086e44abd74b3cba5f363c8
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Sep 2 12:03:49 2021 +0200

Probably shouldn't do stats per room but this will work for now

commit 7724ab6116af6be4576aee3e59c526d6d34488b7
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Sep 2 08:47:07 2021 +0200

Removed lastN tracking

This feature was used to only show the last N participants that joined a
room.

commit ed5ca10c4e7ef090b198e09a4bc21ec03ae65362
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 22:38:06 2021 +0200

fixup

commit 4e15480c982060e8e139b65425431293db35bd11
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 20:56:39 2021 +0200

More event tracing prepared

commit de66e7b4f0dcaed14c9a74906f3281add98c7761
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 20:49:29 2021 +0200

performancetestbench

The performance testbench can now populate the server with peers,
each streaming a video feed to the server, and receiving a stream of
data to udp sockets (not yet 1 stream per peer though).

commit 8edae70de181c7f3f8d6ccc0e6fc96a7e55a6376
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 12:22:27 2021 +0200

A an npm test target and convert tabs to spaces

commit 6e497b5524ae1018ee6246881d5e1a75703ccfcb
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 12:17:01 2021 +0200

Create two peers that each send a stream to the server

Now i have to figure out the consumer side of it

commit 64b134a9708d65a6ca0966452383ab90bbfe04a2
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 12:15:34 2021 +0200

Producer packet tracing

(very useful for debugging)

commit 6996789ca99d949302c7475f282a120bdadd58c8
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 12:15:03 2021 +0200

Refer to other peers instead of joined peers

commit 3f0ed65c683036e3018400774152ab7874a00ab3
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 12:14:38 2021 +0200

Made number of workers and scale size configurable

commit d20b683b6413791b4b28f77350114e79d052ee18
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Sep 1 09:44:30 2021 +0200

Streaming to the server works

commit e29ce93a123b052ddb718b8a8308853ae8df0e95
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Aug 31 22:40:18 2021 +0200

Attempt to stream media to server via ffmpeg

Doesn't work yet

commit fcda463a6763cc1859bd0ac0bc01c3731e01d82a
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Sep 1 11:04:08 2021 +0200

Dismissing users and hand raising

commit 45f9418b9e0f8163b07b3faed8b6dc7b810a85e1
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Aug 31 12:41:35 2021 +0200

Closing the room (via websocket now)

commit 4eef5047f4a8fe644a3bf04196c819db3911125a
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Aug 31 11:38:15 2021 +0200

Tests

commit 17dba34e2bee967f21bb2a2a5d9fe97e66870f69
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Aug 30 15:12:37 2021 +0200

Basic functionality test

I haven't figured out how to test the mediasoup streams yet,
but at least the signaling can be tested this way.

The test will have to be restructured a bit and don't give any useful
information when they fail atm.

Execute with:
    ./node_modules/.bin/mocha

commit e3a76ee0f91a9c192ce682ed6dc38720b9631074
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Aug 30 11:26:14 2021 +0200

Comment what's happening

commit 75aeaf09cf1a263544f106662d29d2e3b9dcd674
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 16:36:07 2021 +0200

Implement nickname updates

commit f821e4a9368fcb80972bae71c00e76b37aa4d1f9
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 14:46:08 2021 +0200

Implement chat

commit d19b527c5f1f563434a6c507a6c3bfb9de242111
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 14:13:38 2021 +0200

Fix typo

commit 9bef44d8684e4472502bba2db31cb8202f69b561
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 14:09:25 2021 +0200

Make mute buttons working

commit 68f0b6e211294bce45e4e0891afd32be8bb599cc
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 11:18:37 2021 +0200

More cleanup

commit 8512008c4b411b5eeb1d1004f3b9e32974bfc6de
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Aug 30 11:09:17 2021 +0200

Fixup for a9e234d26dc22afa099aabbf4a71817fe36125f

commit 4624631c6c948542b17bf147807c0757f19d2666
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 10:59:07 2021 +0200

Refresh package-lock.json

commit 3b1128d5f1791b99a1c6d851230f6ed303a1cc50
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 10:35:54 2021 +0200

Move userRoles.js to lib/

commit 5cf9e4e522eb898b0030190594a2edcaca6a50a2
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 10:34:04 2021 +0200

Cleanup permissions.js and utils

commit 3730d58bd64f62d53dfa8217f9d47ef62f5b7d30
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Mon Aug 30 09:42:45 2021 +0200

Add some more env variables to the config

commit d9684302f4f5b1320a8c8f588a147e450ce69cd8
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 21:42:24 2021 +0200

Renamed to kolabmeet

commit a9e234d26dc22afa099aabbf4a71817fe36125fc
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 21:32:09 2021 +0200

Removed returning peer code

A jwt was used to store in the session that a peer has access to the
room. So a returning user could bypass access control and lobby.
Finally the client would get a different signal without the turn
servers.

It seems we don't require this since we do access control in kolab4, so
returning is not much different to just connecting to a room.

commit b7370e5606c44f5a4c80e1509fa2731dc46c94ab
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 21:11:46 2021 +0200

Get linting to pass

At least with a minimal configuration

commit f2d1301290b242f6c6483c9557e33acc78e44cdb
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 20:20:30 2021 +0200

The authenticated state is no longer a thing

commit b1b2b81056f6ae2c6ec4c374c28777444ca1e9ff
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 20:13:39 2021 +0200

Joined peers are no longer a thing

commit 31777fa7186fe0a5491b7047f85e29060108dc6a
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 20:01:34 2021 +0200

We don't need the LTI redirect bits or serve static files

commit e1865a532ddfd4458536f1f121b677ab3d5a9bbe
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 19:58:36 2021 +0200

Cleanup

commit 8d69833deead789fe81cbbe3f644870591a1c815
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 19:53:33 2021 +0200

Readme contents

commit 6cb1c95d6ed362240b184f5b439614af6ef12a9a
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 17:29:05 2021 +0200

Print stats of all instead of just the last one

commit 17d02aa73f9918d32a7b06d9d643fe0caf21126e
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 17:07:45 2021 +0200

Detect 127.0.0.1 as localhost as well

I think the actual point is that if the website is served over https,
the websocket must be wss. I'm not sure why a wss socket wouldn't work
locally though.

commit 72d1d74f98a2873b8d7f816818e90130f09a6cdf
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Aug 27 14:36:33 2021 +0200

Improve handling streams of existing participants on session join

commit 76f28a1bde342678fa6be5a0c78e5e1b7d272084
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Aug 27 14:04:24 2021 +0200

Fix communicating user roles

commit bcecd81ebf6aaf38152506554fccdecc9aba1541
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Aug 27 12:28:43 2021 +0200

Use ws:// on localhost, wss:// does not work in my local setup

commit 66e2ffaea2536471e8e0e53e2d1f127d375bc990
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 27 10:41:37 2021 +0200

Add other peers on join

commit 0e022287cd7ffacd4f96766d6d92eaaf9fe3523a
Merge: 0fe180f4 c727cdd6
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Aug 27 10:32:00 2021 +0200

Merge branch 'master' into dev/kolabmeet

commit 0fe180f481ff0d5fa10dcfa280c2e711c1fbb03e
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 26 22:56:14 2021 +0200

Get meet to work over the kolab.io proxy

The api has moved to /meetmedia/api (to not clash with /meet/ that we
use for kolab4 already.
The websocket for signaling is at /meetmedia/signaling.

The websocket is now a wss/https socket, because ws/http just silently
fails in the browser (some security mechanism?).

For nginx proxying the following is required (both pointing to
127.0.0.1:12443 on the local system)

location /meetmedia/api {
	proxy_pass http://127.0.0.1:18006;
	proxy_redirect   off;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Host $host;
	proxy_set_header X-Forwarded-Proto $scheme;
	proxy_no_cache 1;
	proxy_cache_bypass 1;
}

location /meetmedia {
	proxy_pass http://127.0.0.1:18006;
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection 'upgrade';
	proxy_set_header Host $host;
}

commit 628055e78d895e57a485900798c0165dabc5af79
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 26 16:57:58 2021 +0200

Adjust .eslintrc

commit f6336aa5a41805338c5f3ef252e0be9bac72cee6
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 26 16:36:17 2021 +0200

Dropped unnecessary dependencies and updated package.lock

commit 0935d37ea4592a9101b387090d81d867d61d012e
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Thu Aug 26 15:56:28 2021 +0200

Fix media selection on room setup

commit 8579344c11147841195357f33854437a58e95d8d
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 26 15:45:21 2021 +0200

Made redis password optional

commit ec847d9c312cffc13ca961f2db47144ff472ce5b
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 26 15:32:43 2021 +0200

Convert tabs to spaces

commit 36a144f9e910189332a82758e39c149c95e6c941
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 26 15:18:03 2021 +0200

Use environment variables for configuration

commit fdb7b4ad84c2df4b4689e7c88ce05a83c5f28470
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 26 14:56:20 2021 +0200

Cleanup

commit 7fde8971d3b20121f85ffc77111248042a06b1bf
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Thu Aug 26 14:06:20 2021 +0200

Fix audio

commit 55d8735b2baaa0089632af0f8100d67f5cd3996a
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 14:08:30 2021 +0200

Use a single fixed turn server for now

commit 4e929899ff9a7f6c8e81c700c0a5dcafb98b17bd
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 14:06:50 2021 +0200

Some better debug output from coturn

commit 9dbbde083c5c8e1318374773fc169c4dcf316e9c
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 13:53:10 2021 +0200

Get firefox to use the turnservers

commit 71a16e36d403dd3180497d08796a78ecec03e0ab
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 13:22:32 2021 +0200

Use a separate db for the session storage

commit 8f97bacf7cd41b98344c0ba00da9c7a0efbd684f
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 13:22:02 2021 +0200

Cleanup of things we don't need

commit 41da2b2ecbff7881d3ca026c63925fce25c362ae
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 11:16:01 2021 +0200

Do not include the redis server in the meet container

commit 7906bac30d21fbf84b6e8f71eba6dd02e30384a9
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 10:25:04 2021 +0200

Point to kolab-meet

commit 9fbc59330cfc2d59612c4460b77515544ecdf427
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 25 10:24:33 2021 +0200

Run our own coturn

commit cb604f5ddb96c995d2569a55dc8ee437baed8423
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed Aug 25 09:08:03 2021 +0200

Progress on mediasoup client

commit f9c3255f4f043f4e3827c93d0b1f1d3bd01b56ea
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Aug 24 16:46:52 2021 +0200

Signal API

commit 107beba7899cb44452361f366c122d12d90e6b16
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Aug 24 13:10:12 2021 +0200

Create the peer on api call and removed auth token verification

Also set the docker meet image name

commit 7ba921280b69c8c00836d8c8f607da8d3c2d5d04
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Aug 24 13:16:37 2021 +0200

Progress

commit b1b53237d3a7b867e1fafd5200c76bec647eb61b
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Aug 24 11:30:08 2021 +0200

Fix some obvious mistakes

commit 166f99f7c8367e10d0f8d67cd512e53980efd8af
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Aug 24 10:40:31 2021 +0200

Downgrade socket.io-client to a compatible version

commit 2512d11436ea66b7d60d34f4d8f01eea461bc2a7
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Aug 24 10:18:24 2021 +0200

Some work on mediasoup-client

commit d9598d668fa5207e6db3065092ab641e76415253
Merge: 229a1633 593fe829
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Fri Aug 20 14:15:10 2021 +0200

Merge branch 'master' into dev/kolabmeet

commit 229a1633a8e46b04265ccef70e7e5609f6d73f90
Merge: 67e90031 67e1a56f
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Thu Aug 19 13:56:49 2021 +0200

Merge branch 'dev/kolabmeet' of ssh://git.kolab.org/source/kolab into dev/kolabmeet

commit 67e1a56f08e7115178b37427397429217279cb2d
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 19 13:23:10 2021 +0200

Added config.js

commit 0b6f5f4d6293371973961b47aa2a5538480e0c17
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 13 15:12:56 2021 +0200

A first test is passing

commit 2c211ee61554698874ddf8d3173a69f90c2f81d0
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 13 15:12:56 2021 +0200

A first test is passing

commit b9f7a9d6f16df7d6716faaaae2ca8cb7c71930ae
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 13 09:31:17 2021 +0200

Commented things we're not using

commit f1eb8103054bf47804afbc0cc566cc5967deb4d2
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 13 09:31:04 2021 +0200

Stuff

commit d70d3f9a1e5590c2d844b8c082720a46493a2019
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 12 16:28:47 2021 +0200

Build a meet container

commit 873b7c235e420beb77fb9b07499a9a7c98677478
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 12 15:21:48 2021 +0200

Import of edumeet server from 0535c5728edb14bdc97a84a6b064c157796ed90a

commit 67e900314a1ba01b8e783586f791ef32cf4c2a18
Merge: 1f293eab 6cf47624
Author: Aleksander Machniak <machniak@kolabsys.com>
Date: Tue Aug 17 15:49:20 2021 +0200

Merge branch 'master' into dev/kolabmeet

commit 1f293eab83b55213ff324585263cf622867b840e
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 13 15:12:56 2021 +0200

A first test is passing

commit 97b06ad37794bcc1e6e82d38d54a8d08fcae9d27
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 13 09:31:17 2021 +0200

Commented things we're not using

commit 15785f54ae7b97d05bae53662eeee9c85381c9c7
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Fri Aug 13 09:31:04 2021 +0200

Stuff

commit 8d8eca0e8d1881b0ddeed337b5f494b657bdc4e9
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 12 16:28:47 2021 +0200

Build a meet container

commit d892e28a9ead2246e288dfa7743305453ce4706a
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Thu Aug 12 15:21:48 2021 +0200

Import of edumeet server from 0535c5728edb14bdc97a84a6b064c157796ed90a

commit be69392b1649e8c5bb31959fdb42fcaea2316f3b
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 11 15:21:18 2021 +0200

Seed oauth public/private keys from env variable in assemble script

Differential Revision: https://git.kolab.org/D2710

commit b03fd1877596f768044db9aaff67da7ea5b252cf
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Aug 10 17:37:18 2021 +0200

Geolocation support

Differential Revision: https://git.kolab.org/D2704

commit f363f81db3c3f773539f24f2973c0c6d734fe238
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Wed Aug 4 10:37:12 2021 +0200

Consistently use website_domain for api

Differential Revision: https://git.kolab.org/D2698

commit 8b146c2f8e10a0faa722730479dcc053248f6223
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Aug 2 15:09:16 2021 +0200

Greylist alias test

Differential Revision: https://git.kolab.org/D2686

commit 9d42b878ad94e74d6b6324b63280634d1a102e72
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Mar 22 12:36:39 2021 +0100

NGINX Controller, 2fa for client connections and companion app support

Summary:
* Companion apps can register themselves and are used to notify the app
  via firebase (no data besides an id in the firebase notification)
* Authentication attempts are tracked and can be accepted/denied,
which will then succeed/fail future authentication attempts from the
same ip/username pair.

Differential Revision: https://git.kolab.org/D2674

commit 2dab36184bc717d139a0db9c72968cc1d813b7b3
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Mar 22 12:38:50 2021 +0100

NGINX docker container

Summary:
The api requires the connection to come from the right domain, which is
why we configure the nginx auth webhook.

Differential Revision: https://git.kolab.org/D2671

commit afafafddcd06ccb93c5889bc232b6337849a6d23
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Mon Mar 15 18:45:15 2021 +0100

Fix kolab container setup

Summary:
* Use the "kolab" password for the HKCCP database by default (like we assume in
other places)
* Create a user that is accessible via 127.0.0.1. The UPDATE command
does not work with a recent mariadb because the user table has become a
view.

Differential Revision: https://git.kolab.org/D2407

commit 226150e4d19296c069d331de18ef33ca09bbf18a
Author: Christian Mollekopf <mollekopf@kolabsys.com>
Date: Tue Apr 6 15:49:49 2021 +0200

Laravel Passport support

Summary:
Replaces the use of tymon:jwt with laravel:passport.

A password grant client is used create tokens for the webclient in the
same fashion as we used to the tymon:jwt solution.
The same password grant client can be used for other client applications.

Notes:
* We're not currently purging invalidated/expired tokens. This can be
done via artisan command or scheduled task from php.

Differential Revision: https://git.kolab.org/D2494

* Pass the refresh token
* Custom authentication hook for passport
* Added 2fa to user verification
* Rely on second factor authentication in user model
* Disabled unnecessary passport routes
* Fixed password-reset

Differential Revision: https://git.kolab.org/D2978

A trivial meet loadbalancing strategy

Stats WIP

Exit process when done

Restart ICE on a failed transport

Reconnect

Reconnect WIP

These changed for v3

Silence for now

Disconnect but leave the transports intact

Reconnect wip

Close the session if we won't reconnect

Cleanup

Restart ice if the transports are still disconnected on room reconnect

Clear the selfdestruct timeout on join

.env.example fixup

A minimal statistics view

Retrieve the deviceId from settings

This fixes device matching on my laptop where the camera is reported
twice.

More statistics

media cleanup

stats fixup

Cleanup

Catch exceptions during ice restarts

Cleanup

use https only, removed the trust-proxy setting

The trust proxy setting doesn't seem relevant for our usecase,
(it would be if we had to get to client ips from the http requests I
think, but that requires knowing that we're behind a proxy).

A slightly less verbose coturn config

Cleanup

Less noise on the meet server by default

Made https optional again

Cleanup

Stats in api

Removed unnecessary queue

Details

Committed
mollekopfWed, Nov 17, 10:47 AM
Pushed
mollekopfWed, Nov 17, 10:47 AM
Differential Revision
D2978: Mediasoup based Kolab Meet
Parents
rK640c88852003: French localization update
Branches
Unknown
Tags
Unknown
This commit has been deleted in the repository: it is no longer reachable from any branch, tag, or ref.