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/05/17 19:16:11 UTC
svn commit: r1744308 - in /openmeetings/application:
branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/
branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/
branches/3.2.x/openmeetings-core/src/main/java/org...
Author: solomax
Date: Tue May 17 19:16:11 2016
New Revision: 1744308
URL: http://svn.apache.org/viewvc?rev=1744308&view=rev
Log:
[OPENMEETINGS-1403] external camera suport is added
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-flash/src/main/swf/base/remote/rtmpConnection.lzx
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.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=1744308&r1=1744307&r2=1744308&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 Tue May 17 19:16:11 2016
@@ -81,6 +81,7 @@ import org.springframework.beans.factory
public class ScopeApplicationAdapter extends ApplicationAdapter implements IPendingServiceCallback {
private static final Logger log = Red5LoggerFactory.getLogger(ScopeApplicationAdapter.class, webAppRootKey);
+ private static final String SECURITY_CODE_PARAM = "securityCode";
@Autowired
private ISessionManager sessionManager;
@@ -152,6 +153,14 @@ public class ScopeApplicationAdapter ext
return true;
}
+ @SuppressWarnings("unchecked")
+ private Map<String, Object> getConnParams(Object[] params) {
+ if (params != null && params.length > 0) {
+ return (Map<String, Object>)params[0];
+ }
+ return new HashMap<>();
+ }
+
@Override
public boolean roomConnect(IConnection conn, Object[] params) {
log.debug("roomConnect : ");
@@ -166,7 +175,16 @@ public class ScopeApplicationAdapter ext
Map<String, Object> map = conn.getConnectParams();
String swfURL = map.containsKey("swfUrl") ? (String)map.get("swfUrl") : "";
- String securityCode = params != null && params.length > 0 ? (String)params[0] : "";
+ Map<String, Object> connParams = getConnParams(params);
+ String uid = (String)connParams.get("uid");
+ String securityCode = (String)connParams.get(SECURITY_CODE_PARAM);
+ if (!Strings.isEmpty(securityCode)) {
+ //FIXME TODO add better mechanism
+ Client parent = sessionManager.getClientByPublicSID(securityCode, null);
+ if (parent == null || !parent.getScope().equals(conn.getScope().getName())) {
+ return rejectClient();
+ }
+ }
Client parentClient = null;
//TODO add similar code for other connections
@@ -213,7 +231,6 @@ public class ScopeApplicationAdapter ext
sessionManager.updateClientByStreamId(streamId, rcm, false, null);
}
if (!Strings.isEmpty(securityCode)) {
- //FIXME TODO check if client by code is in this room
rcm.setSecurityCode(securityCode);
sessionManager.updateClientByStreamId(streamId, rcm, false, null);
}
@@ -630,12 +647,6 @@ public class ScopeApplicationAdapter ext
sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
}
if (!Strings.isEmpty(currentClient.getSecurityCode())) {
- //FIXME TODO add better mechanism
- Client parent = sessionManager.getClientByPublicSID(currentClient.getSecurityCode(), null);
- if (parent == null || !parent.getScope().equals(stream.getScope().getName())) {
- rejectClient();
- return;
- }
currentClient.setBroadCastID(Long.parseLong(stream.getPublishedName()));
currentClient.setIsBroadcasting(true);
currentClient.setVWidth(320);
@@ -1491,7 +1502,7 @@ public class ScopeApplicationAdapter ext
return roomClientList;
}
- public synchronized List<Client> getCurrentModeratorList() {
+ public List<Client> getCurrentModeratorList() {
try {
IConnection current = Red5.getConnectionLocal();
Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
@@ -2124,7 +2135,7 @@ public class ScopeApplicationAdapter ext
return null;
}
- /*
+ /*
* SIP transport methods
*/
Modified: openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx?rev=1744308&r1=1744307&r2=1744308&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx Tue May 17 19:16:11 2016
@@ -52,7 +52,7 @@
this._nc.proxyType = canvas.proxyType;
- var ok = this._nc.connect(src == "null" ? null : src, "");
+ var ok = this._nc.connect(src == "null" ? null : src, {uid: ''});
if (this.debug) {
if($debug) Debug.write("*** debug ***");
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1744308&r1=1744307&r2=1744308&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Tue May 17 19:16:11 2016
@@ -88,6 +88,7 @@ import org.springframework.beans.factory
public class ScopeApplicationAdapter extends ApplicationAdapter implements IPendingServiceCallback {
private static final Logger log = Red5LoggerFactory.getLogger(ScopeApplicationAdapter.class, webAppRootKey);
+ private static final String SECURITY_CODE_PARAM = "securityCode";
@Autowired
private ISessionManager sessionManager;
@@ -150,6 +151,14 @@ public class ScopeApplicationAdapter ext
return true;
}
+ @SuppressWarnings("unchecked")
+ private Map<String, Object> getConnParams(Object[] params) {
+ if (params != null && params.length > 0) {
+ return (Map<String, Object>)params[0];
+ }
+ return new HashMap<>();
+ }
+
@Override
public boolean roomConnect(IConnection conn, Object[] params) {
log.debug("roomConnect : ");
@@ -165,8 +174,19 @@ public class ScopeApplicationAdapter ext
Map<String, Object> map = conn.getConnectParams();
String swfURL = map.containsKey("swfUrl") ? (String)map.get("swfUrl") : "";
String tcUrl = map.containsKey("tcUrl") ? (String)map.get("tcUrl") : "";
- String uid = params != null && params.length > 0 ? (String)params[0] : "";
- String securityCode = null;//FIXME TODO should named parameter!!!! params != null && params.length > 0 ? (String)params[0] : "";
+ Map<String, Object> connParams = getConnParams(params);
+ String uid = (String)connParams.get("uid");
+ String securityCode = (String)connParams.get(SECURITY_CODE_PARAM);
+ if (!Strings.isEmpty(securityCode)) {
+ //FIXME TODO add better mechanism
+ Client parent = sessionManager.getClientByPublicSID(securityCode, null);
+ if (parent == null || !parent.getScope().equals(conn.getScope().getName())) {
+ return rejectClient();
+ }
+ }
+ if (Strings.isEmpty(uid) && Strings.isEmpty(securityCode)) {
+ return rejectClient();
+ }
Client parentClient = null;
//TODO add similar code for other connections
@@ -192,6 +212,7 @@ public class ScopeApplicationAdapter ext
rcm.setSwfurl(swfURL);
rcm.setTcUrl(tcUrl);
rcm.setPublicSID(uid);
+ rcm.setSecurityCode(securityCode);
rcm = sessionManager.add(((IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName)).updateClient(rcm), null);
if (rcm == null) {
log.warn("Failed to create Client on room connect");
@@ -225,11 +246,6 @@ public class ScopeApplicationAdapter ext
log.debug("publishName :: " + rcm.getStreamPublishName());
sessionManager.updateClientByStreamId(streamId, rcm, false, null);
}
- if (!Strings.isEmpty(securityCode)) {
- //FIXME TODO check if client by code is in this room
- rcm.setSecurityCode(securityCode);
- sessionManager.updateClientByStreamId(streamId, rcm, false, null);
- }
// Log the User
conferenceLogDao.add(ConferenceLog.Type.clientConnect,
@@ -648,12 +664,6 @@ public class ScopeApplicationAdapter ext
sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
}
if (!Strings.isEmpty(currentClient.getSecurityCode())) {
- //FIXME TODO add better mechanism
- Client parent = sessionManager.getClientByPublicSID(currentClient.getSecurityCode(), null);
- if (parent == null || !parent.getScope().equals(stream.getScope().getName())) {
- rejectClient();
- return;
- }
currentClient.setBroadCastID(Long.parseLong(stream.getPublishedName()));
currentClient.setIsBroadcasting(true);
currentClient.setVWidth(320);
@@ -2073,7 +2083,7 @@ public class ScopeApplicationAdapter ext
}
}
- /*
+ /*
* SIP transport methods
*/
Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx?rev=1744308&r1=1744307&r2=1744308&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/remote/rtmpConnection.lzx Tue May 17 19:16:11 2016
@@ -52,7 +52,7 @@
this._nc.proxyType = canvas.proxyType;
- var ok = this._nc.connect(src == "null" ? null : src, canvas.publicSID);
+ var ok = this._nc.connect(src == "null" ? null : src, {uid: canvas.publicSID});
if (this.debug) {
if($debug) Debug.write("*** debug ***");
}
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=1744308&r1=1744307&r2=1744308&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 Tue May 17 19:16:11 2016
@@ -88,6 +88,7 @@ import org.springframework.beans.factory
public class ScopeApplicationAdapter extends ApplicationAdapter implements IPendingServiceCallback {
private static final Logger log = Red5LoggerFactory.getLogger(ScopeApplicationAdapter.class, webAppRootKey);
+ private static final String SECURITY_CODE_PARAM = "securityCode";
@Autowired
private ISessionManager sessionManager;
@@ -150,6 +151,14 @@ public class ScopeApplicationAdapter ext
return true;
}
+ @SuppressWarnings("unchecked")
+ private Map<String, Object> getConnParams(Object[] params) {
+ if (params != null && params.length > 0) {
+ return (Map<String, Object>)params[0];
+ }
+ return new HashMap<>();
+ }
+
@Override
public boolean roomConnect(IConnection conn, Object[] params) {
log.debug("roomConnect : ");
@@ -165,8 +174,19 @@ public class ScopeApplicationAdapter ext
Map<String, Object> map = conn.getConnectParams();
String swfURL = map.containsKey("swfUrl") ? (String)map.get("swfUrl") : "";
String tcUrl = map.containsKey("tcUrl") ? (String)map.get("tcUrl") : "";
- String uid = params != null && params.length > 0 ? (String)params[0] : "";
- String securityCode = null;//FIXME TODO should named parameter!!!! params != null && params.length > 0 ? (String)params[0] : "";
+ Map<String, Object> connParams = getConnParams(params);
+ String uid = (String)connParams.get("uid");
+ String securityCode = (String)connParams.get(SECURITY_CODE_PARAM);
+ if (!Strings.isEmpty(securityCode)) {
+ //FIXME TODO add better mechanism
+ Client parent = sessionManager.getClientByPublicSID(securityCode, null);
+ if (parent == null || !parent.getScope().equals(conn.getScope().getName())) {
+ return rejectClient();
+ }
+ }
+ if (Strings.isEmpty(uid) && Strings.isEmpty(securityCode)) {
+ return rejectClient();
+ }
Client parentClient = null;
//TODO add similar code for other connections
@@ -192,6 +212,7 @@ public class ScopeApplicationAdapter ext
rcm.setSwfurl(swfURL);
rcm.setTcUrl(tcUrl);
rcm.setPublicSID(uid);
+ rcm.setSecurityCode(securityCode);
rcm = sessionManager.add(((IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName)).updateClient(rcm), null);
if (rcm == null) {
log.warn("Failed to create Client on room connect");
@@ -225,11 +246,6 @@ public class ScopeApplicationAdapter ext
log.debug("publishName :: " + rcm.getStreamPublishName());
sessionManager.updateClientByStreamId(streamId, rcm, false, null);
}
- if (!Strings.isEmpty(securityCode)) {
- //FIXME TODO check if client by code is in this room
- rcm.setSecurityCode(securityCode);
- sessionManager.updateClientByStreamId(streamId, rcm, false, null);
- }
// Log the User
conferenceLogDao.add(ConferenceLog.Type.clientConnect,
@@ -648,12 +664,6 @@ public class ScopeApplicationAdapter ext
sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
}
if (!Strings.isEmpty(currentClient.getSecurityCode())) {
- //FIXME TODO add better mechanism
- Client parent = sessionManager.getClientByPublicSID(currentClient.getSecurityCode(), null);
- if (parent == null || !parent.getScope().equals(stream.getScope().getName())) {
- rejectClient();
- return;
- }
currentClient.setBroadCastID(Long.parseLong(stream.getPublishedName()));
currentClient.setIsBroadcasting(true);
currentClient.setVWidth(320);
@@ -2073,7 +2083,7 @@ public class ScopeApplicationAdapter ext
}
}
- /*
+ /*
* SIP transport methods
*/