private void processAllParticipants()
	{
		user_messages = new HashMap<String,String>();
		//reset checks
		room_bot.current_standup_user = null;
		room_bot.did_user_speak = false;
		room_bot.did_user_say_anything = false;
		HipchatUser next_user = null;
		StringBuilder sb = new StringBuilder();
		while ( (next_user = room_bot.getNextStandupUser()) != null )
		{			
			sb.append("Your turn @" + next_user.getMentionName());
			hippy_bot.sendMessage(sb.toString(), room_bot.current_room);
			sb = new StringBuilder();
			long start_time = System.currentTimeMillis(); //for tracking timeout
			
			//block while we wait for timer to end or user to speak
			while ( (System.currentTimeMillis() - start_time) < (room_bot.bot_data.max_secs_between_turns*1000L) &&
					!room_bot.did_user_speak )
			{
				//sleep for a few, then check again
				try
				{					
					Thread.sleep(200);
				} 
				catch (InterruptedException e)
				{					
					e.printStackTrace();
				}
			}
					
			long end_time = System.currentTimeMillis();
			if ( room_bot.did_user_speak )
			{
				//user ended his standup by speaking
				sb.append("Thanks " + Utils.getFirstName(room_bot.current_standup_user.getName()) + "! ");
			}
			else if ( room_bot.did_user_say_anything )
			{
				//user said something but not correct format
				sb.append(Utils.getFirstName(room_bot.current_standup_user.getName()) + " spoke but didn't say terminating word, burned on a technicality! ");
			}
			else
			{
				//user timeout
				sb.append(Utils.getFirstName(room_bot.current_standup_user.getName()) + " must be sleepy! ");
			}
			user_time_ran.put(room_bot.current_standup_user.getMentionName(), end_time-start_time);
			StringBuilder builder = new StringBuilder();
			for ( String s : room_bot.current_standup_user_messages)
				builder.append(s).append(" ");
			user_messages.put(room_bot.current_standup_user.getMentionName(), builder.toString());			
			
			//reset checks
			room_bot.current_standup_user = null;
			room_bot.did_user_speak = false;
			room_bot.did_user_say_anything = false;
		}
		
		//once we get here everyone has gone, display stats
		sb.append("That's everyone!");				
		sb.append("\nRuntime stats:");
		for ( Map.Entry<String, Long> entry : user_time_ran.entrySet() )
		{
			double run_time = (entry.getValue())/1000.0;
			sb.append("\n@" + entry.getKey() + ": " + run_time + "s");
		}
		for ( Map.Entry<String, String> entry : room_bot.users_early_standup.entrySet() )
		{
			sb.append("\n@" + entry.getKey() + ": 0s (early standup)");
		}
		//handle user messages for summary
		createSummary();
		room_bot.users_early_standup.clear();
		hippy_bot.sendMessage(sb.toString(), room_bot.current_room);
		room_bot.endStandup();				
		hippy_bot.sendMessage("/quote SUMMARY:\n" + room_bot.summary, room_bot.current_room);
	}