From 0fc8df84c2613b428187303cd667c0601ad937cd Mon Sep 17 00:00:00 2001 From: Richard Alam <ritzalam@gmail.com> Date: Fri, 19 Jan 2018 08:45:27 -0800 Subject: [PATCH] - determine voice connection type --- .../phone/managers/ConnectionManager.as | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/ConnectionManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/ConnectionManager.as index 41342513b1..b66cd5b066 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/ConnectionManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/ConnectionManager.as @@ -36,6 +36,7 @@ package org.bigbluebutton.modules.phone.managers { import org.bigbluebutton.modules.phone.events.FlashCallConnectedEvent; import org.bigbluebutton.modules.phone.events.FlashCallDisconnectedEvent; import org.bigbluebutton.modules.phone.events.FlashVoiceConnectionStatusEvent; + import org.bigbluebutton.util.ConnUtil; public class ConnectionManager { private static const LOGGER:ILogger = getClassLogger(ConnectionManager); @@ -86,13 +87,36 @@ package org.bigbluebutton.modules.phone.managers { public function connect():void { if (!reconnecting || amIListenOnly) { closedByUser = false; - var isTunnelling:Boolean = BBB.initConnectionManager().isTunnelling; - if (isTunnelling) { - uri = uri.replace(/rtmp:/gi, "rtmpt:"); - } - LOGGER.debug("Connecting to uri=[{0}]", [uri]); + + var pattern:RegExp = /(?P<protocol>.+):\/\/(?P<server>.+)\/(?P<app>.+)/; + var result:Array = pattern.exec(uri); + var useRTMPS: Boolean = result.protocol == ConnUtil.RTMPS + netConnection = new NetConnection(); - netConnection.proxyType = "best"; + + if (BBB.initConnectionManager().isTunnelling) { + var tunnelProtocol: String = ConnUtil.RTMPT; + + if (useRTMPS) { + netConnection.proxyType = ConnUtil.PROXY_NONE; + tunnelProtocol = ConnUtil.RTMPS; + } + + uri = tunnelProtocol + "://" + result.server + "/" + result.app; + trace("******* BBB SIP CONNECT tunnel = TRUE " + "url=" + uri); + } else { + var nativeProtocol: String = ConnUtil.RTMP; + if (useRTMPS) { + netConnection.proxyType = ConnUtil.PROXY_BEST; + nativeProtocol = ConnUtil.RTMPS; + } + + uri = nativeProtocol + "://" + result.server + "/" + result.app; + trace("******* BBB SIP CONNECT tunnel = FALSE " + "url=" + uri); + } + + LOGGER.debug("******** VOICE CONF == Connecting to uri=[{0}]", [uri]); + netConnection.objectEncoding = ObjectEncoding.AMF3; netConnection.client = this; netConnection.addEventListener( NetStatusEvent.NET_STATUS , netStatus ); -- GitLab