Fewest or Least call algorithm should be improved so as to take into account the "Agent timeout" time. At the moment if a call is passed to an Agent that for some reasons (e.g. network problem or leave his position without set pause) doesn't answer it, the call will stay there till the "Max.Waiting time" strategy takes over. This means large delays in call handling, possible loose of calls, so the result will be unhappy customers.
So, the idea is no matter which Ring strategy is chosen, if the agent doesn't answer a call, Queue should pass to the next available agent according to the chosen strategy.
To avoid sending a call to this agent there should be Queue option, that will automatically place this agent on pause till he fixes the problem and manually set to unpause.