Difficulty installing and configuring JWT token authentication

I have been working on the installation and configuration of the ‘JWT token authentication Prosody plugin’ for several days and I have not been successful.

Operational system

  • Ubuntu 18.04 (Bionic Beaver) LTS - 64 bits (x86_64)
  • Kernel: 4.15.0-96-generic

The installation of Jitsi was successful

  • Works perfectly with 2 participants and also with several participants.

I installed the JWT token authentication Prosody plugin following the documentation (https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md) and was unsuccessful.
I am not using a secret server but just use a common secret key.

When I try to create a meeting without a token, a username / password window will appear. I log in with my username and password and I join the meeting perfectly.

Now, when I try to create a meeting with a token, I can’t log in and I get a message and some errors.

Chrome console

Meeting error

This is the JSON Web Token I am using

Headers

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

{
  "context": {
    "user": {
      "name": "Samuel Peixoto",
      "email": "samuel.peixoto@myserver.com"
    }
  },
  "aud": "mujitsi",
  "iss": "abc1234",
  "sub": "jitsi.myserver.com",
  "room": "testroom01",
  "exp": 1621468800
}

Encoded token URL we are using

https://jitsi.myserver.com/testroom01?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb250ZXh0Ijp7InVzZXIiOnsibmFtZSI6IlNhbXVlbCBQZWl4b3RvIiwiZW1haWwiOiJzYW11ZWwucGVpeG90b0BteXNlcnZlci5jb20ifX0sImF1ZCI6Im11aml0c2kiLCJpc3MiOiJhYmMxMjM0Iiwic3ViIjoiaml0c2kubXlzZXJ2ZXIuY29tIiwicm9vbSI6InRlc3Ryb29tMDEiLCJleHAiOjE2MjE0Njg4MDB9.mx-Dg5gwr-4xcnIglNEX3RkdCCK6kt2IUzwAsoMmf6k

Details of my installation

Contents of the /etc/prosody/prosody.cfg.lua

-- Prosody XMPP Server Configuration
--
-- Information on configuring Prosody can be found on our
-- website at https://prosody.im/doc/configure
--
-- Tip: You can check that the syntax of this file is correct
-- when you have finished by running this command:
--     prosodyctl check config
-- If there are any errors, it will let you know what and where
-- they are, otherwise it will keep quiet.
--
-- Good luck, and happy Jabbering!


---------- Server-wide settings ----------
-- Settings in this section apply to the whole server and are the default settings
-- for any virtual hosts

-- This is a (by default, empty) list of accounts that are admins
-- for the server. Note that you must create the accounts separately
-- (see https://prosody.im/doc/creating_accounts for info)
-- Example: admins = { "user1@example.com", "user2@example.net" }
admins = { }

-- Enable use of libevent for better performance under high load
-- For more information see: https://prosody.im/doc/libevent
--use_libevent = true

-- Prosody will always look in its source directory for modules, but
-- this option allows you to specify additional locations where Prosody
-- will look for modules first. For community modules, see https://modules.prosody.im/
plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }

-- This is the list of modules Prosody will load on startup.
-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.
-- Documentation for bundled modules can be found at: https://prosody.im/doc/modules
modules_enabled = {

	-- Generally required
		"roster"; -- Allow users to have a roster. Recommended ;)
		"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
		"tls"; -- Add support for secure TLS on c2s/s2s connections
		"dialback"; -- s2s dialback support
		"disco"; -- Service discovery

	-- Not essential, but recommended
		"carbons"; -- Keep multiple clients in sync
		"pep"; -- Enables users to publish their avatar, mood, activity, playing music and more
		"private"; -- Private XML storage (for room bookmarks, etc.)
		"blocklist"; -- Allow users to block communications with other users
		"vcard4"; -- User profiles (stored in PEP)
		"vcard_legacy"; -- Conversion between legacy vCard and PEP Avatar, vcard

	-- Nice to have
		"version"; -- Replies to server version requests
		"uptime"; -- Report how long server has been running
		"time"; -- Let others know the time here on this server
		"ping"; -- Replies to XMPP pings with pongs
		"register"; -- Allow users to register on this server using a client and change passwords
		--"mam"; -- Store messages in an archive and allow users to access it
		--"csi_simple"; -- Simple Mobile optimizations

	-- Admin interfaces
		"admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
		--"admin_telnet"; -- Opens telnet console interface on localhost port 5582

	-- HTTP modules
		--"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
		--"websocket"; -- XMPP over WebSockets
		--"http_files"; -- Serve static files from a directory over HTTP

	-- Other specific functionality
		--"limits"; -- Enable bandwidth limiting for XMPP connections
		--"groups"; -- Shared roster support
		--"server_contact_info"; -- Publish contact information for this service
		--"announce"; -- Send announcement to all online users
		--"welcome"; -- Welcome users who register accounts
		--"watchregistrations"; -- Alert admins of registrations
		--"motd"; -- Send a message to users when they log in
		--"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
		--"proxy65"; -- Enables a file transfer proxy service which clients behind NAT can use
}

-- These modules are auto-loaded, but should you want
-- to disable them then uncomment them here:
modules_disabled = {
	-- "offline"; -- Store offline messages
	-- "c2s"; -- Handle client connections
	-- "s2s"; -- Handle server-to-server connections
	-- "posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
}

-- Disable account creation by default, for security
-- For more information see https://prosody.im/doc/creating_accounts
allow_registration = false

-- Force clients to use encrypted connections? This option will
-- prevent clients from authenticating unless they are using encryption.

c2s_require_encryption = false

-- Force servers to use encrypted connections? This option will
-- prevent servers from authenticating unless they are using encryption.

s2s_require_encryption = true

-- Force certificate authentication for server-to-server connections?

s2s_secure_auth = false

-- Some servers have invalid or self-signed certificates. You can list
-- remote domains here that will not be required to authenticate using
-- certificates. They will be authenticated using DNS instead, even
-- when s2s_secure_auth is enabled.

--s2s_insecure_domains = { "insecure.example" }

-- Even if you disable s2s_secure_auth, you can still require valid
-- certificates for some domains by specifying a list here.

--s2s_secure_domains = { "jabber.org" }

-- Required for init scripts and prosodyctl
pidfile = "/var/run/prosody/prosody.pid"

-- Select the authentication backend to use. The 'internal' providers
-- use Prosody's configured data storage to store the authentication data.

authentication = "internal_hashed"

-- Select the storage backend to use. By default Prosody uses flat files
-- in its configured data directory, but it also supports more backends
-- through modules. An "sql" backend is included by default, but requires
-- additional dependencies. See https://prosody.im/doc/storage for more info.

--storage = "sql" -- Default is "internal"

