Jibri joins bad URL when recording

Hey,

I’m having issues where after setting up Jibri according to the steps at jibri’s GitHub page, when recording the Jibri recorder joins the conference at incorrect URL.

In my case the conference is at example.com/some-name , but Jibri joins exmaple.com/conference/some-name

What causes this? How can I fix this?

Welcome to the forum.

Can you share your Jibri.conf?

Here’s jibri.conf, I replaced my actual domain with subdomain.exmaple.com as it’s publicly available:

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 = "my jitsi"
        xmpp-server-hosts = ["subdomain.example.com"]
        xmpp-domain = "subdomain.example.com"

        control-login = {
          domain = "auth.subdomain.example.com"
          username = "jibri"
          password = "jibri"
        }

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

        call-login = {
          domain = "recorder.subdomain.example.com"
          username = "recorder"
          password = "recorder"
        }

        strip-from-room-domain = ""

        usage-timeout = 1 hour
  
        trust-all-xmpp-certs = true
      }]
    }
  }
  recording {
    recordings-directory = "/tmp/recordings"
    # TODO: make this an optional param and remove the default
    finalize-script = "/path/to/finalize"
  }
  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
  }
  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 = 5 minutes

    // 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 = 5 minutes
  }
}

It’s a test setup, I know the passwords are not the greatest :slight_smile:

strip-from-room-domain = "conference."
1 Like

That did it, thanks!