jitsi / lib-jitsi-meet

A low-level JS video API that allows adding a completely custom video experience to web apps.
Apache License 2.0
1.33k stars 1.11k forks source link

Connection fails on Firefox 48(Strophe connfail[item-not-found]) #1469

Closed farooqkz closed 3 years ago

farooqkz commented 3 years ago

Hello there! I am trying to create a Jitsi Meet client for current versions of KaiOS which are all based on FF48. So... I compiled this library for Firefox 48 with Babel by little changes in webpack.config.js, webpack-shared-config.js and index.js and by adding two more packages to package.json by npm install --save... per the first answer in this Stackoverflow question.

index.js is as follows:

require("core-js");
require("regenerator-runtime/runtime");
 // the rest of file ...

in webpack.config.js output.libraryTarget has been changed to var and finally in webpack-shared-config.js the variable targets of preset-env has been changed to { firefox: 48 } only to have support for Firefox 48. But when trying to use the library like this:

var rTracks = {};

JitsiMeetJS.init();
const connOpts = {
    hosts: {
        domain: "meet.jit.si",
        muc: "conference.meet.jit.si"
    },
    serviceUrl: "//meet.jit.si/http-bind"
};
var conn = new JitsiMeetJS.JitsiConnection(null, null, connOpts);
conn.addEventListener(JitsiMeetJS.events.connection.CONNECTION_ESTABLISHED, () => {
    const opts = {openBridgeChannel: true};
    let room = connection.initJitsiConference("cowcanspeak", opts);
    room.on(JitsiMeetJS.events.conference.TRACK_ADDED, track => {
        if (track.isLocal()) return;
        let par = track.getParticipantId();
        if (!rTracks[par]) {
            rTracks[par] = [];
        }
        if (track.getType() === "audio") {
            track.attach(document.querySelector("audio"));
        }
    });
    room.on(JitsiMeetJS.events.conference.USER_JOIEND, id => {
        rTracks[id] = [];
    });
});

conn.addEventListener(
    JitsiMeetJS.events.connection.CONNECTION_FAILED,
    () => {
        alert("Failed");
    });
conn.addEventListener(
    JitsiMeetJS.events.connection.CONNECTION_DISCONNECTED,
    () => {
        alert("Disconnected"); 
    });

conn.connect();

I get this error: 2021-01-19T17:44:59.128Z [modules/xmpp/xmpp.js] <connectionHandler>: (TIME) Strophe connfail[item-not-found]: 1778.455

And here you can see the full logs:

2021-01-19T17:44:58.417Z [modules/browser/BrowserCapabilities.js] This appears to be firefox, ver: 48.0(unknown)
2021-01-19T17:44:58.441Z [JitsiMeetJS.js] <init>:  Analytics disabled, disposing.(unknown)
2021-01-19T17:44:58.443Z [modules/statistics/AnalyticsAdapter.js] <dispose>:  Disposing of analytics adapter.(unknown)
2021-01-19T17:44:58.445Z [modules/RTC/ScreenObtainer.js] <_createObtainStreamMethod>:  Screen sharing not supported on  firefox(unknown)
2021-01-19T17:44:58.446Z [modules/RTC/ScreenObtainer.js] <init>:  Desktop sharing disabled(unknown)
2021-01-19T17:44:58.448Z [modules/xmpp/xmpp.js] <_initStrophePlugins>:  P2P STUN servers:  Array [ Object ](unknown)
2021-01-19T17:44:58.459Z [modules/xmpp/xmpp.js] <connectionHandler>:  (TIME) Strophe connecting:     1108.47(unknown)
console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._connect()lib-jitsi-meet.min.js:1406
JitsiMeetJS</</n/I.Connection.prototype.connect()lib-jitsi-meet.min.js:876
JitsiMeetJS</<._interceptConnectArgs()lib-jitsi-meet.min.js:26994
connect()lib-jitsi-meet.min.js:6816
_connect()lib-jitsi-meet.min.js:4871
connect()lib-jitsi-meet.min.js:4900
JitsiMeetJS</c.prototype.connect()lib-jitsi-meet.min.js:13406
<anonymous>app.js:41

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._processRequest()lib-jitsi-meet.min.js:1527
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._connect()lib-jitsi-meet.min.js:1406
JitsiMeetJS</</n/I.Connection.prototype.connect()lib-jitsi-meet.min.js:876
JitsiMeetJS</<._interceptConnectArgs()lib-jitsi-meet.min.js:26994
connect()lib-jitsi-meet.min.js:6816
_connect()lib-jitsi-meet.min.js:4871
connect()lib-jitsi-meet.min.js:4900
JitsiMeetJS</c.prototype.connect()lib-jitsi-meet.min.js:13406
<anonymous>app.js:41

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1503
JitsiMeetJS</</n/O.Bosh.prototype._processRequest()lib-jitsi-meet.min.js:1530
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._connect()lib-jitsi-meet.min.js:1406
JitsiMeetJS</</n/I.Connection.prototype.connect()lib-jitsi-meet.min.js:876
JitsiMeetJS</<._interceptConnectArgs()lib-jitsi-meet.min.js:26994
connect()lib-jitsi-meet.min.js:6816
_connect()lib-jitsi-meet.min.js:4871
connect()lib-jitsi-meet.min.js:4900
JitsiMeetJS</c.prototype.connect()lib-jitsi-meet.min.js:13406
<anonymous>app.js:41

