Commit Graph

236 Commits

Author SHA1 Message Date
damencho 6fe353cfa4 fix: Fixes lua log lines.
When using directly log( the log lines come from `general` not from the module itself.
`Aug 29 19:38:08 general	info	Starting speakerstats for conference...`
2022-08-30 11:24:28 -05:00
Stefan Weil 882d343e8b
chore(typos) fix some typos 2022-08-30 16:21:58 +02:00
wfleischer 09efaecc41
feat(conference) add end conference
Add the ability (for moderators) to end the meeting for everyone.
2022-08-26 20:25:04 +02:00
luzpaz c7f96de787
fix(misc) fix typos
Found via `codespell -q 3 -S ./lang -L miliseconds`
2022-07-14 09:10:08 +02:00
Дамян Минков d981acb94a
fix(breakout-rooms): Stop previous leave timers if any. (#11842)
* fix(breakout-rooms): Stop previous leave timers if any.

* squash: Rename field.
2022-07-12 16:31:43 +03:00
Дамян Минков 4d51aedde0
feat: Adds room info http endpoint jwt protected. (#11738)
* feat: Adds room info http endpoint jwt protected.

Used from dialplan from jigasi for handling passwords in IVR.

* squash: Fixes comments.

* squash: nginx api/rom-info

* fix: Skips tenant checks when enableDomainVerification is false.

* squash: Drops duplicate code and supports multi-shards.

By adding room= parameter in query and tenant prefix for the api we add support for multi-shards setup.

* feat: Enable domain verification by default.

This is used when verifying room access with token_verification module.

* squash: Update docs.
2022-07-12 09:51:13 +03:00
Дамян Минков 6b5a821696 feat: Moves to use jitsi-anonymous by default.
jitsi-anonymous adds by default handling of previd url param, which allows websocket resumption.
2022-07-11 16:17:12 +03:00
abora8x8 15d453de1d
Fix: Speaker stats are not delivered for the breakout rooms (#11644)
* Send speaker stats for brk room

* Fix comments component loaded
2022-06-09 13:15:04 -05:00
Дамян Минков 35572700bf
Enables sending release number from backend. (#11552)
* chore(deps) lib-jitsi-meet@latest

https://github.com/jitsi/lib-jitsi-meet/compare/v1436.0.0+d5c46952...v1437.0.0+966fcd93

* squash: Enables sending release number from backend.
2022-05-18 13:04:49 -05:00
Дамян Минков 1400b6ff0a
feat: Moves luajwtjitsi in jitsi-meet. (#11501)
* feat: Moves luajwtjitsi in jitsi-meet.

* squash: Fix luajwtjitsi name to include lib.
2022-05-09 09:15:12 -05:00
philip-cc 46dd88c91b
feat(jwt) refactor token authentication plugin to use new luajwtjitsi version 2022-04-19 13:06:20 +02:00
Avram Tudor 42703fed47
ref(face-landmarks) refactor namings (#11307)
* ref(face-landmarks) refactor namings

* code review
2022-04-06 12:10:31 +03:00
Дамян Минков be1828d9e9 feat: Updates external-services.lua to latest.
changeset ede9682c2022
https://hg.prosody.im/prosody-modules/file/ede9682c2022/mod_external_services/mod_external_services.lua
2022-03-29 12:29:48 -05:00
Shawn f8628dfeef feat(reservations) add integration with mod_muc_max_occupants 2022-03-24 08:38:34 -05:00
Aaron van Meerten be454137f9
task: mod_muc_password_whitelist prosody module (#11184) 2022-03-21 11:38:21 -05:00
Aaron van Meerten fbe15aaa47
feature: patch for muc_owner_allow_kick in prosody 0.12 (#11142) 2022-03-15 21:15:14 -05:00
Дамян Минков 14cad060cb
fix: Updates token verification hooks priority. (#11105)
* fix: Updates token verification hooks priority.

Set it as the highest priorities, if denying access, better do it earlier.

* squash: Updates values.
2022-03-10 14:28:58 -06:00
Doganbros 7522de033a
feat: Lobby chat (#10847)
* feat(lobby): lobby chat

lobby chat support
knocking participants list updates
knocking participants conditonal checks to show message button
handle lobby chat message events
lobby messages from or to moderators only

Co-authored-by: Fecri Kaan Ulubey <f.kaan93@gmail.com>

* squash: Drop typos.

Co-authored-by: Kusi Musah Hussein <kusimusah@gmail.com>
Co-authored-by: Fecri Kaan Ulubey <f.kaan93@gmail.com>
Co-authored-by: Дамян Минков <damencho@jitsi.org>
2022-03-03 11:29:38 -06:00
nosmicek 40353cf762
fix: Fixes nil error while processing wrong jwt value. Fixes #10970
Co-authored-by: David Mišurec <david.misurec@icewarp.com>
2022-02-17 12:05:39 -06:00
Дамян Минков 04f9ad32e1 fix(breakout-rooms): Adds few nil checks in lua code. 2021-12-23 14:40:39 -06:00
Дамян Минков b084aae212
fix: Generates correct join error for lobby. (#10673)
* fix: Drops wrong x tag.

* fix: Generates correct join error for lobby.

We were adding lobbyroom element in a location that violates the rfc and xmpp errors.
We add now and the correct one and will drop the wrong node when all clients are updated.
https://datatracker.ietf.org/doc/html/draft-ietf-xmpp-3920bis#section-8.3.2

* squash: Add todo comment.

* squash: Updates namespace.
2021-12-22 14:40:20 -06:00
Дамян Минков 09613167a6 fix(breakout-rooms): Adds a check for missing room. 2021-12-16 12:04:53 -06:00
Дамян Минков c8b5043d6b fix: Fixes destroying main room when breakout rooms are enabled.
By the time the timer is fired the room maybe recreated (destroyed and created again) and we do not want to destroy it again. The timer was keeping a reference to the old room and is destroying it without notifying the future occupants(jicofo).
Drop save, as we do not need it before destroying, check lobby.
2021-12-15 21:59:23 -06:00
Christoph Settgast 65589937ea fix(breakout,av-moderation): support non-ascii tenant names
Same applies to tenant names as it applies to room names, as the
tenants/subdomains are prefixed to the room names in prosody.

Signed-off-by: Christoph Settgast <csett86@web.de>
2021-12-07 18:31:36 +01:00
Christoph Settgast a6bc51cff1 fix(breakout,av-moderation): support non-ascii room names
rooms are created in prosody in their urlencoded form, eg täst
becomes t%c3%a4st@conference.jitsi.example.org

As local params = formdecode(query) contains an urldecode, we
need to reencode the room name so that the room can be found in
prosody.

Closes: #10525
Signed-off-by: Christoph Settgast <csett86@web.de>
2021-12-07 18:31:36 +01:00
Saúl Ibarra Corretgé 0be0d6a76e fix(breakout-rooms) fix when using tenants 2021-12-01 13:50:36 +01:00
Saúl Ibarra Corretgé 00a74ca47a fix(breakout-rooms) fix checking if a user is in a room
Breakout rooms are just reserved UUIDs, they need not exist as actual MUCs,
until a participant joins. Thus, take this into account when checking if a
participant is in a room.
2021-11-26 16:18:54 +01:00
Saúl Ibarra Corretgé dd20e8626e fix(breakout-rooms) fix operations when inside a breakout room
Fix not being able to create / remove breakout rooms when the moderator is
inside a breakout room.
2021-11-26 12:51:11 +01:00
Saúl Ibarra Corretgé 4a5982da1f fix(breakout-rooms) make sure the default name is monotonically increasing 2021-11-25 16:50:33 +01:00
Saúl Ibarra Corretgé 1a93da8c35 fix(breakout-rooms) cleanup code 2021-11-24 16:27:05 +01:00
Saúl Ibarra Corretgé 73e8f5703c fix(breakout-rooms) avoid accessing invalid room objects 2021-11-24 16:27:05 +01:00
Saúl Ibarra Corretgé a203a92060 fix(breakout-rooms) simplify code 2021-11-24 16:27:05 +01:00
Saúl Ibarra Corretgé ef93584c2b fix(breakout-rooms) fix error in case main room is no longer available 2021-11-24 16:27:05 +01:00
Werner Fleischer b5faf9f62a feat(breakout-rooms) add breakout-rooms
- implement breakout-rooms
- integrated into the participants panel
- managed by moderators
- moderators can send participants to breakout-rooms
- participants can join breakout rooms by themselve
- participants can leave breakout rooms anytime

Co-authored-by: Robert Pintilii <robert.pin9@gmail.com>
Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
2021-11-19 10:27:34 +01:00
Gabriel Borlea 61684b1071
feat(facial-expressions): add the facial expression feature and display them in speakerstats (#10006)
* Initial implementation; Happy flow

* Maybe revert this

* Functional prototype

* feat(facial-expressions): get stream when changing background effect and use presenter effect with camera

* add(facial-expressions): array that stores the expressions durin the meeting

* refactor(facial-expressions): capture imagebitmap from stream with imagecapture api

* add(speaker-stats): expression label

* fix(facial-expression): expression store

* revert: expression leabel on speaker stats

* add(facial-expressions): broadcast of expression when it changes

* feat: facial expression handling on prosody

* fix(facial-expressions): get the right track when opening and closing camera

* add(speaker-stats): facial expression column

* fix(facial-expressions): allow to start facial recognition only after joining conference

* fix(mod_speakerstats_component): storing last emotion in speaker stats component and sending it

* chore(facial-expressions): change detection from 2000ms to 1000ms

* add(facial-expressions): send expression to server when there is only one participant

* feat(facial-expressions): store expresions as a timeline

* feat(mod_speakerstats_component): store facial expresions as a timeline

* fix(facial-expressions): stop facial recognition only when muting video track

* fix(facial-expressions): presenter mode get right track to detect face

* add: polyfils for image capture for firefox and safari

* refactor(facial-expressions): store expressions by counting them in a map

* chore(facial-expressions): remove manually assigning the backend for tenserflowjs

* feat(facial-expressions): move face-api from main thread to web worker

* fix(facial-expressions): make feature work on firefox and safari

* feat(facial-expressions): camera time tracker

* feat(facial-expressions): camera time tracker in prosody

* add(facial-expressions): expressions time as TimeElapsed object in speaker stats

* fix(facial-expresions): lower the frequency of detection when tf uses cpu backend

* add(facial-expressions): duration to the expression and send it with durantion when it is done

* fix(facial-expressions): prosody speaker stats covert fro string to number and bool values set by xmpp

* refactor(facial-expressions): change expressions labels from text to emoji

* refactor(facial-expressions): remove camera time tracker

* add(facial-expressions): detection time interval

* chore(facial-expressions): add docs and minor refactor of the code

* refactor(facial-expressions): put timeout in worker and remove set interval in main thread

* feat(facial-expressions): disable feature in the config

* add(facial-expressions): tooltips of labels in speaker stats

* refactor(facial-expressions): send facial expressions function and remove some unused functions and console logs

* refactor(facial-expressions): rename action type when a change is done to the track by the virtual backgrounds to be used in facial expressions middleware

* chore(facial-expressions): order imports and format some code

* fix(facial-expressions): rebase issues with newer master

* fix(facial-expressions): package-lock.json

* fix(facial-expression): add commented default value of disableFacialRecognition flag and short description

* fix(facial-expressions): change disableFacialRecognition to enableFacialRecognition flag in config

* fix: resources load-test package-lock.json

* fix(facial-expressions): set and get facial expressions only if facial recognition enabled

* add: facial recognition resources folder in .eslintignore

* chore: package-lock update

* fix: package-lock.json

* fix(facial-expressions): gpu memory leak in the web worker

* fix(facial-expressions): set cpu time interval for detection to 6000ms

* chore(speaker-stats): fix indentation

* chore(facial-expressions): remove empty lines between comments and type declarations

* fix(facial-expressions): remove camera timetracker

* fix(facial-expressions): remove facialRecognitionAllowed flag

* fix(facial-expressions): remove sending interval time to worker

* refactor(facial-expression): middleware

* fix(facial-expression): end tensor scope after setting backend

* fix(facial-expressions): sending info back to worker only on facial expression message

* fix: lint errors

* refactor(facial-expressions): bundle web worker using webpack

* fix: deploy-facial-expressions command in makefile

* chore: fix load test package-lock.json and package.json

* chore: sync package-lock.json

Co-authored-by: Mihai-Andrei Uscat <mihai.uscat@8x8.com>
2021-11-17 16:33:03 +02:00
Saúl Ibarra Corretgé 162a67fe8b chore(lint) tame the (uppdated) linter 2021-11-09 09:43:55 +01:00
Дамян Минков 17c0298e59
feat: Filters moderators presence in lobby room. (#10316)
* feat: Filters moderators presence in lobby room.

* squash: Print actor creating lobby.
2021-11-08 16:38:22 -07:00
alexbratu92 68eb0795eb feat(polls) fix spacing and send answer identifier 2021-11-05 07:34:52 -07:00
alexandrubratu8x8 4c46396e6a
feat(polls): trigger events for poll created and answered (#10249)
Co-authored-by: alexbratu92 <alexbratu92@gmail.com>
2021-11-04 12:18:41 +02:00
Gabriel Borlea af01072827 fix(speaker-stats): calculate total dominant speaker time if user is dominant and has no previous speaker time 2021-11-01 07:53:10 -07:00
Дамян Минков a5129ef291 fix: Fixes kick when allowners is enabled.
Broken after ab18fa7 which disallows the kick as the affiliation attribute is missing in kick iq that is sent.
2021-10-20 08:10:40 -07:00
Дамян Минков bc6e49754c feat: Adds a prosody module limiting the join rate in a room. 2021-10-19 16:52:32 -07:00
Дамян Минков ab18fa731b
Adds new option to allowners module (#10207)
* feat: Adds option to disable owner revoke in allowners module.

* squash: Fixes few lua check warnings.
2021-10-19 16:52:16 -07:00
hmuresan 7102ad1186 feat(external-api) Expose deployment info through API
- Set region along shard from xmpp
2021-10-07 09:41:42 -05:00
alexbratu92 0c187f180f call module that checks the jwt against the access service 2021-10-04 14:11:54 -05:00
Дамян Минков 31a7fbfa82
feat: Simplify AV moderation participant approve/remove message and fix array usage. (#10062)
* feat: Simplify av moderation participant approve/remove message.

There is no point of having messages like:
{
  "room": "myroom@conference.mydomain.com",
  "type": "av_moderation",
  "mediaType": "audio",
  "removed": true,
  "approved": true
}

* fix: Fixes array in json.

fix: Fixes array in json.
2021-09-30 13:35:55 -05:00
robertpin ace53c880b
feat(av-moderation) Ask to Unmute and remove from Whitelist (#10043)
* feat(av-moderation) Ask to Unmute and remove from Whitelist

Make Ask to Unmute work without moderation
Add remove from moderation whitelist functionality

* chore(deps) lib-jitsi-meet@latest

* feat(av-moderation) Remove from moderation whitelist functionality (#1729)
* fix(chore) corrected typo in log message
* fix(e2ee) replace nullish coalescing with or
* fix(e2ee) restore initial key when RATCHET_WINDOW_SIZE reached

3b8baa9d3b...0646bc3403

Co-authored-by: Дамян Минков <damencho@jitsi.org>
2021-09-28 11:11:13 -05:00
Дамян Минков ba6247daaf
fix: Fixes errors in prosody about string formatting and nil values. (#10037)
* fix: Fixes errors in prosody about string formatting and nil values.

error   Traceback[c2s]: /usr/lib/prosody/util/format.lua:59: invalid option '%b' to 'format'
stack traceback:

mod_polls.lua:25: attempt to index local 'data' (a nil value)
stack traceback:

* squash: Fix more formatting concatenation.
2021-09-27 14:48:13 -05:00
scott boone b7cb0a44f2
feat: new prosody module to report census of all rooms (#9901)
* new prosody module to report census of all rooms

* changed to use util to check if it's a test room

* improved docs

* more doc improvements

* updated to use muc_domain_prefix

* facepalm
2021-09-09 13:24:04 -05:00
abora8x8 a5fc75ed35
feat: Dynamically limit the number of participants in a room (#9880)
* Dynamically limit the number of participants in a room

* Remove log
2021-09-09 08:15:14 -05:00