-- For the "sql" backend, you can uncomment *one* of the below to configure:
--sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename.
--sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }
--sql = { driver = "PostgreSQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }


-- Archiving configuration
-- If mod_mam is enabled, Prosody will store a copy of every message. This
-- is used to synchronize conversations between multiple clients, even if
-- they are offline. This setting controls how long Prosody will keep
-- messages in the archive before removing them.

archive_expires_after = "1w" -- Remove archived messages after 1 week

-- You can also configure messages to be stored in-memory only. For more
-- archiving options, see https://prosody.im/doc/modules/mod_mam

-- Logging configuration
-- For advanced logging see https://prosody.im/doc/logging
log = {
	info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging
	error = "/var/log/prosody/prosody.err";
	-- "*syslog"; -- Uncomment this for logging to syslog
	-- "*console"; -- Log to the console, useful for debugging with daemonize=false
}

-- Uncomment to enable statistics
-- For more info see https://prosody.im/doc/statistics
-- statistics = "internal"

-- Certificates
-- Every virtual host and component needs a certificate so that clients and
-- servers can securely verify its identity. Prosody will automatically load
-- certificates/keys from the directory specified here.
-- For more information, including how to use 'prosodyctl' to auto-import certificates
-- (from e.g. Let's Encrypt) see https://prosody.im/doc/certificates

-- Location of directory to find certificates in (relative to main config file):
certificates = "certs"

-- HTTPS currently only supports a single certificate, specify it here:
--https_certificate = "/etc/prosody/certs/localhost.crt"

----------- Virtual hosts -----------
-- You need to add a VirtualHost entry for each domain you wish Prosody to serve.
-- Settings under each VirtualHost entry apply *only* to that host.

VirtualHost "localhost"

--VirtualHost "example.com"
--	certificate = "/path/to/example.crt"

------ Components ------
-- You can specify components to add hosts that provide special services,
-- like multi-user conferences, and transports.
-- For more information on components, see https://prosody.im/doc/components

---Set up a MUC (multi-user chat) room server on conference.example.com:
--Component "conference.example.com" "muc"
--- Store MUC messages in an archive and allow users to access it
--modules_enabled = { "muc_mam" }

---Set up an external component (default component port is 5347)
--
-- External components allow adding various services, such as gateways/
-- transports to other networks like ICQ, MSN and Yahoo. For more info
-- see: https://prosody.im/doc/components#adding_an_external_component
--
--Component "gateway.example.com"
--	component_secret = "password"

Include "conf.d/*.cfg.lua"

Contents of the /etc/prosody/conf.avail/jitsi.myserver.com.cfg.lua

plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }

-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "jitsi.myserver.com";

turncredentials_secret = "1dNkvsK9uljWY3aF";

turncredentials = {
  { type = "stun", host = "jitsi.myserver.com", port = "4446" },
  { type = "turn", host = "jitsi.myserver.com", port = "4446", transport = "udp" },
  { type = "turns", host = "jitsi.myserver.com", port = "443", transport = "tcp" }
};

cross_domain_bosh = false;
consider_bosh_secure = true;

VirtualHost "jitsi.myserver.com"
        -- enabled = false -- Remove this line to enable this host
        authentication = "internal_hashed" -- antes anonymous  internal_plain internal_hashed
        -- Properties below are modified by jitsi-meet-tokens package config
        -- and authentication above is switched to "token"
        app_id="abc1234"
        app_secret="A1B2C3D4E5F6"
        allow_empty_token = false;
        -- Assign this host a certificate for TLS, otherwise it would use the one
        -- set in the global section (if any).
        -- Note that old-style SSL on port 5223 only supports one certificate, and will always
        -- use the global one.
        ssl = {
                key = "/etc/prosody/certs/jitsi.myserver.com.key";
                certificate = "/etc/prosody/certs/jitsi.myserver.com.crt";
        }
        speakerstats_component = "speakerstats.jitsi.myserver.com"
        conference_duration_component = "conferenceduration.jitsi.myserver.com"
        -- we need bosh
        modules_enabled = {
            "bosh";
            "pubsub";
            "ping"; -- Enable mod_ping
            "speakerstats";
            "turncredentials";
            "conference_duration";
        }
        c2s_require_encryption = false

Component "conference.jitsi.myserver.com" "muc"
    storage = "internal"
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        "token_verification";
    }
    admins = { "focus@auth.jitsi.myserver.com" }
    muc_room_locking = false
    muc_room_default_public_jids = true
    muc_room_cache_size = 100

-- internal muc component
Component "internal.auth.jitsi.myserver.com" "muc"
    storage = "memory"
    modules_enabled = {
      "ping";
    }
    admins = { "focus@auth.jitsi.myserver.com", "jvb@auth.jitsi.myserver.com" }
    muc_room_locking = false
    muc_room_default_public_jids = true

VirtualHost "auth.jitsi.myserver.com"
    ssl = {
        key = "/etc/prosody/certs/auth.jitsi.myserver.com.key";
        certificate = "/etc/prosody/certs/auth.jitsi.myserver.com.crt";
    }
    authentication = "internal_plain"

Component "focus.jitsi.myserver.com"
    component_secret = "057tnlOi8cEofnL7"

Component "speakerstats.jitsi.myserver.com" "speakerstats_component"
    muc_component = "conference.jitsi.myserver.com"

Component "conferenceduration.jitsi.myserver.com" "conference_duration_component"
    muc_component = "conference.jitsi.myserver.com"

VirtualHost "guest.jitsi.myserver.com"
    authentication = "anonymous"
    c2s_require_encryption = false

Contents of the /etc/jitsi/jicofo/sip-communicator.properties

org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.jitsi.myserver.com
org.jitsi.jicofo.auth.URL=EXT_JWT:jitsi.myserver.com

JITSI LOGS

Contents of the LOG /var/log/jitsi/jicofo.log

