question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Incorrect URL Jibri browser connects to

See original GitHub issue

This Issue tracker is only for reporting bugs and tracking code related issues.

Before posting, please make sure you check community.jitsi.org to see if the same or similar bugs have already been discussed. General questions, installation help, and feature requests can also be posted to community.jitsi.org.

Description


I have Jitsi+Jibri running in LAN with HTTPS traffic unloaded on NGINX proxy. Jibri can access prosody in LAN directly by prosody DNS name xmpp_domain is a test one and is meet.jitsi Jibri has the following configuration:

{
    "recording_directory":"/config/recordings",
    // The path to the script which will be run on completed recordings
    "finalize_recording_script_path": "<no value>",
    "xmpp_environments": [
        {
            // A friendly name for this environment which can be used
            //  for logging, stats, etc.
            "name": "prod environment",
            // The hosts of the XMPP servers to connect to as part of
            //  this environment
            "xmpp_server_hosts": [
                "prosody"
            ],
            "xmpp_domain": "meet.jitsi",
            // Jibri will login to the xmpp server as a privileged user 
            "control_login": {
                "domain": "auth.meet.jitsi",
                // The credentials for logging in
                "username": "jibri",
                "password": "passw0rd"
            },
            // Using the control_login information above, Jibri will join 
            //  a control muc as a means of announcing its availability 
            //  to provide services for a given environment
            "control_muc": {
                "domain": "internal-muc.meet.jitsi",
                "room_name": "jibribrewery",
                // MUST be unic for every instanse
                "nickname": "jibri-instanse-531254950"
            },
            // All participants in a call join a muc so they can exchange
            //  information.  Jibri can be instructed to join a special muc
            //  with credentials to give it special abilities (e.g. not being
            //  displayed to other users like a normal participant)
            "call_login": {
                "domain": "recorder.meet.jitsi",
                "username": "recorder",
                "password": "passw0rd"
            },
            // 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
            "room_jid_domain_string_to_strip_from_start": "muc.",
            // The amount of time, in minutes, a service is allowed to continue.
            //  Once a service has been running for this long, it will be
            //  stopped (cleanly).  A value of 0 means an indefinite amount
            //  of time is allowed
            "usage_timeout": "0"
        }
    ]
}

With xmpp_server_hosts pointing to different location than xmpp_domain

{
            "xmpp_server_hosts": [
                "prosody"
            ],
            "xmpp_domain": "meet.jitsi",
 }

Current behavior


Jibri reports error upon attempt tp record video. All the rest of the system works fine.

Jibri browser connects to https://meet.jitsi which is not resolvable. I see in browsr’s log:

COMMAND Navigate {
   "url": "https://meet.jitsi"
}

reasonably following by error "unreachableUrl": "https://meet.jitsi/",:

{
   "frame": {
      "id": "69F0BFC0B61940517F7613B7A9F90626",
      "loaderId": "46A031B7908CA4F4C25712DFCA1C4F64",
      "mimeType": "text/html",
      "securityOrigin": "://",
      "unreachableUrl": "https://meet.jitsi/",
      "url": "chrome-error://chromewebdata/"
   }
}

Expected Behavior


Navigate browser to http://prosody, instead of https://meet.jitsi because prosody is listed as one of xmpp_server_hosts and no HTTPS is available and configured

Possible Solution


Steps to reproduce


Setup LAN without HTTPS and all components running on different servers

Environment details


Issue Analytics

  • State:open
  • Created 4 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
shubham2110commented, Oct 6, 2020

I found the actual issue here…

in the function getCallUrlInfoFromJid it is giving url with http://$xmppDomain but it should have been giving url with http://xmppServerHosts

Could anyone in jibri Developers please check it.

0reactions
aaronkvanmeertencommented, Nov 14, 2019

Excellent question regarding the xmpp_server_hosts.

To answer your question I’ll need to dive a bit into how Jibri works: Jibri actually has two components. The first is a server-like component that is always running, and connects to the xmpp_server_hosts and advertises itself in a MUC for Jicofo to know about.

Once a new request to record/livestream is received by this server component by a user (via jicofo), the second component is executed.

This phase uses a chrome browser in an X server on the jibri VM to connect to the conference as a participant, just like any other user would join. Particular parameters and credentials are passed at this point, to allow it to do this special recorder/livestreamer mode.

ffmpeg is then executed to either record (to local disk) or livestream (to an rtmp:// URL).

When the recording session is completed, the ffmpeg is stopped, some post-processing occurs (uploads and the like), and then the server goes back to its idle mode, wherein it is ready to receive the next recording request.

The suggested PR I had envisioned above would be overriding the URL the chrome instance would be sent to (which would match your jitsi-meet GUI DNS in your example), whereas the xmpp_server_hosts are referring to the prosody server, and xmpp_domain should match the prosody internal identifier (as configured in prosody.cfg.lua or associated files)

Let me know if this answers your questions?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Jibri visiting URL problem - Jitsi Community Forum
Hi all! My Jitsi and Jibri are on separate servers. Jitsi works correctly on the following link: https://mydnsname/meet/ Jicofo log shows me ...
Read more >
Jibri is unable to record if a moderator sets a meeting password
1 Answer 1 ... You need to use an external script to allow jibri user to bypass the meeting password. There's already a...
Read more >
Setting up Jibri for Jitsi Meet meeting recording and streaming ...
This will guide you to setup Jibri recording for your jitsi meet setup - recording helps your meetings be memorable.
Read more >
Jibri (Recording & Streaming for Jitsi) - YouTube
Want to enable recording and streaming on your Jitsi Meet server? Join me as I walk through the complete setup of Jibri !...
Read more >
90 Day Fiancé Tell-All: Jibri and John's SPARKLES ... - YouTube
ET's Melicia Johnson breaks down the must-see moments from part 2 of the '90 Day Fiancé' season 9 tell-all special, from Jibri threatening ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found