Docs / Call handling
Call centre
A call queue lets callers wait in line, with hold music and announcements, until an agent is free. This chapter covers creating queues, choosing how agents are picked, agents logging in and pausing, what callers hear, VIP numbers, callbacks, the live wallboard, supervisors listening in, and the queue reports.
How a queue works
A queue is a number in Extensions & numbers, like an extension or a ring group. Calls reach it from a phone number (DID), an auto attendant option, a business-hours switch or by dialling it inside the company. When a call arrives:
- The queue answers the call and the caller hears the tenant's hold music.
- The queue rings a free agent, chosen by the queue's strategy. If that agent does not answer in time, it tries the next one.
- While the caller waits, the queue can tell them their place in line and the expected wait, and play your own announcement.
- If nobody answers before the longest wait runs out, if the queue is full, or if no agent is logged in, the call goes to the queue's overflow destination (another number, a voicemail box, or hang up).
Agents are user extensions of the same tenant. A queue call rings only the agent's phones: it never goes to the agent's voicemail and does not follow their call forwarding. An agent who is already on a call is skipped, and an agent on do not disturb counts as busy.
Creating a queue
To create a queue:
- Open Extensions & numbers and click Add.
- Choose Call queue.
- Enter the Number (2 to 8 digits; the console suggests the next free number from 650) and a Name, for example 650 "Support line".
- Fill in the settings described below. You can change all of them later.
- Click Create call queue. The console opens the new queue's page.
To change a queue later, open it from Extensions & numbers (the Queues tab lists them), change the settings and click Save. Calls use the new settings right away. To remove it, click Delete call queue at the top of its page.
A queue that callers cannot reach is not much use: send a phone number to it under Phone numbers (DIDs), or make it an option of an auto attendant. See Phone numbers and routes and Auto attendants, opening hours and prompts.
Queue settings
| Setting | What it does | Range and default |
|---|---|---|
| How agents are picked | The strategy; see the next section. | Default Take turns (round robin) |
| Agents (penalty 0 rings first) | The agents, their penalty and whether they are always in. | Up to 200 agents |
| Ring an agent for | Seconds a phone rings before the queue tries the next agent. | 5-120, default 20 |
| Wait between rounds | Pause before the queue starts another round of ringing. | 1-60 seconds, default 5 |
| Wrap-up time | Seconds after a call before the agent gets the next one. | 0-600, default 10 |
| Longest wait | After this many seconds the caller goes to the overflow. 0 = no limit. | 0-14400, default 600 |
| Most callers waiting | Callers beyond this number go straight to the overflow. 0 = no limit. | 0-500, default 0 |
| Service level | Answered within this many seconds counts as on target (wallboard and reports). | 5-600, default 20 |
| Tell callers their place in line | Announces the caller's position. | On by default |
| Tell callers the expected wait | Announces the expected hold time. | Off by default |
| Repeat that every | How often the position and wait announcements repeat. 0 = never. | 0 or 15-1200 seconds, default 60 |
| Announcement while waiting | One of the tenant's prompts, played to waiting callers. | None by default |
| Play it every | How often that announcement plays. 0 = never. | 0 or 15-1200 seconds |
| Name prefix | Text put in front of the caller's name on the agent's phone, such as "Support: ". | Up to 20 characters |
| When the wait ends or nobody can answer | The overflow destination. | Default Hang up |
Below the table fields are three more check boxes:
- Let callers wait even when no agent is logged in (otherwise they go to the overflow right away). Without it, a caller who arrives when every agent is logged out, paused or has an offline phone goes to the overflow at once, and callers already waiting leave for the overflow when the last agent logs out or their phone goes offline.
- Record calls answered from this queue. See Recording queue calls.
- Callers may press 1 to hang up and be called back, with Dial callbacks with prefix. See Callbacks.
The announcement while waiting has to be uploaded first, under Prompts & hold music as a prompt. The hold music callers hear is the tenant's hold music from the same page.
How agents are picked
| Console choice | What happens |
|---|---|
| Take turns (round robin) | Agents get calls in turn; the queue remembers who was last. |
| Ring every free agent at once | Every free agent's phone rings; the first to answer gets the caller. |
| Agent who finished a call longest ago | Spreads the work by idle time. |
| Agent with the fewest calls | The agent who has taken the fewest queue calls gets the next one. |
| Any free agent at random | A random free agent. |
| Always in the listed order | Always starts at the top of the agent list. |
Agents and penalties
Each agent row has three parts: the extension, a penalty from 0 to 10, and an Always in box. Click Add an agent for another row and the cross at the end of a row to remove it. Only user extensions of the tenant can be agents, and each one can be listed once.
- Penalty: agents with penalty 0 ring first. Agents with a higher penalty only get calls when every agent with a lower penalty is busy, paused or away. Use it for backup staff: the help desk at 0, the team leader at 5.
- Always in (static agents): the agent is always taking calls and never needs to log in. They can still pause.
- Agents without Always in are log-in agents: they get queue calls only after logging in.
Agents logging in and pausing
Log-in agents start their shift by logging in, and anyone can pause for a break.
| Code | What it does |
|---|---|
*45 | Log in to every queue you are a log-in agent of. Dial it again to log out of all of them. |
*46 | Pause in all your queues (queue calls skip you). Dial it again to resume. Works for always-in agents too. |
The phone confirms with a short announcement. If the extension is not a log-in agent of any queue (for *45), or is not in any queue right now (for *46), it hears "invalid". A log-in stays in place until the agent logs out, also across a restart of the server. An agent who logs in at a hot desk with *55 logs in to queues as themselves.
Agents can do the same in the user portal: the My queues card appears for anyone who is an agent of at least one queue. It lists their queues, shows whether they are logged in and how many callers are waiting, and has Log in / Log out and Pause / Resume buttons. See The user portal.
An administrator can log agents in and out and pause them from the wallboard (next section).
Wrap-up
After each queue call, the agent gets no new queue call for the Wrap-up time. The wallboard shows them as Wrap-up during that time. Set it to the time people need to finish their notes; 0 sends the next call at once.
The wallboard
Open Call centre in the sidebar. The wallboard shows each queue as it is right now and refreshes every 3 seconds.
Each queue has a card with:
- The queue number and name (click it to open the queue's settings) and a line for today: answered calls out of the callers who reached the queue, how many hung up while waiting, and how many went to the overflow. "Today" starts at midnight in the tenant's time zone.
- Waiting now, Longest wait (shown in red once it passes the queue's service level), Agents free (with how many are busy and paused) and "Answered within 20s today" (with the queue's own service level): the share of today's callers answered on target.
- One chip per waiting caller: place in line, name or number, and how long they have waited.
- To call back: the open callback requests, if any (see Callbacks).
- The agent table: Agent (with "Always in" or "Logs in with
*45" under the name), Status, Calls taken, Last call and buttons.
The agent statuses are:
| Status | Meaning |
|---|---|
| Available | Logged in, free, phone online. |
| Ringing | A queue call is ringing their phone. |
| On a call | Busy on a call (queue or not). |
| Wrap-up | Finished a queue call less than the wrap-up time ago. |
| Paused | Paused; a pause from the phone shows the reason "Break". |
| Logged out | A log-in agent who is not logged in. |
| Phone offline | An always-in agent whose phones are not registered, or a logged-in agent whose phone went offline. |
The buttons on each agent row act for the agent: Log in / Log out (log-in agents only; it logs them in or out of all their queues, exactly like *45) and Pause / Resume (when they are logged in; like *46). Use them when someone forgot to log out at the end of the day.
If a red notice says the call engine is not connected, the picture is out of date until the engine is back. The wallboard is a console page, so the person watching it needs a console sign-in for the tenant (a tenant administrator).
What callers hear and priority
Announcements
With Tell callers their place in line on, callers hear their position when they join and again every Repeat that every seconds. Tell callers the expected wait adds the estimated hold time. For your own message ("Thank you for calling Acme Dental, your call is important to us", or "press 1 to be called back"), upload a prompt, choose it under Announcement while waiting and set Play it every.
Caller priority per phone number (VIP lines)
Callers who dialled a particular phone number can go ahead of everyone else waiting in any queue they reach. Set it when you route the number:
- Open Phone numbers (DIDs) and click Route a number.
- Choose the queue (or an auto attendant in front of it) under Send calls to.
- Under Place in queues, choose Normal, Higher, High or First in line.
- Click Route this number.
The routes list shows the setting as a "Queue priority" badge. A caller with a higher priority is answered before callers with a lower one, whatever their place in line; callers of equal priority keep their order. The priority is set when the number is routed: to change it, remove the route and route the number again.
Callbacks (press 1)
A queue can offer callers a callback instead of waiting.
To turn it on:
- Open the queue and tick Callers may press 1 to hang up and be called back.
- If your users dial a prefix for outside numbers (for example 9), enter it under Dial callbacks with prefix.
- Record a prompt that tells callers about the option ("Press 1 at any time and we will call you back"), and set it as the Announcement while waiting with a Play it every interval. Onyx Voice does not announce the option by itself.
- Click Save.
What happens:
- A waiting caller presses 1. They hear "thank you, goodbye" and the call ends. Their number (the caller ID they called from) is saved as a callback request. A second press from the same number for the same queue is not added twice.
- The server places callbacks only when nobody is waiting in that queue and at least one agent is free and not paused, so live callers always come first. It places one callback per queue at a time, oldest first.
- The queue rings a free agent first, ahead of anyone else. The agent's phone shows "Callback" and the caller's number.
- When the agent answers, the server dials the caller's number with the prefix, the way your users dial out (your outbound routes and call limits apply), with the tenant's main number as caller ID when the tenant has one.
If no agent answers within two minutes, that try failed. The server tries again two minutes later, up to three tries in all; after that the request is marked failed. A try counts as done once an agent answers, even if the caller then does not pick up, so agents should leave a message or note the number.
The wallboard lists open requests under To call back: with the number, how long ago it was requested (or "calling now") and the try number. Click the cross on a chip to cancel a request. onyx queue callbacks acme shows the latest 20 requests with their status (waiting, calling, done, failed or cancelled).
A caller who withholds their number cannot be called back. Callbacks dial the number as received from the carrier, so check that your outbound routes accept that format, with the prefix if needed.
Recording queue calls
With Record calls answered from this queue on, every call through the queue is recorded once an agent answers. The recording holds the conversation, not the time on hold. Recordings appear under Recordings and in Call history. Recording a person's extension does not record queue calls they answer; use this setting. See Call recordings.
Supervisors: listen, coach and join
A supervisor can listen to a call of another extension, coach the agent (only the agent hears the supervisor) or join the call (everyone hears everyone).
To make an extension a supervisor:
- Open the extension in Extensions & numbers.
- In Person and voicemail, tick the Supervisor box (its label goes on: "may listen in, coach or join calls in this company").
- Click Save.
From the command line: onyx ext set acme 120 --supervisor on.
Then, from one of the supervisor's own phones, dial the code followed by the extension to listen to:
| Code | Example | What it does |
|---|---|---|
*222 + extension | *222105 | Listen in silently. Neither side hears the supervisor. |
*223 + extension | *223105 | Coach: the agent hears the supervisor, the caller does not. |
*224 + extension | *224105 | Join: the supervisor talks to both. |
The supervisor hangs up to stop. There is no beep on the call, so check what your local law requires you to tell staff and callers about monitoring.
Who may supervise whom:
- A supervisor can listen to any extension in the same tenant, not only queue agents, and never to another tenant. There are no teams: every supervisor can reach every extension of the company.
- Only the supervisor's own phones carry the right. A call forwarded from the supervisor's phone does not, and a supervisor logged in at a hot desk with
*55has the right on that desk. - A phone that is not a supervisor's, or a target extension with no phones, hears "invalid".
Queue and agent reports
Open Call centre and click Reports at the top of the wallboard. The page is called Queue reports; its Wallboard button takes you back.
- Choose From and To dates (up to a year; the default is the last seven days).
- Click Show.
- Click Download CSV for the same period as a spreadsheet.
Dates and times are in the tenant's time zone.
The Queues table has, per queue:
| Column | Meaning |
|---|---|
| Offered | Callers who reached the queue. |
| Answered | Answered by an agent. |
| Hung up waiting | Callers who hung up before an agent answered. |
| Overflow | Callers sent to the overflow: the longest wait ran out, the queue was full, nobody was logged in, or they pressed 1 for a callback. |
| Service level | Answered within the queue's service level, out of the callers who got into the queue. |
| Wait (avg / max) | Waiting time of callers who got in. |
| Talk (avg) | Average length of answered calls. |
The Agents table has Answered, Talk time, Average call and Missed (a queue call rang the agent and nobody picked up) per agent.
The CSV has one row per queue and one per agent, with these columns:
type,number,name,offered,answered,abandoned,overflow,refused,service_level_pct,avg_wait_s,max_wait_s,avg_talk_s,talk_s,missed
type is queue or agent. In the CSV, overflow counts callers who waited and then left for the overflow, and refused callers who never got in (the queue was full or nobody was logged in); the console adds the two together.
Queues from the command line
onyx queue add acme 650 --name "Support line" --agents 101,102,103:2 --static 110 --strategy rrmemory \
--max-wait 300 --overflow vm:101 --callback --callback-prefix 9
onyx queue list acme
onyx queue callbacks acme
--agents lists log-in agents (a penalty after a colon), --static lists always-in agents. The other options are --agent-ring, --retry, --wrapup, --max-wait, --max-callers, --join-empty, --no-position, --hold-time, --announce-every, --service-level, --cid-prefix, --record, --overflow (vm:101, a number or hangup) and --callback with --callback-prefix. onyx queue list marks always-in agents with a star.
onyx queue settakes the same options asaddand replaces all of the queue's settings: anything you leave out goes back to its default, and the announcement while waiting is cleared (the command line cannot set it). Give every option you want to keep, or change the queue in the console.
See Command line (onyx) for the full list.
When it does not work
- Callers go straight to the overflow. No agent can take calls: everyone is logged out, paused or has an offline phone. Log someone in, or tick Let callers wait even when no agent is logged in.
- An agent never gets calls. Check the wallboard: a log-in agent shows Logged out until they dial
*45; a paused agent needs*46again; Phone offline means none of their phones is registered. - Calls ring the same agent every time. The strategy is Always in the listed order, or the other agents have a higher penalty.
- Callbacks never start. They wait until nobody is in the queue and an agent is Available. Check the request under To call back:, and that the number can be dialled out with the prefix you set.