Fixes issues related to PR #452
This commit is contained in:
parent
66212862ce
commit
089a9880b0
|
@ -111,13 +111,15 @@ class ConferenceConnector {
|
||||||
this._handleConferenceJoined.bind(this));
|
this._handleConferenceJoined.bind(this));
|
||||||
room.on(ConferenceEvents.CONFERENCE_FAILED,
|
room.on(ConferenceEvents.CONFERENCE_FAILED,
|
||||||
this._onConferenceFailed.bind(this));
|
this._onConferenceFailed.bind(this));
|
||||||
|
room.on(ConferenceEvents.CONFERENCE_ERROR,
|
||||||
|
this._onConferenceError.bind(this));
|
||||||
}
|
}
|
||||||
_handleConferenceFailed(err, msg) {
|
_handleConferenceFailed(err, msg) {
|
||||||
this._unsubscribe();
|
this._unsubscribe();
|
||||||
this._reject(err);
|
this._reject(err);
|
||||||
}
|
}
|
||||||
_onConferenceFailed(err, msg = '') {
|
_onConferenceFailed(err, ...params) {
|
||||||
console.error('CONFERENCE FAILED:', err, msg);
|
console.error('CONFERENCE FAILED:', err, params);
|
||||||
switch (err) {
|
switch (err) {
|
||||||
// room is locked by the password
|
// room is locked by the password
|
||||||
case ConferenceErrors.PASSWORD_REQUIRED:
|
case ConferenceErrors.PASSWORD_REQUIRED:
|
||||||
|
@ -128,7 +130,10 @@ class ConferenceConnector {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ConferenceErrors.CONNECTION_ERROR:
|
case ConferenceErrors.CONNECTION_ERROR:
|
||||||
APP.UI.notifyConnectionFailed(msg);
|
{
|
||||||
|
let [msg] = params;
|
||||||
|
APP.UI.notifyConnectionFailed(msg);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ConferenceErrors.VIDEOBRIDGE_NOT_AVAILABLE:
|
case ConferenceErrors.VIDEOBRIDGE_NOT_AVAILABLE:
|
||||||
|
@ -146,8 +151,50 @@ class ConferenceConnector {
|
||||||
AuthHandler.requireAuth(APP.conference.roomName);
|
AuthHandler.requireAuth(APP.conference.roomName);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ConferenceErrors.RESERVATION_ERROR:
|
||||||
|
{
|
||||||
|
let [code, msg] = params;
|
||||||
|
APP.UI.notifyReservationError(code, msg);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ConferenceErrors.GRACEFUL_SHUTDOWN:
|
||||||
|
APP.UI.notifyGracefulShudown();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ConferenceErrors.JINGLE_FATAL_ERROR:
|
||||||
|
APP.UI.notifyInternalError();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ConferenceErrors.CONFERENCE_DESTROYED:
|
||||||
|
{
|
||||||
|
let [reason] = params;
|
||||||
|
APP.UI.notifyConferenceDestroyed(reason);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ConferenceErrors.FOCUS_DISCONNECTED:
|
||||||
|
{
|
||||||
|
let [focus, retrySec] = params;
|
||||||
|
APP.UI.notifyFocusDisconnected(focus, retrySec);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
this._handleConferenceFailed(err, msg);
|
this._handleConferenceFailed(err, ...params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_onConferenceError(err, ...params) {
|
||||||
|
console.error('CONFERENCE Error:', err, params);
|
||||||
|
switch (err) {
|
||||||
|
case ConferenceErrors.CHAT_ERROR:
|
||||||
|
{
|
||||||
|
let [code, msg] = params;
|
||||||
|
APP.UI.showChatError(code, msg);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.error("Unknown error.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_unsubscribe() {
|
_unsubscribe() {
|
||||||
|
@ -513,6 +560,10 @@ export default {
|
||||||
APP.UI.updateRecordingState(status);
|
APP.UI.updateRecordingState(status);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
room.on(ConferenceEvents.USER_STATUS_CHANGED, function (id, status) {
|
||||||
|
APP.UI.updateUserStatus(id, status);
|
||||||
|
});
|
||||||
|
|
||||||
room.on(ConferenceEvents.KICKED, () => {
|
room.on(ConferenceEvents.KICKED, () => {
|
||||||
APP.UI.notifyKicked();
|
APP.UI.notifyKicked();
|
||||||
// FIXME close
|
// FIXME close
|
||||||
|
@ -522,6 +573,10 @@ export default {
|
||||||
APP.UI.updateDTMFSupport(isDTMFSupported);
|
APP.UI.updateDTMFSupport(isDTMFSupported);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
room.on(ConferenceEvents.FIREFOX_EXTENSION_NEEDED, function (url) {
|
||||||
|
APP.UI.notifyFirefoxExtensionRequired(url);
|
||||||
|
});
|
||||||
|
|
||||||
APP.UI.addListener(UIEvents.ROOM_LOCK_CLICKED, () => {
|
APP.UI.addListener(UIEvents.ROOM_LOCK_CLICKED, () => {
|
||||||
if (room.isModerator()) {
|
if (room.isModerator()) {
|
||||||
let promise = roomLocker.isLocked
|
let promise = roomLocker.isLocked
|
||||||
|
@ -657,6 +712,12 @@ export default {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
room.on(
|
||||||
|
ConferenceEvents.AVAILABLE_DEVICES_CHANGED, function (id, devices) {
|
||||||
|
APP.UI.updateDevicesAvailability(id, devices);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// call hangup
|
// call hangup
|
||||||
APP.UI.addListener(UIEvents.HANGUP, () => {
|
APP.UI.addListener(UIEvents.HANGUP, () => {
|
||||||
APP.UI.requestFeedback().then(() => {
|
APP.UI.requestFeedback().then(() => {
|
||||||
|
|
|
@ -59,6 +59,10 @@ function JitsiConference(options) {
|
||||||
this.startAudioMuted = false;
|
this.startAudioMuted = false;
|
||||||
this.startVideoMuted = false;
|
this.startVideoMuted = false;
|
||||||
this.startMutedPolicy = {audio: false, video: false};
|
this.startMutedPolicy = {audio: false, video: false};
|
||||||
|
this.availableDevices = {
|
||||||
|
audio: undefined,
|
||||||
|
video: undefined
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -817,6 +821,24 @@ function setupListeners(conference) {
|
||||||
conference.room.addListener(XMPPEvents.BRIDGE_DOWN, function () {
|
conference.room.addListener(XMPPEvents.BRIDGE_DOWN, function () {
|
||||||
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.VIDEOBRIDGE_NOT_AVAILABLE);
|
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.VIDEOBRIDGE_NOT_AVAILABLE);
|
||||||
});
|
});
|
||||||
|
conference.room.addListener(XMPPEvents.RESERVATION_ERROR, function (code, msg) {
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.RESERVATION_ERROR, code, msg);
|
||||||
|
});
|
||||||
|
conference.room.addListener(XMPPEvents.GRACEFUL_SHUTDOWN, function () {
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.GRACEFUL_SHUTDOWN);
|
||||||
|
});
|
||||||
|
conference.room.addListener(XMPPEvents.JINGLE_FATAL_ERROR, function () {
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.JINGLE_FATAL_ERROR);
|
||||||
|
});
|
||||||
|
conference.room.addListener(XMPPEvents.MUC_DESTROYED, function (reason) {
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.CONFERENCE_DESTROYED, reason);
|
||||||
|
});
|
||||||
|
conference.room.addListener(XMPPEvents.CHAT_ERROR_RECEIVED, function (err, msg) {
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_ERROR, JitsiConferenceErrors.CHAT_ERROR, err, msg);
|
||||||
|
});
|
||||||
|
conference.room.addListener(XMPPEvents.FOCUS_DISCONNECTED, function (focus, retrySec) {
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.FOCUS_DISCONNECTED, focus, retrySec);
|
||||||
|
});
|
||||||
// FIXME
|
// FIXME
|
||||||
// conference.room.addListener(XMPPEvents.MUC_JOINED, function () {
|
// conference.room.addListener(XMPPEvents.MUC_JOINED, function () {
|
||||||
// conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_LEFT);
|
// conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_LEFT);
|
||||||
|
@ -868,6 +890,16 @@ function setupListeners(conference) {
|
||||||
conference.eventEmitter.emit(JitsiConferenceEvents.MESSAGE_RECEIVED, id, txt, ts);
|
conference.eventEmitter.emit(JitsiConferenceEvents.MESSAGE_RECEIVED, id, txt, ts);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
conference.room.addListener(XMPPEvents.PRESENCE_STATUS, function (jid, status) {
|
||||||
|
var id = Strophe.getResourceFromJid(jid);
|
||||||
|
var participant = conference.getParticipantById(id);
|
||||||
|
if (!participant || participant._status === status) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
participant._status = status;
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.USER_STATUS_CHANGED, id, status);
|
||||||
|
});
|
||||||
|
|
||||||
conference.rtc.addListener(RTCEvents.DOMINANTSPEAKER_CHANGED, function (id) {
|
conference.rtc.addListener(RTCEvents.DOMINANTSPEAKER_CHANGED, function (id) {
|
||||||
if(conference.lastDominantSpeaker !== id && conference.room) {
|
if(conference.lastDominantSpeaker !== id && conference.room) {
|
||||||
conference.lastDominantSpeaker = id;
|
conference.lastDominantSpeaker = id;
|
||||||
|
@ -945,6 +977,50 @@ function setupListeners(conference) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
conference.rtc.addListener(RTCEvents.AVAILABLE_DEVICES_CHANGED, function (devices) {
|
||||||
|
conference.room.updateDeviceAvailability(devices);
|
||||||
|
});
|
||||||
|
conference.room.addPresenceListener("devices", function (data, from) {
|
||||||
|
var isAudioAvailable = false;
|
||||||
|
var isVideoAvailable = false;
|
||||||
|
data.children.forEach(function (config) {
|
||||||
|
if (config.tagName === 'audio') {
|
||||||
|
isAudioAvailable = config.value === 'true';
|
||||||
|
}
|
||||||
|
if (config.tagName === 'video') {
|
||||||
|
isVideoAvailable = config.value === 'true';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var availableDevices;
|
||||||
|
if (conference.myUserId() === from) {
|
||||||
|
availableDevices = conference.availableDevices;
|
||||||
|
} else {
|
||||||
|
var participant = conference.getParticipantById(from);
|
||||||
|
if (!participant) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
availableDevices = participant._availableDevices;
|
||||||
|
}
|
||||||
|
|
||||||
|
var updated = false;
|
||||||
|
|
||||||
|
if (availableDevices.audio !== isAudioAvailable) {
|
||||||
|
updated = true;
|
||||||
|
availableDevices.audio = isAudioAvailable;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (availableDevices.video !== isVideoAvailable) {
|
||||||
|
updated = true;
|
||||||
|
availableDevices.video = isVideoAvailable;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (updated) {
|
||||||
|
conference.eventEmitter.emit(JitsiConferenceEvents.AVAILABLE_DEVICES_CHANGED, from, availableDevices);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if(conference.statistics) {
|
if(conference.statistics) {
|
||||||
//FIXME: Maybe remove event should not be associated with the conference.
|
//FIXME: Maybe remove event should not be associated with the conference.
|
||||||
conference.statistics.addAudioLevelListener(function (ssrc, level) {
|
conference.statistics.addAudioLevelListener(function (ssrc, level) {
|
||||||
|
@ -959,10 +1035,6 @@ function setupListeners(conference) {
|
||||||
function () {
|
function () {
|
||||||
conference.statistics.dispose();
|
conference.statistics.dispose();
|
||||||
});
|
});
|
||||||
// FIXME: Maybe we should move this.
|
|
||||||
// RTC.addListener(RTCEvents.AVAILABLE_DEVICES_CHANGED, function (devices) {
|
|
||||||
// conference.room.updateDeviceAvailability(devices);
|
|
||||||
// });
|
|
||||||
|
|
||||||
conference.room.addListener(XMPPEvents.PEERCONNECTION_READY,
|
conference.room.addListener(XMPPEvents.PEERCONNECTION_READY,
|
||||||
function (session) {
|
function (session) {
|
||||||
|
@ -1045,7 +1117,31 @@ var JitsiConferenceErrors = {
|
||||||
/**
|
/**
|
||||||
* Indicates that there is no available videobridge.
|
* Indicates that there is no available videobridge.
|
||||||
*/
|
*/
|
||||||
VIDEOBRIDGE_NOT_AVAILABLE: "conference.videobridgeNotAvailable"
|
VIDEOBRIDGE_NOT_AVAILABLE: "conference.videobridgeNotAvailable",
|
||||||
|
/**
|
||||||
|
* Indicates that reservation system returned error.
|
||||||
|
*/
|
||||||
|
RESERVATION_ERROR: "conference.reservationError",
|
||||||
|
/**
|
||||||
|
* Indicates that graceful shutdown happened.
|
||||||
|
*/
|
||||||
|
GRACEFUL_SHUTDOWN: "conference.gracefulShutdown",
|
||||||
|
/**
|
||||||
|
* Indicates that jingle fatal error happened.
|
||||||
|
*/
|
||||||
|
JINGLE_FATAL_ERROR: "conference.jingleFatalError",
|
||||||
|
/**
|
||||||
|
* Indicates that conference has been destroyed.
|
||||||
|
*/
|
||||||
|
CONFERENCE_DESTROYED: "conference.destroyed",
|
||||||
|
/**
|
||||||
|
* Indicates that chat error occurred.
|
||||||
|
*/
|
||||||
|
CHAT_ERROR: "conference.chatError",
|
||||||
|
/**
|
||||||
|
* Indicates that focus error happened.
|
||||||
|
*/
|
||||||
|
FOCUS_DISCONNECTED: "conference.focusDisconnected"
|
||||||
/**
|
/**
|
||||||
* Many more errors TBD here.
|
* Many more errors TBD here.
|
||||||
*/
|
*/
|
||||||
|
@ -1083,6 +1179,10 @@ var JitsiConferenceEvents = {
|
||||||
* User role changed.
|
* User role changed.
|
||||||
*/
|
*/
|
||||||
USER_ROLE_CHANGED: "conference.roleChanged",
|
USER_ROLE_CHANGED: "conference.roleChanged",
|
||||||
|
/**
|
||||||
|
* User status changed.
|
||||||
|
*/
|
||||||
|
USER_STATUS_CHANGED: "conference.statusChanged",
|
||||||
/**
|
/**
|
||||||
* New text message was received.
|
* New text message was received.
|
||||||
*/
|
*/
|
||||||
|
@ -1132,6 +1232,10 @@ var JitsiConferenceEvents = {
|
||||||
* Indicates that conference failed.
|
* Indicates that conference failed.
|
||||||
*/
|
*/
|
||||||
CONFERENCE_FAILED: "conference.failed",
|
CONFERENCE_FAILED: "conference.failed",
|
||||||
|
/**
|
||||||
|
* Indicates that an error occured.
|
||||||
|
*/
|
||||||
|
CONFERENCE_ERROR: "conference.error",
|
||||||
/**
|
/**
|
||||||
* Indicates that conference has been joined.
|
* Indicates that conference has been joined.
|
||||||
*/
|
*/
|
||||||
|
@ -1163,7 +1267,11 @@ var JitsiConferenceEvents = {
|
||||||
/**
|
/**
|
||||||
* Indicates that phone number changed.
|
* Indicates that phone number changed.
|
||||||
*/
|
*/
|
||||||
PHONE_NUMBER_CHANGED: "conference.phoneNumberChanged"
|
PHONE_NUMBER_CHANGED: "conference.phoneNumberChanged",
|
||||||
|
/**
|
||||||
|
* Indicates that available devices changed.
|
||||||
|
*/
|
||||||
|
AVAILABLE_DEVICES_CHANGED: "conference.availableDevicesChanged"
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = JitsiConferenceEvents;
|
module.exports = JitsiConferenceEvents;
|
||||||
|
@ -1460,6 +1568,11 @@ function JitsiParticipant(jid, conference, displayName){
|
||||||
this._supportsDTMF = false;
|
this._supportsDTMF = false;
|
||||||
this._tracks = [];
|
this._tracks = [];
|
||||||
this._role = 'none';
|
this._role = 'none';
|
||||||
|
this._status = null;
|
||||||
|
this._availableDevices = {
|
||||||
|
audio: undefined,
|
||||||
|
video: undefined
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1497,6 +1610,13 @@ JitsiParticipant.prototype.getDisplayName = function() {
|
||||||
return this._displayName;
|
return this._displayName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {String} The status of the participant.
|
||||||
|
*/
|
||||||
|
JitsiParticipant.prototype.getStatus = function () {
|
||||||
|
return this._status;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {Boolean} Whether this participant is a moderator or not.
|
* @returns {Boolean} Whether this participant is a moderator or not.
|
||||||
*/
|
*/
|
||||||
|
@ -1892,7 +2012,6 @@ DataChannels.prototype._some = function (callback, thisArg) {
|
||||||
|
|
||||||
module.exports = DataChannels;
|
module.exports = DataChannels;
|
||||||
|
|
||||||
|
|
||||||
}).call(this,"/modules/RTC/DataChannels.js")
|
}).call(this,"/modules/RTC/DataChannels.js")
|
||||||
},{"../../service/RTC/RTCEvents":133,"jitsi-meet-logger":50}],13:[function(require,module,exports){
|
},{"../../service/RTC/RTCEvents":133,"jitsi-meet-logger":50}],13:[function(require,module,exports){
|
||||||
var JitsiTrack = require("./JitsiTrack");
|
var JitsiTrack = require("./JitsiTrack");
|
||||||
|
@ -2428,8 +2547,6 @@ var JitsiTrack = require("./JitsiTrack");
|
||||||
var JitsiLocalTrack = require("./JitsiLocalTrack.js");
|
var JitsiLocalTrack = require("./JitsiLocalTrack.js");
|
||||||
var DataChannels = require("./DataChannels");
|
var DataChannels = require("./DataChannels");
|
||||||
var JitsiRemoteTrack = require("./JitsiRemoteTrack.js");
|
var JitsiRemoteTrack = require("./JitsiRemoteTrack.js");
|
||||||
var DesktopSharingEventTypes
|
|
||||||
= require("../../service/desktopsharing/DesktopSharingEventTypes");
|
|
||||||
var MediaStreamType = require("../../service/RTC/MediaStreamTypes");
|
var MediaStreamType = require("../../service/RTC/MediaStreamTypes");
|
||||||
var RTCEvents = require("../../service/RTC/RTCEvents.js");
|
var RTCEvents = require("../../service/RTC/RTCEvents.js");
|
||||||
|
|
||||||
|
@ -2688,7 +2805,7 @@ RTC.prototype.setAudioLevel = function (jid, audioLevel) {
|
||||||
}
|
}
|
||||||
module.exports = RTC;
|
module.exports = RTC;
|
||||||
|
|
||||||
},{"../../service/RTC/MediaStreamTypes":132,"../../service/RTC/RTCEvents.js":133,"../../service/desktopsharing/DesktopSharingEventTypes":136,"./DataChannels":12,"./JitsiLocalTrack.js":13,"./JitsiRemoteTrack.js":14,"./JitsiTrack":15,"./RTCBrowserType":17,"./RTCUtils.js":18,"events":46}],17:[function(require,module,exports){
|
},{"../../service/RTC/MediaStreamTypes":132,"../../service/RTC/RTCEvents.js":133,"./DataChannels":12,"./JitsiLocalTrack.js":13,"./JitsiRemoteTrack.js":14,"./JitsiTrack":15,"./RTCBrowserType":17,"./RTCUtils.js":18,"events":46}],17:[function(require,module,exports){
|
||||||
|
|
||||||
var currentBrowser;
|
var currentBrowser;
|
||||||
|
|
||||||
|
@ -7646,12 +7763,9 @@ ChatRoom.prototype.onPresence = function (pres) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!member.isFocus)
|
|
||||||
this.eventEmitter.emit(XMPPEvents.USER_ID_CHANGED, from, member.id);
|
|
||||||
|
|
||||||
// Trigger status message update
|
// Trigger status message update
|
||||||
if (member.status) {
|
if (member.status) {
|
||||||
this.eventEmitter.emit(XMPPEvents.PRESENCE_STATUS, from, member);
|
this.eventEmitter.emit(XMPPEvents.PRESENCE_STATUS, from, member.status);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(jibri)
|
if(jibri)
|
||||||
|
@ -13093,9 +13207,6 @@ function initStrophePlugins(XMPP)
|
||||||
// broadcastLocalVideoType,
|
// broadcastLocalVideoType,
|
||||||
// StreamEventTypes.EVENT_TYPE_LOCAL_CHANGED
|
// StreamEventTypes.EVENT_TYPE_LOCAL_CHANGED
|
||||||
// );
|
// );
|
||||||
// RTC.addListener(RTCEvents.AVAILABLE_DEVICES_CHANGED, function (devices) {
|
|
||||||
// XMPP.addToPresence("devices", devices);
|
|
||||||
// });
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
function XMPP(options) {
|
function XMPP(options) {
|
||||||
|
@ -31558,11 +31669,6 @@ var XMPPEvents = {
|
||||||
CALL_INCOMING: "xmpp.callincoming.jingle",
|
CALL_INCOMING: "xmpp.callincoming.jingle",
|
||||||
// Designates an event indicating that we were kicked from the XMPP MUC.
|
// Designates an event indicating that we were kicked from the XMPP MUC.
|
||||||
KICKED: "xmpp.kicked",
|
KICKED: "xmpp.kicked",
|
||||||
// Designates an event indicating that the userID for a specific JID has
|
|
||||||
// changed.
|
|
||||||
// Note: currently this event fires every time we receive presence from
|
|
||||||
// someone (regardless of whether or not the "userID" changed).
|
|
||||||
USER_ID_CHANGED: "xmpp.user_id_changed",
|
|
||||||
// Designates an event indicating that we have joined the XMPP MUC.
|
// Designates an event indicating that we have joined the XMPP MUC.
|
||||||
MUC_JOINED: "xmpp.muc_joined",
|
MUC_JOINED: "xmpp.muc_joined",
|
||||||
// Designates an event indicating that a participant joined the XMPP MUC.
|
// Designates an event indicating that a participant joined the XMPP MUC.
|
||||||
|
@ -31607,11 +31713,6 @@ var XMPPEvents = {
|
||||||
// Designates an event indicating that we should join the conference with
|
// Designates an event indicating that we should join the conference with
|
||||||
// audio and/or video muted.
|
// audio and/or video muted.
|
||||||
START_MUTED_FROM_FOCUS: "xmpp.start_muted_from_focus",
|
START_MUTED_FROM_FOCUS: "xmpp.start_muted_from_focus",
|
||||||
// Designates an event indicating that a remote participant's available
|
|
||||||
// devices (whether he supports a audio and/or video) changed.
|
|
||||||
// Note: currently this event fires every time we receive presence from
|
|
||||||
// someone (regardless of whether or not the devices changed).
|
|
||||||
DEVICE_AVAILABLE: "xmpp.device_available",
|
|
||||||
|
|
||||||
|
|
||||||
PEERCONNECTION_READY: "xmpp.peerconnection_ready",
|
PEERCONNECTION_READY: "xmpp.peerconnection_ready",
|
||||||
|
|
|
@ -157,13 +157,41 @@ UI.notifyKicked = function () {
|
||||||
messageHandler.openMessageDialog("dialog.sessTerminated", "dialog.kickMessage");
|
messageHandler.openMessageDialog("dialog.sessTerminated", "dialog.kickMessage");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notify user that conference was destroyed.
|
||||||
|
* @param reason {string} the reason text
|
||||||
|
*/
|
||||||
|
UI.notifyConferenceDestroyed = function (reason) {
|
||||||
|
//FIXME: use Session Terminated from translation, but
|
||||||
|
// 'reason' text comes from XMPP packet and is not translated
|
||||||
|
var title = APP.translation.generateTranslationHTML("dialog.sessTerminated");
|
||||||
|
messageHandler.openDialog(
|
||||||
|
title, reason, true, {},
|
||||||
|
function (event, value, message, formVals) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify user that Jitsi Videobridge is not accessible.
|
* Notify user that Jitsi Videobridge is not accessible.
|
||||||
*/
|
*/
|
||||||
UI.notifyBridgeDown = function () {
|
UI.notifyBridgeDown = function () {
|
||||||
messageHandler.showError("dialog.error", "dialog.bridgeUnavailable");
|
messageHandler.showError("dialog.error", "dialog.bridgeUnavailable");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show chat error.
|
||||||
|
* @param err the Error
|
||||||
|
* @param msg
|
||||||
|
*/
|
||||||
|
UI.showChatError = function (err, msg) {
|
||||||
|
if (interfaceConfig.filmStripOnly) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Chat.chatAddError(err, msg);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change nickname for the user.
|
* Change nickname for the user.
|
||||||
* @param {string} id user id
|
* @param {string} id user id
|
||||||
|
@ -471,10 +499,9 @@ UI.removeUser = function (id, displayName) {
|
||||||
VideoLayout.removeParticipantContainer(id);
|
VideoLayout.removeParticipantContainer(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
//FIXME: NOT USED. Should start using the lib
|
UI.updateUserStatus = function (id, status) {
|
||||||
// function onMucPresenceStatus(jid, info) {
|
VideoLayout.setPresenceStatus(id, status);
|
||||||
// VideoLayout.setPresenceStatus(Strophe.getResourceFromJid(jid), info.status);
|
};
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update videotype for specified user.
|
* Update videotype for specified user.
|
||||||
|
@ -706,7 +733,7 @@ UI.notifyFirefoxExtensionRequired = function (url) {
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
APP.translation.generateTranslationHTML(
|
APP.translation.generateTranslationHTML(
|
||||||
"dialog.firefoxExtensionPrompt", {url: url}
|
"dialog.firefoxExtensionPrompt", {url}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -926,6 +953,18 @@ UI.notifyTokenAuthFailed = function () {
|
||||||
messageHandler.showError("dialog.error", "dialog.tokenAuthFailed");
|
messageHandler.showError("dialog.error", "dialog.tokenAuthFailed");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
UI.notifyInternalError = function () {
|
||||||
|
UI.messageHandler.showError("dialog.sorry", "dialog.internalError");
|
||||||
|
};
|
||||||
|
|
||||||
|
UI.notifyFocusDisconnected = function (focus, retrySec) {
|
||||||
|
UI.messageHandler.notify(
|
||||||
|
null, "notify.focus",
|
||||||
|
'disconnected', "notify.focusFail",
|
||||||
|
{component: focus, ms: retrySec}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates auth info on the UI.
|
* Updates auth info on the UI.
|
||||||
* @param {boolean} isAuthEnabled if authentication is enabled
|
* @param {boolean} isAuthEnabled if authentication is enabled
|
||||||
|
@ -988,4 +1027,8 @@ UI.showExtensionRequiredDialog = function (url) {
|
||||||
"dialog.firefoxExtensionPrompt", {url: url}));
|
"dialog.firefoxExtensionPrompt", {url: url}));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
UI.updateDevicesAvailability = function (id, devices) {
|
||||||
|
VideoLayout.setDeviceAvailabilityIcons(id, devices);
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = UI;
|
module.exports = UI;
|
||||||
|
|
|
@ -165,6 +165,7 @@ class VideoContainer extends LargeContainer {
|
||||||
|
|
||||||
get id () {
|
get id () {
|
||||||
return getStreamOwnerId(this.stream);
|
return getStreamOwnerId(this.stream);
|
||||||
|
return getStreamId(this.stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor (onPlay) {
|
constructor (onPlay) {
|
||||||
|
|
|
@ -187,16 +187,18 @@ var VideoLayout = {
|
||||||
* @param resourceJid the jid of user
|
* @param resourceJid the jid of user
|
||||||
* @param devices available devices
|
* @param devices available devices
|
||||||
*/
|
*/
|
||||||
setDeviceAvailabilityIcons (resourceJid, devices) {
|
setDeviceAvailabilityIcons (id, devices) {
|
||||||
if(!devices)
|
if (APP.conference.isLocalId(id)) {
|
||||||
return;
|
|
||||||
|
|
||||||
if(!resourceJid) {
|
|
||||||
localVideoThumbnail.setDeviceAvailabilityIcons(devices);
|
localVideoThumbnail.setDeviceAvailabilityIcons(devices);
|
||||||
} else {
|
return;
|
||||||
if(remoteVideos[resourceJid])
|
|
||||||
remoteVideos[resourceJid].setDeviceAvailabilityIcons(devices);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let video = remoteVideos[id];
|
||||||
|
if (!video) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
video.setDeviceAvailabilityIcons(devices);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -387,8 +389,8 @@ var VideoLayout = {
|
||||||
/**
|
/**
|
||||||
* Shows the presence status message for the given video.
|
* Shows the presence status message for the given video.
|
||||||
*/
|
*/
|
||||||
setPresenceStatus (resourceJid, statusMsg) {
|
setPresenceStatus (id, statusMsg) {
|
||||||
remoteVideos[resourceJid].setPresenceStatus(statusMsg);
|
remoteVideos[id].setPresenceStatus(statusMsg);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue