Jump to content

TuCloudAPI addqueue

From Wiki 7Kas

TuCloudAPI function to manage FuturePBX (the cloud PBX). Available to: SuperRoot, Operator, Client.

ℹ Requires the pbx parameter (the PBX name, e.g. tucall). The server verifies that your ukey's own account owns that PBX, whatever its role; otherwise, and also for a PBX that does not exist, it returns {"ok":false,"code":"forbidden"}.

Description

Create a call queue. title required (free-form, repeatable across PBXs). exten = the queue's direct-dial number: user-entered, EXACTLY 3 digits, no leading 0, not reserved (112, 700-703), must be free; every refusal carries field:"exten", reason and message (invalid_exten: format | reserved; conflict: queue | extension | full); blank = auto next-free. The globally-unique realtime name is composed by a DB trigger as root_<pbxname>_exten (e.g. 0_tucall_901) — the app never sets it and it is never client-editable. music = a tucloud_pbx_music id (0 = none) resolved to the MOH class. joinempty/leavewhenempty/ringinuse are 0/1; ringinuse defaults to 0 (a busy agent is not rung; German 2026-10-31). Requires a non-readonly ukey. Agents are managed via #36 (voip_queue_member).

Call

https://tucloudapi.7kas.com:9087/tucloud?func=addqueue&ukey=YOUR_KEY&pbx=PBX_NAME

GET, or POST with the parameters form-urlencoded in the body. Requires the ukey parameter. Always HTTP 200; the response is a JSON envelope.

Parameters

Parameter Type Required Default Meaning
pbx string Yes — FuturePBX NAME (e.g. tucall). The (ukey, pbx) pair is the tenant boundary; the server verifies the ukey owns this PBX.
title string Yes — Queue display title (required, max 30).
exten string No — Queue direct-dial number: exactly 3 digits, no leading 0, not 112 or 700-703, free; blank = auto next-free.
strategy string No ringall ringall / leastrecent / fewestcalls / roundrobin / random.
timeout integer No 15 Ring timeout per member (seconds).
retry integer No 5 Retry delay (seconds).
wrapuptime integer No 0 Wrap-up time after a call (seconds).
maxlen integer No 0 Max callers waiting (0 = unlimited).
joinempty integer No 1 1 = allow join when no agents, 0 = no.
leavewhenempty integer No 0 1 = drop callers when queue empties, 0 = no.
ringinuse integer No 0 1 = ring agents who are already on a call, 0 = skip them: an agent on a call, ringing or on hold is not rung and the queue tries the next free agent (device state per SIP account; wrapuptime still applies). Default 0 by German's order 2026-10-31.
music integer No 0 Music-on-hold: tucloud_pbx_music id (0 = default).
weight integer No 0 Queue weight/priority.
servicelevel integer No 0 Service-level target (seconds).
desvio string No — NOT IMPLEMENTED — must be empty. A non-empty value is REJECTED with invalid_param: the engine does not perform queue forward-on-timeout (tucloud_apps.c has a TODO and merely LOGS a forward it never makes), so storing a value would be a silent no-op. Empty/absent is accepted so existing rows can be cleared. Ruling by gabpbx 2026-08-17; implementation is bus task 102.

Example

https://tucloudapi.7kas.com:9087/tucloud?func=addqueue&ukey=KEY&pbx=tucall&title=Soporte&strategy=leastrecent

Response

{ok, queue:{...}}.

Errors

Always HTTP 200. On failure the body is {"ok":false,"code":"...","message":"..."}. Common codes: missing_pbx, forbidden, invalid_param, not_found, conflict, in_use, db_error, server_busy; the Response section above lists any specific to this function.


Back to TuCloudAPI