Jicofo 2020-06-05 10:24:25.167 INFO: [22] org.jitsi.service.libjitsi.LibJitsi.log() Successfully started LibJitsi using as implementation: org.jitsi.impl.libjitsi.LibJitsiOSGiImpl
Jicofo 2020-06-05 10:24:25.224 INFO: [22] impl.configuration.ConfigurationActivator.log() Using properties file configuration store.
Jicofo 2020-06-05 10:24:25.234 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() awt.toolkit=sun.awt.X11.XToolkit
Jicofo 2020-06-05 10:24:25.235 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.specification.version=11
Jicofo 2020-06-05 10:24:25.236 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.FOCUS_USER_PASSWORD=GZlDKrSeeEf4JmxU
Jicofo 2020-06-05 10:24:25.236 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.cpu.isalist=
Jicofo 2020-06-05 10:24:25.237 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.jnu.encoding=UTF-8
Jicofo 2020-06-05 10:24:25.237 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.class.path=/usr/share/jicofo/jicofo.jar:/usr/share/jicofo/lib/agafua-syslog-0.4.jar:/usr/share/jicofo/lib/annotations-15.0.jar:/usr/share/jicofo/lib/aopalliance-repackaged-2.6.1.jar:/usr/share/jicofo/lib/apiguardian-api-1.0.0.jar:/usr/share/jicofo/lib/argparse4j-0.8.1.jar:/usr/share/jicofo/lib/arrow-annotations-0.9.0.jar:/usr/share/jicofo/lib/arrow-core-data-0.9.0.jar:/usr/share/jicofo/lib/arrow-core-extensions-0.9.0.jar:/usr/share/jicofo/lib/arrow-typeclasses-0.9.0.jar:/usr/share/jicofo/lib/bccontrib-1.0.jar:/usr/share/jicofo/lib/bcpkix-jdk15on-1.54.jar:/usr/share/jicofo/lib/bcprov-jdk15on-1.54.jar:/usr/share/jicofo/lib/byte-buddy-1.9.10.jar:/usr/share/jicofo/lib/byte-buddy-agent-1.9.10.jar:/usr/share/jicofo/lib/cglib-nodep-2.2.jar:/usr/share/jicofo/lib/checker-qual-2.10.0.jar:/usr/share/jicofo/lib/classgraph-4.8.1.jar:/usr/share/jicofo/lib/colormath-1.2.0.jar:/usr/share/jicofo/lib/commons-codec-1.6.jar:/usr/share/jicofo/lib/commons-io-2.6.jar:/usr/share/jicofo/lib/commons-lang3-3.1.jar:/usr/share/jicofo/lib/commons-logging-1.2.jar:/usr/share/jicofo/lib/concurrentlinkedhashmap-lru-1.0_jdk5.jar:/usr/share/jicofo/lib/config-1.3.4.jar:/usr/share/jicofo/lib/core-2.0.1.jar:/usr/share/jicofo/lib/diffutils-2.2.jar:/usr/share/jicofo/lib/dnsjava-2.1.7.jar:/usr/share/jicofo/lib/dom4j-1.6.1.jar:/usr/share/jicofo/lib/error_prone_annotations-2.3.4.jar:/usr/share/jicofo/lib/failureaccess-1.0.1.jar:/usr/share/jicofo/lib/fmj-1.0-SNAPSHOT.jar:/usr/share/jicofo/lib/guava-28.2-jre.jar:/usr/share/jicofo/lib/hk2-api-2.6.1.jar:/usr/share/jicofo/lib/hk2-locator-2.6.1.jar:/usr/share/jicofo/lib/hk2-utils-2.6.1.jar:/usr/share/jicofo/lib/httpclient-4.4.1.jar:/usr/share/jicofo/lib/httpcore-4.4.1.jar:/usr/share/jicofo/lib/ice4j-3.0-12-ge90c796.jar:/usr/share/jicofo/lib/j2objc-annotations-1.3.jar:/usr/share/jicofo/lib/jackson-annotations-2.10.1.jar:/usr/share/jicofo/lib/jackson-core-2.10.1.jar:/usr/share/jicofo/lib/jackson-databind-2.10.1.jar:/usr/share/jicofo/lib/jackson-module-jaxb-annotations-2.10.1.jar:/usr/share/jicofo/lib/jain-sip-ri-ossonly-1.2.98c7f8c-jitsi-oss1.jar:/usr/share/jicofo/lib/jakarta.activation-api-1.2.1.jar:/usr/share/jicofo/lib/jakarta.annotation-api-1.3.5.jar:/usr/share/jicofo/lib/jakarta.inject-2.6.1.jar:/usr/share/jicofo/lib/jakarta.validation-api-2.0.2.jar:/usr/share/jicofo/lib/jakarta.ws.rs-api-2.1.6.jar:/usr/share/jicofo/lib/jakarta.xml.bind-api-2.3.2.jar:/usr/share/jicofo/lib/java-dogstatsd-client-2.5.jar:/usr/share/jicofo/lib/java-sdp-nist-bridge-1.1.jar:/usr/share/jicofo/lib/javassist-3.22.0-CR2.jar:/usr/share/jicofo/lib/javax.servlet-api-3.1.0.jar:/usr/share/jicofo/lib/jbosh-0.9.2.jar:/usr/share/jicofo/lib/jcip-annotations-1.0.jar:/usr/share/jicofo/lib/jcl-core-2.8.jar:/usr/share/jicofo/lib/jersey-client-2.30.1.jar:/usr/share/jicofo/lib/jersey-common-2.30.1.jar:/usr/share/jicofo/lib/jersey-container-jetty-http-2.30.1.jar:/usr/share/jicofo/lib/jersey-container-servlet-2.30.1.jar:/usr/share/jicofo/lib/jersey-container-servlet-core-2.30.1.jar:/usr/share/jicofo/lib/jersey-entity-filtering-2.30.1.jar:/usr/share/jicofo/lib/jersey-hk2-2.30.1.jar:/usr/share/jicofo/lib/jersey-media-jaxb-2.30.1.jar:/usr/share/jicofo/lib/jersey-media-json-jackson-2.30.1.jar:/usr/share/jicofo/lib/jersey-server-2.30.1.jar:/usr/share/jicofo/lib/jetty-client-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-continuation-9.4.17.v20190418.jar:/usr/share/jicofo/lib/jetty-http-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-io-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-proxy-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-security-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-server-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-servlet-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-util-9.4.15.v20190215.jar:/usr/share/jicofo/lib/jetty-webapp-7.0.1.v20091125.jar:/usr/share/jicofo/lib/jetty-xml-7.0.1.v20091125.jar:/usr/share/jicofo/lib/jicoco-1.1-29-g2e64779.jar:/usr/share/jicofo/lib/jicoco-kotlin-1.1-29-g2e64779.jar:/usr/share/jicofo/lib/jicoco-test-kotlin-1.1-29-g2e64779.jar:/usr/share/jicofo/lib/jitsi-android-osgi-1.0-SNAPSHOT.jar:/usr/share/jicofo/lib/jitsi-configuration-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-credentialsstorage-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-dnsservice-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-netaddr-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-protocol-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-protocol-jabber-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-protocol-media-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-util-2.13.cb5485e.jar:/usr/share/jicofo/lib/jitsi-utils-1.0-47-gdb30505.jar:/usr/share/jicofo/lib/jitsi-utils-kotlin-1.0-47-gdb30505.jar:/usr/share/jicofo/lib/jitsi-xmpp-extensions-1.0-6-g009420d.jar:/usr/share/jicofo/lib/jna-5.5.0.jar:/usr/share/jicofo/lib/jnsapi-0.0.3-jitsi-smack4.2-3.jar:/usr/share/jicofo/lib/json-simple-1.1.1.jar:/usr/share/jicofo/lib/jsr305-3.0.2.jar:/usr/share/jicofo/lib/junit-jupiter-api-5.5.1.jar:/usr/share/jicofo/lib/junit-platform-commons-1.4.0.jar:/usr/share/jicofo/lib/junit-platform-engine-1.4.0.jar:/usr/share/jicofo/lib/junit-platform-launcher-1.4.0.jar:/usr/share/jicofo/lib/junit-platform-suite-api-1.4.0.jar:/usr/share/jicofo/lib/jxmpp-core-0.6.2.jar:/usr/share/jicofo/lib/jxmpp-jid-0.6.2.jar:/usr/share/jicofo/lib/jxmpp-util-cache-0.6.2.jar:/usr/share/jicofo/lib/kindedj-1.1.0.jar:/usr/share/jicofo/lib/kotlin-reflect-1.3.71.jar:/usr/share/jicofo/lib/kotlin-stdlib-1.3.71.jar:/usr/share/jicofo/lib/kotlin-stdlib-common-1.3.71.jar:/usr/share/jicofo/lib/kotlin-stdlib-jdk7-1.3.71.jar:/usr/share/jicofo/lib/kotlin-stdlib-jdk8-1.3.71.jar:/usr/share/jicofo/lib/kotlintest-assertions-3.4.2.jar:/usr/share/jicofo/lib/kotlintest-core-3.4.2.jar:/usr/share/jicofo/lib/kotlintest-extensions-3.4.2.jar:/usr/share/jicofo/lib/kotlintest-runner-console-3.4.2.jar:/usr/share/jicofo/lib/kotlintest-runner-junit5-3.4.2.jar:/usr/share/jicofo/lib/kotlintest-runner-jvm-3.4.2.jar:/usr/share/jicofo/lib/kotlinx-coroutines-core-1.1.1.jar:/usr/share/jicofo/lib/kotlinx-coroutines-core-common-1.1.1.jar:/usr/share/jicofo/lib/libidn-1.15.jar:/usr/share/jicofo/lib/libjitsi-1.0-0-gb3296cf.jar:/usr/share/jicofo/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/usr/share/jicofo/lib/mockk-1.9.1.jar:/usr/share/jicofo/lib/mockk-agent-api-1.9.1.jar:/usr/share/jicofo/lib/mockk-agent-common-1.9.1.jar:/usr/share/jicofo/lib/mockk-agent-jvm-1.9.1.jar:/usr/share/jicofo/lib/mockk-common-1.9.1.jar:/usr/share/jicofo/lib/mockk-dsl-1.9.1.jar:/usr/share/jicofo/lib/mockk-dsl-jvm-1.9.1.jar:/usr/share/jicofo/lib/mordant-1.2.1.jar:/usr/share/jicofo/lib/object-cloner-0.1.jar:/usr/share/jicofo/lib/objenesis-2.6.jar:/usr/share/jicofo/lib/opentest4j-1.1.1.jar:/usr/share/jicofo/lib/orange-extensions-1.3.0.jar:/usr/share/jicofo/lib/org.apache.felix.framework-4.4.0.jar:/usr/share/jicofo/lib/org.apache.felix.main-4.4.0.jar:/usr/share/jicofo/lib/org.eclipse.jgit-4.4.1.201607150455-r.jar:/usr/share/jicofo/lib/org.osgi.core-4.3.1.jar:/usr/share/jicofo/lib/osgi-resource-locator-1.0.3.jar:/usr/share/jicofo/lib/reflections-0.9.11.jar:/usr/share/jicofo/lib/sdes4j-1.1.3.jar:/usr/share/jicofo/lib/sdp-api-1.0.jar:/usr/share/jicofo/lib/slf4j-api-1.7.26.jar:/usr/share/jicofo/lib/slf4j-jdk14-1.7.26.jar:/usr/share/jicofo/lib/smack-bosh-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-core-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-debug-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-experimental-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-extensions-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-im-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-java7-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-legacy-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-resolver-javax-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-sasl-javax-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/smack-tcp-4.2.4-47d17fc.jar:/usr/share/jicofo/lib/tinder-1.3.0.jar:/usr/share/jicofo/lib/univocity-parsers-2.8.1.jar:/usr/share/jicofo/lib/weupnp-0.1.4.jar:/usr/share/jicofo/lib/xml-apis-1.0.b2.jar:/usr/share/jicofo/lib/xmlpull-1.1.3.4a.jar:/usr/share/jicofo/lib/xpp3-1.1.4c.jar:/usr/share/jicofo/lib/zrtp4j-light-4.1.0-jitsi-1-SNAPSHOT.jar
Jicofo 2020-06-05 10:24:25.239 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.vendor=Ubuntu
Jicofo 2020-06-05 10:24:25.239 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.arch.data.model=64
Jicofo 2020-06-05 10:24:25.240 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vendor.url=https://ubuntu.com/
Jicofo 2020-06-05 10:24:25.241 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.timezone=America/Araguaina
Jicofo 2020-06-05 10:24:25.241 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() os.name=Linux
Jicofo 2020-06-05 10:24:25.242 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.specification.version=11
Jicofo 2020-06-05 10:24:25.242 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.FOCUS_USER_NAME=focus
Jicofo 2020-06-05 10:24:25.243 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.java.launcher=SUN_STANDARD
Jicofo 2020-06-05 10:24:25.243 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.country=US
Jicofo 2020-06-05 10:24:25.244 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.boot.library.path=/usr/lib/jvm/java-11-openjdk-amd64/lib
Jicofo 2020-06-05 10:24:25.244 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.java.command=org.jitsi.jicofo.Main --host=localhost --domain=jitsi.myserver.com --port=5347 --secret=057tnlOi8cEofnL7 --user_name=focus --user_domain=auth.jitsi.myserver.com --user_password=GZlDKrSeeEf4JmxU
Jicofo 2020-06-05 10:24:25.245 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() jdk.debug=release
Jicofo 2020-06-05 10:24:25.245 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.HOSTNAME=localhost
Jicofo 2020-06-05 10:24:25.245 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.cpu.endian=little
Jicofo 2020-06-05 10:24:25.246 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.home=/usr/share/jicofo
Jicofo 2020-06-05 10:24:25.246 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.language=en
Jicofo 2020-06-05 10:24:25.247 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.specification.vendor=Oracle Corporation
Jicofo 2020-06-05 10:24:25.247 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.version.date=2020-04-14
Jicofo 2020-06-05 10:24:25.248 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.home=/usr/lib/jvm/java-11-openjdk-amd64
Jicofo 2020-06-05 10:24:25.248 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() file.separator=/
Jicofo 2020-06-05 10:24:25.249 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.compressedOopsMode=Zero based
Jicofo 2020-06-05 10:24:25.249 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() line.separator=

