Help: Recorders not avaliable (custom deployment)

When I try to start to record I get this error “recorder unavaliable”

any help?

@bbaldino

Share your jibri.conf and your logs - Jibri and Jicofo

jibri {

"recording_directory": "/recordings",
"finalize_recording_script_path": "",
"xmpp_server_hosts": [
"connect.domain.com"
],
"xmpp_domain": "connect.domain.com",
"control_login": {
"domain": "auth.connect.domain.com,
"username": "jibri",
"password": "Jibr1P@ssw0rd"
},
"control_muc": {
"domain": "internal.auth.connect.domain.com",
"room_name": "JibriBrewery",
"nickname": "jibri"
},
"call_login": {
"domain": "recorder.connect.domain.com",
"username": "recorder",
"password": "Rec0rderP@ssw0rd"
},
}

https://pastebin.com/jpekBt2z

This link is no longer valid.

And the information you pasted up there is actually your config.json (which is being deprecated). If you’re installing Jibri for the first time (especially), you should be using Jibri.conf.

That is jibri.conf

Ah, in that case, you have the wrong information in there then.

This is what your Jibri.conf should look like - https://github.com/jitsi/jibri/blob/master/src/main/resources/reference.conf

And use this example configuration for the xmpp portion.

1 Like

Where do I do the xmpp config?

Right here in your Jibri.conf configuration.

Thanks man I owe you one!

just comfirming this is a correct set-up

// An example file showing the fields for the XMPP environment config.
{
    environments = [
        {
            // A user-friendly name for this environment
            name = "env name"

            // A list of XMPP server hosts to which we'll connect
            xmpp-server-hosts = [ "host1", "host2" ]

            // The base XMPP my.domain.com
            xmpp-my.domain.com = "xmpp-my.domain.com"

            // The MUC we'll join to announce our presence for
            // recording and streaming services
            control-muc {
                my.domain.com = "my.domain.com"
                room-name = "JibriBrewery"
                nickname = "jibri"
            }

            // The login information for the control MUC
            control-login {
                my.domain.com = "my.domain.com"
                username = "jibri"
                password = "Jibr1P@ssw0rd"
            }

            // An (optional) MUC configuration where we'll
            // join to announce SIP gateway services
            sip-control-muc {
                my.domain.com = "my.domain.com"
                room-name = "recorder"
                nickname = "Rec0rderP@ssw0rd"
            }

            // The login information the selenium web client will use
            call-login {
                my.domain.com = "my.domain.com"
                username = "recorder"
                password = "Rec0rderP@ssw0rd"
            }

            // The value we'll strip from the room JID my.domain.com to derive
            // the call URL
            strip-from-room-my.domain.com = ""

            // How long Jibri sessions will be allowed to last before
            // they are stopped.  A value of 0 allows them to go on
            // indefinitely
            usage-timeout = 1 hour

            // Whether or not we'll automatically trust any cert on
            // this XMPP my.domain.com
            trust-all-xmpp-certs = true
        }
    ]
}

No, there are quite a few errors.

Try this:

}
xmpp {
// See example_xmpp_envs.conf for an example of what is expected here
environments = [
{
name = “env name”
xmpp-server-hosts = [“your.domain.com”]
xmpp-domain = “your.domain.com

            control-muc {
                domain = "internal.auth.your.domain.com"
                room-name = "JibriBrewery"
                nickname = "jibri-nickname"
            }

            control-login {
                domain = "auth.your.domain.com"
                username = "jibri"
                password = "JibriP@ssw0rd"
            }

            call-login {
                domain = "recorder.your.domain.com"
                username = "recorder"
                password = "Rec0rdersP@ssw0rd"
            }

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

}

it still isn’t working for some reason. here’s my whole 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 = “env name”
xmpp-server-hosts = [“my.domain.com”]
xmpp-domain = “my.domain.com”

            control-muc {
                domain = "internal.auth.my.domain.com"
                room-name = "JibriBrewery"
                nickname = "jibri-nickname"
            }

            control-login {
                domain = "auth.my.domain.com"
                username = "jibri"
                password = "JibriP@ssw0rd"
            }

            call-login {
                domain = "recorder.my.domain.com"
                username = "recorder"
                password = "Rec0rderP@ssw0rd"
            }

            strip-from-room-domain = "conference."
            usage-timeout = 0
            trust-all-xmpp-certs = true
        }]
}
}
  recording {
    recordings-directory = "/recordings"
    # TODO: make this an optional param and remove the default
    finalize-script = ""
  }
  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
  }
}

Can you post your Jibri log?

i don’t have one image

So you don’t have this file?

/var/log/jitsi/jibri/log.0.txt

yes, there is no jibri folder

only /hostname/var/log/jitsi

Ah, ok that’s a problem. Create one in that directory and make jibri user the owner.

chown jibri:jibri /var/log/jitsi/jibri

is that correct ^