diff --git a/bbb-screenshare/app/project/Dependencies.scala b/bbb-screenshare/app/project/Dependencies.scala
index a3802c86e86626a2fb9a642210fd4a52e589fb89..0441ac6a6300ba4584374f1f9ac145082774ff49 100644
--- a/bbb-screenshare/app/project/Dependencies.scala
+++ b/bbb-screenshare/app/project/Dependencies.scala
@@ -17,7 +17,7 @@ object Dependencies {
     val jackson = "2.9.7"
     val logback = "1.2.3"
     val springVersion = "4.3.20.RELEASE"
-    val red5 = "1.0.10-M9"
+    val red5 = "1.0.10-M5"
     val servlet = "2.5"
     val ffmpeg = "4.0.2-1.4.3"
     val openCv = "1.4.3"
diff --git a/bbb-video/build.gradle b/bbb-video/build.gradle
index 1a332bef987669c0affe51660f088733ab875950..d767f014d3cf047f18e6bcba33f5d539b99cc5a0 100755
--- a/bbb-video/build.gradle
+++ b/bbb-video/build.gradle
@@ -34,10 +34,10 @@ dependencies {
   providedCompile 'org.apache.mina:mina-integration-jmx:2.0.17@jar'
 
   // Spring
-  providedCompile 'org.springframework:spring-web:4.3.12.RELEASE@jar'
-  providedCompile 'org.springframework:spring-beans:4.3.12.RELEASE@jar'
-  providedCompile 'org.springframework:spring-context:4.3.12.RELEASE@jar'
-  providedCompile 'org.springframework:spring-core:4.3.13.RELEASE@jar'
+  providedCompile 'org.springframework:spring-web:4.3.20.RELEASE@jar'
+  providedCompile 'org.springframework:spring-beans:4.3.20.RELEASE@jar'
+  providedCompile 'org.springframework:spring-context:4.3.20.RELEASE@jar'
+  providedCompile 'org.springframework:spring-core:4.3.20.RELEASE@jar'
 
   // Red5
   providedCompile 'org.red5:red5-server:1.0.10-M5@jar'
@@ -54,12 +54,9 @@ dependencies {
 
   // Needed for the JVM shutdown hook but needs to be put into red5/lib dir.
   // Otherwise we get exception on aop utils class not found.
-  providedCompile 'org.springframework:spring-aop:4.3.12.RELEASE@jar'
+  providedCompile 'org.springframework:spring-aop:4.3.20.RELEASE@jar'
   compile 'aopalliance:aopalliance:1.0@jar'
 
-  // Testing
-  testRuntime 'org.easymock:easymock:3.6@jar'
-
   //redis
   compile 'org.apache.commons:commons-pool2:2.6.0'
   compile 'com.google.code.gson:gson:2.8.5'
@@ -68,10 +65,6 @@ dependencies {
   compile 'org.bigbluebutton:bbb-common-message_2.12:0.0.20-SNAPSHOT'
 }
 
-test {
-    useTestNG()
-}
-
 war.doLast {
   ant.unzip(src: war.archivePath, dest: "$buildDir/video")
 }
@@ -80,6 +73,7 @@ war.doLast {
 task deploy() << {
 	def red5AppsDir = '/usr/share/red5/webapps'
 	def videoDir = new File("${red5AppsDir}/video")
+    println "Deleting $videoDir"
 	if (videoDir.exists()) ant.delete(dir: videoDir)
 	ant.mkdir(dir: videoDir)
 	ant.copy(todir: videoDir) {
diff --git a/bbb-video/src/main/webapp/WEB-INF/bbb-redis-messaging.xml b/bbb-video/src/main/webapp/WEB-INF/bbb-redis-messaging.xml
index 56b09f1b2ee9be767aeb1b0ff1ada21b2745c45c..864c7d3abb2f662f1db6e797bfe418618f31165f 100755
--- a/bbb-video/src/main/webapp/WEB-INF/bbb-redis-messaging.xml
+++ b/bbb-video/src/main/webapp/WEB-INF/bbb-redis-messaging.xml
@@ -27,6 +27,15 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 			http://www.springframework.org/schema/util/spring-util-2.0.xsd
 			">
 
+	<bean id="meetingMessageHandler" class="org.bigbluebutton.red5.pubsub.MeetingMessageHandler">
+		<property name="meetingManager" ref="meetingManager"/>
+		<property name="connInvokerService" ref="connInvokerService"/>
+	</bean>
+
+	<bean id="receivedMessageHandler" class="org.bigbluebutton.common2.redis.pubsub.ReceivedMessageHandler"
+		  init-method="start" destroy-method="stop">
+	</bean>
+
 	<bean id="redisStorageService"
 		class="org.bigbluebutton.common2.redis.RedisStorageService"
 		init-method="start" destroy-method="stop">
@@ -66,14 +75,5 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 			</set>
 		</property>
 	</bean>
-
-	<bean id="meetingMessageHandler" class="org.bigbluebutton.red5.pubsub.MeetingMessageHandler">
-		<property name="meetingManager" ref="meetingManager"/>
-		<property name="connInvokerService" ref="connInvokerService"/>
-	</bean>
-
-	<bean id="receivedMessageHandler" class="org.bigbluebutton.common2.redis.pubsub.ReceivedMessageHandler"
-		  init-method="start" destroy-method="stop">
-	</bean>
     
 </beans>
diff --git a/bbb-video/src/main/webapp/WEB-INF/bigbluebutton-video.properties b/bbb-video/src/main/webapp/WEB-INF/bigbluebutton-video.properties
index 5f8030de0c73cfb61b1eb9fa6816b9cec420445a..afaaf239a5b58137b7aac0516fdb48b7d0e85107 100755
--- a/bbb-video/src/main/webapp/WEB-INF/bigbluebutton-video.properties
+++ b/bbb-video/src/main/webapp/WEB-INF/bigbluebutton-video.properties
@@ -1,4 +1,5 @@
 redis.host=127.0.0.1
 redis.port=6379
+redis.password=
 # recording keys should expire in 14 days
 redis.keyExpiry=1209600
diff --git a/bbb-video/src/main/webapp/WEB-INF/red5-web.xml b/bbb-video/src/main/webapp/WEB-INF/red5-web.xml
index 6639e50543d095dccdd015edc85b293d76acda98..7bb5cd84a90081366c201545814a2212bad14f82 100755
--- a/bbb-video/src/main/webapp/WEB-INF/red5-web.xml
+++ b/bbb-video/src/main/webapp/WEB-INF/red5-web.xml
@@ -21,8 +21,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:lang="http://www.springframework.org/schema/lang"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-                           http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd">
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
+                           http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+                           http://www.springframework.org/schema/lang 
+                           http://www.springframework.org/schema/lang/spring-lang-2.0.xsd">
 
 	<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 	    <property name="locations">
@@ -34,6 +36,11 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 	</bean>
 	
 	<import resource="bbb-redis-messaging.xml"/>
+	
+	<bean id="meetingManager" class="org.bigbluebutton.app.video.MeetingManager"/>
+	
+	<bean id="connInvokerService" class="org.bigbluebutton.app.video.ConnectionInvokerService"
+		  init-method="start" destroy-method="stop"/>
 
 	<bean id="web.context" class="org.red5.server.Context"
 		autowire="byType" />
@@ -47,11 +54,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 		<property name="virtualHosts" value="${webapp.virtualHosts}" />
 	</bean>
 	
-	<bean id="connInvokerService" class="org.bigbluebutton.app.video.ConnectionInvokerService"
-		  init-method="start" destroy-method="stop"/>
-
-	<bean id="meetingManager" class="org.bigbluebutton.app.video.MeetingManager"/>
-
 	<bean id="web.handler" class="org.bigbluebutton.app.video.VideoApplication">
 	   <property name="packetTimeout" value="10000"/>
 		<property name="eventRecordingService" ref="redisStorageService"/>
diff --git a/bbb-voice/build.gradle b/bbb-voice/build.gradle
index c90d8a47b9b459d516d39d512c2f9ede7f3b4269..bbcd993045e11bb14f071d101b18d7d2a7f08947 100755
--- a/bbb-voice/build.gradle
+++ b/bbb-voice/build.gradle
@@ -33,11 +33,11 @@ dependencies {
   providedCompile 'org.apache.mina:mina-integration-beans:2.0.17@jar'
   providedCompile 'org.apache.mina:mina-integration-jmx:2.0.17@jar'
 
-  // Spring 
-  providedCompile 'org.springframework:spring-web:4.3.12.RELEASE@jar' 
-  providedCompile 'org.springframework:spring-beans:4.3.12.RELEASE@jar'
-  providedCompile 'org.springframework:spring-context:4.3.12.RELEASE@jar'
-  providedCompile 'org.springframework:spring-core:4.3.13.RELEASE@jar'
+  // Spring
+  providedCompile 'org.springframework:spring-web:4.3.20.RELEASE@jar' 
+  providedCompile 'org.springframework:spring-beans:4.3.20.RELEASE@jar'
+  providedCompile 'org.springframework:spring-context:4.3.20.RELEASE@jar'
+  providedCompile 'org.springframework:spring-core:4.3.20.RELEASE@jar'
 
   // Red5
   providedCompile 'org.red5:red5-server:1.0.10-M5@jar'
@@ -54,7 +54,7 @@ dependencies {
 
   // Needed for the JVM shutdown hook but needs to be put into red5/lib dir.
   // Otherwise we get exception on aop utils class not found.
-  providedCompile 'org.springframework:spring-aop:4.3.12.RELEASE@jar'
+  providedCompile 'org.springframework:spring-aop:4.3.20.RELEASE@jar'
   compile 'aopalliance:aopalliance:1.0@jar'
 
   //redis
@@ -63,13 +63,6 @@ dependencies {
 
   compile 'org.apache.commons:commons-lang3:3.8.1'
   compile 'org.bigbluebutton:bbb-common-message_2.12:0.0.20-SNAPSHOT'
-
-  // Testing
-  testRuntime 'org.easymock:easymock:3.6@jar'
-}
-
-test {
-    useTestNG()
 }
 
 war.doLast {
diff --git a/bbb-voice/src/main/webapp/WEB-INF/bbb-redis-messaging.xml b/bbb-voice/src/main/webapp/WEB-INF/bbb-redis-messaging.xml
index 8246ea68348c93471bdcd42f56362e8559015f8b..e7344b49f9e731084cec9daf3895893b6c5fffd8 100755
--- a/bbb-voice/src/main/webapp/WEB-INF/bbb-redis-messaging.xml
+++ b/bbb-voice/src/main/webapp/WEB-INF/bbb-redis-messaging.xml
@@ -27,6 +27,20 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 			http://www.springframework.org/schema/util/spring-util-2.0.xsd
 			">
 	
+	<bean id="redisMessageDistributor" class="org.bigbluebutton.common2.redis.pubsub.MessageDistributor">
+		<property name="messageHandler"> <ref local="redisMessageHandler"/> </property>
+		<property name="messageListeners">
+			<set>
+				<ref bean="meetingMessageHandler" />
+			</set>
+		</property>
+	</bean>
+	
+	<bean id="redisMessageHandler" class="org.bigbluebutton.common2.redis.pubsub.ReceivedMessageHandler"
+		  init-method="start" destroy-method="stop">
+		<property name="messageDistributor"><ref bean="redisMessageDistributor" /></property>
+	</bean>
+
 	<bean id="redisMessageSender" class="org.bigbluebutton.common2.redis.pubsub.MessageSender"
 		  init-method="start" destroy-method="stop">
 		<property name="host" value="${redis.host}"/>
@@ -52,18 +66,4 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 		<property name="messageHandler"> <ref local="redisMessageHandler"/> </property>
 	</bean>
 
-	<bean id="redisMessageHandler" class="org.bigbluebutton.common2.redis.pubsub.ReceivedMessageHandler"
-		  init-method="start" destroy-method="stop">
-		<property name="messageDistributor"><ref bean="redisMessageDistributor" /></property>
-	</bean>
-
-	<bean id="redisMessageDistributor" class="org.bigbluebutton.common2.redis.pubsub.MessageDistributor">
-		<property name="messageHandler"> <ref local="redisMessageHandler"/> </property>
-		<property name="messageListeners">
-			<set>
-				<ref bean="meetingMessageHandler" />
-			</set>
-		</property>
-	</bean>
-
 </beans>
diff --git a/bbb-voice/src/main/webapp/WEB-INF/red5-web.xml b/bbb-voice/src/main/webapp/WEB-INF/red5-web.xml
index bf68930d6af2fe274b27b8b6e85d487a99a628e6..610836054c018196d4416822c6ab1049a4cd1df7 100755
--- a/bbb-voice/src/main/webapp/WEB-INF/red5-web.xml
+++ b/bbb-voice/src/main/webapp/WEB-INF/red5-web.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
 
 BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
@@ -55,6 +54,16 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 		<property name="contextPath" value="${webapp.contextPath}" />
 		<property name="virtualHosts" value="${webapp.virtualHosts}" />
 	</bean>
+	
+	<bean id="sipPeerManager" class="org.bigbluebutton.voiceconf.sip.SipPeerManager">
+		<property name="sipStackDebugLevel" value="${sipStackDebugLevel}"/>
+		<property name="sipRemotePort" value="${freeswitch.port}"/>
+		<property name="messagingService" ref="messagingService"/>
+	</bean>
+
+	<bean id="voiceconf.service" class="org.bigbluebutton.voiceconf.red5.Service">
+		<property name="sipPeerManager" ref="sipPeerManager"/>
+	</bean>
 
 	<bean id="web.handler" class="org.bigbluebutton.voiceconf.red5.Application">
 		<property name="sipClientRtpIp" value="${bbb.sip.app.ip}" />
@@ -70,14 +79,4 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 		<property name="messagingService" ref="messagingService"/>
 	</bean>
 
-	<bean id="sipPeerManager" class="org.bigbluebutton.voiceconf.sip.SipPeerManager">
-		<property name="sipStackDebugLevel" value="${sipStackDebugLevel}"/>
-		<property name="sipRemotePort" value="${freeswitch.port}"/>
-		<property name="messagingService" ref="messagingService"/>
-	</bean>
-
-	<bean id="voiceconf.service" class="org.bigbluebutton.voiceconf.red5.Service">
-		<property name="sipPeerManager" ref="sipPeerManager"/>
-	</bean>
-
 </beans>
diff --git a/bigbluebutton-apps/build.gradle b/bigbluebutton-apps/build.gradle
index 1a8d19d706820fc782e0d406427bf56e30f943cd..2d9aa55366af35e00c7685fdca68f7b5f8a8906b 100755
--- a/bigbluebutton-apps/build.gradle
+++ b/bigbluebutton-apps/build.gradle
@@ -38,10 +38,10 @@ dependencies {
   providedCompile 'org.apache.mina:mina-integration-jmx:2.0.17@jar'
 
   // Spring 
-  providedCompile 'org.springframework:spring-web:4.3.12.RELEASE@jar' 
-  providedCompile 'org.springframework:spring-beans:4.3.12.RELEASE@jar'
-  providedCompile 'org.springframework:spring-context:4.3.12.RELEASE@jar'
-  providedCompile 'org.springframework:spring-core:4.3.13.RELEASE@jar'
+  providedCompile 'org.springframework:spring-web:4.3.20.RELEASE@jar' 
+  providedCompile 'org.springframework:spring-beans:4.3.20.RELEASE@jar'
+  providedCompile 'org.springframework:spring-context:4.3.20.RELEASE@jar'
+  providedCompile 'org.springframework:spring-core:4.3.20.RELEASE@jar'
 
   // Red5
   providedCompile 'org.red5:red5-server:1.0.10-M5@jar'
@@ -58,7 +58,7 @@ dependencies {
   	
   // Needed for the JVM shutdown hook but needs to be put into red5/lib dir.
   // Otherwise we get exception on aop utils class not found.
-  providedCompile 'org.springframework:spring-aop:4.3.12.RELEASE@jar'
+  providedCompile 'org.springframework:spring-aop:4.3.20.RELEASE@jar'
   compile 'aopalliance:aopalliance:1.0@jar'
 	     
   // Testing