* feat: Several module optimizations to avoid constant parsing of jids.
Caches the parsed values in a rotating table with limited size.
Skips constant creating of a stanza with never changing values - create it once and then just clone it.
* squash: Fixes extract_subdomain multiple values.
* squash: Fix table values when there is a nil element.
* squash: Fix skipping the roomless IQs.
* squash: Fix comments.
* 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.
* feat(prosody-modules): Moves a function for getting room to util.
* feat: Audio/Video moderation.
* squash: Fix docs.
* squash: Changes a field name in the message for adding jid to whitelist.
* squash: Moves to boolean from boolean string.
* squash: Only moderators get whitelist on join.
* squash: Check whether in room and moderator.
* squash: Send to participants only message about approval.
Skips sending the whole list.
* feat: Separates enable/disable by media type.
Adds actor to the messages to inform who enabled it.
* squash: Fixes reporting disable of the feature.
* squash: Fixes init of av_moderation_actors.
* squash: Fixes av_moderation_actor jid to be room jid.
* squash: Fixes comments.
* squash: Fixes warning about shadowing definition.
* squash: Updates ljm.
* fix: Fixes auto-granting from jicofo.
* squash: Further simplify...
We will filter the initial presence where participant is announced as `participant` and shortly after that we send a second presence with the new `moderator` role.
* fixes async_handler_wrapper
adds missing runner variable from async to async_handler_wrapper
removes redundant have_async definition in wrap_async_run, defined at top of module
* only use async handler wrapper,
remove async_wrap_run
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 an option to disable features based on token data.
Reverts changes from b84e910086, removes disableDesktopSharing option and an interface_config option.
* Disable recording button based on token features data.
Hide recording if local participant isGuest and roles based on token.
When enableUserRolesBasedOnToken is enabled we were not hiding the record button for guests.
* Adds filtering of jibri iqs and rayo based on features.
Moves feature checking in separate utility function.
Renames utility method.
* Adds a footer text when outbound-call is not feature enabled.
* Fixes comments.
The current poltergeist http api immediately returns
and does not wait for async work in the handler to finish. This
mostly occurs when a public asap key needs to be fetched due
to a cache miss. The fix implements the strategy described at
https://prosody.im/doc/developers/http.html