Repository: openmeetings Updated Branches: refs/heads/master 3c5c98d6b -> 8653d2328
[OPENMEETINGS-551] screen-sharing fallback should be fixed Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/8653d232 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/8653d232 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/8653d232 Branch: refs/heads/master Commit: 8653d2328a93338b7fcc0c012f0c28bbab36d1fa Parents: 3c5c98d Author: Maxim Solodovnik <[email protected]> Authored: Thu Jun 22 19:55:45 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Thu Jun 22 19:55:45 2017 +0700 ---------------------------------------------------------------------- .../main/java/org/apache/openmeetings/screenshare/Core.java | 9 +++++++++ .../apache/openmeetings/screenshare/RTMPSScreenShare.java | 6 ++++-- .../apache/openmeetings/screenshare/RTMPScreenShare.java | 6 ++++-- .../apache/openmeetings/screenshare/RTMPTSScreenShare.java | 6 ++++-- .../apache/openmeetings/screenshare/RTMPTScreenShare.java | 6 ++++-- .../org/apache/openmeetings/web/room/VideoSettings.java | 5 +++-- 6 files changed, 28 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java index b0e8cde..b5b4ffb 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java @@ -31,6 +31,7 @@ import static org.slf4j.LoggerFactory.getLogger; import java.awt.MouseInfo; import java.awt.Point; +import java.net.ConnectException; import java.net.URI; import java.util.HashMap; import java.util.Map; @@ -313,6 +314,14 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler { instance.connect(host, port, map, this, new Object[]{params}); } + void handleException(Throwable e) { + frame.setStatus("Exception: " + e); + if (e instanceof ConnectException) { + fallbackUsed = true; + connect(publishName); + } + } + private void captureScreenStart() { try { log.debug("captureScreenStart"); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java index 9af8a59..009407c 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java @@ -60,7 +60,9 @@ public class RTMPSScreenShare extends RTMPSClient implements IScreenShare { @Override public void handleException(Throwable throwable) { - log.error("{}", new Object[] { throwable.getCause() }); - System.out.println(throwable.getCause()); + Throwable cause = throwable.getCause(); + log.error("{}", new Object[] { cause }); + System.out.println(cause); + core.handleException(cause); } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java index 62a103e..5dfabd2 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java @@ -60,7 +60,9 @@ public class RTMPScreenShare extends RTMPClient implements IScreenShare { @Override public void handleException(Throwable throwable) { - log.error("{}", new Object[] { throwable.getCause() }); - System.out.println(throwable.getCause()); + Throwable cause = throwable.getCause(); + log.error("{}", new Object[] { cause }); + System.out.println(cause); + core.handleException(cause); } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java index da43b20..3ecc10d 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java @@ -60,7 +60,9 @@ public class RTMPTSScreenShare extends RTMPTSClient implements IScreenShare { @Override public void handleException(Throwable throwable) { - log.error("{}", new Object[] { throwable.getCause() }); - System.out.println(throwable.getCause()); + Throwable cause = throwable.getCause(); + log.error("{}", new Object[] { cause }); + System.out.println(cause); + core.handleException(cause); } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java index 066594b..798e932 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java @@ -60,7 +60,9 @@ public class RTMPTScreenShare extends RTMPTClient implements IScreenShare { @Override public void handleException(Throwable throwable) { - log.error("{}", new Object[] { throwable.getCause() }); - System.out.println(throwable.getCause()); + Throwable cause = throwable.getCause(); + log.error("{}", new Object[] { cause }); + System.out.println(cause); + core.handleException(cause); } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java index 0e39518..94abced 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java @@ -80,12 +80,13 @@ public class VideoSettings extends Panel { String path = url.getPath(); path = path.substring(1, path.indexOf('/', 2) + 1) + scope; s.put(FLASH_NATIVE_SSL, gs.getBoolean(FLASH_NATIVE_SSL)); + int port = url.getPort() > -1 ? url.getPort() : url.getDefaultPort(); if (gs.getBoolean(FLASH_SECURE)) { s.put(URL, getUri("rtmps", url.getHost(), gs.getString(FLASH_SSL_PORT), path)); - s.put(FALLBACK, getUri("rtmps", url.getHost(), url.getPort(), path)); + s.put(FALLBACK, getUri("rtmps", url.getHost(), port, path)); } else { s.put(URL, getUri("rtmp", url.getHost(), gs.getString(FLASH_PORT), path)); - s.put(FALLBACK, getUri("rtmpt", url.getHost(), url.getPort(), path)); + s.put(FALLBACK, getUri("rtmpt", url.getHost(), port, path)); } } catch (Exception e) { log.error("Error while constructing video settings parameters", e);