The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol.localhost:8000
2021-01-19T17:44:58.642Z [modules/RTC/RTCUtils.js] list of media devices has changed: Array [ MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo ](unknown)
2021-01-19T17:44:58.645Z [modules/RTC/RTCUtils.js] <JitsiMeetJS</</init/<>:  Available devices:  Array [ MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo ](unknown)
console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1503

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._removeRequest()lib-jitsi-meet.min.js:1552
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1509

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._removeRequest()lib-jitsi-meet.min.js:1554
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1509

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1509

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1511

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/I.Connection.prototype._connect_cb()lib-jitsi-meet.min.js:1059
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1511

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._send()lib-jitsi-meet.min.js:1579
JitsiMeetJS</</n/I.Connection.prototype.send()lib-jitsi-meet.min.js:914
JitsiMeetJS</</n/I.Connection.prototype._attemptSASLAuth()lib-jitsi-meet.min.js:1104
JitsiMeetJS</</n/I.Connection.prototype.authenticate()lib-jitsi-meet.min.js:1089
JitsiMeetJS</</n/I.Connection.prototype._connect_cb()lib-jitsi-meet.min.js:1075
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1511

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._onIdle()lib-jitsi-meet.min.js:1485
JitsiMeetJS</</n/I.Connection.prototype._onIdle()lib-jitsi-meet.min.js:1227
JitsiMeetJS</</n/O.Bosh.prototype._send/this._conn._idleTimeout<()lib-jitsi-meet.min.js:1580

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._processRequest()lib-jitsi-meet.min.js:1527
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._onIdle()lib-jitsi-meet.min.js:1485
JitsiMeetJS</</n/I.Connection.prototype._onIdle()lib-jitsi-meet.min.js:1227
JitsiMeetJS</</n/O.Bosh.prototype._send/this._conn._idleTimeout<()lib-jitsi-meet.min.js:1580

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1503
JitsiMeetJS</</n/O.Bosh.prototype._processRequest()lib-jitsi-meet.min.js:1530
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._onIdle()lib-jitsi-meet.min.js:1485
JitsiMeetJS</</n/I.Connection.prototype._onIdle()lib-jitsi-meet.min.js:1227
JitsiMeetJS</</n/O.Bosh.prototype._send/this._conn._idleTimeout<()lib-jitsi-meet.min.js:1580

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1503

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._removeRequest()lib-jitsi-meet.min.js:1552
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1509

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._throttledRequestHandler()lib-jitsi-meet.min.js:1587
JitsiMeetJS</</n/O.Bosh.prototype._removeRequest()lib-jitsi-meet.min.js:1554
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1509

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1509

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1511

console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/I.Connection.prototype._dataRecv()lib-jitsi-meet.min.js:1023
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1511

2021-01-19T17:44:59.128Z [modules/xmpp/xmpp.js] <connectionHandler>:  (TIME) Strophe connfail[item-not-found]:   1778.455(unknown)
console.trace():lib-jitsi-meet.min.js:13021
o()lib-jitsi-meet.min.js:13021
JitsiMeetJS</</t.a/i.Strophe.log()lib-jitsi-meet.min.js:18916
JitsiMeetJS</</n/I.debug()lib-jitsi-meet.min.js:699
JitsiMeetJS</</n/I.Connection.prototype._doDisconnect()lib-jitsi-meet.min.js:1019
JitsiMeetJS</<._interceptDoDisconnect()lib-jitsi-meet.min.js:26991
JitsiMeetJS</</n/I.Connection.prototype._dataRecv()lib-jitsi-meet.min.js:1039
JitsiMeetJS</</n/O.Bosh.prototype._onRequestStateChange()lib-jitsi-meet.min.js:1511

2021-01-19T17:44:59.131Z [modules/xmpp/xmpp.js] <connectionHandler>:  (TIME) Strophe disconnected[item-not-found]:   1780.685(unknown)
2021-01-19T17:44:59.132Z [modules/statistics/statistics.js] <JitsiMeetJS</</b.sendAnalyticsAndLog>:  {"type":"operational","action":"connection.failed","attributes":{"error_type":"connection.otherError","error_message":"item-not-found","suspend_time":0,"time_since_last_success":null}}(unknown)
farooqkz commented 3 years ago

Used websocket instead and the problem has been solved.

vpuna commented 3 years ago

@farooqkz hello. I am currently facing this exact same problem. Could you please let me know how is websockets solves the issue and how it is used in the context of Jitsi ?

farooqkz commented 3 years ago

Hi! give wss://jitsi.meet.server/xmpp-websocket?room=your-room to serviceUrl when creating new JitsiConnection. By the way, if you are trying to create a KaiOS client for Jitsi Meet, I think you should see this thread: https://community.jitsi.org/t/coding-a-jitsi-meet-kaios-client/92041/14