Docker-jitsi-meet recording on the server does not work

#Hi

I am unable to configure correctly jibri at my dev env. I have looked through much of this forum and the documentation and I didnt found an answer. In general I based on default settings and at first glace everything looks good, I event cant found any clue where is the problem.

  • local recording works great
  • recording via the service no - I understand this service as recording to disc in the place where Jitsi is installed, and the files should be saved at /config/recordings and this behavior is expected
docker-compose file, in general I changed here nothing, its a default yml file
version: '3.5'

services:
  # Frontend
  web:
      image: jitsi/web:${JITSI_IMAGE_VERSION:-stable-8138-1}
      restart: ${RESTART_POLICY:-unless-stopped}
      ports:
          - '${HTTP_PORT}:80'
          - '${HTTPS_PORT}:443'
      volumes:
          - ${CONFIG}/web:/config:Z
          - ${CONFIG}/web/crontabs:/var/spool/cron/crontabs:Z
          - ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts:Z
      environment:
          - AMPLITUDE_ID
          - ANALYTICS_SCRIPT_URLS
          - ANALYTICS_WHITELISTED_EVENTS
          - AUDIO_QUALITY_OPUS_BITRATE
          - AUTO_CAPTION_ON_RECORD
          - BRANDING_DATA_URL
          - CALLSTATS_CUSTOM_SCRIPT_URL
          - CALLSTATS_ID
          - CALLSTATS_SECRET
          - CHROME_EXTENSION_BANNER_JSON
          - CONFCODE_URL
          - CONFIG_EXTERNAL_CONNECT
          - DEFAULT_LANGUAGE
          - DEPLOYMENTINFO_ENVIRONMENT
          - DEPLOYMENTINFO_ENVIRONMENT_TYPE
          - DEPLOYMENTINFO_REGION
          - DEPLOYMENTINFO_SHARD
          - DEPLOYMENTINFO_USERREGION
          - DESKTOP_SHARING_FRAMERATE_MIN
          - DESKTOP_SHARING_FRAMERATE_MAX
          - DIALIN_NUMBERS_URL
          - DIALOUT_AUTH_URL
          - DIALOUT_CODES_URL
          - DISABLE_AUDIO_LEVELS
          - DISABLE_DEEP_LINKING
          - DISABLE_GRANT_MODERATOR
          - DISABLE_HTTPS
          - DISABLE_KICKOUT
          - DISABLE_LOCAL_RECORDING
          - DISABLE_POLLS
          - DISABLE_PRIVATE_CHAT
          - DISABLE_PROFILE
          - DISABLE_REACTIONS
          - DISABLE_REMOTE_VIDEO_MENU
          - DISABLE_START_FOR_ALL
          - DROPBOX_APPKEY
          - DROPBOX_REDIRECT_URI
          - DYNAMIC_BRANDING_URL
          - ENABLE_AUDIO_PROCESSING
          - ENABLE_AUTH
          - ENABLE_BREAKOUT_ROOMS
          - ENABLE_CALENDAR
          - ENABLE_COLIBRI_WEBSOCKET
          - ENABLE_E2EPING
          - ENABLE_FILE_RECORDING_SHARING
          - ENABLE_GUESTS
          - ENABLE_HSTS
          - ENABLE_HTTP_REDIRECT
          - ENABLE_IPV6
          - ENABLE_LETSENCRYPT
          - ENABLE_LIPSYNC
          - ENABLE_NO_AUDIO_DETECTION
          - ENABLE_NOISY_MIC_DETECTION
          - ENABLE_OCTO
          - ENABLE_OPUS_RED
          - ENABLE_PREJOIN_PAGE
          - ENABLE_P2P
          - ENABLE_WELCOME_PAGE
          - ENABLE_CLOSE_PAGE
          - ENABLE_LIVESTREAMING
          - ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT
          - ENABLE_LOCAL_RECORDING_SELF_START
          - ENABLE_RECORDING
          - ENABLE_REMB
          - ENABLE_REQUIRE_DISPLAY_NAME
          - ENABLE_SERVICE_RECORDING
          - ENABLE_SIMULCAST
          - ENABLE_STATS_ID
          - ENABLE_STEREO
          - ENABLE_SUBDOMAINS
          - ENABLE_TALK_WHILE_MUTED
          - ENABLE_TCC
          - ENABLE_TRANSCRIPTIONS
          - ENABLE_XMPP_WEBSOCKET
          - ENABLE_JAAS_COMPONENTS
          - ETHERPAD_PUBLIC_URL
          - ETHERPAD_URL_BASE
          - E2EPING_NUM_REQUESTS
          - E2EPING_MAX_CONFERENCE_SIZE
          - E2EPING_MAX_MESSAGE_PER_SECOND
          - GOOGLE_ANALYTICS_ID
          - GOOGLE_API_APP_CLIENT_ID
          - HIDE_PREMEETING_BUTTONS
          - HIDE_PREJOIN_DISPLAY_NAME
          - HIDE_PREJOIN_EXTRA_BUTTONS
          - INVITE_SERVICE_URL
          - JICOFO_AUTH_USER
          - LETSENCRYPT_DOMAIN
          - LETSENCRYPT_EMAIL
          - LETSENCRYPT_USE_STAGING
          - MATOMO_ENDPOINT
          - MATOMO_SITE_ID
          - MICROSOFT_API_APP_CLIENT_ID
          - NGINX_RESOLVER
          - NGINX_WORKER_PROCESSES
          - NGINX_WORKER_CONNECTIONS
          - PEOPLE_SEARCH_URL
          - PREFERRED_LANGUAGE
          - PUBLIC_URL
          - P2P_PREFERRED_CODEC
          - RESOLUTION
          - RESOLUTION_MIN
          - RESOLUTION_WIDTH
          - RESOLUTION_WIDTH_MIN
          - START_AUDIO_MUTED
          - START_AUDIO_ONLY
          - START_BITRATE
          - START_SILENT
          - START_WITH_AUDIO_MUTED
          - START_VIDEO_MUTED
          - START_WITH_VIDEO_MUTED
          - TESTING_CAP_SCREENSHARE_BITRATE
          - TESTING_OCTO_PROBABILITY
          - TOKEN_AUTH_URL
          - TOOLBAR_BUTTONS
          - TRANSLATION_LANGUAGES
          - TRANSLATION_LANGUAGES_HEAD
          - TZ
          - USE_APP_LANGUAGE
          - VIDEOQUALITY_BITRATE_H264_LOW
          - VIDEOQUALITY_BITRATE_H264_STANDARD
          - VIDEOQUALITY_BITRATE_H264_HIGH
          - VIDEOQUALITY_BITRATE_VP8_LOW
          - VIDEOQUALITY_BITRATE_VP8_STANDARD
          - VIDEOQUALITY_BITRATE_VP8_HIGH
          - VIDEOQUALITY_BITRATE_VP9_LOW
          - VIDEOQUALITY_BITRATE_VP9_STANDARD
          - VIDEOQUALITY_BITRATE_VP9_HIGH
          - VIDEOQUALITY_ENFORCE_PREFERRED_CODEC
          - VIDEOQUALITY_PREFERRED_CODEC
          - XMPP_AUTH_DOMAIN
          - XMPP_BOSH_URL_BASE
          - XMPP_DOMAIN
          - XMPP_GUEST_DOMAIN
          - XMPP_MUC_DOMAIN
          - XMPP_RECORDER_DOMAIN
          - XMPP_PORT
      networks:
          meet.jitsi:

  # XMPP server
  prosody:
      image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-8138-1}
      restart: ${RESTART_POLICY:-unless-stopped}
      expose:
          - '${XMPP_PORT:-5222}'
          - '5347'
          - '5280'
      volumes:
          - ${CONFIG}/prosody/config:/config:Z
          - ${CONFIG}/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z
      environment:
          - AUTH_TYPE
          - DISABLE_POLLS
          - ENABLE_AUTH
          - ENABLE_AV_MODERATION
          - ENABLE_BREAKOUT_ROOMS
          - ENABLE_END_CONFERENCE
          - ENABLE_GUESTS
          - ENABLE_IPV6
          - ENABLE_LOBBY
          - ENABLE_RECORDING
          - ENABLE_XMPP_WEBSOCKET
          - ENABLE_JAAS_COMPONENTS
          - GC_TYPE
          - GC_INC_TH
          - GC_INC_SPEED
          - GC_INC_STEP_SIZE
          - GC_GEN_MIN_TH
          - GC_GEN_MAX_TH
          - GLOBAL_CONFIG
          - GLOBAL_MODULES
          - JIBRI_RECORDER_USER
          - JIBRI_RECORDER_PASSWORD
          - JIBRI_XMPP_USER
          - JIBRI_XMPP_PASSWORD
          - JICOFO_AUTH_USER
          - JICOFO_AUTH_PASSWORD
          - JICOFO_COMPONENT_SECRET
          - JIGASI_XMPP_USER
          - JIGASI_XMPP_PASSWORD
          - JVB_AUTH_USER
          - JVB_AUTH_PASSWORD
          - JWT_APP_ID
          - JWT_APP_SECRET
          - JWT_ACCEPTED_ISSUERS
          - JWT_ACCEPTED_AUDIENCES
          - JWT_ASAP_KEYSERVER
          - JWT_ALLOW_EMPTY
          - JWT_AUTH_TYPE
          - JWT_ENABLE_DOMAIN_VERIFICATION
          - JWT_TOKEN_AUTH_MODULE
          - MATRIX_UVS_URL
          - MATRIX_UVS_ISSUER
          - MATRIX_UVS_AUTH_TOKEN
          - MATRIX_UVS_SYNC_POWER_LEVELS
          - LOG_LEVEL
          - LDAP_AUTH_METHOD
          - LDAP_BASE
          - LDAP_BINDDN
          - LDAP_BINDPW
          - LDAP_FILTER
          - LDAP_VERSION
          - LDAP_TLS_CIPHERS
          - LDAP_TLS_CHECK_PEER
          - LDAP_TLS_CACERT_FILE
          - LDAP_TLS_CACERT_DIR
          - LDAP_START_TLS
          - LDAP_URL
          - LDAP_USE_TLS
          - MAX_PARTICIPANTS
          - PROSODY_RESERVATION_ENABLED
          - PROSODY_RESERVATION_REST_BASE_URL
          - PUBLIC_URL
          - TURN_CREDENTIALS
          - TURN_HOST
          - TURNS_HOST
          - TURN_PORT
          - TURNS_PORT
          - TURN_TRANSPORT
          - TZ
          - XMPP_DOMAIN
          - XMPP_AUTH_DOMAIN
          - XMPP_GUEST_DOMAIN
          - XMPP_MUC_DOMAIN
          - XMPP_INTERNAL_MUC_DOMAIN
          - XMPP_MODULES
          - XMPP_MUC_MODULES
          - XMPP_MUC_CONFIGURATION
          - XMPP_INTERNAL_MUC_MODULES
          - XMPP_RECORDER_DOMAIN
          - XMPP_PORT
      networks:
          meet.jitsi:
              aliases:
                  - ${XMPP_SERVER:-xmpp.meet.jitsi}

  # Focus component
  jicofo:
      image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-8138-1}
      restart: ${RESTART_POLICY:-unless-stopped}
      volumes:
          - ${CONFIG}/jicofo:/config:Z
      environment:
          - AUTH_TYPE
          - BRIDGE_AVG_PARTICIPANT_STRESS
          - BRIDGE_STRESS_THRESHOLD
          - ENABLE_AUTH
          - ENABLE_AUTO_OWNER
          - ENABLE_CODEC_VP8
          - ENABLE_CODEC_VP9
          - ENABLE_CODEC_H264
          - ENABLE_OCTO
          - ENABLE_RECORDING
          - ENABLE_SCTP
          - ENABLE_AUTO_LOGIN
          - JICOFO_AUTH_USER
          - JICOFO_AUTH_PASSWORD
          - JICOFO_ENABLE_BRIDGE_HEALTH_CHECKS
          - JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT
          - JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT
          - JICOFO_ENABLE_HEALTH_CHECKS
          - JIBRI_BREWERY_MUC
          - JIBRI_REQUEST_RETRIES
          - JIBRI_PENDING_TIMEOUT
          - JIGASI_BREWERY_MUC
          - JIGASI_SIP_URI
          - JVB_BREWERY_MUC
          - MAX_BRIDGE_PARTICIPANTS
          - OCTO_BRIDGE_SELECTION_STRATEGY
          - SENTRY_DSN="${JICOFO_SENTRY_DSN:-0}"
          - SENTRY_ENVIRONMENT
          - SENTRY_RELEASE
          - TZ
          - XMPP_DOMAIN
          - XMPP_AUTH_DOMAIN
          - XMPP_INTERNAL_MUC_DOMAIN
          - XMPP_MUC_DOMAIN
          - XMPP_RECORDER_DOMAIN
          - XMPP_SERVER
          - XMPP_PORT
      depends_on:
          - prosody
      networks:
          meet.jitsi:

  # Video bridge
  jvb:
      image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-8138-1}
      restart: ${RESTART_POLICY:-unless-stopped}
      ports:
          - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp'
          - '127.0.0.1:${JVB_COLIBRI_PORT:-8080}:8080'
      volumes:
          - ${CONFIG}/jvb:/config:Z
      environment:
          - DOCKER_HOST_ADDRESS
          - ENABLE_COLIBRI_WEBSOCKET
          - ENABLE_OCTO
          - JVB_ADVERTISE_IPS
          - JVB_ADVERTISE_PRIVATE_CANDIDATES
          - JVB_AUTH_USER
          - JVB_AUTH_PASSWORD
          - JVB_BREWERY_MUC
          - JVB_DISABLE_STUN
          - JVB_PORT
          - JVB_MUC_NICKNAME
          - JVB_STUN_SERVERS
          - JVB_OCTO_BIND_ADDRESS
          - JVB_OCTO_REGION
          - JVB_OCTO_RELAY_ID
          - JVB_WS_DOMAIN
          - JVB_WS_SERVER_ID
          - PUBLIC_URL
          - SENTRY_DSN="${JVB_SENTRY_DSN:-0}"
          - SENTRY_ENVIRONMENT
          - SENTRY_RELEASE
          - COLIBRI_REST_ENABLED
          - SHUTDOWN_REST_ENABLED
          - TZ
          - XMPP_AUTH_DOMAIN
          - XMPP_INTERNAL_MUC_DOMAIN
          - XMPP_SERVER
          - XMPP_PORT
      depends_on:
          - prosody
      networks:
          meet.jitsi:

