The main number rang six desk phones at once for a month, and then on a busy Monday two customers said they had called and never reached anyone. Now someone has to decide, in the admin portal, between a ring group and a call queue, and the call queue vs ring group question turns out to be less about features than about what happens to a caller nobody can answer right now.
The short version is that a ring group decides which phones ring. A queue decides that, and also decides where a caller waits, for how long, and where they go when nobody picks up.
What does a ring group actually do?
A ring group takes one incoming call and presents it to several extensions according to a ring strategy. 3CX describes the split plainly: ring groups allow you to route calls concurrently or sequentially to multiple extensions, while queues allow you to keep callers in a queue if all agents are busy until an agent is available.
In 3CX, a ring group gives you two strategies:
- Ring All rings all members simultaneously until a member picks up or until the Ring Time is reached.
- Prioritized Hunt rings members sequentially from the top of the list downwards, and for each call the first member called is the one at the top.
The ring group's Ring Time defaults to 20 seconds in 3CX, after which the call is considered unanswered and goes to the destination you set.
Microsoft Teams has no object named a ring group. The closest thing is a call group, set up through call sharing and group call pickup. Its limits: a user can only own one call group, each call group can have up to 25 users, and a user can be a member of up to 25 call groups. The ring order is either Everyone at once or In the order below, but the sequential option only exists for small groups. If you add more than five members, the ring order automatically switches to Everyone at once. Admins turn the feature on with the AllowCallGroups setting in the Teams calling policy, and can configure groups with Set-CsUserCallingSettings.
What does a call queue add?
Microsoft's planning overview calls a queue analogous to a waiting room in a physical building, where callers wait on hold while calls are routed to the representatives.
More ways to choose who rings
Teams call queues offer four routing methods. Attendant routing rings everyone at the same time. Serial routing rings representatives one by one in list order, and if one dismisses or misses the call it moves to the next. Round robin balances calls so each representative gets the same number. Longest idle routes to the representative who has been idle the longest, where idle means a presence of Available. Microsoft recommends Round robin or Longest idle.
3CX queues add Hunt Random Start, Round Robin, Longest Waiting, Least Talk Time, Fewest Answered and two Hunt by Threes variants on top of the two ring group strategies. Asterisk lists ringall (the default), leastrecent, fewestcalls, random, rrmemory, rrordered, linear and wrandom in its sample queues.conf. A queue can spread the work fairly, which a ring group that always starts at the top of the list cannot.
Agents who are in or out
A queue knows whether a person is working it. In 3CX, queue members must be logged into a queue to answer calls. In Teams, you choose whether representatives can opt out of taking calls, and Microsoft recommends turning that option on. Teams also offers presence-based call routing: only representatives whose status is Available are included in the routing list, and anyone in any other status is skipped until they change back.
What the caller hears and how long they wait
A queue can play a greeting, typed as text-to-speech up to 1,000 characters or uploaded as an MP3, WAV or WMA file, followed by hold music. 3CX can also announce queue position or estimated wait time at an interval you set. Teams lets you cap the queue: Maximum calls in the queue defaults to 50 and can range from 0 to 200, and Call Timeout: maximum wait time can be set from 0 seconds to 45 minutes. A separate Agent alert time controls how long one representative's phone rings before the queue moves on, with a minimum of 20 seconds recommended.
Exception handling
Teams handles three exceptions separately: Overflow when the maximum number of calls is reached, Call timeout when a caller has waited too long, and No Agents Opted/Logged In. Each can disconnect the call or redirect it to another destination, such as a person, voicemail, another queue or an auto attendant. Teams queues also support callback, where eligible callers can ask to be called back when a representative becomes available.
What happens when nobody answers?
In a ring group, the answer is a single unanswered destination after the ring time. In 3CX you can also set different destinations for out of office hours, break hours and holidays. In a Teams queue, the answer depends on which exception fired.
Voicemail is where the answer most often goes, and it deserves its own decision. Teams shared voicemail is delivered to a group, so any member can access the message. Where the message lands depends on the group type. With a Microsoft 365 group, shared voicemails are delivered to the group's associated folder. With a distribution list or a mail-enabled security group, each user receives a copy in their own Outlook Inbox. Only members of the designated group can access the shared voicemail.
Teams queues also have no clock of their own. Microsoft states that call queues don't provide separate call routing for off hours and holidays, and recommends putting an auto attendant in front of the queue even when it is staffed around the clock.
A worked example: a 12-person office
Take a 12-person property management office on Teams Phone. One person staffs the front desk, three people form a service team that handles maintenance requests, and the other eight are managers and accounting staff who take calls only when they choose to.
The main number goes to an auto attendant, since queues have no business hours of their own. The menu offers service on one key and the front desk on another, with the front desk as the operator.
The front desk is not a queue. It is one person with a call group behind her: two managers in a fixed order, which works because the group is well under five members. Her call answering rule rings her devices and uses Group call pickup under If unanswered. One detail needs checking with each member in person: if you're a member of a call group, call group notifications are off by default, and each member turns them on in the Calls app. Call the main number and let it roll to the group before calling the setup finished.
The service team is a queue. Three representatives are added individually, well inside the limit of 20 individual users. Routing is Round robin with presence-based routing on and opt-out allowed, so the person on a site visit can step out without leaving the queue. Agent alert time is 20 seconds. The Timeout and No Agents exceptions both go to a shared voicemail.
That shared voicemail uses a Microsoft 365 group containing only the three service staff, created in the Microsoft 365 admin center with a mailbox and Teams support. Microsoft recommends a separate shared voicemail group for each queue or auto attendant, because everyone in a shared group can manage every message in it.
Where does this go wrong?
The two timers fight
A queue has a per-agent ring time and a total wait time, and they interact. The Asterisk sample configuration spells this out: the timeout in queues.conf is how long a member's phone rings, while the timeout argument to the Queue application is how long the caller may stay in the queue. With a 5 second member timeout, a 4 second retry and a 10 second queue limit, the second member's phone rings for either 5 seconds or 1 second, depending on timeoutpriority, whose default is app. Teams has the same pair in Agent alert time and Call timeout. Where the total wins and is short relative to the per-agent ring, the later names on a Serial routing list barely ring at all.
Callback that is never offered
Microsoft gives a configuration that looks right and fails: callback after 60 seconds in queue, a call queue timeout of 120 seconds, and default music. Because the default music is two minutes long, the call queue timeout occurs first and callback is never offered. Callback is offered only after the music finishes, so the timeout has to cover eligibility, the music, the request and the wait for an agent.
Presence-based routing with nobody Available
With presence-based routing on, a representative in a meeting or set to Busy is excluded from the routing list. But the No Agents exception, with presence-based routing on, fires only when no representatives are logged in or all are in Appear Offline. If representatives are logged in or opted in, calls are queued. So when all three service staff are in the same meeting, the No Agents voicemail does not trigger. The caller waits on hold until Call timeout, which is a good reason to keep that timeout reasonable and point it at the same voicemail.
Voicemail in a folder nobody opens
A Microsoft 365 group delivers shared voicemail to the group's folder, not to anyone's Inbox, and you can't apply mail rules to group folders. Groups created in Teams can also have their mailbox hidden by default; Microsoft's fix is Set-UnifiedGroup with -HiddenFromExchangeClientsEnabled:$false. If the team lives in its Inbox, either use a distribution list or have each member set the group to send a copy to their Inbox.
Slow changes and silent group limits
New users added to a group can take up to eight hours for their first call to arrive, and a queue built on a Teams channel can take up to 24 hours to be fully operational. If a group has more than 200 members, only the first 200 enterprise voice enabled members, in alphabetical order, become representatives.
The decision rule
Use a ring group or call group when the job is to make a few phones ring and accept that a call nobody answers within the ring time goes straight to the unanswered destination: up to five people in a fixed order, up to 25 at once. Use a call queue as soon as callers should wait instead of being sent away, as soon as the people answering need to step in and out, or as soon as the work should be shared fairly. Whichever you pick, decide in writing where an unanswered call ends up, and test that someone actually sees it there.
