diff --git a/bigbluebutton-html5/app/client/main.coffee b/bigbluebutton-html5/app/client/main.coffee
index fcf6140e8070ba1336528addeeeb7df506f881a3..adbd40686db73e4c763a0dbab29d59ce2821f4ff 100755
--- a/bigbluebutton-html5/app/client/main.coffee
+++ b/bigbluebutton-html5/app/client/main.coffee
@@ -64,8 +64,6 @@ displayAudioSelectionMenu = ({isMobile} = {}) ->
 
   if isMobile
     toggleSlidingMenu()
-
-  if isMobile
     $('.navbarTitle').css('width', '55%')
 
   # pop open the dialog allowing users to choose the audio options
@@ -73,9 +71,15 @@ displayAudioSelectionMenu = ({isMobile} = {}) ->
     $('.joinAudio-dialog').addClass('landscape-mobile-joinAudio-dialog')
   else
     $('.joinAudio-dialog').addClass('desktop-joinAudio-dialog')
+
   $("#joinAudioDialog").dialog("open")
 
 
+# helper function to reuse some code for the handling of audio join
+onAudioHelper = () ->
+  displayAudioSelectionMenu(isMobile: isMobile())
+
+
 # Helper to load javascript libraries from the BBB server
 loadLib = (libname) ->
   successCallback = ->
@@ -113,7 +117,7 @@ Template.footer.helpers
 
 Template.header.events
   "click .joinAudioButton": (event) ->
-    displayAudioSelectionMenu(isMobile: false)
+    onAudioHelper()
 
   "click .chatBarIcon": (event) ->
     $(".tooltip").hide()
@@ -186,7 +190,7 @@ Template.header.events
 
 Template.slidingMenu.events
   'click .joinAudioButton': (event) ->
-    displayAudioSelectionMenu(isMobile: true)
+    onAudioHelper()
 
   'click .chatBarIcon': (event) ->
     $('.tooltip').hide()
@@ -315,7 +319,7 @@ Template.main.rendered = ->
     toggleSlidingMenu()
 
   if Meteor.config.app.autoJoinAudio
-    displayAudioSelectionMenu(isMobile:isMobile())
+    onAudioHelper()
 
 Template.makeButton.rendered = ->
   $('button[rel=tooltip]').tooltip()
diff --git a/bigbluebutton-html5/app/server/user_permissions.coffee b/bigbluebutton-html5/app/server/user_permissions.coffee
index e6d2e737f45f90a28118779fc772cec611bbf384..4fa41864fb73b0765335db87bc881f3c58ac4f63 100755
--- a/bigbluebutton-html5/app/server/user_permissions.coffee
+++ b/bigbluebutton-html5/app/server/user_permissions.coffee
@@ -4,9 +4,13 @@ presenter = null
 # holds the values for whether the moderator user is allowed to perform an action (true)
 # or false if not allowed. Some actions have dynamic values depending on the current lock settings
 moderator =
-  # listen only
-  joinListenOnly: true #should make this dynamically modifiable later on
-  leaveListenOnly: true #should make this dynamically modifiable later on
+  # audio listen only
+  joinListenOnly: true
+  leaveListenOnly: true
+
+  # audio listen and speak
+  joinAudioWithMic: true
+  leaveAudioWithMic: true
 
   # raising/lowering hand
   raiseOwnHand : true
@@ -32,8 +36,12 @@ moderator =
 viewer = (meetingId, userId) ->
 
   # listen only
-  joinListenOnly: true #should make this dynamically modifiable later on
-  leaveListenOnly: true #should make this dynamically modifiable later on
+  joinListenOnly: true
+  leaveListenOnly: true
+
+  # audio listen and speak
+  joinAudioWithMic: false
+  leaveAudioWithMic: false
 
   # raising/lowering hand
   raiseOwnHand : true