Call Queues

Automatic call distribution with real-time agent and queue statistics

Call queues distribute incoming calls to a pool of agents (extensions) using configurable strategies. Callers hear hold music and position announcements while waiting for the next available agent.

Distribution Strategies

StrategyDescription
round_robinRotate through agents in order
longest_idleCall goes to agent idle the longest
fewest_callsCall goes to agent with fewest calls today
randomRandom agent selection

List Queues

GET/v1/pbx/call-queues

List all call queues

Requires:pbx:queues:read
curl -X GET "https://api.do.dev/v1/pbx/call-queues" \
  -H "Authorization: Bearer do_live_your_key_here"
{
  "queues": [
    {
      "id": "q_sales",
      "name": "Sales Queue",
      "strategy": "longest_idle",
      "agents": ["ext_101", "ext_102", "ext_103"],
      "maxWaitTime": 300,
      "maxQueueSize": 20,
      "wrapUpTime": 15,
      "activeCalls": 2,
      "waitingCallers": 1
    }
  ]
}

Queue Configuration

Queue Settings

namestringrequired
Display name for the queue
strategystringrequired
Distribution strategy (see table above)
agentsstring[]required
Array of extension IDs as queue members
maxWaitTimenumber
Maximum wait time in seconds before overflow. Default: 300
maxQueueSizenumber
Maximum callers in queue. Default: 20
wrapUpTimenumber
Seconds after a call before agent receives next. Default: 15
joinMessagestring
TTS message played when caller enters queue
holdMusicIdstring
Custom hold music track ID
announcePositionboolean
Announce queue position to waiting callers. Default: true
announceWaitTimeboolean
Announce estimated wait time. Default: false

Real-Time Statistics

The queue stats endpoint returns live metrics:

GET/v1/pbx/call-queues/stats

Get real-time queue statistics

Requires:pbx:queues:read
{
  "stats": {
    "totalQueues": 3,
    "totalAgents": 12,
    "totalWaiting": 4,
    "totalActive": 8,
    "averageWaitTime": 45
  }
}