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/45.4.253.235:5222)’ failed because: java.net.ConnectException: 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 0.0.0.0:5222            0.0.0.0:*               LISTEN      6317/lua5.2         
tcp        0      0 127.0.1.1:5222          127.0.0.1:52908         ESTABLISHED 6317/lua5.2         
tcp        0      0 127.0.1.1:5222          127.0.0.1:52906         ESTABLISHED 6317/lua5.2         
tcp6       0      0 :::5222                 :::*                    LISTEN      6317/lua5.2         
tcp6       0      0 127.0.0.1:52908         127.0.1.1:5222          ESTABLISHED 6315/java           
tcp6       0      0 127.0.0.1:52906         127.0.1.1:5222          ESTABLISHED 6291/java

However, when ‘knocking the door’

# curl -m 5 http://my-domain.edu:5222
curl: (7) Failed to connect to [1.2.3.4](http://my-domain.edu) 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?

yes

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] [hostname=meet.domain.edu id=meet.domain.edu] MucClient$2.connected#304: Connected.
2021-12-12 12:16:45.061 INFORMACIÓN: [39] [hostname=meet.domain.edu id=meet.domain.edu] MucClient.lambda$getConnectAndLoginCallable$8#628: Logging in.
2021-12-12 12:16:45.063 ADVERTENCIA: [39] [hostname=meet.domain.edu id=meet.domain.edu] MucClient.lambda$getConnectAndLoginCallable$8#642: Failed to login. Disconnecting to trigger a re-connect.
2021-12-12 12:16:45.064 INFORMACIÓN: [39] [hostname=meet.domain.edu id=meet.domain.edu] 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
here
environments = [
{
name = “produccion”
xmpp-server-hosts = [“reuniones.unau.edu.ar”]
xmpp-domain = “reuniones.unau.edu.ar”

             control-muc {
                 domain = "internal.auth.reuniones.unau.edu.ar"
                 room-name = "JibriBrewery"
                 nickname = "operador"
             }

             control-login {
                 domain = "auth.reuniones.unau.edu.ar"
                 username = "jibri"
                 password = "JPwd1234"
             }

             call-login {
                 domain = "grabadora.reuniones.unau.edu.ar"
                 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/finalize_recording.sh”
}
streaming {
// A list of regex patterns for allowed RTMP URLs. The RTMP URL
used
// 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 = [
“–use-fake-ui-for-media-stream”,
“–start-maximized”,
“–kiosk”,
“–enabled”,
“–disable-infobars”,
“–autoplay-policy=no-user-gesture-required”
]
}
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
not
// 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 

this
// as an empty call and stops the recording after ALL_MUTED_TIMEOUT
expires.
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