Jicofo 2020-06-05 10:24:25.250 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.specification.name=Java Platform API Specification
Jicofo 2020-06-05 10:24:25.250 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.specification.vendor=Oracle Corporation
Jicofo 2020-06-05 10:24:25.250 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
Jicofo 2020-06-05 10:24:25.251 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.impl.configuration.USE_PROPFILE_CONFIG=true
Jicofo 2020-06-05 10:24:25.251 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.service.media.DISABLE_AUDIO_SUPPORT=true
Jicofo 2020-06-05 10:24:25.252 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.util.logging.config.file=/etc/jitsi/jicofo/logging.properties
Jicofo 2020-06-05 10:24:25.252 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.management.compiler=HotSpot 64-Bit Tiered Compilers
Jicofo 2020-06-05 10:24:25.252 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.service.audionotifier.AudioNotifierService=org.jitsi.impl.neomedia.notify.AudioNotifierServiceImpl
Jicofo 2020-06-05 10:24:25.253 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.runtime.version=11.0.7+10-post-Ubuntu-2ubuntu218.04
Jicofo 2020-06-05 10:24:25.253 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.XMPP_DOMAIN=jitsi.myserver.com
Jicofo 2020-06-05 10:24:25.254 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.name=jicofo
Jicofo 2020-06-05 10:24:25.254 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() path.separator=:
Jicofo 2020-06-05 10:24:25.254 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() os.version=4.15.0-101-generic
Jicofo 2020-06-05 10:24:25.255 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.runtime.name=OpenJDK Runtime Environment
Jicofo 2020-06-05 10:24:25.255 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.CONFIGURATION_FILE_IS_READ_ONLY=true
Jicofo 2020-06-05 10:24:25.256 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() file.encoding=UTF-8
Jicofo 2020-06-05 10:24:25.256 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.name=OpenJDK 64-Bit Server VM
Jicofo 2020-06-05 10:24:25.256 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi
Jicofo 2020-06-05 10:24:25.257 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vendor.url.bug=https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
Jicofo 2020-06-05 10:24:25.257 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.service.media.DISABLE_VIDEO_SUPPORT=true
Jicofo 2020-06-05 10:24:25.257 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.io.tmpdir=/tmp
Jicofo 2020-06-05 10:24:25.258 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.SC_HOME_DIR_NAME=jicofo
Jicofo 2020-06-05 10:24:25.258 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.version=11.0.7
Jicofo 2020-06-05 10:24:25.259 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.dir=/usr/share/jicofo
Jicofo 2020-06-05 10:24:25.259 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() os.arch=amd64
Jicofo 2020-06-05 10:24:25.260 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.specification.name=Java Virtual Machine Specification
Jicofo 2020-06-05 10:24:25.260 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.awt.printerjob=sun.print.PSPrinterJob
Jicofo 2020-06-05 10:24:25.261 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.os.patch.level=unknown
Jicofo 2020-06-05 10:24:25.261 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.library.path=/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
Jicofo 2020-06-05 10:24:25.262 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vendor=Ubuntu
Jicofo 2020-06-05 10:24:25.262 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.info=mixed mode, sharing
Jicofo 2020-06-05 10:24:25.262 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi
Jicofo 2020-06-05 10:24:25.263 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.version=11.0.7+10-post-Ubuntu-2ubuntu218.04
Jicofo 2020-06-05 10:24:25.263 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.io.unicode.encoding=UnicodeLittle
Jicofo 2020-06-05 10:24:25.264 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.class.version=55.0
Jicofo 2020-06-05 10:24:25.264 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.FOCUS_USER_DOMAIN=auth.jitsi.myserver.com
Jicofo 2020-06-05 10:24:25.267 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() Normal classloader
Jicofo 2020-06-05 10:24:25.270 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() failed to find jitsi-defaults.properties with class loader, will continue without it.
Jicofo 2020-06-05 10:24:25.271 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() Normal classloader
Jicofo 2020-06-05 10:24:25.273 INFO: [22] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() failed to find jitsi-default-overrides.properties with class loader, will continue without it.
Jicofo 2020-06-05 10:24:25.302 INFO: [22] util.NetworkUtils.<clinit>().117 java.net.preferIPv6Addresses=null
Jicofo 2020-06-05 10:24:25.302 INFO: [22] util.NetworkUtils.<clinit>().118 java.net.preferIPv4Stack=null
Jicofo 2020-06-05 10:24:25.315 INFO: [22] impl.netaddr.NetworkAddressManagerServiceImpl.start().92 Network Address Manager         ...[  STARTED ]
Jicofo 2020-06-05 10:24:25.315 INFO: [22] impl.netaddr.NetworkAddressManagerServiceImpl.start().98 Network Address Manager Service ...[REGISTERED]
Jicofo 2020-06-05 10:24:25.326 INFO: [22] org.jitsi.version.AbstractVersionActivator.log() VersionService registered: JiCoFo 1.0.589
Jicofo 2020-06-05 10:24:25.660 INFO: [22] org.jitsi.jicofo.FocusBundleActivator.log() Max shared pool size: 1500
Jicofo 2020-06-05 10:24:25.662 INFO: [22] org.jitsi.jicofo.JitsiMeetGlobalConfig.log() Automatically grant 'owner' role: true
Jicofo 2020-06-05 10:24:25.663 INFO: [22] org.jitsi.jicofo.JitsiMeetGlobalConfig.log() Jibri requests in PENDING state will be timed out after: 90 seconds
Jicofo 2020-06-05 10:24:25.663 INFO: [22] org.jitsi.jicofo.JitsiMeetGlobalConfig.log() Will attempt a maximum of 5 Jibri retries after failure
Jicofo 2020-06-05 10:24:25.663 INFO: [22] org.jitsi.jicofo.JitsiMeetGlobalConfig.log() Lonely participants will be "terminated" after 20000 milliseconds
Jicofo 2020-06-05 10:24:25.697 WARNING: [22] org.jitsi.jicofo.FocusManager.log() No dedicated JVB MUC XMPP connection configured - falling back to the default XMPP connection
Jicofo 2020-06-05 10:24:25.701 INFO: [22] org.jitsi.jicofo.bridge.BridgeSelector.log() Using org.jitsi.jicofo.bridge.SingleBridgeSelectionStrategy
Jicofo 2020-06-05 10:24:25.701 INFO: [22] org.jitsi.jicofo.bridge.BridgeSelector.log() Bridge failure reset threshold: 60000
Jicofo 2020-06-05 10:24:25.701 INFO: [22] org.jitsi.jicofo.bridge.BridgeSelector.log() Local region: null
Jicofo 2020-06-05 10:24:25.702 INFO: [22] org.jitsi.jicofo.JitsiMeetServices.log() Using a Bridge MUC detector with MUC: JvbBrewery@internal.auth.jitsi.myserver.com
Jicofo 2020-06-05 10:24:25.722 INFO: [22] org.jitsi.jicofo.auth.AuthBundleActivator.log() Starting authentication service... URL: EXT_JWT:jitsi.myserver.com
Jicofo 2020-06-05 10:24:25.725 INFO: [22] org.jitsi.jicofo.auth.AbstractAuthAuthority.log() Auto login disabled
Jicofo 2020-06-05 10:24:25.726 INFO: [22] org.jitsi.jicofo.auth.AbstractAuthAuthority.log() Authentication lifetime: 60000
Jicofo 2020-06-05 10:24:25.726 INFO: [22] org.jitsi.jicofo.auth.AuthBundleActivator.log() Auth authority: org.jitsi.jicofo.auth.ExternalJWTAuthority@6a78cfda
Jicofo 2020-06-05 10:24:25.775 INFO: [22] org.eclipse.jetty.util.log.initialized() Logging initialized @1047ms to org.eclipse.jetty.util.log.Slf4jLog
Jicofo 2020-06-05 10:24:25.954 INFO: [22] org.eclipse.jetty.server.Server.doStart() jetty-9.4.15.v20190215; built: 2019-02-15T16:53:49.381Z; git: eb70b240169fcf1abbd86af36482d1c49826fa0b; jvm 11.0.7+10-post-Ubuntu-2ubuntu218.04
Jicofo 2020-06-05 10:24:26.409 INFO: [29] org.jitsi.jicofo.ProtocolProviderHandler.log() XmppProtocolProvider(focus@auth.jitsi.myserver.com/focus66357724505 (Jabber)): RegistrationStateChangeEvent[ oldState=Unregistered; newState=RegistrationState=Registered; reasonCode=-1; reason=null]
Jicofo 2020-06-05 10:24:26.463 INFO: [29] org.jitsi.jicofo.xmpp.BaseBrewery.log() Joined brewery room: JvbBrewery@internal.auth.jitsi.myserver.com
Jicofo 2020-06-05 10:24:26.474 SEVERE: [29] org.jitsi.impl.protocol.xmpp.OpSetSimpleCapsImpl.log() Failed to discover features for speakerstats.jitsi.myserver.com: XMPP error reply received from speakerstats.jitsi.myserver.com: XMPPError: service-unavailable - cancel
Jicofo 2020-06-05 10:24:26.476 SEVERE: [29] org.jitsi.impl.protocol.xmpp.OpSetSimpleCapsImpl.log() Failed to discover features for focus.jitsi.myserver.com: XMPP error reply received from focus.jitsi.myserver.com: XMPPError: service-unavailable - wait
Jicofo 2020-06-05 10:24:26.482 INFO: [29] org.jitsi.jicofo.ComponentsDiscovery.log() New component discovered: guest.jitsi.myserver.com, Prosody(0.11.5,Linux)
Jicofo 2020-06-05 10:24:26.485 INFO: [29] org.jitsi.jicofo.ComponentsDiscovery.log() New component discovered: conference.jitsi.myserver.com, null
Jicofo 2020-06-05 10:24:26.485 INFO: [29] org.jitsi.jicofo.JitsiMeetServices.log() MUC component discovered: conference.jitsi.myserver.com
Jicofo 2020-06-05 10:24:26.487 SEVERE: [29] org.jitsi.impl.protocol.xmpp.OpSetSimpleCapsImpl.log() Failed to discover features for conferenceduration.jitsi.myserver.com: XMPP error reply received from conferenceduration.jitsi.myserver.com: XMPPError: service-unavailable - cancel
Jicofo 2020-06-05 10:24:26.489 INFO: [29] org.jitsi.jicofo.ComponentsDiscovery.log() New component discovered: auth.jitsi.myserver.com, Prosody(0.11.5,Linux)
Jicofo 2020-06-05 10:24:26.489 INFO: [29] org.jitsi.jicofo.JitsiMeetServices.log() Detected XMPP server version: Prosody(0.11.5,Linux)
Jicofo 2020-06-05 10:24:26.489 INFO: [29] org.jitsi.jicofo.ComponentsDiscovery.log() Service rediscovery disabled
Jicofo 2020-06-05 10:24:26.490 INFO: [29] org.jitsi.jicofo.FocusManager.log() XMPP provider reg state: RegistrationState=Registered
Jicofo 2020-06-05 10:24:26.500 INFO: [29] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.log() XMPP provider Jabber:focus@auth.jitsi.myserver.com/focus66357724505@localhost connected (JID: focus@auth.jitsi.myserver.com/focus66357724505)
Jicofo 2020-06-05 10:24:26.753 INFO: [22] org.eclipse.jetty.server.handler.ContextHandler.doStart() Started o.e.j.s.ServletContextHandler@4c331b80{/,null,AVAILABLE}
Jicofo 2020-06-05 10:24:26.773 INFO: [22] org.eclipse.jetty.server.AbstractConnector.doStart() Started ServerConnector@e49f2d0{HTTP/1.1,[http/1.1]}{0.0.0.0:8888}
Jicofo 2020-06-05 10:24:26.774 INFO: [22] org.eclipse.jetty.server.Server.doStart() Started @2052ms
Jicofo 2020-06-05 10:24:26.777 INFO: [1] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.auth.URL=EXT_JWT:jitsi.myserver.com
Jicofo 2020-06-05 10:24:26.778 INFO: [1] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.jitsi.myserver.com
Jicofo 2020-06-05 10:24:26.789 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log() Component org.jitsi.jicofo. config: 
Jicofo 2020-06-05 10:24:26.789 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log()   ping interval: 10000 ms
Jicofo 2020-06-05 10:24:26.789 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log()   ping timeout: 5000 ms
Jicofo 2020-06-05 10:24:26.789 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log()   ping threshold: 3
Jicofo 2020-06-05 10:24:26.831 INFO: [22] org.jitsi.jicofo.health.Health.log() Health checks are disabled.
Jicofo 2020-06-05 10:24:30.496 INFO: [41] org.jitsi.jicofo.xmpp.BaseBrewery.log() Added brewery instance: jvbbrewery@internal.auth.jitsi.myserver.com/4665d8ef-1c00-4f42-aeee-fc6f5b3eb4fe
Jicofo 2020-06-05 10:24:30.504 INFO: [41] org.jitsi.jicofo.bridge.Bridge.log() Setting max total packet rate of 50800.0
Jicofo 2020-06-05 10:24:30.505 INFO: [41] org.jitsi.jicofo.bridge.Bridge.log() Setting average participant packet rate of 500
Jicofo 2020-06-05 10:24:30.509 INFO: [41] org.jitsi.jicofo.bridge.BridgeSelector.log() Added new videobridge: Bridge[jid=jvbbrewery@internal.auth.jitsi.myserver.com/4665d8ef-1c00-4f42-aeee-fc6f5b3eb4fe, relayId=null, region=null, stress=0.00]
Jicofo 2020-06-05 10:24:30.514 INFO: [56] org.jitsi.jicofo.bridge.JvbDoctor.log() Scheduled health-check task for: jvbbrewery@internal.auth.jitsi.myserver.com/4665d8ef-1c00-4f42-aeee-fc6f5b3eb4fe
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.dom4j.io.SAXContentHandler (file:/usr/share/jicofo/lib/dom4j-1.6.1.jar) to method com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$LocatorProxy.getEncoding()
WARNING: Please consider reporting this to the maintainers of org.dom4j.io.SAXContentHandler
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Contents of the LOG /var/log/jitsi/jvb.log

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
2020-06-05 10:24:25.312 INFO: [1] NewConfig$1.invoke#88: Loaded NewConfig with origin: merge of system properties,system properties,reference.conf @ jar:file:/usr/share/jitsi-videobridge/jitsi-videobridge.jar!/reference.conf: 1,reference.conf @ jar:file:/usr/share/jitsi-videobridge/lib/jitsi-media-transform-1.0-155-gb6af7e9.jar!/reference.conf: 1
2020-06-05 10:24:25.337 INFO: [1] LegacyConfigFileLoader$Companion.load#40: Attempting to load legacy config file at path /etc/jitsi, videobridge, sip-communicator.properties
2020-06-05 10:24:25.340 INFO: [1] LegacyConfigFileLoader$Companion.load#40: Attempting to load legacy config file at path /etc/jitsi, videobridge, sip-communicator.properties
2020-06-05 10:24:25.343 INFO: [1] JitsiConfig$Companion.reload#40: Reloading.
2020-06-05 10:24:25.357 INFO: [1] NewConfig$1.invoke#88: Loaded NewConfig with origin: merge of system properties,system properties,reference.conf @ jar:file:/usr/share/jitsi-videobridge/jitsi-videobridge.jar!/reference.conf: 1,reference.conf @ jar:file:/usr/share/jitsi-videobridge/lib/jitsi-media-transform-1.0-155-gb6af7e9.jar!/reference.conf: 1
2020-06-05 10:24:25.357 INFO: [1] LegacyConfigFileLoader$Companion.load#40: Attempting to load legacy config file at path /etc/jitsi, videobridge, sip-communicator.properties
2020-06-05 10:24:25.359 INFO: [1] LegacyConfigFileLoader$Companion.load#40: Attempting to load legacy config file at path /etc/jitsi, videobridge, sip-communicator.properties
2020-06-05 10:24:25.404 INFO: [22] ConfigurationActivator.start#45: Registered the LegacyConfigurationServiceShim in OSGi.
2020-06-05 10:24:25.410 INFO: [22] AbstractVersionActivator.start#91: VersionService registered: JVB 2.1.202-g5f9377b9
2020-06-05 10:24:25.426 INFO: [22] AbstractJettyBundleActivator.start#613: Not starting the Jetty service for org.jitsi.videobridge.rest.RESTBundleActivator(port=8080)
2020-06-05 10:24:25.469 INFO: [22] AbstractJettyBundleActivator.start#613: Not starting the Jetty service for org.jitsi.videobridge.websocket.WebSocketBundleActivator(port=-1)
2020-06-05 10:24:25.512 INFO: [22] UlimitCheck.printUlimits#115: Running with open files limit 65000 (hard 65000), thread limit 65000 (hard 65000).
2020-06-05 10:24:25.515 INFO: [22] VideobridgeExpireThread.start#92: Starting with 60 second interval.
2020-06-05 10:24:25.520 WARNING: [22] Videobridge.start#906: No authorized source regexp configured. Will accept requests from any source.
2020-06-05 10:24:25.723 INFO: [22] JitsiConfig$Companion.reload#40: Reloading.
2020-06-05 10:24:25.734 INFO: [22] NewConfig$1.invoke#88: Loaded NewConfig with origin: merge of system properties,system properties,reference.conf @ jar:file:/usr/share/jitsi-videobridge/jitsi-videobridge.jar!/reference.conf: 1,reference.conf @ jar:file:/usr/share/jitsi-videobridge/lib/jitsi-media-transform-1.0-155-gb6af7e9.jar!/reference.conf: 1
2020-06-05 10:24:25.734 INFO: [22] LegacyConfigFileLoader$Companion.load#40: Attempting to load legacy config file at path /etc/jitsi, videobridge, sip-communicator.properties
2020-06-05 10:24:25.735 INFO: [22] LegacyConfigFileLoader$Companion.load#40: Attempting to load legacy config file at path /etc/jitsi, videobridge, sip-communicator.properties
2020-06-05 10:24:25.754 INFO: [22] AbstractHealthCheckService.start#96: Started with interval=10000, timeout=PT30S, maxDuration=PT3S, stickyFailures=false.
2020-06-05 10:24:25.788 INFO: [22] OctoRelayService.start#45: Octo relay is disabled
2020-06-05 10:24:25.981 INFO: [32] org.ice4j.ice.harvest.StunMappingCandidateHarvester.discover: Discovered public address 162.214.96.134:38738/udp from STUN server 18.189.34.6:443/udp using local address 162.214.96.134:0/udp
2020-06-05 10:24:25.985 INFO: [33] org.ice4j.ice.harvest.StunMappingCandidateHarvester.discover: Discovered public address 162.214.74.42:53263/udp from STUN server 18.189.34.6:443/udp using local address 162.214.74.42:0/udp
2020-06-05 10:24:25.986 INFO: [28] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize: Using org.ice4j.ice.harvest.StunMappingCandidateHarvester, face=/162.214.96.134, mask=/162.214.96.134
2020-06-05 10:24:25.986 INFO: [28] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize: Using org.ice4j.ice.harvest.StunMappingCandidateHarvester, face=/162.214.74.42, mask=/162.214.74.42
2020-06-05 10:24:25.987 INFO: [28] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize: Initialized mapping harvesters (delay=239ms).  stunDiscoveryFailed=false
2020-06-05 10:24:26.289 INFO: [30] [hostname=localhost id=shard] MucClient$1.connected#266: Connected.
2020-06-05 10:24:26.289 INFO: [30] [hostname=localhost id=shard] MucClient.lambda$getConnectAndLoginCallable$7#648: Logging in.
2020-06-05 10:24:26.432 INFO: [30] [hostname=localhost id=shard] MucClient$MucWrapper.join#751: Joined MUC: jvbbrewery@internal.auth.jitsi.myserver.com
2020-06-05 10:24:35.803 INFO: [29] Videobridge.createConference#320: create_conf, id=dca1745757f06105 gid=null logging=false
2020-06-05 10:24:35.842 INFO: [29] TaskPools.<clinit>#81: TaskPools detected 16 processors, creating the CPU pool with that many threads
2020-06-05 10:24:35.983 INFO: [29] org.ice4j.ice.harvest.AbstractUdpListener.<init>: Initialized AbstractUdpListener with address 162.214.96.134:10000/udp. Receive buffer size 10485760 (asked for 10485760)
2020-06-05 10:24:35.985 INFO: [29] org.ice4j.ice.harvest.SinglePortUdpHarvester.<init>: Initialized SinglePortUdpHarvester with address 162.214.96.134:10000/udp
2020-06-05 10:24:35.985 INFO: [29] org.ice4j.ice.harvest.AbstractUdpListener.<init>: Initialized AbstractUdpListener with address 162.214.74.42:10000/udp. Receive buffer size 10485760 (asked for 10485760)
2020-06-05 10:24:35.987 INFO: [29] org.ice4j.ice.harvest.SinglePortUdpHarvester.<init>: Initialized SinglePortUdpHarvester with address 162.214.74.42:10000/udp
SCTP JNI load: Linux OS detected
SCTP lib loaded
=====>: org_jitsi_modified_sctp4j_SctpJni.c calling init
=====>: org_jitsi_modified_sctp4j_SctpJni.c about to set SCTP_DEBUG_ALL
2020-06-05 10:24:37.100 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT1.3466S. Sticky failure: false
2020-06-05 10:24:45.754 INFO: [29] Videobridge.createConference#320: create_conf, id=1490ad8a1fba4ed7 gid=null logging=false
2020-06-05 10:24:45.773 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.020292S. Sticky failure: false
2020-06-05 10:24:55.753 INFO: [29] Videobridge.createConference#320: create_conf, id=bf116f388599a5b4 gid=null logging=false
2020-06-05 10:24:55.771 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.017693S. Sticky failure: false
2020-06-05 10:25:05.754 INFO: [29] Videobridge.createConference#320: create_conf, id=4dfe32d0cc165dd5 gid=null logging=false
2020-06-05 10:25:05.777 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.024549S. Sticky failure: false
2020-06-05 10:25:15.754 INFO: [29] Videobridge.createConference#320: create_conf, id=d68a8ed5b31b35c8 gid=null logging=false
2020-06-05 10:25:15.780 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.02689S. Sticky failure: false
2020-06-05 10:25:25.515 INFO: [27] VideobridgeExpireThread.expire#144: Running expire()
2020-06-05 10:25:25.754 INFO: [29] Videobridge.createConference#320: create_conf, id=9381cdbdfa5cc96e gid=null logging=false
2020-06-05 10:25:25.776 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.022458S. Sticky failure: false
2020-06-05 10:25:35.754 INFO: [29] Videobridge.createConference#320: create_conf, id=b09d8f1c8f328659 gid=null logging=false
2020-06-05 10:25:35.932 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.178348S. Sticky failure: false
2020-06-05 10:25:45.753 INFO: [29] Videobridge.createConference#320: create_conf, id=5f42d701251a115c gid=null logging=false
2020-06-05 10:25:45.766 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.012695S. Sticky failure: false
2020-06-05 10:25:55.754 INFO: [29] Videobridge.createConference#320: create_conf, id=80f62fa05a92f15f gid=null logging=false
2020-06-05 10:25:55.773 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.019247S. Sticky failure: false
2020-06-05 10:26:05.754 INFO: [29] Videobridge.createConference#320: create_conf, id=15bdc13098899375 gid=null logging=false
2020-06-05 10:26:05.774 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.020124S. Sticky failure: false
2020-06-05 10:26:15.754 INFO: [29] Videobridge.createConference#320: create_conf, id=eb284169e65fc28 gid=null logging=false
2020-06-05 10:26:15.773 INFO: [29] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.018848S. Sticky failure: false

