Paging groups, ring groups & call park
Orbit ships three sibling primitives under Voice for distributing calls to a group of people or devices. They solve different problems — pick the one that matches how the call should be handed off.- Paging group — one-way broadcast. You dial the group’s extension, speak, and every member’s phone plays your voice over its speaker. No ringing, no answering, no return channel.
- Ring group — call distribution. An inbound call rings members of a hunt list using the strategy you pick, and the first member to answer owns the call.
- Call park — personal call hand-off. Put a live caller into a numbered slot on hold, then retrieve them from any other phone or softphone by dialling the slot.
Which one do I use?
You can combine them: a common pattern is a ring group that falls
back to voicemail on no answer, while the front desk pages “call
parked on 1” for live calls that need a human hand-off.
Paging groups
A paging group is a named set of devices and extensions that all play an announcement the moment you dial the group.Create a group
- Open Voice → Paging groups and click Create paging group.
- Give it a name and an extension (the number staff dial to page).
- Add members in the members editor: pick SIP extensions (deskphones and softphones receive a direct page call that auto-answers on supported hardware) and/or users (team members who receive the page as an in-app notification).
- Save. Dialling the extension from any registered device starts the page immediately.
Simplex vs duplex
Paging groups run in two modes:- Simplex (members listen only) — the classic overhead page. The caller speaks, members hear it, members cannot talk back. This is the default and the right choice for announcements.
- Duplex (talk-back) — the members editor accepts a duplex mode for intercom-style groups. Desk phones currently still receive the one-way announcement when a duplex page fires (they ring and play the message); the full talk-back bridge is a follow-on. Treat duplex as a softphone-side capability for now.
How a page reaches a phone
Orbit pages each member with a direct SIP call to that member’s registered device (unicast delivery). Phones that support auto-answer pick up in milliseconds and play the announcement straight off the speaker after an optional chime; phones that do not ring normally and play the message once someone answers. SIP multicast paging is not part of this feature — every page is one call per member, so keep group sizes sane (tens of members, not thousands).Page from a phone
Dial the group extension from a registered deskphone or the Orbit softphone, speak, hang up. There is no answer step — the page starts as soon as the group picks up.A page never rings. If members need to react to the announcement
with a call, combine paging with call park (“call parked on 1”) so
anyone can retrieve it.
Ring groups
A ring group is a hunt list: one extension or DID routes into the group, and members ring according to the group’s strategy until someone answers or the ring timeout expires.Strategies
Pick the strategy per group under Voice → Ring groups → Create ring group:Ring timeout and fallback
Set the ring timeout (5–300 seconds) per group. When it expires with no answer, the call falls through to the route’s fallback — typically voicemail, or the next rule on the inbound route (queue, IVR, hang-up). Configure that fallback on the route that points at the ring group, not on the group itself. A route with no fallback hangs the caller up; always give inbound routes a voicemail target.Members and presence
Add members in the members editor: SIP extensions (existing or created inline), raw external numbers, or another ring group as a nested member. A member whose status is Do not disturb (set under Voice → Presence) is skipped during ringing; their phone does not ring and the strategy moves to the next available member. When a member answers, the other legs cancel immediately.Call park
Call park holds a live caller in a numbered slot so any phone can pick the call back up. Think of it as shared hold with an address: park the call on slot 1, walk to another room, dial slot 1, keep talking.Park a call
From an active call in the Orbit softphone, choose Park — the call moves into a numbered slot and you hear the slot number. On a deskphone, your administrator maps a park key per slot (or a park feature code) — pressing it parks the caller and confirms the slot.Retrieve a parked call
- From the softphone: open Voice → Parked calls, pick the call, choose Retrieve. The caller bridges onto your phone.
- From any deskphone or softphone: dial the slot’s retrieval code (e.g. the slot number) — the held caller connects to you.
- Release on the Parked calls page drops the held caller — use it only when the caller should be disconnected.
Timeouts
A parked call does not hold forever. Two tenant-configurable limits govern the lifecycle (set per queue under your ACD queue settings):- Recall ringback (default 30 seconds) — at this threshold the parking agent’s softphone rings back and the dashboard shows the slot as recalled. The call stays parked; the agent still has time to retrieve it.
- Maximum park duration (default 300 seconds) — at this hard cap the slot is released automatically, the dashboard clears it, and the caller is disconnected. The slot frees up for the next park.
Example topologies
Retail store — page + park
- Create a paging group “Store floor” in simplex mode containing every floor phone.
- Map park slots 1–4 on the desk phones.
- A call for a floor associate arrives → the front desk parks it on slot 1 → dials the paging group and announces “Call for produce on 1” → the associate dials slot 1 from any floor phone.
Clinic front desk — ring group + park during a call
- Create a ring group “Front desk” with strategy Simultaneous, ring timeout 20 seconds, and the route’s fallback pointing at voicemail.
- Reception staff are members; anyone on shift answers inbound calls.
- When a receptionist needs the nurse’s desk to take over mid-call, they park the caller on a free slot and page “patient call on 2” — the nurse’s desk dials slot 2 and picks up the conversation without a transfer-on-hold dance.
Troubleshooting
The page plays on some phones but not others. Members whose status is Do not disturb, or whose devices are not registered, do not receive the page. Check device registration and each member’s presence. Ring group rings nobody. The group has no available members — either the members editor is empty or every member is on Do not disturb. Add members or clear presence states. Caller’s ring group call falls to voicemail immediately. A member answered and hung up, or the ring timeout is set too low. Raise the timeout (up to 300 s) and review the fallback target. Parked call “called back” the front desk after ~30 seconds. That is the recall ringback working as designed — the caller sat in the slot past the recall threshold. Retrieve calls promptly, or spot them early on the Parked calls page, which shows a live “parked for” counter per slot. After the maximum park duration (default 300 s) the slot releases on its own. A new park fails with a slot-occupied error. Only 9 slots exist per organization. Either pick a different slot, release an expired one from Voice → Parked calls, or let the automatic expiry free it. The Parked calls page shows every occupied slot plus how long it has been held. Retrieve dials the slot and gets nothing. The call was already retrieved or released by another operator — the Parked calls page is a shared lobby. The call detail record shows who took it. Strategy saved but calls still ring everyone at once. You saved a strategy that was not yet implemented. Edit the group and pick an implemented strategy (the dropdown disables unimplemented ones) — saving is blocked until you do.Manage via API
Everything the dashboard does below is also exposed over the REST API, so automation and integrations that do not use the dashboard can manage groups and parked calls directly. All routes are tenant-scoped and take the standardX-API-Key header (or a Clerk session token from the
dashboard). Responses use the standard envelope (data + meta) shown
in the examples.
Paging groups — /api/v1/voice/paging-groups
Create a group. members[].kind is sip_username (a device that
receives a direct page call) or user_id (receives an in-app
notification). mode is simplex (one-way, the default) or duplex
(talk-back).
cURL
201 Created carries the new group in the standard envelope:
cURL
GET /:id reads a single group; PATCH /:id takes any subset of the
create fields (a members array, when present, replaces the whole
list); DELETE /:id removes it and answers 204 No Content. An
unknown id returns 404. A duplicate group name returns 409.
Trigger a page (also POST /:id/page). Members set to Do not
disturb under Voice → Presence, and unregistered SIP devices, are
skipped — the response counts what actually got paged:
cURL
Ring groups — /api/v1/voice/ring-groups
strategy is one of simultaneous, sequential, round_robin,
longest_idle, fewest_calls. members[].kind is sip_username,
pstn (E.164 with a leading +), or ring_group (nest another
group’s id — cycles and self-references are rejected with 422).
cURL
201 Created carries the group (snake-case wire fields, same as the
rest of /voice/*) plus a non-blocking warnings array — e.g. a PSTN
number already carried by another group:
cURL
Parked calls — GET /api/v1/voice/park
Every organization gets 9 park slots, no more — that cap is
enforced by the API. Park (the caller goes on hold in the slot and the
response tells you which slot), list, retrieve by slot, and release:
cURL
slot to auto-pick the lowest free one. A full set returns 409 Conflict — pick another slot or release one first.
cURL
POST /api/v1/voice/park/retrieve with { "slot": 1 } claims the
call; POST /api/v1/voice/park/:id/release disconnects it. Retrieve on
an empty slot returns 404; a slot someone already took returns 410 Gone. The list above is a shared lobby — every operator with the
voice role sees every parked call.