Testing lib-jitsi-meet using beta.meet.jit.si servers?

I’m excited to try using Jitsi in a game world we’re working on, and I’m having trouble getting started with lib-jitsi-meet and the meet.jit.si servers. (Once we prove out the concept, we’d like to move to our own servers.)

When trying to connect to a conference room, I see my own video but nothing from others’ computers. I can see the other connections and tracks being added (via callbacks). I’m getting the following message when trying to connect a Firefox browser “ICE failed, add a STUN server and see about:webrtc for more details” (No message in Chrome, but the video does not work there, either).

Here is my configuration:

  JitsiMeetJS.init() // initOptions
  const options = {
    hosts: {
        domain: 'beta.meet.jit.si',
        muc: 'conference.beta.meet.jit.si'
    },
    serviceUrl: 'wss://beta.meet.jit.si/xmpp-websocket',
    clientNode: 'https://beta.meet.jit.si',
  }
  connection = new JitsiMeetJS.JitsiConnection(null, null, options)

Do these settings seem reasonable, and are there additional configuration requirements to use the meet.jit.si STUN/TURN servers? Is that permitted for testing?

Thanks!

A few things I’ve found helpful:

  • Jitsi hosts its own configuration file here. This can be very handy as a reference.
  • I discovered that I was not adding local tracks to the conference (see below)
  • I now have it working in Chrome, but it appears Firefox is still having trouble.

Here is what appears to be missing from the lib-jitsi-meet Getting Started guide that is working for me in Chrome:

After room.join() it’s important to add each of the localTracks to the conference:

    connection = new JitsiMeetJS.JitsiConnection(null, null, options)
    connection.addEventListener(JitsiMeetJS.events.connection.CONNECTION_ESTABLISHED, onConnectionEstablished)

    await connection.connect()
    localTracks = await JitsiMeetJS.createLocalTracks({ devices: [ 'audio', 'video' ] })

    // ...

    function onConnectionEstablished() {
      const conference = connection.initJitsiConference(CONFERENCE_ROOM_NAME, {
        openBridgeChannel: true
      })
      conference.on(JitsiMeetJS.events.conference.TRACK_ADDED, onTrackAdded)
      // ... add other listeners
      
      conference.join()

      // !! Here is the important part:
      for (let track of localTracks) {
        conference.addTrack(track)
      }
    }

Side note: Since Firefox still isn’t working, I’m looking at several possibilities. My issue may be related to https://github.com/jitsi/jitsi-meet/issues/5532 (same message, “ICE failed, add a STUN server” as well as “Bridge Channel send: no opened channel.”)

1 Like

Any luck with Firefox? Do you know if the Meet API works on Safari, or is Safari support part of a bigger problem

None so far. I’m still struggling to understand why Firefox works on meet.jit.si but does not work when I use lib-jitsi-meet configured for meet.jit.si.

I believe Safari is part of a separate problem.

Do update us if you find a solution! Missing out on an entire browser will be a deal breaker for our planned production use

Ok, so I didn’t change anything, but Firefox appears to be working now. I’m using meet.jit.si and not beta.meet.jit.si FWIW.

Oh, interesting. Also wanted to ask, what stops you from just using Jitsi servers for your own custom implementation? If we can use lib-meet-jitsi and just remove all their branding and make it custom…

I think Jitsi is very generous with their servers, but as a free service it comes with all of the caveats–you don’t know if/when they will upgrade, or break an API, or turn servers on/off, etc.

1 Like