PROSODY LOGS

Contents of the LOG /var/log/prosody/prosody.log

Jun 05 10:24:24 startup	info	Hello and welcome to Prosody version 0.11.5
Jun 05 10:24:24 startup	info	Prosody is using the select backend for connection handling
Jun 05 10:24:24 portmanager	info	Activated service 's2s' on [::]:5269, [*]:5269
Jun 05 10:24:24 modulemanager	error	Error initializing module 'token_verification' on 'conference.jitsi.myserver.com': /usr/lib/prosody/util/startup.lua:199: module 'basexx' not found:Failed loading module basexx in LuaRocks rock basexx 0.4.1-1
	no field package.preload['basexx']
	no file '/usr/lib/prosody/basexx.lua'
	no file '/usr/local/share/lua/5.2/basexx.lua'
	no file '/usr/local/share/lua/5.2/basexx/init.lua'
	no file '/usr/local/lib/lua/5.2/basexx.lua'
	no file '/usr/local/lib/lua/5.2/basexx/init.lua'
	no file '/usr/share/lua/5.2/basexx.lua'
	no file '/usr/share/lua/5.2/basexx/init.lua'
	no file '/var/lib/prosody/.luarocks/share/lua/5.2/basexx.lua'
	no file '/var/lib/prosody/.luarocks/share/lua/5.2/basexx/init.lua'
	no file '/usr/lib/prosody/basexx.so'
	no file '/usr/local/lib/lua/5.2/basexx.so'
	no file '/usr/lib/x86_64-linux-gnu/lua/5.2/basexx.so'
	no file '/usr/lib/lua/5.2/basexx.so'
	no file '/usr/local/lib/lua/5.2/loadall.so'
	no file '/var/lib/prosody/.luarocks/lib/lua/5.2/basexx.so'