# Custom network so all services can communicate using a FQDN
networks:
  meet.jitsi:
jibri yml file, as here - also default
version: '3.5'

services:
  jibri:
      image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable-8138-1}
      restart: ${RESTART_POLICY:-unless-stopped}
      volumes:
          - ${CONFIG}/jibri:/config:Z
      shm_size: '2gb'
      cap_add:
          - SYS_ADMIN
      environment:
          - CHROMIUM_FLAGS
          - DISPLAY=:0
          - ENABLE_STATS_D
          - JIBRI_HTTP_API_EXTERNAL_PORT
          - JIBRI_HTTP_API_INTERNAL_PORT
          - JIBRI_RECORDING_RESOLUTION
          - JIBRI_USAGE_TIMEOUT
          - JIBRI_XMPP_USER
          - JIBRI_XMPP_PASSWORD
          - JIBRI_BREWERY_MUC
          - JIBRI_RECORDER_USER
          - JIBRI_RECORDER_PASSWORD
          - JIBRI_RECORDING_DIR
          - JIBRI_FINALIZE_RECORDING_SCRIPT_PATH
          - JIBRI_STRIP_DOMAIN_JID
          - PUBLIC_URL
          - TZ
          - XMPP_AUTH_DOMAIN
          - XMPP_DOMAIN
          - XMPP_INTERNAL_MUC_DOMAIN
          - XMPP_MUC_DOMAIN
          - XMPP_RECORDER_DOMAIN
          - XMPP_SERVER
          - XMPP_PORT
          - XMPP_TRUST_ALL_CERTS
      depends_on:
          - jicofo
      networks:
          meet.jitsi:
docker env configuration

# shellcheck disable=SC2034

################################################################################

################################################################################

# Welcome to the Jitsi Meet Docker setup!

#

# This sample .env file contains some basic options to get you started.

# The full options reference can be found here:

# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker

################################################################################

################################################################################

#

# Basic configuration options

#

# Directory where all configuration will be stored

CONFIG=~/.jitsi-meet-cfg

# Exposed HTTP port

HTTP_PORT=8000

# Exposed HTTPS port

HTTPS_PORT=8443

# System time zone

TZ=UTC

# Public URL for the web service (required)

PUBLIC_URL=https://jitsi.test:8443

# Media IP addresses to advertise by the JVB

# This setting deprecates DOCKER_HOST_ADDRESS, and supports a comma separated list of IPs

# See the "Running behind NAT or on a LAN environment" section in the Handbook:

# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker#running-behind-nat-or-on-a-lan-environment

#JVB_ADVERTISE_IPS=192.168.1.1,1.2.3.4

#

# JaaS Components (beta)

# https://jaas.8x8.vc

#

# Enable JaaS Components (hosted Jigasi)

# NOTE: if Let's Encrypt is enabled a JaaS account will be automatically created, using the provided email in LETSENCRYPT_EMAIL

#ENABLE_JAAS_COMPONENTS=0

#

# Let's Encrypt configuration

#

# Enable Let's Encrypt certificate generation

#ENABLE_LETSENCRYPT=1

# Domain for which to generate the certificate

#LETSENCRYPT_DOMAIN=meet.example.com

# E-Mail for receiving important account notifications (mandatory)

#LETSENCRYPT_EMAIL=alice@atlanta.net

# Use the staging server (for avoiding rate limits while testing)

#LETSENCRYPT_USE_STAGING=1

#

# Etherpad integration (for document sharing)

#

# Set etherpad-lite URL in docker local network (uncomment to enable)

#ETHERPAD_URL_BASE=http://etherpad.meet.jitsi:9001

# Set etherpad-lite public URL, including /p/ pad path fragment (uncomment to enable)

#ETHERPAD_PUBLIC_URL=https://etherpad.my.domain/p/

# Name your etherpad instance!

ETHERPAD_TITLE=Video Chat

# The default text of a pad

ETHERPAD_DEFAULT_PAD_TEXT="Welcome to Web Chat!\n\n"

# Name of the skin for etherpad

ETHERPAD_SKIN_NAME=colibris

# Skin variants for etherpad

ETHERPAD_SKIN_VARIANTS="super-light-toolbar super-light-editor light-background full-width-editor"

#

# Basic Jigasi configuration options (needed for SIP gateway support)

#

# SIP URI for incoming / outgoing calls

#JIGASI_SIP_URI=test@sip2sip.info

# Password for the specified SIP account as a clear text

#JIGASI_SIP_PASSWORD=passw0rd

# SIP server (use the SIP account domain if in doubt)

#JIGASI_SIP_SERVER=sip2sip.info

# SIP server port

#JIGASI_SIP_PORT=5060

# SIP server transport

#JIGASI_SIP_TRANSPORT=UDP

#

# Authentication configuration (see handbook for details)

#

# Enable authentication

ENABLE_AUTH=0

# Enable guest access

ENABLE_GUESTS=1

