Repository navigation
v2.5.0
Added
-
Per-queue agent connect / disconnect for supervisors — two new REST endpoints on the
wazo-calldplugin:Method Path Caller ACL PUT/queues/{queue_name}/connectcalld.queues.{queue_name}.connect.updatePUT/queues/{queue_name}/disconnectcalld.queues.{queue_name}.disconnect.updateBody
{"agent_id": <int>},204on success. The endpoint acts as an authorization proxy + delegation towazo-agentd: the caller is authorized server-side — the token's user must be an agent that is itself a member of the target queue (resolved via confduser → agent → queue roster) — then the request is delegated to agentd (agent_login_to_queue/agent_logoff_from_queue). Thequeue_idsent to agentd comes from the supervisor's own roster, never from the request body, and all confd/agentd calls are tenant-scoped.No AMI action, no in-memory state mutation and no new bus event: the change propagates through the existing
QueueMemberAdded/QueueMemberRemovedevents and thequeue_agents_statuspayload. -
Two
agentd.agents.*.queues.*.{login,logoff}.updateACL on thewazo-calldservice token (etc/wazo-auth-keys/conf.d/call_queue.yml).
Error mapping
| agentd outcome | HTTP |
|---|---|
| success | 204 |
ALREADY_IN_QUEUE / NOT_IN_QUEUE |
204 (idempotent — target state reached) |
NOT_LOGGED (no active session) |
400 |
NO_SUCH_QUEUE / NO_SUCH_AGENT |
404 |
| supervisor not a member of the queue | 403 |
| any other agentd error | 502 |
Fixes #3.
Full changelog: v2.4.1...v2.5.0