Commit 300b0afd authored by Dele Olajide's avatar Dele Olajide

ofmeet plugin

Fixed exception when clientcontrol plugin is missing
Fixed fault with focus when hostname is localhost
Removed install logic for chrome extension. Always requires a manual install
Fixed broken audio and video bandwidth configuration with server-side focus change.
parent 3ba467df
...@@ -49,6 +49,15 @@ ...@@ -49,6 +49,15 @@
Openfire Meetings Plugin Changelog Openfire Meetings Plugin Changelog
</h1> </h1>
<p><b>0.0.6</b> -- Dec 29th, 2014</p>
<ul>
<li>Fixed fault with exception when clientcontrol plugin is missing</li>
<li>Fixed fault with focus when hostname is localhost</li>
<li>Removed install logic for chrome extension. Always requires a manual install</li>
<li>Fixed broken audio and video bandwidth configuration with server-side focus change.</li>
</ul>
<p><b>0.0.5</b> -- Dec 15th, 2014</p> <p><b>0.0.5</b> -- Dec 15th, 2014</p>
<ul> <ul>
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
<name>Openfire Meetings</name> <name>Openfire Meetings</name>
<description>Provides high quality, scalable video conferences using Jitsi Meet and Jitsi Videobridge</description> <description>Provides high quality, scalable video conferences using Jitsi Meet and Jitsi Videobridge</description>
<author>Ignite Realtime</author> <author>Ignite Realtime</author>
<version>0.0.5</version> <version>0.0.6</version>
<date>12/16/2014</date> <date>12/29/2014</date>
<minServerVersion>3.9.9</minServerVersion> <minServerVersion>3.9.9</minServerVersion>
<adminconsole> <adminconsole>
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<script src="smileys.js?v=3"></script><!-- smiley images --> <script src="smileys.js?v=3"></script><!-- smiley images -->
<script src="replacement.js?v=7"></script><!-- link and smiley replacement --> <script src="replacement.js?v=7"></script><!-- link and smiley replacement -->
<script src="moderatemuc.js?v=4"></script><!-- moderator plugin --> <script src="moderatemuc.js?v=4"></script><!-- moderator plugin -->
<script src="analytics.js?v=1"></script><!-- google analytics plugin --> <!--script src="analytics.js?v=1"></script--><!-- google analytics plugin -->
<script src="rtp_sts.js?v=5"></script><!-- RTP stats processing --> <script src="rtp_sts.js?v=5"></script><!-- RTP stats processing -->
<script src="local_sts.js?v=2"></script><!-- Local stats processing --> <script src="local_sts.js?v=2"></script><!-- Local stats processing -->
<script src="videolayout.js?v=31"></script><!-- video ui --> <script src="videolayout.js?v=31"></script><!-- video ui -->
......
...@@ -48,7 +48,7 @@ public class JicofoPlugin ...@@ -48,7 +48,7 @@ public class JicofoPlugin
this.pluginDirectory = pluginDirectory; this.pluginDirectory = pluginDirectory;
String hostName = XMPPServer.getInstance().getServerInfo().getHostname(); String hostName = JiveGlobals.getProperty("org.jitsi.videobridge.nat.harvester.public.address", XMPPServer.getInstance().getServerInfo().getHostname());
String domain = XMPPServer.getInstance().getServerInfo().getXMPPDomain(); String domain = XMPPServer.getInstance().getServerInfo().getXMPPDomain();
String focusUserJid = JiveGlobals.getProperty("org.jitsi.videobridge.ofmeet.focus.user.jid", "focus@"+domain); String focusUserJid = JiveGlobals.getProperty("org.jitsi.videobridge.ofmeet.focus.user.jid", "focus@"+domain);
String focusUserPassword = JiveGlobals.getProperty("org.jitsi.videobridge.ofmeet.focus.user.password", "focus"); String focusUserPassword = JiveGlobals.getProperty("org.jitsi.videobridge.ofmeet.focus.user.password", "focus");
......
...@@ -69,6 +69,12 @@ public class Config extends HttpServlet ...@@ -69,6 +69,12 @@ public class Config extends HttpServlet
} }
String conferences = "["; String conferences = "[";
boolean clientControl = XMPPServer.getInstance().getPluginManager().getPlugin("clientControl") != null || XMPPServer.getInstance().getPluginManager().getPlugin("clientcontrol") != null;
if (clientControl)
{
try {
final Collection<Bookmark> bookmarks = BookmarkManager.getBookmarks(); final Collection<Bookmark> bookmarks = BookmarkManager.getBookmarks();
for (Bookmark bookmark : bookmarks) for (Bookmark bookmark : bookmarks)
...@@ -85,6 +91,11 @@ public class Config extends HttpServlet ...@@ -85,6 +91,11 @@ public class Config extends HttpServlet
} }
} }
} catch (Exception e) {
}
}
conferences = conferences + "]"; conferences = conferences + "]";
boolean nodejs = XMPPServer.getInstance().getPluginManager().getPlugin("nodejs") != null; boolean nodejs = XMPPServer.getInstance().getPluginManager().getPlugin("nodejs") != null;
......
...@@ -136,7 +136,7 @@ JingleSession.prototype.accept = function () { ...@@ -136,7 +136,7 @@ JingleSession.prototype.accept = function () {
// FIXME: change any inactive to sendrecv or whatever they were originally // FIXME: change any inactive to sendrecv or whatever they were originally
sdp = sdp.replace('a=inactive', 'a=sendrecv'); sdp = sdp.replace('a=inactive', 'a=sendrecv');
} }
this.peerconnection.setLocalDescription(new RTCSessionDescription({type: 'answer', sdp: sdp}), this.peerconnection.setLocalDescription(new RTCSessionDescription({type: 'answer', sdp: this.setBandwidth(sdp)}), // BAO
function () { function () {
//console.log('setLocalDescription success'); //console.log('setLocalDescription success');
$(document).trigger('setLocalDescription.jingle', [self.sid]); $(document).trigger('setLocalDescription.jingle', [self.sid]);
...@@ -385,7 +385,8 @@ JingleSession.prototype.createdOffer = function (sdp) { ...@@ -385,7 +385,8 @@ JingleSession.prototype.createdOffer = function (sdp) {
}, },
10000); 10000);
} }
sdp.sdp = this.localSDP.raw; sdp.sdp = this.setBandwidth(this.localSDP.raw); // BAO
this.peerconnection.setLocalDescription(sdp, this.peerconnection.setLocalDescription(sdp,
function () { function () {
if(this.usetrickle) if(this.usetrickle)
...@@ -625,7 +626,7 @@ JingleSession.prototype.createdAnswer = function (sdp, provisional) { ...@@ -625,7 +626,7 @@ JingleSession.prototype.createdAnswer = function (sdp, provisional) {
}, },
10000); 10000);
} }
sdp.sdp = this.localSDP.raw; sdp.sdp = this.setBandwidth(this.localSDP.raw); //BAO
this.peerconnection.setLocalDescription(sdp, this.peerconnection.setLocalDescription(sdp,
function () { function () {
...@@ -763,3 +764,19 @@ JingleSession.prototype.getStats = function (interval) { ...@@ -763,3 +764,19 @@ JingleSession.prototype.getStats = function (interval) {
}, interval || 3000); }, interval || 3000);
return this.statsinterval; return this.statsinterval;
}; };
// BAO
JingleSession.prototype.setBandwidth = function (sdp)
{
// remove existing bandwidth lines
sdp = sdp.replace( /b=AS([^\r\n]+\r\n)/g , '');
// audio bandwidth
sdp = sdp.replace( /a=mid:audio\r\n/g , 'a=mid:audio\r\nb=AS:' + config.audioBandwidth + '\r\n');
// video bandwidth
sdp = sdp.replace( /a=mid:video\r\n/g , 'a=mid:video\r\nb=AS:' + config.videoBandwidth + '\r\n');
return sdp;
}
...@@ -151,21 +151,8 @@ function obtainScreenFromExtension(streamCallback, failCallback) { ...@@ -151,21 +151,8 @@ function obtainScreenFromExtension(streamCallback, failCallback) {
if (isInstalled) { if (isInstalled) {
doGetStreamFromExtension(streamCallback, failCallback); doGetStreamFromExtension(streamCallback, failCallback);
} else { } else {
chrome.webstore.install(
getWebStoreInstallUrl(),
function (arg) {
console.log("Extension installed successfully", arg);
// We need to reload the page in order to get the access to chrome.runtime
window.location.reload(false);
},
function (arg) {
console.log("Failed to auto install the extension", arg);
failCallback(arg);
window.open(getWebStoreInstallUrl(), "_blank"); window.open(getWebStoreInstallUrl(), "_blank");
messageHandler.showError('Error', messageHandler.showError('Error', 'Install manually and reload webpage');
'Install manually and reload webpage');
}
);
} }
} }
); );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment