Streaming not working

Hi there, this issue is driving me crazy

2021-12-09 13:34:13.648 ADVERTENCIA: [39] [hostname=MY-DOMAIN id=MY-DOMAIN] MucClient.lambda$getConnectAndLoginCallable$8#622: [MucClient id=MY-DOMAIN hostname=MY-DOMAIN] error connecting
org.jivesoftware.smack.SmackException$EndpointConnectionException: The following addresses failed: ‘RFC 6120 A/AAAA Endpoint + [MY-DOMAIN:5222] (MY-DOMAIN/’ failed because: Conexión rehusada (Connection refused)

It’s not pretty clear to me where/what to check

TCP/5222 (prosody) is not accessible by jibri

The jibri I’m dealing with is on a separate server.

Can see prosody is listening on the jitsi side

# netstat -taunp | grep 5222
tcp        0      0  *               LISTEN      6317/lua5.2         
tcp        0      0         ESTABLISHED 6317/lua5.2         
tcp        0      0         ESTABLISHED 6317/lua5.2         
tcp6       0      0 :::5222                 :::*                    LISTEN      6317/lua5.2         
tcp6       0      0          ESTABLISHED 6315/java           
tcp6       0      0          ESTABLISHED 6291/java

However, when ‘knocking the door’

# curl -m 5
curl: (7) Failed to connect to []( port 5222: Connection refused

Have a reverse proxy in front of all the services, and believe that the issue had to do with that

Is that port (TCP/5222) on the Jitsi server accessible to Jibri?

Just configured using a host address as the DNS way seem not worked. So,
it’s accessible.

However, another issue came up. Following the troubleshooting guide
found that jibri.dat has no password stored. So used prosodyctl, again,
to do so. But, once again, no password is stored.

Were you performing the command as root?

If you mean the prosodyctl, on the jitsi side

Yes, you have to register the accounts on the Jitsi server and you need to be root user to do the registration?

There will be no clear text pasword in this file. It’s stored as an hashed copy

Oh, I see. So should be behind “stored_key”, right?


My jibri.dat has just this lines

return {
	["iteration_count"] = 4096;
	["server_key"] = "...";
	["salt"] = "...";
	["stored_key"] = "...";

Jibri Log has a bunch o these

2021-12-12 12:16:45.061 INFORMACIÓN: [39] [] MucClient$2.connected#304: Connected.
2021-12-12 12:16:45.061 INFORMACIÓN: [39] [] MucClient.lambda$getConnectAndLoginCallable$8#628: Logging in.
2021-12-12 12:16:45.063 ADVERTENCIA: [39] [] MucClient.lambda$getConnectAndLoginCallable$8#642: Failed to login. Disconnecting to trigger a re-connect.
2021-12-12 12:16:45.064 INFORMACIÓN: [39] [] MucClient$2.connectionClosed#316: Closed.

Probably usernames/password in jibri.conf don’t match registered accounts or domains

Double checked config, registered new passwords bor both jibri and
recorder but now I get “Current service had an error Error:
FailedToJoinCall SESSION Failed to join the call”

Here’s my config and logs, any hint will be much appreciated

— Jibri Conf
jibri {
// A unique identifier for this Jibri
// TODO: eventually this will be required with no default
id = “”
// Whether or not Jibri should return to idle state after handling
// (successfully or unsuccessfully) a request. A value of ‘true’
// here means that a Jibri will NOT return back to the IDLE state
// and will need to be restarted in order to be used again.
single-use-mode = false
api {
http {
external-api-port = 2222
internal-api-port = 3333
xmpp {
// See example_xmpp_envs.conf for an example of what is expected
environments = [
name = “produccion”
xmpp-server-hosts = [“”]
xmpp-domain = “”

             control-muc {
                 domain = ""
                 room-name = "JibriBrewery"
                 nickname = "operador"

             control-login {
                 domain = ""
                 username = "jibri"
                 password = "JPwd1234"

             call-login {
                 domain = ""
                 username = "grabadora"
                 password = "RPwd1234"

             strip-from-room-domain = "conference."
             usage-timeout = 0
             trust-all-xmpp-certs = true

recording {
recordings-directory = “/srv/recordings”
# TODO: make this an optional param and remove the default
finalize-script = “/path/to/”
streaming {
// A list of regex patterns for allowed RTMP URLs. The RTMP URL
// when starting a stream must match at least one of the patterns in
// this list.
rtmp-allow-list = [
// By default, all services are allowed
chrome {
// The flags which will be passed to chromium when launching
flags = [
stats {
enable-stats-d = true
webhook {
// A list of subscribers interested in receiving webhook events
subscribers =
jwt-info {
// The path to a .pem file which will be used to sign JWT tokens
used in webhook
// requests. If not set, no JWT will be added to webhook requests.
# signing-key-path = “/path/to/key.pem”

 // The kid to use as part of the JWT
 # kid = "key-id"

 // The issuer of the JWT
 # issuer = "issuer"

 // The audience of the JWT
 # audience = "audience"

 // The TTL of each generated JWT.  Can't be less than 10 minutes.
 # ttl = 1 hour

call-status-checks {
// If all clients have their audio and video muted and if Jibri does
// detect any data stream (audio or video) comming in, it will stop
// recording after NO_MEDIA_TIMEOUT expires.
no-media-timeout = 30 seconds

 // If all clients have their audio and video muted, Jibri consideres 

// as an empty call and stops the recording after ALL_MUTED_TIMEOUT
all-muted-timeout = 10 minutes

 // When detecting if a call is empty, Jibri takes into consideration 

for how
// long the call has been empty already. If it has been empty for
more than
// DEFAULT_CALL_EMPTY_TIMEOUT, it will consider it empty and stop
the recording.
default-call-empty-timeout = 30 seconds

The default username for call-login is recorder but this name is different in your config. Also the default domain for call-domain is recorder.YOUR-DOMAIN

After changing values to the default ones, error persist

@damencho @emrah any suggestions on how to go about this issue? I’m facing the same issue now.

In my case I have 1 videobridge on a different server, Jibri is on a different server and main Jitsi is on another server.

jibri logs

2022-02-03 23:54:06.825 INFO: [27] [] MucClient$2.connected#304: Connected.
2022-02-03 23:54:06.825 INFO: [27] [] MucClient.lambda$getConnectAndLoginCallable$8#628: Logging in.
2022-02-03 23:54:06.827 WARNING: [27] [] MucClient.lambda$getConnectAndLoginCallable$8#642: Failed to login. Disconnecting to trigger a re-connect.
2022-02-03 23:54:06.828 INFO: [27] [hostname=[](] MucClient$2.connectionClosed#316: Closed.

error message

<?xml version='1.0'?><stream:stream xml:lang='en' xmlns:stream='' xmlns='jabber:client'><stream:error><not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>Connection closed by foreign host.