From 47bb9439db8d069bf9fef675d445b3ebd465c3e1 Mon Sep 17 00:00:00 2001 From: Boris Grozev Date: Tue, 1 Sep 2015 11:22:28 -0500 Subject: [PATCH 1/3] Don't treat 0 as false (avoid a warning when the receivedPackets or sentPackets stat is 0, and possibly fixes misinterpreting a remove stream as a local). --- modules/statistics/RTPStatsCollector.js | 58 +++++++++---------------- 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/modules/statistics/RTPStatsCollector.js b/modules/statistics/RTPStatsCollector.js index 01db987b0..d51fde7e7 100644 --- a/modules/statistics/RTPStatsCollector.js +++ b/modules/statistics/RTPStatsCollector.js @@ -514,34 +514,33 @@ StatsCollector.prototype.processStatsReport = function () { var isDownloadStream = true; var key = 'packetsReceived'; - if (!getStatValue(now, key)) - { + var packetsNow = getStatValue(now, key); + if (typeof packetsNow === 'undefined' || packetsNow === null) { isDownloadStream = false; key = 'packetsSent'; - if (!getStatValue(now, key)) - { - console.warn("No packetsReceived nor packetSent stat found"); + packetsNow = getStatValue(now, key); + if (typeof packetsNow === 'undefined' || packetsNow === null) { + console.warn("No packetsReceived nor packetsSent stat found"); continue; } } - var packetsNow = getStatValue(now, key); - if(!packetsNow || packetsNow < 0) + if (!packetsNow || packetsNow < 0) packetsNow = 0; var packetsBefore = getStatValue(before, key); - if(!packetsBefore || packetsBefore < 0) + if (!packetsBefore || packetsBefore < 0) packetsBefore = 0; var packetRate = packetsNow - packetsBefore; - if(!packetRate || packetRate < 0) + if (!packetRate || packetRate < 0) packetRate = 0; var currentLoss = getStatValue(now, 'packetsLost'); - if(!currentLoss || currentLoss < 0) + if (!currentLoss || currentLoss < 0) currentLoss = 0; var previousLoss = getStatValue(before, 'packetsLost'); - if(!previousLoss || previousLoss < 0) + if (!previousLoss || previousLoss < 0) previousLoss = 0; var lossRate = currentLoss - previousLoss; - if(!lossRate || lossRate < 0) + if (!lossRate || lossRate < 0) lossRate = 0; var packetsTotal = (packetRate + lossRate); @@ -552,34 +551,26 @@ StatsCollector.prototype.processStatsReport = function () { var bytesReceived = 0, bytesSent = 0; - if(getStatValue(now, "bytesReceived")) - { + if(getStatValue(now, "bytesReceived")) { bytesReceived = getStatValue(now, "bytesReceived") - getStatValue(before, "bytesReceived"); } - if(getStatValue(now, "bytesSent")) - { + if(getStatValue(now, "bytesSent")) { bytesSent = getStatValue(now, "bytesSent") - getStatValue(before, "bytesSent"); } var time = Math.round((now.timestamp - before.timestamp) / 1000); - if(bytesReceived <= 0 || time <= 0) - { + if(bytesReceived <= 0 || time <= 0) { bytesReceived = 0; - } - else - { + } else { bytesReceived = Math.round(((bytesReceived * 8) / time) / 1000); } - if(bytesSent <= 0 || time <= 0) - { + if(bytesSent <= 0 || time <= 0) { bytesSent = 0; - } - else - { + } else { bytesSent = Math.round(((bytesSent * 8) / time) / 1000); } @@ -602,16 +593,11 @@ StatsCollector.prototype.processStatsReport = function () { } catch(e){/*not supported*/} - if(resolution.height && resolution.width) - { + if(resolution.height && resolution.width) { jidStats.setSsrcResolution(ssrc, resolution); - } - else - { + } else { jidStats.setSsrcResolution(ssrc, null); } - - } var self = this; @@ -622,11 +608,9 @@ StatsCollector.prototype.processStatsReport = function () { var bitrateUpload = 0; var resolutions = {}; Object.keys(this.jid2stats).forEach( - function (jid) - { + function (jid) { Object.keys(self.jid2stats[jid].ssrc2Loss).forEach( - function (ssrc) - { + function (ssrc) { var type = "upload"; if(self.jid2stats[jid].ssrc2Loss[ssrc].isDownloadStream) type = "download"; From 74c531aed6eeb19ed62a2cd91d230a9bc1460fdf Mon Sep 17 00:00:00 2001 From: damencho Date: Tue, 1 Sep 2015 14:24:54 -0500 Subject: [PATCH 2/3] Uses port definition rather then wild card address when configuring authbind. --- debian/jitsi-meet.postinst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/debian/jitsi-meet.postinst b/debian/jitsi-meet.postinst index 01327ebb3..794cb124a 100644 --- a/debian/jitsi-meet.postinst +++ b/debian/jitsi-meet.postinst @@ -92,15 +92,15 @@ case "$1" in OWNER=$(stat -c '%U' /usr/share/jitsi-videobridge) GROUP=$(stat -c '%G' /usr/share/jitsi-videobridge) JVB_UID="`id -u $OWNER`" - if [ ! -f "/etc/authbind/byuid/$JVB_UID" ] ; then - if [ ! -d "/etc/authbind/byuid" ] ; then - mkdir -p /etc/authbind/byuid + if [ ! -f "/etc/authbind/byport/443" ] ; then + if [ ! -d "/etc/authbind/byport" ] ; then + mkdir -p /etc/authbind/byport chmod 755 /etc/authbind - chmod 755 /etc/authbind/byuid + chmod 755 /etc/authbind/byport fi - echo '::,443' >/etc/authbind/byuid/$JVB_UID - chown $OWNER:$GROUP /etc/authbind/byuid/$JVB_UID - chmod 700 /etc/authbind/byuid/$JVB_UID + touch /etc/authbind/byport/443 + chown $OWNER /etc/authbind/byport/443 + chmod 755 /etc/authbind/byport/443 fi if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then From 59b26fdf07dfdc34be5a9798b49ef30c495597b9 Mon Sep 17 00:00:00 2001 From: paweldomas Date: Wed, 2 Sep 2015 11:56:22 +0200 Subject: [PATCH 3/3] Uses SDPUtil filter special characters method through xmpp interface instead of importing it directly. --- modules/RTC/RTCUtils.js | 9 ++++----- modules/xmpp/xmpp.js | 4 ++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/RTC/RTCUtils.js b/modules/RTC/RTCUtils.js index cd6ad3622..a965d61e6 100644 --- a/modules/RTC/RTCUtils.js +++ b/modules/RTC/RTCUtils.js @@ -1,8 +1,7 @@ -/* global config, require, attachMediaStream, getUserMedia */ +/* global APP, config, require, attachMediaStream, getUserMedia */ var RTCBrowserType = require("./RTCBrowserType"); var Resolutions = require("../../service/RTC/Resolutions"); var AdapterJS = require("./adapter.screenshare"); -var SDPUtil = require("../xmpp/SDPUtil"); var currentResolution = null; @@ -176,7 +175,7 @@ function RTCUtils(RTCService, onTemasysPluginReady) } id = tracks[0].id; } - return SDPUtil.filter_special_chars(id); + return APP.xmpp.filter_special_chars(id); }; this.getVideoSrc = function (element) { if(!element) @@ -205,7 +204,7 @@ function RTCUtils(RTCService, onTemasysPluginReady) this.getStreamID = function (stream) { // streams from FF endpoints have the characters '{' and '}' // that make jQuery choke. - return SDPUtil.filter_special_chars(stream.id); + return APP.xmpp.filter_special_chars(stream.id); }; this.getVideoSrc = function (element) { if(!element) @@ -251,7 +250,7 @@ function RTCUtils(RTCService, onTemasysPluginReady) attachMediaStream(elSel[0], stream); }; self.getStreamID = function (stream) { - var id = SDPUtil.filter_special_chars(stream.label); + var id = APP.xmpp.filter_special_chars(stream.label); return id; }; self.getVideoSrc = function (element) { diff --git a/modules/xmpp/xmpp.js b/modules/xmpp/xmpp.js index af9ea708f..47a4f042b 100644 --- a/modules/xmpp/xmpp.js +++ b/modules/xmpp/xmpp.js @@ -3,6 +3,7 @@ var Moderator = require("./moderator"); var EventEmitter = require("events"); var Recording = require("./recording"); var SDP = require("./SDP"); +var SDPUtil = require("./SDPUtil"); var Settings = require("../settings/Settings"); var Pako = require("pako"); var StreamEventTypes = require("../../service/RTC/StreamEventTypes"); @@ -578,6 +579,9 @@ var XMPP = { if (!this.isConferenceInProgress()) return; connection.jingle.activecall.peerconnection.removeStream(stream); + }, + filter_special_chars: function (text) { + return SDPUtil.filter_special_chars(text); } };