# Select authentication type: internal, jwt, ldap or matrix

AUTH_TYPE=jwt

ENABLE_AUTO_LOGIN=0

#

# JWT authentication

#

# Application identifier

JWT_APP_ID=my_jitsi_app_id

# Application secret known only to your token

JWT_APP_SECRET=you_need_to_make_sure_to_generate_the_jwt_token_by_providing_the_payload_and_JWT_APP_SECRET_value_on_the_VERIFY_SIGNATURE_section

# (Optional) Set asap_accepted_issuers as a comma separated list

#JWT_ACCEPTED_ISSUERS=my_web_client,my_app_client

# (Optional) Set asap_accepted_audiences as a comma separated list

#JWT_ACCEPTED_AUDIENCES=myserver1,myserver2

JWT_ALLOW_EMPTY=0

JWT_AUTH_TYPE=token

JWT_TOKEN_AUTH_MODULE=token_verification

#

# LDAP authentication (for more information see the Cyrus SASL saslauthd.conf man page)

#

# LDAP url for connection

#LDAP_URL=ldaps://ldap.domain.com/

# LDAP base DN. Can be empty

#LDAP_BASE=DC=example,DC=domain,DC=com

# LDAP user DN. Do not specify this parameter for the anonymous bind

#LDAP_BINDDN=CN=binduser,OU=users,DC=example,DC=domain,DC=com

# LDAP user password. Do not specify this parameter for the anonymous bind

#LDAP_BINDPW=LdapUserPassw0rd

# LDAP filter. Tokens example:

# %1-9 - if the input key is user@mail.domain.com, then %1 is com, %2 is domain and %3 is mail

# %s - %s is replaced by the complete service string

# %r - %r is replaced by the complete realm string

#LDAP_FILTER=(sAMAccountName=%u)

# LDAP authentication method

#LDAP_AUTH_METHOD=bind

# LDAP version

#LDAP_VERSION=3

# LDAP TLS using

#LDAP_USE_TLS=1

# List of SSL/TLS ciphers to allow

#LDAP_TLS_CIPHERS=SECURE256:SECURE128:!AES-128-CBC:!ARCFOUR-128:!CAMELLIA-128-CBC:!3DES-CBC:!CAMELLIA-128-CBC

# Require and verify server certificate

#LDAP_TLS_CHECK_PEER=1

# Path to CA cert file. Used when server certificate verify is enabled

#LDAP_TLS_CACERT_FILE=/etc/ssl/certs/ca-certificates.crt

# Path to CA certs directory. Used when server certificate verify is enabled

#LDAP_TLS_CACERT_DIR=/etc/ssl/certs

# Wether to use starttls, implies LDAPv3 and requires ldap:// instead of ldaps://

# LDAP_START_TLS=1

#

# Security

#

# Set these to strong passwords to avoid intruders from impersonating a service account

# The service(s) won't start unless these are specified

# Running ./gen-passwords.sh will update .env with strong passwords

# You may skip the Jigasi and Jibri passwords if you are not using those

# DO NOT reuse passwords

#

# XMPP password for Jicofo client connections

JICOFO_AUTH_PASSWORD=b32e0b1fc052086e2d6890ebc5e9b759

# XMPP password for JVB client connections

JVB_AUTH_PASSWORD=4c168c021fb9007491872fa47df4600e

# XMPP password for Jigasi MUC client connections

JIGASI_XMPP_PASSWORD=740ea39ff5d5766b75207aaceded63aa

# XMPP recorder password for Jibri client connections

JIBRI_RECORDER_PASSWORD=31a5596084b6a7b39e13f6c140debff6

# XMPP password for Jibri client connections

JIBRI_XMPP_PASSWORD=ceaa8cdf12209d4cb0ba9c271716b4f0

#

# Docker Compose options

#

# Container restart policy

#RESTART_POLICY=unless-stopped

# Jitsi image version (useful for local development)

#JITSI_IMAGE_VERSION=latest

#

# all bottom settigs were added by PK

#

# Internal XMPP domain

XMPP_DOMAIN=meet.jibri

# Internal XMPP server

XMPP_SERVER=xmpp.meet.jibri

# Internal XMPP server URL

XMPP_BOSH_URL_BASE=http://xmpp.meet.jibri:5280

# Internal XMPP domain for authenticated services

XMPP_AUTH_DOMAIN=auth.meet.jibri

# XMPP domain for the MUC

XMPP_MUC_DOMAIN=muc.meet.jibri

# XMPP domain for the internal MUC used for jibri, jigasi and jvb pools

XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jibri

# XMPP domain for unauthenticated users

XMPP_GUEST_DOMAIN=guest.meet.busanid.dev

# Comma separated list of domains for cross domain policy or "true" to allow all

# The PUBLIC_URL is always allowed

#XMPP_CROSS_DOMAIN=true

# Custom Prosody modules for XMPP_DOMAIN (comma separated)

#XMPP_MODULES=

# Custom Prosody modules for MUC component (comma separated)

#XMPP_MUC_MODULES=

# Custom Prosody modules for internal MUC component (comma separated)

#XMPP_INTERNAL_MUC_MODULES=

# Enable recording

ENABLE_RECORDING=1

ENABLE_LIVESTREAMING=true

ENABLE_SERVICE_RECORDING=true

# XMPP domain for the jibri recorder

XMPP_RECORDER_DOMAIN=recorder.meet.jitsi

# XMPP recorder user for Jibri client connections

JIBRI_RECORDER_USER=recorder

# Directory for recordings inside Jibri container

JIBRI_RECORDING_DIR=/config/recordings

# The finalizing script. Will run after recording is complete

JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

# XMPP user for Jibri client connections

JIBRI_XMPP_USER=jibri

# MUC name for the Jibri pool

JIBRI_BREWERY_MUC=jibribrewery

# MUC connection timeout

JIBRI_PENDING_TIMEOUT=90

# When jibri gets a request to start a service for a room, the room

# jid will look like: roomName@optional.prefixes.subdomain.xmpp_domain

# We'll build the url for the call by transforming that into:

# https://xmpp_domain/subdomain/roomName

# So if there are any prefixes in the jid (like jitsi meet, which

# has its participants join a muc at conference.xmpp_domain) then

# list that prefix here so it can be stripped out to generate

# the call url correctly

JIBRI_STRIP_DOMAIN_JID=muc

# Directory for logs inside Jibri container

JIBRI_LOGS_DIR=/config/logs

# Configs for prejoin page.

ENABLE_PREJOIN_PAGE=false

# Disables profile and the edit of all fields from the profile settings (display name and email)

DISABLE_PROFILE=true

# Hides the participant name editing field in the prejoin screen.

# If requireDisplayName is also set as true, a name should still be provided through either

# the jwt or the userInfo from the iframe api init object in order for this to have an effect.

HIDE_PREJOIN_DISPLAY_NAME=false

# List of buttons to hide from the extra join options dropdown.

#HIDE_PREJOIN_EXTRA_BUTTONS=true

ENABLE_WELCOME_PAGE=false

# GENERATE_ROOMNAMES_ON_WELCOME_PAGE=false # this setting dosent exist as docker env variable

# Enabling the close page will ignore the welcome page redirection when call is hangup.

ENABLE_CLOSE_PAGE=true

# Start the conference in audio only mode (no video is being received norsent).

#START_AUDIO_ONLY=false

# Every participant after the Nth will start audio muted.

START_AUDIO_MUTED=0

#Start calls with audio muted. Unlike the option above, this one is only

#applied locally. FIXME: having these 2 options is confusing.

START_WITH_AUDIO_MUTED=true

# Configure toolbar buttons. Add the buttons name separated with comma(no spaces between comma)

# TOOLBAR_BUTTONS=recording

# Hide the buttons at pre-join screen. Add the buttons name separated with comma

#HIDE_PREMEETING_BUTTONS=a

DEFAULT_LANGUAGE=en

notification:

Recording failed. Please try again.

error_recording

logs:

docker logs containdr_id --taill 100