stack traceback:
	[C]: in function '_real_require'
	/usr/lib/prosody/util/startup.lua:199: in function 'require'
	/usr/share/jitsi-meet/prosody-plugins/token/util.lib.lua:4: in main chunk
	(...tail calls...)
	...re/jitsi-meet/prosody-plugins/mod_token_verification.lua:24: in main chunk
	[C]: in function 'xpcall'
	/usr/lib/prosody/core/modulemanager.lua:183: in function 'do_load_module'
	/usr/lib/prosody/core/modulemanager.lua:261: in function 'load'
	/usr/lib/prosody/core/modulemanager.lua:83: in function '?'
	/usr/lib/prosody/util/events.lua:79: in function </usr/lib/prosody/util/events.lua:75>
	(...tail calls...)
	/usr/lib/prosody/core/hostmanager.lua:108: in function 'activate'
	/usr/lib/prosody/core/hostmanager.lua:58: in function '?'
	/usr/lib/prosody/util/events.lua:79: in function </usr/lib/prosody/util/events.lua:75>
	(...tail calls...)
	/usr/lib/prosody/util/startup.lua:391: in function 'prepare_to_start'
	/usr/lib/prosody/util/startup.lua:613: in function 'f'
	/usr/lib/prosody/util/async.lua:139: in function 'func'
	/usr/lib/prosody/util/async.lua:127: in function </usr/lib/prosody/util/async.lua:125>
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host conference.jitsi.myserver.com!
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host conferenceduration.jitsi.myserver.com!
Jun 05 10:24:24 general	info	Starting conference duration timer for conference.jitsi.myserver.com
Jun 05 10:24:24 conferenceduration.jitsi.myserver.com:conference_duration_component	info	Hook to muc events on conference.jitsi.myserver.com
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host guest.jitsi.myserver.com!
Jun 05 10:24:24 portmanager	info	Activated service 'c2s' on [::]:5222, [*]:5222
Jun 05 10:24:24 portmanager	info	Activated service 'legacy_ssl' on no ports
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host speakerstats.jitsi.myserver.com!
Jun 05 10:24:24 general	info	Starting speakerstats for conference.jitsi.myserver.com
Jun 05 10:24:24 speakerstats.jitsi.myserver.com:speakerstats_component	info	Hook to muc events on conference.jitsi.myserver.com
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host jitsi.myserver.com!
Jun 05 10:24:24 portmanager	info	Activated service 'http' on [::]:5280, [*]:5280
Jun 05 10:24:24 portmanager	error	Error binding encrypted port for https: No certificate present in SSL/TLS configuration for https port 5281
Jun 05 10:24:24 portmanager	error	Error binding encrypted port for https: No certificate present in SSL/TLS configuration for https port 5281
Jun 05 10:24:24 portmanager	info	Activated service 'https' on no ports
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host focus.jitsi.myserver.com!
Jun 05 10:24:24 portmanager	info	Activated service 'component' on [127.0.0.1]:5347, [::1]:5347
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host internal.auth.jitsi.myserver.com!
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host auth.jitsi.myserver.com!
Jun 05 10:24:24 conference.jitsi.myserver.com:muc_domain_mapper	info	Loading mod_muc_domain_mapper for host localhost!
Jun 05 10:24:25 conference.jitsi.myserver.com:muc_domain_mapper	warn	Session filters applied
Jun 05 10:24:25 c2s558120597960	info	Client connected
Jun 05 10:24:25 conference.jitsi.myserver.com:muc_domain_mapper	warn	Session filters applied
Jun 05 10:24:25 c2s55812053cd40	info	Client connected
Jun 05 10:24:26 c2s55812053cd40	info	Stream encrypted (TLSv1.3 with TLS_AES_256_GCM_SHA384)
Jun 05 10:24:26 c2s558120597960	info	Stream encrypted (TLSv1.3 with TLS_AES_256_GCM_SHA384)
Jun 05 10:24:26 c2s55812053cd40	info	Authenticated as jvb@auth.jitsi.myserver.com
Jun 05 10:24:26 c2s558120597960	info	Authenticated as focus@auth.jitsi.myserver.com
Jun 05 10:24:26 focus.jitsi.myserver.com:component	warn	Component not connected, bouncing error for: <iq type='get' to='focus.jitsi.myserver.com' from='focus@auth.jitsi.myserver.com/focus66357724505' id='3QcFM-37'>
Jun 05 10:24:26 jcp558120804210	info	Incoming Jabber component connection
Jun 05 10:24:26 focus.jitsi.myserver.com:component	info	External component successfully authenticated
Jun 05 10:25:15 conference.jitsi.myserver.com:muc_domain_mapper	warn	Session filters applied
Jun 05 10:25:15 mod_bosh	info	New BOSH session, assigned it sid '68b62468-355f-49cb-8d9f-a4ad34445861'
Jun 05 10:25:25 bosh68b62468-355f-49cb-8d9f-a4ad34445861	info	BOSH client disconnected: session close

