# Agent Statuses

> Contact-center agent statuses - Available, On call, Busy, Break with reasons, Wrap-up and Offline - and which ones receive calls.

Source: https://edesy.in/docs/contact-center/agents/statuses

Every contact-center agent has one status at a time: Available, On call, Busy, Break, Wrap-up or Offline. Only *Available* agents are offered queue calls. Agents choose Available, Busy or Break themselves; the system sets On call when they answer, Wrap-up when a call ends, and Busy (reason "ringing") while their browser rings.

## Status list

| Status | API value | Set by | Gets queue calls |
|---|---|---|---|
| Available | `available` | Agent | Yes |
| On call | `on_call` | System, when a call is answered | No |
| Busy | `busy` | Agent, or system while ringing | No |
| Break | `break` | Agent, with a reason | No |
| Wrap-up | `wrap_up` | System, when a call ends | No |
| Offline | `offline` | Sign-out | No |

## Break reasons

The desktop offers these reasons when an agent picks *Break*: Lunch, Tea Break, Bio Break, Training, Meeting, Personal. The reason is shown to supervisors and stored as `status_reason`.

## Status flow for one call

1. **Available.** The agent is waiting for a call.
2. **Busy (ringing).** The router has offered them a call.
3. **On call.** The agent answered.
4. **Wrap-up.** The call ended. The disposition dialog opens.
5. **Available.** The agent submitted the disposition, or skipped it.

If the agent does not answer while ringing, they go straight back to *Available*.

## Change status with the API

```bash
curl -X PATCH https://voice-api.edesy.in/v1/ccaas/agents/AGENT_ID/status \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"status": "break", "status_reason": "Training"}'
```

Every change is pushed live to supervisors and to the agent's own desktop as an `agent.status.change` event. See [WebSocket events](https://edesy.in/docs/contact-center/api/websocket-events).

## FAQ

### Why am I not getting calls?
Check that your status is *Available*, you are a member of a queue, and the softphone shows *Ready*.

### Does wrap-up end on its own?
No. The agent stays in wrap-up until they submit or skip the disposition, or set *Available* themselves.

### Can a supervisor change an agent's status?
Yes, with `PATCH /v1/ccaas/agents/{id}/status`.

### Is time in each status reported?
Yes. Daily reports include wrap-up time and occupancy per agent, from state history recorded since 18 September 2026.

### What is the difference between Busy and Break?
Both stop calls. Use *Break* with a reason for planned time away; *Busy* is for short pauses or is set by the system while ringing.

### Can I add my own break reasons?
Not today. The six reasons above are built in.
