diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index 6cd7faee7dddad4ed8b2592875abea04c700c01b..e8a664a5375aef7a1ba8b8ba1e0c4d5a8f07ebe3 100644
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -254,6 +254,16 @@ static const char *descrip3 =
 "      'M' -- Mute conference\n"
 "      'n' -- Unmute entire conference (except admin)\n"
 "      'N' -- Mute entire conference (except admin)\n"
+"      'r' -- Reset one user's volume settings\n"
+"      'R' -- Reset all users volume settings\n"
+"      's' -- Lower entire conference speaking volume\n"
+"      'S' -- Raise entire conference speaking volume\n"
+"      't' -- Lower one user's talk volume\n"
+"      'T' -- Lower all users talk volume\n"
+"      'u' -- Lower one user's listen volume\n"
+"      'U' -- Lower all users listen volume\n"
+"      'v' -- Lower entire conference listening volume\n"
+"      'V' -- Raise entire conference listening volume\n"
 "";
 
 struct ast_conference {
@@ -2276,9 +2286,8 @@ static int admin_exec(struct ast_channel *chan, void *data) {
 			case 77: /* M: Mute */ 
 				if (user) {
 					user->adminflags |= ADMINFLAG_MUTED;
-				} else {
+				} else
 					ast_log(LOG_NOTICE, "Specified User not found!\n");
-				}
 				break;
 			case 78: /* N: Mute all (non-admin) users */
 				AST_LIST_TRAVERSE(&cnf->userlist, user, list) {
@@ -2289,9 +2298,8 @@ static int admin_exec(struct ast_channel *chan, void *data) {
 			case 109: /* m: Unmute */ 
 				if (user) {
 					user->adminflags &= ~ADMINFLAG_MUTED;
-				} else {
+				} else
 					ast_log(LOG_NOTICE, "Specified User not found!\n");
-				}
 				break;
 			case 110: /* n: Unmute all users */
 				AST_LIST_TRAVERSE(&cnf->userlist, user, list)
@@ -2303,6 +2311,56 @@ static int admin_exec(struct ast_channel *chan, void *data) {
 				else
 					ast_log(LOG_NOTICE, "Specified User not found!");
 				break;
+			case 118: /* v: Lower all users listen volume */
+				AST_LIST_TRAVERSE(&cnf->userlist, user, list)
+					tweak_listen_volume(user, VOL_DOWN);
+				break;
+			case 86: /* V: Raise all users listen volume */
+				AST_LIST_TRAVERSE(&cnf->userlist, user, list)
+					tweak_listen_volume(user, VOL_UP);
+				break;
+			case 115: /* s: Lower all users speaking volume */
+				AST_LIST_TRAVERSE(&cnf->userlist, user, list)
+					tweak_talk_volume(user, VOL_DOWN);
+				break;
+			case 83: /* S: Raise all users speaking volume */
+				AST_LIST_TRAVERSE(&cnf->userlist, user, list)
+					tweak_talk_volume(user, VOL_UP);
+				break;
+			case 82: /* R: Reset all volume levels */
+				AST_LIST_TRAVERSE(&cnf->userlist, user, list)
+					reset_volumes(user);
+				break;
+			case 114: /* r: Reset user's volume level */
+				if (user)
+					reset_volumes(user);
+				else
+					ast_log(LOG_NOTICE, "Specified User not found!");
+				break;
+			case 85: /* U: Raise user's listen volume */
+				if (user)
+					tweak_listen_volume(user, VOL_UP);
+				else
+					ast_log(LOG_NOTICE, "Specified User not found!");
+				break;
+			case 117: /* u: Lower user's listen volume */
+				if (user)
+					tweak_listen_volume(user, VOL_DOWN);
+				else
+					ast_log(LOG_NOTICE, "Specified User not found!");
+				break;
+			case 84: /* T: Raise user's talk volume */
+				if (user)
+					tweak_talk_volume(user, VOL_UP);
+				else
+					ast_log(LOG_NOTICE, "Specified User not found!");
+				break;
+			case 116: /* t: Lower user's talk volume */
+				if (user) 
+					tweak_talk_volume(user, VOL_DOWN);
+				else 
+					ast_log(LOG_NOTICE, "Specified User not found!");
+				break;
 			}
 		} else {
 			ast_log(LOG_NOTICE, "Conference Number not found\n");