Contents of the LOG /var/log/prosody/prosody.err

Jun 05 10:24:24 modulemanager	error	Error initializing module 'token_verification' on 'conference.jitsi.myserver.com': /usr/lib/prosody/util/startup.lua:199: module 'basexx' not found:Failed loading module basexx in LuaRocks rock basexx 0.4.1-1
	no field package.preload['basexx']
	no file '/usr/lib/prosody/basexx.lua'
	no file '/usr/local/share/lua/5.2/basexx.lua'
	no file '/usr/local/share/lua/5.2/basexx/init.lua'
	no file '/usr/local/lib/lua/5.2/basexx.lua'
	no file '/usr/local/lib/lua/5.2/basexx/init.lua'
	no file '/usr/share/lua/5.2/basexx.lua'
	no file '/usr/share/lua/5.2/basexx/init.lua'
	no file '/var/lib/prosody/.luarocks/share/lua/5.2/basexx.lua'
	no file '/var/lib/prosody/.luarocks/share/lua/5.2/basexx/init.lua'
	no file '/usr/lib/prosody/basexx.so'
	no file '/usr/local/lib/lua/5.2/basexx.so'
	no file '/usr/lib/x86_64-linux-gnu/lua/5.2/basexx.so'
	no file '/usr/lib/lua/5.2/basexx.so'
	no file '/usr/local/lib/lua/5.2/loadall.so'
	no file '/var/lib/prosody/.luarocks/lib/lua/5.2/basexx.so'
