You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/02/25 10:41:30 UTC
svn commit: r1732269 - in /openmeetings/application:
branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/
branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/
branches/3.1.x/...
Author: solomax
Date: Thu Feb 25 09:41:30 2016
New Revision: 1732269
URL: http://svn.apache.org/viewvc?rev=1732269&view=rev
Log:
[OPENMEETINGS-1333] Screen sharing can be started by contact, recording is disabled
Modified:
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
openmeetings/application/trunk/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Thu Feb 25 09:41:30 2016
@@ -161,10 +161,11 @@ public class ScopeApplicationAdapter ext
Map<String, Object> map = conn.getConnectParams();
String swfURL = map.containsKey("swfUrl") ? (String)map.get("swfUrl") : "";
+ Client parentClient = null;
//TODO add similar code for other connections
if (map.containsKey("screenClient")) {
String parentSid = (String)map.get("parentSid");
- Client parentClient = sessionManager.getClientByPublicSID(parentSid, null);
+ parentClient = sessionManager.getClientByPublicSID(parentSid, null);
if (parentClient == null) {
rejectClient();
}
@@ -181,12 +182,12 @@ public class ScopeApplicationAdapter ext
//TODO add similar code for other connections, merge with above block
if (map.containsKey("screenClient")) {
//TODO add check for room rights
- String parentSid = (String)map.get("parentSid");
+ String parentSid = parentClient.getPublicSID();
rcm.setRoomId(Long.valueOf(conn.getScope().getName()));
rcm.setScreenClient(true);
SessionVariablesUtil.setIsScreenClient(conn.getClient());
- rcm.setUserId(new Long((Integer)map.get("userId")));
+ rcm.setUserId(parentClient.getUserId());
SessionVariablesUtil.setUserId(conn.getClient(), rcm.getUserId());
rcm.setStreamPublishName(parentSid);
@@ -362,11 +363,9 @@ public class ScopeApplicationAdapter ext
returnMap.put("modus", "startPublishing");
}
return returnMap;
-
} else {
- throw new Exception("Could not find Screen Sharing Client " + current.getClient().getId());
+ log.error("[setConnectionAsSharingClient] Could not find Screen Sharing Client " + current.getClient().getId());
}
-
} catch (Exception err) {
log.error("[setConnectionAsSharingClient]", err);
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java Thu Feb 25 09:41:30 2016
@@ -81,7 +81,6 @@ public class CoreScreenShare implements
public boolean showFPS = true;
public boolean allowRemote = true;
- public Long userId = null;
private boolean allowRecording = true;
private boolean allowPublishing = true;
@@ -115,23 +114,22 @@ public class CoreScreenShare implements
log.debug("arg: " + arg);
}
String[] textArray = null;
- if (args.length > 9) {
+ if (args.length > 8) {
String _url = args[0];
URI url = new URI(_url);
protocol = Protocol.valueOf(url.getScheme());
host = url.getHost();
port = url.getPort();
app = url.getPath();
- userId = Long.parseLong(args[1]);
- publishName = args[2];
- String labelTexts = args[3];
- defaultQuality = Integer.parseInt(args[4]);
- defaultFPS = Integer.parseInt(args[5]);
- showFPS = bool(args[6]);
- allowRemote = bool(args[7]);
+ publishName = args[1];
+ String labelTexts = args[2];
+ defaultQuality = Integer.parseInt(args[3]);
+ defaultFPS = Integer.parseInt(args[4]);
+ showFPS = bool(args[5]);
+ allowRemote = bool(args[6]);
remoteEnabled = allowRemote;
- allowRecording = bool(args[8]);
- allowPublishing = bool(args[9]);
+ allowRecording = bool(args[7]);
+ allowPublishing = bool(args[8]);
if (labelTexts.length() > 0) {
textArray = labelTexts.split(";");
@@ -153,8 +151,8 @@ public class CoreScreenShare implements
break;
case rtmps:
RTMPSScreenShare client = new RTMPSScreenShare(this);
- client.setKeystoreBytes(Hex.decodeHex(args[10].toCharArray()));
- client.setKeyStorePassword(args[11]);
+ client.setKeystoreBytes(Hex.decodeHex(args[9].toCharArray()));
+ client.setKeyStorePassword(args[10]);
instance = client;
break;
case rtmpe:
@@ -273,7 +271,6 @@ public class CoreScreenShare implements
private void connect(String parentSid) {
Map<String, Object> map = instance.makeDefaultConnectionParams(host, port, app);
map.put("screenClient", true);
- map.put("userId", userId);
map.put("parentSid", parentSid);
instance.connect(host, port, map, this);
}
@@ -677,11 +674,9 @@ public class CoreScreenShare implements
Object modus = returnMap.get("modus");
if ("startStreaming".equals(modus)) {
frame.setSharingStatus(true, false);
- }
- if ("startRecording".equals(modus)) {
+ } else if ("startRecording".equals(modus)) {
frame.setRecordingStatus(true, false);
- }
- if ("startPublishing".equals(modus)) {
+ } else if ("startPublishing".equals(modus)) {
frame.setPublishingStatus(true, false);
publishClient = new RTMPClientPublish(
this
@@ -691,9 +686,10 @@ public class CoreScreenShare implements
publishClient.connect();
}
} else {
- throw new Exception("Could not aquire modus for event setConnectionAsSharingClient");
+ String err = "Could not aquire modus for event setConnectionAsSharingClient";
+ frame.setStatus(String.format("Error: %s", err));
+ return;
}
-
} else if ("createStream".equals(method)) {
if (startRecording || startStreaming) {
if (call.getResult() != null) {
Modified: openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp Thu Feb 25 09:41:30 2016
@@ -37,7 +37,6 @@
</resources>
<application-desc main-class='$mainClass'>
<argument>$url</argument>
- <argument>$userId</argument>
<argument>$publicSid</argument>
<argument>$labels</argument>
<argument>$defaultQuality</argument>
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java Thu Feb 25 09:41:30 2016
@@ -25,7 +25,6 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.app.WebSession.getLanguage;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.room.RoomBroadcaster.getClient;
import static org.apache.openmeetings.web.room.RoomPanel.PARAM_PUBLIC_SID;
import static org.apache.openmeetings.web.room.RoomPanel.PARAM_URL;
@@ -111,7 +110,6 @@ public class StartSharingEventBehavior e
app = addKeystore(app, protocol).replace("$codebase", baseUrl + "screenshare")
.replace("$applicationName", cfgDao.getAppName())
.replace("$url", _url)
- .replace("$userId", "" + getUserId())
.replace("$publicSid", publicSid)
.replace("$labels", "<![CDATA[" + getLabels(730, 731, 732, 733, 734
, 735, 737, 738, 739, 740
@@ -125,7 +123,7 @@ public class StartSharingEventBehavior e
.replace("$defaultFps", cfgDao.getConfValue(CONFIG_SCREENSHARING_FPS, String.class, ""))
.replace("$showFps", cfgDao.getConfValue(CONFIG_SCREENSHARING_FPS_SHOW, String.class, "true"))
.replace("$allowRemote", cfgDao.getConfValue(CONFIG_SCREENSHARING_ALLOW_REMOTE, String.class, "true"))
- .replace("$allowRecording", "" + (room.isAllowRecording() && rc.isAllowRecording() && (0 == sessionManager.getRecordingCount(roomId))))
+ .replace("$allowRecording", "" + (rc.getUserId() > 0 && room.isAllowRecording() && rc.isAllowRecording() && (0 == sessionManager.getRecordingCount(roomId))))
.replace("$allowPublishing", "" + (0 == sessionManager.getPublishingCount(roomId)))
;
} catch (Exception e) {
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Thu Feb 25 09:41:30 2016
@@ -152,10 +152,11 @@ public class ScopeApplicationAdapter ext
Map<String, Object> map = conn.getConnectParams();
String swfURL = map.containsKey("swfUrl") ? (String)map.get("swfUrl") : "";
+ Client parentClient = null;
//TODO add similar code for other connections
if (map.containsKey("screenClient")) {
String parentSid = (String)map.get("parentSid");
- Client parentClient = sessionManager.getClientByPublicSID(parentSid, null);
+ parentClient = sessionManager.getClientByPublicSID(parentSid, null);
if (parentClient == null) {
rejectClient();
}
@@ -172,12 +173,12 @@ public class ScopeApplicationAdapter ext
//TODO add similar code for other connections, merge with above block
if (map.containsKey("screenClient")) {
//TODO add check for room rights
- String parentSid = (String)map.get("parentSid");
+ String parentSid = parentClient.getPublicSID();
rcm.setRoomId(Long.valueOf(conn.getScope().getName()));
rcm.setScreenClient(true);
SessionVariablesUtil.setIsScreenClient(conn.getClient());
- rcm.setUserId(new Long((Integer)map.get("userId")));
+ rcm.setUserId(parentClient.getUserId());
SessionVariablesUtil.setUserId(conn.getClient(), rcm.getUserId());
rcm.setStreamPublishName(parentSid);
@@ -353,11 +354,9 @@ public class ScopeApplicationAdapter ext
returnMap.put("modus", "startPublishing");
}
return returnMap;
-
} else {
- throw new Exception("Could not find Screen Sharing Client " + current.getClient().getId());
+ log.error("[setConnectionAsSharingClient] Could not find Screen Sharing Client " + current.getClient().getId());
}
-
} catch (Exception err) {
log.error("[setConnectionAsSharingClient]", err);
}
Modified: openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java (original)
+++ openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java Thu Feb 25 09:41:30 2016
@@ -81,7 +81,6 @@ public class CoreScreenShare implements
public boolean showFPS = true;
public boolean allowRemote = true;
- public Long userId = null;
private boolean allowRecording = true;
private boolean allowPublishing = true;
@@ -115,23 +114,22 @@ public class CoreScreenShare implements
log.debug("arg: " + arg);
}
String[] textArray = null;
- if (args.length > 9) {
+ if (args.length > 8) {
String _url = args[0];
URI url = new URI(_url);
protocol = Protocol.valueOf(url.getScheme());
host = url.getHost();
port = url.getPort();
app = url.getPath();
- userId = Long.parseLong(args[1]);
- publishName = args[2];
- String labelTexts = args[3];
- defaultQuality = Integer.parseInt(args[4]);
- defaultFPS = Integer.parseInt(args[5]);
- showFPS = bool(args[6]);
- allowRemote = bool(args[7]);
+ publishName = args[1];
+ String labelTexts = args[2];
+ defaultQuality = Integer.parseInt(args[3]);
+ defaultFPS = Integer.parseInt(args[4]);
+ showFPS = bool(args[5]);
+ allowRemote = bool(args[6]);
remoteEnabled = allowRemote;
- allowRecording = bool(args[8]);
- allowPublishing = bool(args[9]);
+ allowRecording = bool(args[7]);
+ allowPublishing = bool(args[8]);
if (labelTexts.length() > 0) {
textArray = labelTexts.split(";");
@@ -153,8 +151,8 @@ public class CoreScreenShare implements
break;
case rtmps:
RTMPSScreenShare client = new RTMPSScreenShare(this);
- client.setKeystoreBytes(Hex.decodeHex(args[10].toCharArray()));
- client.setKeyStorePassword(args[11]);
+ client.setKeystoreBytes(Hex.decodeHex(args[9].toCharArray()));
+ client.setKeyStorePassword(args[10]);
instance = client;
break;
case rtmpe:
@@ -273,7 +271,6 @@ public class CoreScreenShare implements
private void connect(String parentSid) {
Map<String, Object> map = instance.makeDefaultConnectionParams(host, port, app);
map.put("screenClient", true);
- map.put("userId", userId);
map.put("parentSid", parentSid);
instance.connect(host, port, map, this);
}
@@ -677,11 +674,9 @@ public class CoreScreenShare implements
Object modus = returnMap.get("modus");
if ("startStreaming".equals(modus)) {
frame.setSharingStatus(true, false);
- }
- if ("startRecording".equals(modus)) {
+ } else if ("startRecording".equals(modus)) {
frame.setRecordingStatus(true, false);
- }
- if ("startPublishing".equals(modus)) {
+ } else if ("startPublishing".equals(modus)) {
frame.setPublishingStatus(true, false);
publishClient = new RTMPClientPublish(
this
@@ -691,9 +686,10 @@ public class CoreScreenShare implements
publishClient.connect();
}
} else {
- throw new Exception("Could not aquire modus for event setConnectionAsSharingClient");
+ String err = "Could not aquire modus for event setConnectionAsSharingClient";
+ frame.setStatus(String.format("Error: %s", err));
+ return;
}
-
} else if ("createStream".equals(method)) {
if (startRecording || startStreaming) {
if (call.getResult() != null) {
Modified: openmeetings/application/trunk/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp (original)
+++ openmeetings/application/trunk/openmeetings-screenshare/src/main/jnlp/templates/template.jnlp Thu Feb 25 09:41:30 2016
@@ -37,7 +37,6 @@
</resources>
<application-desc main-class='$mainClass'>
<argument>$url</argument>
- <argument>$userId</argument>
<argument>$publicSid</argument>
<argument>$labels</argument>
<argument>$defaultQuality</argument>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java?rev=1732269&r1=1732268&r2=1732269&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java Thu Feb 25 09:41:30 2016
@@ -25,7 +25,6 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.app.WebSession.getLanguage;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
import java.io.File;
@@ -110,7 +109,6 @@ public class StartSharingEventBehavior e
app = addKeystore(app, protocol).replace("$codebase", baseUrl + "screenshare")
.replace("$applicationName", cfgDao.getAppName())
.replace("$url", _url)
- .replace("$userId", "" + getUserId())
.replace("$publicSid", publicSid)
.replace("$labels", "<![CDATA[" + getLabels(730, 731, 732, 733, 734
, 735, 737, 738, 739, 740
@@ -124,7 +122,7 @@ public class StartSharingEventBehavior e
.replace("$defaultFps", cfgDao.getConfValue(CONFIG_SCREENSHARING_FPS, String.class, ""))
.replace("$showFps", cfgDao.getConfValue(CONFIG_SCREENSHARING_FPS_SHOW, String.class, "true"))
.replace("$allowRemote", cfgDao.getConfValue(CONFIG_SCREENSHARING_ALLOW_REMOTE, String.class, "true"))
- .replace("$allowRecording", "" + (room.isAllowRecording() && rc.isAllowRecording() && (0 == sessionManager.getRecordingCount(roomId))))
+ .replace("$allowRecording", "" + (rc.getUserId() > 0 && room.isAllowRecording() && rc.isAllowRecording() && (0 == sessionManager.getRecordingCount(roomId))))
.replace("$allowPublishing", "" + (0 == sessionManager.getPublishingCount(roomId)))
;
} catch (Exception e) {