From ff85a724bb2963434f3f0ad2610955059332f5f0 Mon Sep 17 00:00:00 2001
From: Richard Alam <ritzalam@gmail.com>
Date: Fri, 19 Jan 2018 08:46:34 -0800
Subject: [PATCH]  - determine bbb-apps connection type

---
 .../main/model/users/NetConnectionDelegate.as | 41 +++++++++++++------
 .../main/model/users/UserService.as           |  2 +-
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as b/bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as
index e3d75691e9..9362b7399b 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as
@@ -49,7 +49,8 @@ package org.bigbluebutton.main.model.users
 	import org.bigbluebutton.main.events.InvalidAuthTokenEvent;
 	import org.bigbluebutton.main.model.options.ApplicationOptions;
 	import org.bigbluebutton.main.model.users.events.ConnectionFailedEvent;
-	import org.bigbluebutton.main.model.users.events.UsersConnectionEvent;
+	import org.bigbluebutton.main.model.users.events.UsersConnectionEvent;
+	import org.bigbluebutton.util.ConnUtil;
 
     public class NetConnectionDelegate {
         private static const LOGGER:ILogger = getClassLogger(NetConnectionDelegate);
@@ -82,7 +83,7 @@ package org.bigbluebutton.main.model.users
             dispatcher = new Dispatcher();
             _netConnection = new NetConnection();
 						_netConnection.objectEncoding = ObjectEncoding.AMF3;
-            _netConnection.proxyType = "best";
+            
             _netConnection.client = this;
             _netConnection.addEventListener( NetStatusEvent.NET_STATUS, netStatus );
             _netConnection.addEventListener( AsyncErrorEvent.ASYNC_ERROR, netASyncError );
@@ -411,18 +412,32 @@ package org.bigbluebutton.main.model.users
                 
             try {
                 var appURL:String = _applicationOptions.uri;
-                var pattern:RegExp = /(?P<protocol>.+):\/\/(?P<server>.+)\/(?P<app>.+)/;
-                var result:Array = pattern.exec(appURL);
 
-                BandwidthMonitor.getInstance().serverURL = result.server;
-            
-                var protocol:String = "rtmp";
-                var uri:String = appURL + "/" + intMeetingId;
-            
-                if (BBB.initConnectionManager().isTunnelling) {
-                    bbbAppsUrl = "rtmpt://" + result.server + "/" + result.app + "/" + intMeetingId;
-                } else {
-                    bbbAppsUrl = result.protocol + "://" + result.server + "/" + result.app + "/" + intMeetingId;
+								var pattern:RegExp = /(?P<protocol>.+):\/\/(?P<server>.+)\/(?P<app>.+)/;
+								var result:Array = pattern.exec(appURL);
+								var uri:String = appURL + "/" + intMeetingId;
+								var useRTMPS: Boolean = result.protocol == ConnUtil.RTMPS;
+								
+								if (BBB.initConnectionManager().isTunnelling) {
+									var tunnelProtocol: String = ConnUtil.RTMPT;
+									
+									if (useRTMPS) {
+										_netConnection.proxyType = ConnUtil.PROXY_NONE;
+										tunnelProtocol = ConnUtil.RTMPS;
+									}
+									
+
+									bbbAppsUrl = tunnelProtocol + "://" + result.server + "/" + result.app + "/" + intMeetingId;
+										trace("******* BBB APPS CONNECT tunnel = TRUE " + "url=" +  bbbAppsUrl);
+								} else {
+									var nativeProtocol: String = ConnUtil.RTMP;
+									if (useRTMPS) {
+										_netConnection.proxyType = ConnUtil.PROXY_BEST;
+										nativeProtocol = ConnUtil.RTMPS;
+									}
+
+									bbbAppsUrl = nativeProtocol + "://" + result.server + "/" + result.app + "/" + intMeetingId;
+									trace("******* BBB APPS CONNECT tunnel = FALSE " + "url=" +  bbbAppsUrl);
                 }
 
                 var logData:Object = UsersUtil.initLogData();
diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/model/users/UserService.as b/bigbluebutton-client/src/org/bigbluebutton/main/model/users/UserService.as
index 65d48ac629..2a5ce9b268 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/main/model/users/UserService.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/main/model/users/UserService.as
@@ -105,7 +105,7 @@ package org.bigbluebutton.main.model.users
         LiveMeeting.inst().me.externalId = result.extUserId;
         LiveMeeting.inst().me.authToken = result.authToken;
         LiveMeeting.inst().me.layout = result.defaultLayout;
-		LiveMeeting.inst().me.logoutURL = result.logoutUrl;
+				LiveMeeting.inst().me.logoutURL = result.logoutUrl;
         LiveMeeting.inst().me.role = result.role;
         LiveMeeting.inst().me.welcome = result.welcome;
         LiveMeeting.inst().me.avatarURL = result.avatarURL;
-- 
GitLab