stack traceback:
	[C]: in function '_real_require'
	/usr/lib/prosody/util/startup.lua:199: in function 'require'
	/usr/share/jitsi-meet/prosody-plugins/token/util.lib.lua:4: in main chunk
	(...tail calls...)
	...re/jitsi-meet/prosody-plugins/mod_token_verification.lua:24: in main chunk
	[C]: in function 'xpcall'
	/usr/lib/prosody/core/modulemanager.lua:183: in function 'do_load_module'
	/usr/lib/prosody/core/modulemanager.lua:261: in function 'load'
	/usr/lib/prosody/core/modulemanager.lua:83: in function '?'
	/usr/lib/prosody/util/events.lua:79: in function </usr/lib/prosody/util/events.lua:75>
	(...tail calls...)
	/usr/lib/prosody/core/hostmanager.lua:108: in function 'activate'
	/usr/lib/prosody/core/hostmanager.lua:58: in function '?'
	/usr/lib/prosody/util/events.lua:79: in function </usr/lib/prosody/util/events.lua:75>
	(...tail calls...)
	/usr/lib/prosody/util/startup.lua:391: in function 'prepare_to_start'
	/usr/lib/prosody/util/startup.lua:613: in function 'f'
	/usr/lib/prosody/util/async.lua:139: in function 'func'
	/usr/lib/prosody/util/async.lua:127: in function </usr/lib/prosody/util/async.lua:125>
Jun 05 10:24:24 portmanager	error	Error binding encrypted port for https: No certificate present in SSL/TLS configuration for https port 5281
Jun 05 10:24:24 portmanager	error	Error binding encrypted port for https: No certificate present in SSL/TLS configuration for https port 5281

Check it out and the module basexx is installed.

Result of prosodyctl about

Prosody 0.11.5

# Prosody directories
Data directory:     /var/lib/prosody
Config directory:   /etc/prosody
Source directory:   /usr/lib/prosody
Plugin directories:
  /usr/share/jitsi-meet/prosody-plugins/
  /usr/lib/prosody/modules/


# Lua environment
Lua version:                    Lua 5.2

Lua module search paths:
  /usr/lib/prosody/?.lua
  /usr/local/share/lua/5.2/?.lua
  /usr/local/share/lua/5.2/?/init.lua
  /usr/local/lib/lua/5.2/?.lua
  /usr/local/lib/lua/5.2/?/init.lua
  /usr/share/lua/5.2/?.lua
  /usr/share/lua/5.2/?/init.lua
  /root/.luarocks/share/lua/5.2/?.lua
  /root/.luarocks/share/lua/5.2/?/init.lua

Lua C module search paths:
  /usr/lib/prosody/?.so
  /usr/local/lib/lua/5.2/?.so
  /usr/lib/x86_64-linux-gnu/lua/5.2/?.so
  /usr/lib/lua/5.2/?.so
  /usr/local/lib/lua/5.2/loadall.so
  /root/.luarocks/lib/lua/5.2/?.so

LuaRocks:               Installed (2.4.2)

# Network

Backend: select

# Lua module versions
lfs:            LuaFileSystem 1.6.3
libevent:       2.1.8-stable
luaevent:       0.4.6
lxp:            LuaExpat 1.3.0
socket:         LuaSocket 3.0-rc1
ssl:            0.6

I need help, I don’t know which way to go anymore.
Sorry if the post got big, I tried to be as complete as possible.
Thank you all.

@damencho, Can you help us?

Check the internet how to use luarocks with lua 5.2 and make sure you install missing packets like basexx with luarocks that will install them for 5.2, as it by default install it for 5.1.

If you still need help you can check our guide here. I installed many many instances by just following these steps.

https://doganbros.com/index.php/jitsi/jitsi-installation-with-jwt-support-on-ubuntu-18-04-tls-2/

Follow my docs how to install jitsi meet + jwt on ubuntu 18 and 20 (with video)

https://github.com/christiancuri/Docs

NodeJS example how to create jwt

const jsonwebtoken = require(‘jsonwebtoken’)

const obj = {
context: {
user: {
email: ‘email@example.dev’,
name: Christian Curi,
}
},
room: ‘ChristianCuri’,
};

const jwt = jsonwebtoken.sign(obj, ‘secret’, {
issuer: “zellim”,
subject: https://jitmeet.example.com,
expiresIn: “12h”,
audience: “zellim”,
});

console.log(jwt)