[root@dev_11-awa docker-jitsi-meet-stable-8138-1]# docker logs da72c3776f0d --tail 100
Jibri 2023-01-02 10:42:21.946 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-02 10:43:21.946 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-02 10:44:21.946 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-02 10:45:21.947 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-02 10:46:01.219 FINE: [184] [hostname=xmpp.meet.jibri id=xmpp.meet.jibri] MucClient$3.handleIQRequest#504: Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jibri/H6-i2 n6cfPYI,from=jibribrewery@internal-muc.meet.jibri/focus,id=amlicmlAYXV0aC5tZWV0LmppYnJpL0g2LWkybjZjZlBZSQBVUk1EWC0yNzU2AJCh4CnKQcnE,type=set,]
Jibri 2023-01-02 10:46:01.220 INFO: [184] XmppApi.handleJibriIq#236: Received JibriIq <iq xmlns='jabber:client' to='jibri@auth.meet.jibri/H6-i2n6cfPYI' from='jibribrewery@internal-muc.meet.jibri/focus' id='amlicmlAYXV0aC5tZWV0LmppYn JpL0g2LWkybjZjZlBZSQBVUk1EWC0yNzU2AJCh4CnKQcnE' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='roomname@muc.meet.jibri' session_id='vpofxannxagdgtii' app_data='{"file_recording_m etadata":{"share":true}}'/></iq> from environment [MucClient id=xmpp.meet.jibri hostname=xmpp.meet.jibri]
Jibri 2023-01-02 10:46:01.220 INFO: [184] XmppApi.handleStartJibriIq#268: Received start request, starting service
Jibri 2023-01-02 10:46:01.246 INFO: [184] XmppApi.handleStartService#379: Parsed call url info: CallUrlInfo(baseUrl=https://jitsi.test:8443, callName=roomname, urlParams=[])
Jibri 2023-01-02 10:46:01.248 INFO: [184] JibriManager.startFileRecording#138: Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://jitsi.test:8443, callName =roomname, urlParams=[]), email='', passcode=null, callStatsUsernameOverride=, displayName=), sessionId=vpofxannxagdgtii, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, port=null, username=recorder, password=*****))
Jibri 2023-01-02 10:46:01.251 FINE: [184] [session_id=vpofxannxagdgtii] FfmpegCapturer.<init>#92: Detected os as OS: LINUX
Jibri 2023-01-02 10:46:01.254 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String>
Jibri 2023-01-02 10:46:01.256 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String>
Starting ChromeDriver 106.0.5249.61 (511755355844955cd3e264779baf0dd38212a4d0-refs/branch-heads/5249@{#569}) on port 18857
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Jibri 2023-01-02 10:46:08.783 INFO: [184] org.openqa.selenium.remote.ProtocolHandshake.createSession: Detected dialect: OSS
Jibri 2023-01-02 10:46:08.798 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
LambdaSupplier: 'JibriConfig::recordingDirectory'
ConfigSourceSupplier: key: 'jibri.recording.recordings-directory', type: 'kotlin.String', source: 'config'
Jibri 2023-01-02 10:46:08.798 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::recordingDirectory
Jibri 2023-01-02 10:46:08.798 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::recordingDirectory': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$ Error: class java.lang.NullPointerException
Jibri 2023-01-02 10:46:08.799 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.recording.recordings-directory' from source 'config' as type kotlin.String
Jibri 2023-01-02 10:46:08.801 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.recording.recordings-directory' from source 'config' as type kotlin.String
Jibri 2023-01-02 10:46:08.801 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.recordings-directory', type: 'kotlin.String', source: 'config'
Jibri 2023-01-02 10:46:08.802 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath'
ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
Jibri 2023-01-02 10:46:08.802 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::finalizeRecordingScriptPath
Jibri 2023-01-02 10:46:08.802 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath': org.jitsi.metaconfig.ConfigException$UnableTo Retrieve$Error: class java.lang.NullPointerException
Jibri 2023-01-02 10:46:08.802 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
Jibri 2023-01-02 10:46:08.803 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
Jibri 2023-01-02 10:46:08.804 FINE: [184] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
Jibri 2023-01-02 10:46:08.804 INFO: [184] [session_id=vpofxannxagdgtii] FileRecordingJibriService.<init>#134: Writing recording to /config/recordings/vpofxannxagdgtii, finalize script path /config/finalize.sh
Jibri 2023-01-02 10:46:08.809 FINE: [184] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: start:recording
Jibri 2023-01-02 10:46:08.809 INFO: [184] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: IDLE -> BUSY
Jibri 2023-01-02 10:46:08.810 FINE: [184] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-02 10:46:08.811 INFO: [184] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-02 10:46:08.811 FINE: [184] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@2dc0de64
Jibri 2023-01-02 10:46:08.811 FINE: [184] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@24aad686
Jibri 2023-01-02 10:46:08.813 INFO: [184] XmppApi.handleStartJibriIq#281: Sending 'pending' response to start IQ
Jibri 2023-01-02 10:46:08.819 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-02 10:46:08.820 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
Jibri 2023-01-02 10:46:08.820 INFO: [195] AbstractPageObject.visit#32: Visiting url https://jitsi.test:8443
Jibri 2023-01-02 10:46:09.605 SEVERE: [195] [session_id=vpofxannxagdgtii] JibriSelenium.joinCall$lambda-3#327: An error occurred while joining the call
org.openqa.selenium.WebDriverException: unknown error: net::ERR_NAME_NOT_RESOLVED
(Session info: chrome=106.0.5249.61)
(Driver info: chromedriver=106.0.5249.61 (511755355844955cd3e264779baf0dd38212a4d0-refs/branch-heads/5249@{#569}),platform=Linux 5.4.17-2102.203.6.el8uek.x86_64 x86_64) (WARNING: The server did not provide any stacktrace informati on)
Command duration or timeout: 0 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'da72c3776f0d', ip: '15.12.2.3', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.17-2102.203.6.el8uek.x86_64', java.version: '11.0.16'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 106.0.5249.61 (511755355844..., userDataDir: /tmp/.com.google.Chrome.tC0uMU}, cssSe lectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:42285}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false,  nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, t akesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 106.0.5249.61, webStorageEnabled: true, webauthn:extension:credBlob: true, w ebauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: 8312a4a02eca6919a4d1a38fdaa1c084
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
      at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
      at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
      at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
      at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
      at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
      at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
      at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
      at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
      at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:271)
      at org.jitsi.jibri.selenium.pageobjects.AbstractPageObject.visit(AbstractPageObject.kt:35)
      at org.jitsi.jibri.selenium.JibriSelenium.joinCall$lambda-3(JibriSelenium.kt:295)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      at java.base/java.lang.Thread.run(Thread.java:829)
Jibri 2023-01-02 10:46:09.606 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.onSeleniumStateChange#216: Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
Jibri 2023-01-02 10:46:09.606 INFO: [195] [session_id=vpofxannxagdgtii] StatefulJibriService.onServiceStateChange#39: File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the  call
Jibri 2023-01-02 10:46:09.606 INFO: [195] XmppApi$createServiceStatusHandler$1.invoke#317: Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq xmlns='jabber:client' to='jibribre wery@internal-muc.meet.jibri/focus' id='TTBF8-405' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
Jibri 2023-01-02 10:46:09.607 FINE: [195] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: stop:recording
Jibri 2023-01-02 10:46:09.608 INFO: [195] JibriManager.stopService#260: Stopping the current service
Jibri 2023-01-02 10:46:09.608 INFO: [195] [session_id=vpofxannxagdgtii] FileRecordingJibriService.stop#182: Stopping capturer
Jibri 2023-01-02 10:46:09.608 INFO: [195] [session_id=vpofxannxagdgtii] JibriSubprocess.stop#75: Stopping ffmpeg process
Jibri 2023-01-02 10:46:09.609 INFO: [195] [session_id=vpofxannxagdgtii] JibriSubprocess.stop#89: ffmpeg exited with value null
Jibri 2023-01-02 10:46:09.609 INFO: [195] [session_id=vpofxannxagdgtii] FileRecordingJibriService.stop#184: Quitting selenium
Jibri 2023-01-02 10:46:09.609 INFO: [195] [session_id=vpofxannxagdgtii] FileRecordingJibriService.stop#191: No media was recorded, deleting directory and skipping metadata file & finalize
Jibri 2023-01-02 10:46:09.609 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#338: Leaving call and quitting browser
Jibri 2023-01-02 10:46:09.610 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#341: Recurring call status checks cancelled
Jibri 2023-01-02 10:46:09.627 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#347: Got 3 log entries for type browser
Jibri 2023-01-02 10:46:09.643 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#347: Got 113 log entries for type driver
Jibri 2023-01-02 10:46:09.658 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#347: Got 0 log entries for type client
Jibri 2023-01-02 10:46:09.658 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#356: Leaving web call
Jibri 2023-01-02 10:46:09.698 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#363: Quitting chrome driver
Jibri 2023-01-02 10:46:09.847 INFO: [195] [session_id=vpofxannxagdgtii] JibriSelenium.leaveCallAndQuitBrowser#365: Chrome driver quit
Jibri 2023-01-02 10:46:09.847 INFO: [195] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: BUSY -> IDLE
Jibri 2023-01-02 10:46:09.848 FINE: [195] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-02 10:46:09.849 INFO: [195] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-02 10:46:09.849 FINE: [195] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@41568210
Jibri 2023-01-02 10:46:09.850 FINE: [195] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@2dc0de64
Jibri 2023-01-02 10:46:09.853 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-02 10:46:09.854 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
Jibri 2023-01-02 10:46:21.946 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status

console at browser

nothing

please help me configure recording on the server

  1. Does the docker-jitsti-meet also install Jibri or just Jitsi Meet? Please be specific on what is being installed.
  2. Have you setup seperate Jibri instances?

Jibri must be setup seperately from Jitsi. Only one Jibri instance can be installed per server, the reason being is Jibri can be very resource intensive and running it on the same server as Jitsi can cause very poor performance/crashing.

Here are Jibri installation instructions: GitHub - jitsi/jibri: Jitsi BRoadcasting Infrastructure

To sum it up in gist (requires more steps per the setup instructions):

  1. Create a separate instance and install Jibri on that instance
  2. On the Jitsi Instance, add a login for Jibri using Prosody
  3. On the Jibri instance, set login you created using Prosody on the Jitsi instance to the jibri config
  4. Restart Jibri and then retry

hmmm I just run docker-compose -f docker-compose.yml -f jibri.yml up -d the docker it self download what was needed, I check all env variable as I attached to the post above if it setuped like here, container starts working, local recording is working

EDIT:
By install I mean use / run docker compose and made env variable settings

I can only use docker images, I cant install directly jitsi at linux env.

EDIT 2: :slight_smile:

I just found something like this:

actually I all ready have PUBLIC_URL, should it be set somewhere else besides in env file?

Hi

I added valid cert, and also change a PUBLIC_URL and I got this:

docker logs jibri
[root@dev_11-awa docker-jitsi-meet-stable-8138-1]# docker logs b612e12c3b15 --tail 100
Jibri 2023-01-10 12:24:41.714 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String>
Jibri 2023-01-10 12:24:41.716 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String>
Starting ChromeDriver 106.0.5249.61 (511755355844955cd3e264779baf0dd38212a4d0-refs/branch-heads/5249@{#569}) on port 31265
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Jibri 2023-01-10 12:24:47.978 INFO: [121] org.openqa.selenium.remote.ProtocolHandshake.createSession: Detected dialect: OSS
Jibri 2023-01-10 12:24:48.249 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
LambdaSupplier: 'JibriConfig::recordingDirectory'
ConfigSourceSupplier: key: 'jibri.recording.recordings-directory', type: 'kotlin.String', source: 'config'
Jibri 2023-01-10 12:24:48.250 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::recordingDirectory
Jibri 2023-01-10 12:24:48.251 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::recordingDirectory': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
Jibri 2023-01-10 12:24:48.251 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.recording.recordings-directory' from source 'config' as type kotlin.String
Jibri 2023-01-10 12:24:48.275 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.recording.recordings-directory' from source 'config' as type kotlin.String
Jibri 2023-01-10 12:24:48.276 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.recordings-directory', type: 'kotlin.String', source: 'config'
Jibri 2023-01-10 12:24:48.276 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath'
ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
Jibri 2023-01-10 12:24:48.276 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::finalizeRecordingScriptPath
Jibri 2023-01-10 12:24:48.277 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
Jibri 2023-01-10 12:24:48.277 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
Jibri 2023-01-10 12:24:48.278 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
Jibri 2023-01-10 12:24:48.279 FINE: [121] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
Jibri 2023-01-10 12:24:48.392 INFO: [121] [session_id=dljkwxwslamjjntw] FileRecordingJibriService.<init>#134: Writing recording to /config/recordings/dljkwxwslamjjntw, finalize script path /config/finalize.sh
Jibri 2023-01-10 12:24:48.519 FINE: [121] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: start:recording
Jibri 2023-01-10 12:24:48.523 INFO: [121] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: IDLE -> BUSY
Jibri 2023-01-10 12:24:48.523 FINE: [121] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-10 12:24:48.524 INFO: [121] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-10 12:24:48.524 FINE: [121] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@22bc369f
Jibri 2023-01-10 12:24:48.527 FINE: [121] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@6917bb4
Jibri 2023-01-10 12:24:48.548 INFO: [121] XmppApi.handleStartJibriIq#281: Sending 'pending' response to start IQ
Jibri 2023-01-10 12:24:48.550 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-10 12:24:48.551 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
Jibri 2023-01-10 12:24:48.577 INFO: [134] AbstractPageObject.visit#32: Visiting url https://webagent-dev11.alfavox.dev/video:8443/video
Jibri 2023-01-10 12:24:48.927 INFO: [134] AbstractPageObject.visit#38: Waited 316.026754ms for driver to load page
Jibri 2023-01-10 12:24:49.030 SEVERE: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.joinCall$lambda-3#327: An error occurred while joining the call
org.openqa.selenium.WebDriverException: <unknown>: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
(Session info: chrome=106.0.5249.61)
(Driver info: chromedriver=106.0.5249.61 (511755355844955cd3e264779baf0dd38212a4d0-refs/branch-heads/5249@{#569}),platform=Linux 5.4.17-2102.203.6.el8uek.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'b612e12c3b15', ip: '15.12.2.6', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.17-2102.203.6.el8uek.x86_64', java.version: '11.0.16'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 106.0.5249.61 (511755355844..., userDataDir: /tmp/.com.google.Chrome.RZ5zBE}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:37153}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 106.0.5249.61, webStorageEnabled: true, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: 1037c1c1466ee27b9423bd19b992b99d
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
      at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
      at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
      at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
      at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
      at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
      at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
      at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
      at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
      at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:480)
      at org.jitsi.jibri.selenium.JibriSelenium.setLocalStorageValues(JibriSelenium.kt:211)
      at org.jitsi.jibri.selenium.JibriSelenium.joinCall$lambda-3(JibriSelenium.kt:317)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      at java.base/java.lang.Thread.run(Thread.java:829)
Jibri 2023-01-10 12:24:49.065 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.onSeleniumStateChange#216: Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
Jibri 2023-01-10 12:24:49.077 INFO: [134] [session_id=dljkwxwslamjjntw] StatefulJibriService.onServiceStateChange#39: File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
Jibri 2023-01-10 12:24:49.083 INFO: [134] XmppApi$createServiceStatusHandler$1.invoke#317: Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq xmlns='jabber:client' to='jibribrewery@internal-muc.meet.jitsi/focus' id='5CRW8-347' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
Jibri 2023-01-10 12:24:49.084 FINE: [134] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: stop:recording
Jibri 2023-01-10 12:24:49.084 INFO: [134] JibriManager.stopService#260: Stopping the current service
Jibri 2023-01-10 12:24:49.084 INFO: [134] [session_id=dljkwxwslamjjntw] FileRecordingJibriService.stop#182: Stopping capturer
Jibri 2023-01-10 12:24:49.085 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSubprocess.stop#75: Stopping ffmpeg process
Jibri 2023-01-10 12:24:49.086 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSubprocess.stop#89: ffmpeg exited with value null
Jibri 2023-01-10 12:24:49.086 INFO: [134] [session_id=dljkwxwslamjjntw] FileRecordingJibriService.stop#184: Quitting selenium
Jibri 2023-01-10 12:24:49.086 INFO: [134] [session_id=dljkwxwslamjjntw] FileRecordingJibriService.stop#191: No media was recorded, deleting directory and skipping metadata file & finalize
Jibri 2023-01-10 12:24:49.087 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#338: Leaving call and quitting browser
Jibri 2023-01-10 12:24:49.088 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#341: Recurring call status checks cancelled
Jibri 2023-01-10 12:24:49.170 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#347: Got 3 log entries for type browser
Jibri 2023-01-10 12:24:49.225 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#347: Got 92 log entries for type driver
Jibri 2023-01-10 12:24:49.284 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#347: Got 0 log entries for type client
Jibri 2023-01-10 12:24:49.285 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#356: Leaving web call
Jibri 2023-01-10 12:24:49.412 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#363: Quitting chrome driver
Jibri 2023-01-10 12:24:49.587 INFO: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.leaveCallAndQuitBrowser#365: Chrome driver quit
Jibri 2023-01-10 12:24:49.593 FINE: [134] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
LambdaSupplier: 'JibriConfig::singleUseMode'
ConfigSourceSupplier: key: 'jibri.single-use-mode', type: 'kotlin.Boolean', source: 'config'
Jibri 2023-01-10 12:24:49.594 FINE: [134] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::singleUseMode
Jibri 2023-01-10 12:24:49.594 FINE: [134] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::singleUseMode': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
Jibri 2023-01-10 12:24:49.594 FINE: [134] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.single-use-mode' from source 'config' as type kotlin.Boolean
Jibri 2023-01-10 12:24:49.596 FINE: [134] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.single-use-mode' from source 'config' as type kotlin.Boolean
Jibri 2023-01-10 12:24:49.596 FINE: [134] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.single-use-mode', type: 'kotlin.Boolean', source: 'config'
Jibri 2023-01-10 12:24:49.597 INFO: [134] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: BUSY -> IDLE
Jibri 2023-01-10 12:24:49.603 FINE: [134] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-10 12:24:49.604 INFO: [134] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-10 12:24:49.605 FINE: [134] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@537063bf
Jibri 2023-01-10 12:24:49.605 FINE: [134] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@22bc369f
Jibri 2023-01-10 12:24:49.613 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-10 12:24:49.614 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
Jibri 2023-01-10 12:25:00.358 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-10 12:26:00.358 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status

in general I all the time change something :slight_smile:

current `env`
# shellcheck disable=SC2034

################################################################################
################################################################################
# Welcome to the Jitsi Meet Docker setup!
#
# This sample .env file contains some basic options to get you started.
# The full options reference can be found here:
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker
################################################################################
################################################################################


#
# Basic configuration options
#

# Directory where all configuration will be stored
CONFIG=~/.jitsi-meet-cfg

# Exposed HTTP port #8000
HTTP_PORT=8000

# Exposed HTTPS port #8443
HTTPS_PORT=8443

# System time zone
TZ=UTC

# Public URL for the web service (required)
PUBLIC_URL=https://webagent-dev11.alfavox.dev/video:8443
#https://jitsi.test:8443

ENABLE_SUBDOMAINS=1
ENABLE_XMPP_WEBSOCKET=0

# Media IP addresses to advertise by the JVB
# This setting deprecates DOCKER_HOST_ADDRESS, and supports a comma separated list of IPs
# See the "Running behind NAT or on a LAN environment" section in the Handbook:
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker#running-behind-nat-or-on-a-lan-environment
#JVB_ADVERTISE_IPS=192.168.1.1,1.2.3.4

#
# JaaS Components (beta)
# https://jaas.8x8.vc
#

# Enable JaaS Components (hosted Jigasi)
# NOTE: if Let's Encrypt is enabled a JaaS account will be automatically created, using the provided email in LETSENCRYPT_EMAIL
#ENABLE_JAAS_COMPONENTS=0

#
# Let's Encrypt configuration
#

# Enable Let's Encrypt certificate generation
#ENABLE_LETSENCRYPT=1
#ENABLE_HTTP_REDIRECT=1

# Domain for which to generate the certificate
#LETSENCRYPT_DOMAIN=jitsi.test

# E-Mail for receiving important account notifications (mandatory)
#LETSENCRYPT_EMAIL=p.kuzma@alfavox.com

# Use the staging server (for avoiding rate limits while testing)
#LETSENCRYPT_USE_STAGING=1


#
# Etherpad integration (for document sharing)
#

# Set etherpad-lite URL in docker local network (uncomment to enable)
#ETHERPAD_URL_BASE=http://etherpad.meet.jitsi:9001

# Set etherpad-lite public URL, including /p/ pad path fragment (uncomment to enable)
#ETHERPAD_PUBLIC_URL=https://etherpad.my.domain/p/

# Name your etherpad instance!
ETHERPAD_TITLE=Video Chat

# The default text of a pad
ETHERPAD_DEFAULT_PAD_TEXT="Welcome to Web Chat!\n\n"

# Name of the skin for etherpad
ETHERPAD_SKIN_NAME=colibris

# Skin variants for etherpad
ETHERPAD_SKIN_VARIANTS="super-light-toolbar super-light-editor light-background full-width-editor"


#
# Basic Jigasi configuration options (needed for SIP gateway support)
#

# SIP URI for incoming / outgoing calls
#JIGASI_SIP_URI=test@sip2sip.info

# Password for the specified SIP account as a clear text
#JIGASI_SIP_PASSWORD=passw0rd

# SIP server (use the SIP account domain if in doubt)
#JIGASI_SIP_SERVER=sip2sip.info

# SIP server port
#JIGASI_SIP_PORT=5060

# SIP server transport
#JIGASI_SIP_TRANSPORT=UDP

#
# Authentication configuration (see handbook for details)
#

# Enable authentication
ENABLE_AUTH=1

# Enable guest access
ENABLE_GUESTS=0

# Select authentication type: internal, jwt, ldap or matrix
AUTH_TYPE=jwt
ENABLE_AUTO_LOGIN=0

# 
# JWT authentication
#

# Application identifier
JWT_APP_ID=my_jitsi_app_id

# Application secret known only to your token
JWT_APP_SECRET=you_need_to_make_sure_to_generate_the_jwt_token_by_providing_the_payload_and_JWT_APP_SECRET_value_on_the_VERIFY_SIGNATURE_section

# (Optional) Set asap_accepted_issuers as a comma separated list
#JWT_ACCEPTED_ISSUERS=my_web_client,my_app_client

# (Optional) Set asap_accepted_audiences as a comma separated list
#JWT_ACCEPTED_AUDIENCES=myserver1,myserver2

JWT_ALLOW_EMPTY=0

JWT_AUTH_TYPE=token

JWT_TOKEN_AUTH_MODULE=token_verification

#
# LDAP authentication (for more information see the Cyrus SASL saslauthd.conf man page)
#

# LDAP url for connection
#LDAP_URL=ldaps://ldap.domain.com/

# LDAP base DN. Can be empty
#LDAP_BASE=DC=example,DC=domain,DC=com

# LDAP user DN. Do not specify this parameter for the anonymous bind
#LDAP_BINDDN=CN=binduser,OU=users,DC=example,DC=domain,DC=com

# LDAP user password. Do not specify this parameter for the anonymous bind
#LDAP_BINDPW=LdapUserPassw0rd

# LDAP filter. Tokens example:
# %1-9 - if the input key is user@mail.domain.com, then %1 is com, %2 is domain and %3 is mail
# %s - %s is replaced by the complete service string
# %r - %r is replaced by the complete realm string
#LDAP_FILTER=(sAMAccountName=%u)

# LDAP authentication method
#LDAP_AUTH_METHOD=bind

# LDAP version
#LDAP_VERSION=3

# LDAP TLS using
#LDAP_USE_TLS=1

# List of SSL/TLS ciphers to allow
#LDAP_TLS_CIPHERS=SECURE256:SECURE128:!AES-128-CBC:!ARCFOUR-128:!CAMELLIA-128-CBC:!3DES-CBC:!CAMELLIA-128-CBC

# Require and verify server certificate
#LDAP_TLS_CHECK_PEER=1

# Path to CA cert file. Used when server certificate verify is enabled
#LDAP_TLS_CACERT_FILE=/etc/ssl/certs/ca-certificates.crt

# Path to CA certs directory. Used when server certificate verify is enabled
#LDAP_TLS_CACERT_DIR=/etc/ssl/certs

# Wether to use starttls, implies LDAPv3 and requires ldap:// instead of ldaps://
# LDAP_START_TLS=1

#
# Security
#
# Set these to strong passwords to avoid intruders from impersonating a service account
# The service(s) won't start unless these are specified
# Running ./gen-passwords.sh will update .env with strong passwords
# You may skip the Jigasi and Jibri passwords if you are not using those
# DO NOT reuse passwords
#

# XMPP password for Jicofo client connections
JICOFO_AUTH_PASSWORD=b32e0b1fc052086e2d6890ebc5e9b759

# XMPP password for JVB client connections
JVB_AUTH_PASSWORD=4c168c021fb9007491872fa47df4600e

# XMPP password for Jigasi MUC client connections
JIGASI_XMPP_PASSWORD=740ea39ff5d5766b75207aaceded63aa

# XMPP recorder password for Jibri client connections
JIBRI_RECORDER_PASSWORD=31a5596084b6a7b39e13f6c140debff6

# XMPP password for Jibri client connections
JIBRI_XMPP_PASSWORD=ceaa8cdf12209d4cb0ba9c271716b4f0

#
# Docker Compose options
#

# Container restart policy
#RESTART_POLICY=unless-stopped

# Jitsi image version (useful for local development)
#JITSI_IMAGE_VERSION=latest

#
# all bottom settigs were added by Pawel Kuzma
#

# Internal XMPP domain
#XMPP_DOMAIN=meet.jibri

# Internal XMPP server
#XMPP_SERVER=xmpp.meet.jibri

# Internal XMPP server URL
#XMPP_BOSH_URL_BASE=http://xmpp.meet.jibri:5280

# Internal XMPP domain for authenticated services
#XMPP_AUTH_DOMAIN=auth.meet.jibri

# XMPP domain for the MUC
#XMPP_MUC_DOMAIN=muc.meet.jibri

# XMPP domain for the internal MUC used for jibri, jigasi and jvb pools
#XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jibri

# XMPP domain for unauthenticated users
#XMPP_GUEST_DOMAIN=guest.meet.busanid.dev

# Comma separated list of domains for cross domain policy or "true" to allow all
# The PUBLIC_URL is always allowed
#XMPP_CROSS_DOMAIN=true

# Custom Prosody modules for XMPP_DOMAIN (comma separated)
#XMPP_MODULES=

# Custom Prosody modules for MUC component (comma separated)
#XMPP_MUC_MODULES=

# Custom Prosody modules for internal MUC component (comma separated)
#XMPP_INTERNAL_MUC_MODULES=

# Enable recording
ENABLE_RECORDING=1

ENABLE_LIVESTREAMING=true
ENABLE_SERVICE_RECORDING=true

# XMPP domain for the jibri recorder
XMPP_RECORDER_DOMAIN=recorder.meet.jitsi

# XMPP recorder user for Jibri client connections
JIBRI_RECORDER_USER=recorder

# Directory for recordings inside Jibri container
JIBRI_RECORDING_DIR=/config/recordings

# The finalizing script. Will run after recording is complete
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

# XMPP user for Jibri client connections
JIBRI_XMPP_USER=jibri

# MUC name for the Jibri pool
JIBRI_BREWERY_MUC=jibribrewery

# MUC connection timeout
JIBRI_PENDING_TIMEOUT=90

# When jibri gets a request to start a service for a room, the room
# jid will look like: roomName@optional.prefixes.subdomain.xmpp_domain
# We'll build the url for the call by transforming that into:
# https://xmpp_domain/subdomain/roomName
# So if there are any prefixes in the jid (like jitsi meet, which
# has its participants join a muc at conference.xmpp_domain) then
# list that prefix here so it can be stripped out to generate
# the call url correctly
JIBRI_STRIP_DOMAIN_JID=muc

# Directory for logs inside Jibri container
JIBRI_LOGS_DIR=/config/logs

# Configs for prejoin page.
# Pawel Kuzma -> this is a "lobby" before connect to conference
ENABLE_PREJOIN_PAGE=true

# Disables profile and the edit of all fields from the profile settings (display name and email)
# Pawel Kuzma -> at lobby!
DISABLE_PROFILE=true

# Hides the participant name editing field in the prejoin screen.
# If requireDisplayName is also set as true, a name should still be provided through either
# the jwt or the userInfo from the iframe api init object in order for this to have an effect.
HIDE_PREJOIN_DISPLAY_NAME=false

# List of buttons to hide from the extra join options dropdown.
HIDE_PREJOIN_EXTRA_BUTTONS=true

# Pawel Kuzma -> This is initial page when you enter localhost:port, if its disable (false) entering via url by localhost:port will create random name room 
ENABLE_WELCOME_PAGE=false
# Pawel Kuzma -> we need this setting! but we can only set it up at interface_config, but this file in after any `docker compose up -d` is overwrite! docker volume is a solution ?!
# GENERATE_ROOMNAMES_ON_WELCOME_PAGE=false # this setting dosent exist as docker env variable

# Enabling the close page will ignore the welcome page redirection when call is hangup.
# Pawel Kuzma -> Propably we need custom close page, this is a static html page after leaving the meeting
ENABLE_CLOSE_PAGE=true

# Start the conference in audio only mode (no video is being received norsent).
#START_AUDIO_ONLY=false

# Every participant after the Nth will start audio muted.
START_AUDIO_MUTED=0

#Start calls with audio muted. Unlike the option above, this one is only
#applied locally. FIXME: having these 2 options is confusing.
START_WITH_AUDIO_MUTED=true

# Configure toolbar buttons. Add the buttons name separated with comma(no spaces between comma)
# Pawel Kuzma -> if you want to hide all buttons, you have to type wrong button name
TOOLBAR_BUTTONS=recording,settings

# Hide the buttons at pre-join screen. Add the buttons name separated with comma
#HIDE_PREMEETING_BUTTONS=a 

DEFAULT_LANGUAGE=en

hmmm url look like this right now:

https://webagent-dev11.alfavox.dev:8443/video/roomtest?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2NzMyNjcwMzQsImV4cCI6MTY3MzQzOTgzNCwiaXNzIjoibXlfaml0c2lfYXBwX2lkIiwiYXVkIjoibXlfaml0c2lfYXBwX2lkIiwiY29udGV4dCI6eyJ1c2VyIjp7Im5hbWUiOiJQYXdlbFRlc3QifX0sInJvb20iOiJyb29tdGVzdCIsInN1YiI6InZpZGVvIn0.Uu1dQEU6IuFC4gHoIwZQgCJYzAvGxfsZ7ywd5oCw-AM#jitsi_meet_external_api_id=0&appData.localStorageContent=null

I see error at logs

Jibri 2023-01-10 12:24:49.030 SEVERE: [134] [session_id=dljkwxwslamjjntw] JibriSelenium.joinCall$lambda-3#327: An error occurred while joining the call
org.openqa.selenium.WebDriverException: <unknown>: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
(Session info: chrome=106.0.5249.61)

but how to fix it?
appData.localStorageContent=null ?? how to setup this or remove?
#jitsi_meet_external_api_id=0

options:

      this.options = {
        roomName: this.room,
        parentNode: document.querySelector('#external-provider-wrapper'),
        jwt: token
      };

I am persistent → anyone anything?

in general I did something like this:

with one difference:
I create outside of docker container file at jitsi-meet-cfg and use it via docker volume at jibri.yml:

  • - ${CONFIG}/jibri/hosts:/etc/hosts:Z
  • to ${CONFIG}/jibri/hosts I added new line with 1.2.3.4 develop-url

I added DOCKER_HOST_IP to env file with my development environment ip for example DOCKER_HOST_IP=1.2.3.4

I did curl test

root@85d237938d68:/etc# curl https://develop-url/asd
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>alfaWebAgent</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/ajhifddimkapgcifgcodmmfdlknahffk">
  <link rel="manifest" href="/assets/manifest.json">
  <link href="assets/css/site.css" rel="stylesheet" />
  <link href="assets/fonts/materialicons/material-icons.css" rel="stylesheet">
  <link href="assets/fonts/lato/lato.css" rel="stylesheet">
  <script src="assets/libs/alertify.min.js"></script>
  <!-- Load environment variables -->
  <script src="assets/config/env.js"></script>
<link rel="stylesheet" href="styles.9b07c96395664ea28785.css"></head>
<body>
  <app></app>
<script src="runtime-es2015.3076030da240a61fd705.js" type="module"></script><script src="runtime-es5.3076030da240a61fd705.js" nomodule defer></script><script src="polyfills-es5.936ea4fb12e79f05bf88.js" nomodule defer></script><script src="polyfills-es2015.617ba5974f708d1e4633.js" type="module"></script><script src="scripts.3465064d18b1e01688da.js" defer></script><script src="main-es2015.35cc49777c4fe5a86714.js" type="module"></script><script src="main-es5.35cc49777c4fe5a86714.js" nomodule defer></script></body>
</html>
root@85d237938d68:/etc# exit

and now recording is starting, but I cant stop it and I dont have any record at jitsi-meet-cfg/jibri/recording

docker logs 85d237938d68 --tail 100
[root@dev_11-awa docker-jitsi-meet-stable-8138-1]# docker logs 85d237938d68 --tail 100
Jibri 2023-01-11 15:22:53.175 FINE: [66] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
Jibri 2023-01-11 15:22:53.177 INFO: [66] [session_id=nlmeectcsryrmwpl] FileRecordingJibriService.<init>#134: Writing recording to /config/recordings/nlmeectcsryrmwpl, finalize script path /config/finalize.sh
Jibri 2023-01-11 15:22:53.178 FINE: [66] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: start:recording
Jibri 2023-01-11 15:22:53.178 INFO: [66] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: IDLE -> BUSY
Jibri 2023-01-11 15:22:53.179 FINE: [66] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-11 15:22:53.179 INFO: [66] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-11 15:22:53.180 FINE: [66] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@4afcedc1
Jibri 2023-01-11 15:22:53.180 FINE: [66] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@49d7e974
Jibri 2023-01-11 15:22:53.185 INFO: [66] XmppApi.handleStartJibriIq#281: Sending 'pending' response to start IQ
Jibri 2023-01-11 15:22:53.188 INFO: [83] AbstractPageObject.visit#32: Visiting url https://webagent-dev11.alfavox.dev:8443
Jibri 2023-01-11 15:22:53.196 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-11 15:22:53.197 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
Jibri 2023-01-11 15:22:55.007 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-11 15:22:58.400 INFO: [83] AbstractPageObject.visit#38: Waited 5.211803687s for driver to load page
Jibri 2023-01-11 15:22:58.540 INFO: [83] AbstractPageObject.visit#32: Visiting url https://webagent-dev11.alfavox.dev:8443/roomtest#config.iAmRecorder=true&config.externalConnectUrl=null&config.startWithAudioMuted=true&config.startWithVideoMuted=true&interfaceConfig.APP_NAME="Jibri"&config.analytics.disabled=true&config.p2p.enabled=false&config.prejoinPageEnabled=false&config.prejoinConfig.enabled=false&config.requireDisplayName=false
Jibri 2023-01-11 15:22:59.715 INFO: [83] AbstractPageObject.visit#38: Waited 1.174001653s for driver to load page
Jibri 2023-01-11 15:23:00.234 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
Jibri 2023-01-11 15:23:01.401 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:01.942 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:02.478 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:03.077 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:03.660 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:04.218 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:04.793 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:05.352 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:05.880 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:06.411 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:06.925 FINE: [83] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:23:06.983 FINE: [66] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient$3.handleIQRequest#504: Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/ay46QBA6s2S0,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL2F5NDZRQkE2czJTMAA1OTRZTi0yMDA1AMMYqiUnmCZz,type=set,]
Jibri 2023-01-11 15:23:06.983 INFO: [66] XmppApi.handleJibriIq#236: Received JibriIq <iq xmlns='jabber:client' to='jibri@auth.meet.jitsi/ay46QBA6s2S0' from='jibribrewery@internal-muc.meet.jitsi/focus' id='amlicmlAYXV0aC5tZWV0LmppdHNpL2F5NDZRQkE2czJTMAA1OTRZTi0yMDA1AMMYqiUnmCZz' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='stop' session_id='nlmeectcsryrmwpl'/></iq> from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi]
Jibri 2023-01-11 15:23:06.983 FINE: [66] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: stop:recording
Jibri 2023-01-11 15:23:06.984 INFO: [66] JibriManager.stopService#260: Stopping the current service
Jibri 2023-01-11 15:23:06.984 INFO: [66] [session_id=nlmeectcsryrmwpl] FileRecordingJibriService.stop#182: Stopping capturer
Jibri 2023-01-11 15:23:06.984 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSubprocess.stop#75: Stopping ffmpeg process
Jibri 2023-01-11 15:23:06.984 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSubprocess.stop#89: ffmpeg exited with value null
Jibri 2023-01-11 15:23:06.985 INFO: [66] [session_id=nlmeectcsryrmwpl] FileRecordingJibriService.stop#184: Quitting selenium
Jibri 2023-01-11 15:23:06.986 INFO: [66] [session_id=nlmeectcsryrmwpl] FileRecordingJibriService.stop#191: No media was recorded, deleting directory and skipping metadata file & finalize
Jibri 2023-01-11 15:23:06.986 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#338: Leaving call and quitting browser
Jibri 2023-01-11 15:23:06.986 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#341: Recurring call status checks cancelled
Jibri 2023-01-11 15:23:07.002 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#347: Got 24 log entries for type browser
Jibri 2023-01-11 15:23:07.108 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#347: Got 489 log entries for type driver
Jibri 2023-01-11 15:23:07.182 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#347: Got 0 log entries for type client
Jibri 2023-01-11 15:23:07.182 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#356: Leaving web call
Jibri 2023-01-11 15:23:07.245 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#363: Quitting chrome driver
Jibri 2023-01-11 15:23:07.526 SEVERE: [83] [session_id=nlmeectcsryrmwpl] JibriSelenium.joinCall$lambda-3#327: An error occurred while joining the call
org.openqa.selenium.WebDriverException: java.io.IOException: unexpected end of stream on Connection{localhost:31132, proxy=DIRECT hostAddress=localhost/127.0.0.1:31132 cipherSuite=none protocol=http/1.1}
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '85d237938d68', ip: '15.12.3.6', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.17-2102.203.6.el8uek.x86_64', java.version: '11.0.16'
Driver info: driver.version: RemoteWebDriver
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
        at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:480)
        at org.jitsi.jibri.selenium.pageobjects.CallPage.visit$lambda-2$lambda-1(CallPage.kt:46)
        at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:248)
        at org.jitsi.jibri.selenium.pageobjects.CallPage.visit(CallPage.kt:45)
        at org.jitsi.jibri.selenium.JibriSelenium.joinCall$lambda-3(JibriSelenium.kt:318)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: unexpected end of stream on Connection{localhost:31132, proxy=DIRECT hostAddress=localhost/127.0.0.1:31132 cipherSuite=none protocol=http/1.1}
        at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:205)
        at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
        at okhttp3.RealCall.execute(RealCall.java:77)
        at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:105)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:155)
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
        ... 11 more
Caused by: java.io.EOFException: \n not found: limit=0 content=?
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:227)
        at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:212)
        at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
        ... 29 more
Jibri 2023-01-11 15:23:07.528 INFO: [83] [session_id=nlmeectcsryrmwpl] JibriSelenium.onSeleniumStateChange#216: Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
Jibri 2023-01-11 15:23:07.529 INFO: [83] [session_id=nlmeectcsryrmwpl] StatefulJibriService.onServiceStateChange#39: File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
Jibri 2023-01-11 15:23:07.531 INFO: [83] XmppApi$createServiceStatusHandler$1.invoke#317: Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq xmlns='jabber:client' to='jibribrewery@internal-muc.meet.jitsi/focus' id='F1EY9-58' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
Jibri 2023-01-11 15:23:07.540 INFO: [66] [session_id=nlmeectcsryrmwpl] JibriSelenium.leaveCallAndQuitBrowser#365: Chrome driver quit
Jibri 2023-01-11 15:23:07.541 INFO: [66] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: BUSY -> IDLE
Jibri 2023-01-11 15:23:07.542 FINE: [66] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-11 15:23:07.542 INFO: [66] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-11 15:23:07.543 FINE: [66] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@2e80fc9
Jibri 2023-01-11 15:23:07.543 FINE: [66] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@4afcedc1
Jibri 2023-01-11 15:23:07.545 INFO: [83] JibriManager.stopService#256: No service active, ignoring stop
Jibri 2023-01-11 15:23:07.564 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-11 15:23:07.564 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
Jibri 2023-01-11 15:23:55.006 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status

console log


EDIT:

Now I see that, after I click recording button I’m getting popup like prepare to recording and nothing else, not started or recording I dont have any REC image / info

jibri logs

[root@dev_11-awa ~]# docker logs 85d237938d68 --tail 100
Jibri 2023-01-11 15:56:34.997 FINE: [97] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
Jibri 2023-01-11 15:56:34.997 FINE: [97] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
Jibri 2023-01-11 15:56:35.011 FINE: [97] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
Jibri 2023-01-11 15:56:35.011 FINE: [97] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
Jibri 2023-01-11 15:56:35.012 INFO: [97] [session_id=aoqejuzhtehyapkw] FileRecordingJibriService.<init>#134: Writing recording to /config/recordings/aoqejuzhtehyapkw, finalize script path /config/finalize.sh
Jibri 2023-01-11 15:56:35.014 FINE: [97] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: start:recording
Jibri 2023-01-11 15:56:35.015 INFO: [97] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: IDLE -> BUSY
Jibri 2023-01-11 15:56:35.016 FINE: [97] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-11 15:56:35.016 INFO: [97] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-11 15:56:35.016 FINE: [97] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@1199ecfd
Jibri 2023-01-11 15:56:35.017 FINE: [97] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@2e80fc9
Jibri 2023-01-11 15:56:35.020 INFO: [97] XmppApi.handleStartJibriIq#281: Sending 'pending' response to start IQ
Jibri 2023-01-11 15:56:35.023 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-11 15:56:35.023 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
Jibri 2023-01-11 15:56:35.027 INFO: [108] AbstractPageObject.visit#32: Visiting url https://webagent-dev11.alfavox.dev:8443
Jibri 2023-01-11 15:56:41.938 INFO: [108] AbstractPageObject.visit#38: Waited 6.909788520s for driver to load page
Jibri 2023-01-11 15:56:42.119 INFO: [108] AbstractPageObject.visit#32: Visiting url https://webagent-dev11.alfavox.dev:8443/roomtest#config.iAmRecorder=true&config.externalConnectUrl=null&config.startWithAudioMuted=true&config.startWithVideoMuted=true&interfaceConfig.APP_NAME="Jibri"&config.analytics.disabled=true&config.p2p.enabled=false&config.prejoinPageEnabled=false&config.prejoinConfig.enabled=false&config.requireDisplayName=false
Jibri 2023-01-11 15:56:43.230 INFO: [108] AbstractPageObject.visit#38: Waited 1.110297466s for driver to load page
Jibri 2023-01-11 15:56:43.366 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
Jibri 2023-01-11 15:56:43.881 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
Jibri 2023-01-11 15:56:44.953 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:45.527 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:46.043 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:46.559 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:47.081 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:47.610 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:48.125 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:48.658 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:49.174 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:49.696 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:50.235 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:50.756 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:51.527 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:52.084 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:52.613 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:53.148 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:53.662 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:54.174 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:54.697 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:55.007 FINE: [20] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-11 15:56:55.208 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:55.725 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:56.252 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:56.781 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:57.315 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:57.838 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:58.354 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:58.883 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:59.421 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:56:59.946 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:00.473 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:01.044 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:01.571 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:02.122 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:02.667 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:03.202 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:03.746 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:05.219 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:05.738 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:06.267 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:06.798 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:07.321 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:07.841 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:08.376 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:08.903 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:09.421 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:09.937 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:10.482 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:11.026 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:11.543 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:12.059 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:12.594 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:13.104 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:13.630 FINE: [108] CallPage.visit$lambda-2$lambda-1#58: Not joined yet: APP is not defined
Jibri 2023-01-11 15:57:13.669 SEVERE: [108] CallPage.visit#65: Timed out waiting for call page to load
Jibri 2023-01-11 15:57:13.672 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.onSeleniumStateChange#216: Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
Jibri 2023-01-11 15:57:13.673 INFO: [108] [session_id=aoqejuzhtehyapkw] StatefulJibriService.onServiceStateChange#39: File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
Jibri 2023-01-11 15:57:13.673 INFO: [108] XmppApi$createServiceStatusHandler$1.invoke#317: Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq xmlns='jabber:client' to='jibribrewery@internal-muc.meet.jitsi/focus' id='F1EY9-130' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
Jibri 2023-01-11 15:57:13.674 FINE: [108] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: stop:recording
Jibri 2023-01-11 15:57:13.674 INFO: [108] JibriManager.stopService#260: Stopping the current service
Jibri 2023-01-11 15:57:13.674 INFO: [108] [session_id=aoqejuzhtehyapkw] FileRecordingJibriService.stop#182: Stopping capturer
Jibri 2023-01-11 15:57:13.675 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSubprocess.stop#75: Stopping ffmpeg process
Jibri 2023-01-11 15:57:13.675 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSubprocess.stop#89: ffmpeg exited with value null
Jibri 2023-01-11 15:57:13.675 INFO: [108] [session_id=aoqejuzhtehyapkw] FileRecordingJibriService.stop#184: Quitting selenium
Jibri 2023-01-11 15:57:13.676 INFO: [108] [session_id=aoqejuzhtehyapkw] FileRecordingJibriService.stop#191: No media was recorded, deleting directory and skipping metadata file & finalize
Jibri 2023-01-11 15:57:13.677 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#338: Leaving call and quitting browser
Jibri 2023-01-11 15:57:13.678 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#341: Recurring call status checks cancelled
Jibri 2023-01-11 15:57:13.734 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#347: Got 24 log entries for type browser
Jibri 2023-01-11 15:57:13.858 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#347: Got 1004 log entries for type driver
Jibri 2023-01-11 15:57:14.055 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#347: Got 0 log entries for type client
Jibri 2023-01-11 15:57:14.055 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#356: Leaving web call
Jibri 2023-01-11 15:57:14.092 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#363: Quitting chrome driver
Jibri 2023-01-11 15:57:14.313 INFO: [108] [session_id=aoqejuzhtehyapkw] JibriSelenium.leaveCallAndQuitBrowser#365: Chrome driver quit
Jibri 2023-01-11 15:57:14.314 INFO: [108] JibriStatusManager$special$$inlined$observable$1.afterChange#72: Busy status has changed: BUSY -> IDLE
Jibri 2023-01-11 15:57:14.314 FINE: [108] WebhookClient$updateStatus$1.invokeSuspend#109: Updating 0 subscribers of status
Jibri 2023-01-11 15:57:14.316 INFO: [108] XmppApi.updatePresence#209: Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
Jibri 2023-01-11 15:57:14.316 FINE: [108] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@2dc6b7a8
Jibri 2023-01-11 15:57:14.317 FINE: [108] MucClientManager.saveExtension#185: Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@1199ecfd
Jibri 2023-01-11 15:57:14.325 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
Jibri 2023-01-11 15:57:14.326 FINE: [46] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse: Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health

prosody logs

bosh8f44b0a3-ae1d-4543-9a96-72895ab8b337                     info       Authenticated as recorder@recorder.meet.jitsi
muc.meet.jitsi:token_verification                            error      Token nil not allowed to join: roomtest@muc.meet.jitsi/dbb8b6cf
bosh8f44b0a3-ae1d-4543-9a96-72895ab8b337                     info       BOSH client disconnected: session close
boshdde75d05-f1d9-42c2-a206-c8ba183ba45c                     info       BOSH client disconnected: session close
speakerstats.meet.jitsi:speakerstats_component               warn       A module has been configured that triggers external events.
speakerstats.meet.jitsi:speakerstats_component               warn       Implement this lib to trigger external events.
mod_bosh                                                     info       New BOSH session, assigned it sid 'ee54ddc9-01f7-408d-b776-a7e7c0498fc2'
boshee54ddc9-01f7-408d-b776-a7e7c0498fc2                     info       Authenticated as a8756ec0-6f6e-45e1-8924-d7642a578a84@meet.jitsi
mod_bosh                                                     info       New BOSH session, assigned it sid '70ef6d28-445f-42ce-a86b-224921825a73'
general                                                      warn       Error verifying token err:not-allowed, reason:token required
bosh70ef6d28-445f-42ce-a86b-224921825a73                     info       BOSH client disconnected: session close
mod_bosh                                                     info       New BOSH session, assigned it sid '0e41c05b-9791-4301-87e0-dfb0316e5e57'
bosh0e41c05b-9791-4301-87e0-dfb0316e5e57                     info       Authenticated as recorder@recorder.meet.jitsi
muc.meet.jitsi:token_verification                            error      Token nil not allowed to join: roomtest@muc.meet.jitsi/cd4b927f
bosh0e41c05b-9791-4301-87e0-dfb0316e5e57                     info       BOSH client disconnected: session close

https://community.jitsi.org/t/jibri-callpage-visit-lambda-2-lambda-1-58-not-joined-yet-app-is-not-defined