The answer, as always, is: "it depends on the environment".

Generally speaking, if you run a call center that is not very small or has just a couple of queues (eg an internal support line), the allocation of agents to queues should be decided on a capability model by the supervisors, and not by each agent logging on to queues when they feel like.
This is the model that the TrixBox tutorial version 2 shows; instead of setting static extensions for each queue, that has the disadvantage of * trying to call agents even if they're not there, the log-in model lets agents just say "I'm ready", and then the supervisors set on which queues each agent works on. This has the extra benefit that as agents log in telling * from which extension they are working from, an agent can easily switch seats and still be correctly available when needed.
This is what we usually suggest; this model works good and scales well for inbound call-centers with 5+ agents.