ExoVoIPDeveloper guide

Queues

Queues hold callers and distribute them to available agents, with music, position announcements and maximum wait times. Scopes queues:read / queues:write; real-time status with live:read.

Creating a queue

curl -s -X POST https://centralino.exovoip.it/api/v1/queues \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" \
  -d '{"number":"700","name":"Vendite","strategy":"rrmemory","maxWaitS":300,
       "announcePosition":true,
       "members":[{"extensionId":12,"position":1,"penalty":0,"paused":false},
                  {"extensionId":13,"position":2,"penalty":1,"paused":false}],
       "maxWaitDestination":{"type":"voicemail","extensionId":12}}'
FieldDescription
strategyringall, linear, linear_progressive, leastrecent, fewestcalls, rrmemory, random
members[]Agents: extensionId, position, penalty (priority), paused
agentTimeoutS, wrapupSRing time per agent and wrap-up time after each call
announcePosition, announceHoldtimePosition and estimated wait time announcements
maxCallers, maxWaitSQueue limits, with maxWaitDestination when the wait expires
emptyDestination, noAnswerDestinationNo agent available / no answer
voicemailDigit, callbackEnabledKey to leave a voicemail or request a callback
calendarId, recordModeQueue business hours and recording

Agents and real-time status

curl -s https://centralino.exovoip.it/api/v1/queues/5/live -H "X-API-Key: $EXOPBX_API_KEY"
curl -s -X PUT https://centralino.exovoip.it/api/v1/queues/5/members/12/pause \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" -d '{"paused":true}'

Detailed status for all queues (waiting callers, longest wait, agents paused or on a call) is also available in GET /v1/live/queues and in the queue.caller.join, queue.caller.leave and queue.member events (Real-time). Callback requests left by callers are at GET /v1/queues/:id/callbacks.

Endpoints

RequestScopeSDK method
GET /v1/queuesqueues:readqueues.list()
POST /v1/queuesqueues:writequeues.create()
GET /v1/queues/:idqueues:readqueues.get()
PATCH /v1/queues/:idqueues:writequeues.update()
DELETE /v1/queues/:idqueues:writequeues.delete()
GET /v1/queues/:id/livelive:readqueues.live()
PUT /v1/queues/:id/members/:extensionId/pausequeues:writequeues.pauseMember() · py: queues.pause_member()
GET /v1/queues/:id/callbacksqueues:readqueues.callbacks()