We were using prosody,util.json and cjson at the same time, but the latter is more performant.
Adds some error handling which were missing with the prosody util json one.
* fix: Adds check for jitsi_meet_room not being string.
Oct 20 12:22:50 mod_bosh error Traceback[bosh]: /usr/share/jitsi-meet/prosody-plugins/token/util.lib.lua:336: bad argument #1 to 'lower' (string expected, got userdata)
stack traceback:
[C]: in function 'lower'
/usr/share/jitsi-meet/prosody-plugins/token/util.lib.lua:336: in function 'verify_room'
...re/jitsi-meet/prosody-plugins/mod_token_verification.lua:78: in function 'verify_user'
* fix: Adds check for missing speaker stats for occupant.
error Traceback[c2s]: ...itsi-meet/prosody-plugins/mod_speakerstats_component.lua:124: attempt to index field '?' (a nil value)
stack traceback:
...itsi-meet/prosody-plugins/mod_speakerstats_component.lua:124: in function '?'
* fix: Nil check for breakout_rooms.
c2saaaad95a16c0 error Traceback[c2s]: ...re/jitsi-meet/prosody-plugins/mod_muc_breakout_rooms.lua:345: attempt to index local 'main_room' (a nil value)
stack traceback:
...re/jitsi-meet/prosody-plugins/mod_muc_breakout_rooms.lua:345: in function '?'
/usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>
(...tail calls...)
/usr/lib/prosody/modules/muc/muc.lib.lua:496: in function </usr/lib/prosody/modules/muc/muc.lib.lua:492>
* fix: Adds nil check in allowners.
c2saaaae3024810 error Traceback[c2s]: /usr/share/jitsi-meet/prosody-plugins/mod_muc_allowners.lua:171: attempt to index local 'room' (a nil value)
stack traceback:
/usr/share/jitsi-meet/prosody-plugins/mod_muc_allowners.lua:171: in function '?'
/usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>
* fix: Adds nil check in lobby.
mod_bosh error Traceback[bosh]: ...share/jitsi-meet/prosody-plugins/mod_muc_lobby_rooms.lua:168: attempt to index local 'lobby_room' (a nil value)
stack traceback:
...share/jitsi-meet/prosody-plugins/mod_muc_lobby_rooms.lua:168: in function '?'
/usr/share/lua/5.2/prosody/util/filters.lua:25: in function 'filter'
/usr/lib/prosody/modules/mod_bosh.lua:361: in function 'send'
/usr/lib/prosody/modules/muc/mod_muc.lua:495: in function '?'
* fix: Fixes nil error in fmuc.
s2sinaaaaf2817260 error Traceback[s2s]: /usr/share/jitsi-meet/prosody-plugins/mod_fmuc.lua:295: attempt to index local 'occupant' (a nil value)
stack traceback:
/usr/share/jitsi-meet/prosody-plugins/mod_fmuc.lua:295: in function '?'
/usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>
(...tail calls...)
/usr/lib/prosody/modules/muc/muc.lib.lua:1201: in function </usr/lib/prosody/modules/muc/muc.lib.lua:1194>
* fix: Fixes nil occupant.
c2s55f4d5411dd0 error Traceback[c2s]: /usr/share/jitsi-meet/prosody-plugins/mod_muc_flip.lua:120: attempt to index local 'kicked_occupant' (a nil value)
stack traceback:
/usr/share/jitsi-meet/prosody-plugins/mod_muc_flip.lua:120: in function '?'
/usr/share/lua/5.2/prosody/util/events.lua:81: in function </usr/share/lua/5.2/prosody/util/events.lua:77>
(...tail calls...)
/usr/lib/prosody/modules/muc/muc.lib.lua:791: in function </usr/lib/prosody/modules/muc/muc.lib.lua:616>
* fix: Fixes caching main room.
Objects should not be set in room._data as this field is being serialized and we see errors like.
error Traceback[c2s]: /usr/share/lua/5.2/prosody/util/serialization.lua:34: Can't serialize userdata
stack traceback:
[C]: in function 'error'
/usr/share/lua/5.2/prosody/util/serialization.lua:34: in function </usr/share/lua/5.2/prosody/util/serialization.lua:33>
(...tail calls...)
/usr/share/lua/5.2/prosody/util/serialization.lua:199: in function 'serialize_table'
/usr/share/lua/5.2/prosody/util/serialization.lua:197: in function 'serialize_table'
/usr/share/lua/5.2/prosody/util/serialization.lua:197: in function 'serialize_table'
/usr/share/lua/5.2/prosody/util/serialization.lua:219: in function </usr/share/lua/5.2/prosody/util/serialization.lua:217>
(...tail calls...)
/usr/lib/prosody/modules/mod_storage_memory.lua:42: in function </usr/lib/prosody/modules/mod_storage_memory.lua:40>
(...tail calls...)
...re/jitsi-meet/prosody-plugins/mod_muc_breakout_rooms.lua:207: in function 'create_breakout_room'
* fix: Fixes calling save_occupant after changing its role.
* squash: Fixed passed value to type.
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...`
* 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>
There are modules that will not work with prosody 0.10 as they depend on util.async. Adds a safeguard and print error about it in the logs.
And others that just do not work because of the muc module API that they use.
Adds the component which receives the messages from client and a module which enabled on a virtual host will start advertising the component. When clients discover the component they will send message to the component with the name of the room where the dominant speaker event happen.