You can test API methods on the interactive API browser page and without writing code
Some of the resources described on the page may not be available by default due to the type of application (see Creating and authorizing applications).
Generation features
Events are generated only when the status changes. For example, if the agent re-sent the login command to the queue, there will be no event.
If the request method is GET, the data will be contained in the request header, but if the request method is POST, the data will be contained in the request body. In both cases, the data is in the application/x-www-form-urlencoded format.
Description of data structures
title | Event (AgentEvent) |
---|
Name
Type
Mandatory
Description
url
string
yes
The URL to which the request is sent when the event occurs. For example: 'https://myshost.org/calls'
event_type
string
yes
The agent event to send the request when it occurs. Possible options:
'agent-login' – agent login to the queue;
'agent-logout' – exit of the agent from the queue
method
string
yes
Request method:
GET
POST
title | Event Data (AgentEventData) |
---|
Name
Type
Description
agent_id
string
Unique ID of the queue agent
agent_status
string
New Agent status:
available – ready to receive calls from the queue;
logged_out – will not accept calls from the queue
agent_type
string
Agent Type:
local – local agent;
remote - external agent
agent_number
string
Present for agent_type 'remote': external agent number
extension_name
string
Present for agent_type 'local': name of the internal agent
event_source
string
Event source:
api - the status change is initiated via the API (for example, via the web interface);
phone - initiated by the login/logout command directly from the phone that is the agent
Example
Let's say a client with ID 12 has a local agent with ID 136, and this agent is assigned to the internal number "000*094". Let's add an event to this agent that is generated when it enters the queue:
…
…
...
System response:
Code Block |
---|
{
"url": "https://somehost.com/fordel/show.php",
"id": 150,
"method": "GET",
"event_type": "agent-login"
} |
If on the side of somehost.com show.php script has the following content
Code Block |
---|
<?php
error_log("------");
foreach ($_GET as $key => $value){
error_log("$key => $value");
}
?> |
then after logging in to the queue, you can see the following lines in the web server log::
Code Block |
---|
[Tue May 30 15:07:50 2017] ------
[Tue May 30 15:07:50 2017] agent_status => available
[Tue May 30 15:07:50 2017] agent_type => local
[Tue May 30 15:07:50 2017] event_source => api
[Tue May 30 15:07:50 2017] agent_id => 136
[Tue May 30 15:07:50 2017] extension_name => 000*094@ringme.ru |
Resources of the "Client" section
Local Agents
Description of Data Structures
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The following parameters can be configured for the queue:
|
Queue Strategies
At any strategy the agents with the lowest level are called first. If the agents of the current call level are busy or are in a state of temporary unavailability, for example, after no answer or rejection of the previous call (see the agent configuration), then agents of the next level are called. If the parameter tier_rules_apply valueis true, the next-level agents start to be called after the time specified by the parameter tier_rule_wait_second, the report begins when the current level agents start calling. If the parameter tier_rule_wait_multiply_level value is true, then the time tier_rule_wait_second is multiplied by the agent level.
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|
Queue Agents
The queue agents can be of two types: local, when the agent is an extension number of the telephone terminal type, and remote, when the specified external number is the queue agent. Both types of agents have the following configurable parameters:
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Queue agent management
In order for an agent to receive calls from a queue, the agent must be added there. Adding the agent to the queue, removing it from there, as well as changing its level and position in the queue are carried out through the resources "local agent in the queue"and "external agent in the queue" for local and external agents, respectively.
When adding a local agent to the queue, the following parameters can be configured:
Parameter | Type | Mandatory | Default value | Description |
---|---|---|---|---|
agent_id | long | yes | 0 | Identifier of the local agent |
level | long | no | 0 | Agent level in queue |
position | long | no | 0 | Agent position in the queue |
When adding an external agent to the queue, the following parameters can be configured:
Parameter | Type | Mandatory | Default value | Description |
---|---|---|---|---|
agent_id | long | yes | 0 | Identifier of the external agent |
level | long | no | 0 | Agent level in queue |
position | long | no | 0 | Agent position in the queue |
The value of the counter of callers in the queue (generated based on dial-in and hangup events) can be obtained using the resource
GET /extension/{extension_id}/queue/status/
This resource returns the responses in the form:
Code Block | ||
---|---|---|
| ||
{
"answered_members": 0,
"trying_members": 0,
"waiting_members": 0
} |
where the parameter trying_members is the number of callers and waiting the queue agents' response. Because the number of requests is limited, it is recommended to request the number of callers in the queue exactly by the queue events. Is possible to add events answer of the extension numbers themselves (the queue agents).
List of callers in the queue
GET /extension/{extension_id}/queue/status/members/
This resource returns the responses in the form:
Code Block | ||
---|---|---|
| ||
{
"call_api_id": "string",
"joined_datetime": "string",
"number": "string",
"serving_agent": "string",
"state": "string",
"wait_time": 0
} |
Through the call_api_id
parameter, you can transfer or delete a call using Current Calls (/current_calls/)
Examples
As an example, let's create an internal number of the "queue" type, configure it, create local and external agents and add them to the queue.
1. Using the "resource Extension number", create an internal number of the "queue" type:
Tabs |
---|
[{"content":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"In the "},{"type":"text","text":"authentication ","marks":[{"type":"strong"}]},{"type":"text","text":"section enter the "},{"type":"text","text":"Application_ID","marks":[{"type":"strong"}]},{"type":"text","text":" and "},{"type":"text","text":"Application_Secret","marks":[{"type":"strong"}]},{"type":"text","text":" values obtained during the application registration in the "},{"type":"text","text":"client_id ","marks":[{"type":"strong"}]},{"type":"text","text":"and "},{"type":"text","text":"client_secret","marks":[{"type":"strong"}]},{"type":"text","text":" fields, then click on the \""},{"type":"text","text":"Try it out!","marks":[{"type":"strong"}]},{"type":"text","text":"\" button. If the application data is correct, an access token ("},{"type":"text","text":"access_token","marks":[{"type":"strong"}]},{"type":"text","text":") will be returned in response. The received access token should be entered into the \""},{"type":"text","text":"Access Token Field","marks":[{"type":"strong"}]},{"type":"text","text":"\" at the top of the page and saved by clicking the \""},{"type":"text","text":"Set Token","marks":[{"type":"strong"}]},{"type":"text","text":"\" button."}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"default"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Resource","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Data","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"POST"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/client/@me/extension/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"status\": \"active\","},{"type":"hardBreak"},{"type":"text","text":"\"name\": \"370\","},{"type":"hardBreak"},{"type":"text","text":"\"label\": \"test queue\","},{"type":"hardBreak"},{"type":"text","text":"\"type\": \"queue\""},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"05990ccf-3682-45b7-9af4-53738715673b","label":"Interactive API Browser","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"To send requests using the cURL program, set the values of the "},{"type":"text","text":"url ","marks":[{"type":"strong"}]},{"type":"text","text":"and "},{"type":"text","text":"access_token","marks":[{"type":"strong"}]},{"type":"text","text":" variables:"}]},{"type":"paragraph","content":[{"type":"text","text":"export url=\"https://<hostname>/api/ver1.0\"","marks":[{"type":"code"}]},{"type":"text","text":" "},{"type":"hardBreak"},{"type":"text","text":"(where the hostname — is the hostname of the API-server provider of IP-telephony),"}]},{"type":"paragraph","content":[{"type":"text","text":"export access_token=\"8SNsrS0jV35vfmKqKeKtRrHfpbg4UX\"","marks":[{"type":"code"}]},{"type":"text","text":" "},{"type":"hardBreak"},{"type":"text","text":"(the received access token)."}]},{"type":"paragraph","content":[{"type":"text","text":"Send a request:"}]},{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n \"status\": \"active\",\n \"name\": \"370\",\n \"label\": \"test queue\",\n \"type\": \"queue\"\n}' \\\n-X POST ${url}/client/@me/extension/"}]}]},"id":"9cea3dfd-9b7d-4595-8832-d57c8828065a","label":"cURL Program","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"To send requests in Python, set the values of the variables URL and ACCESS_TOKEN:"}]},{"type":"paragraph","content":[{"type":"text","text":"URL = \"https://<hostname>/api/ver1.0\"","marks":[{"type":"code"}]},{"type":"hardBreak"},{"type":"text","text":"(where the hostname — is the hostname of the API-server provider of IP-telephony),"}]},{"type":"paragraph","content":[{"type":"text","text":"ACCESS_TOKEN = \"8SNsrS0jV35vfmKqKeKtRrHfpbg4UX\"","marks":[{"type":"code"}]},{"type":"hardBreak"},{"type":"text","text":"(the received access token)."}]},{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n\nimport requests\n\nurl = f\"{URL}/client/@me/extension/\"\nheaders = {\n 'Authorization': f'Bearer {ACCESS_TOKEN}',\n 'Content-Type': 'application/json'\n}\ndata = '''{\n \"status\": \"active\",\n \"name\": \"370\",\n \"label\": \"test queue\",\n \"type\": \"queue\"\n}'''\nresponse = requests.post(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"ad445d19-f68f-49b4-8af5-5a82064683c1","label":"In Python3","type":"tab"}] |
System response:
Code Block | ||
---|---|---|
| ||
{
"status": "active",
"domain": "sip.ringme.ru",
"create_date": "2020-03-16 12:11:13",
"name": "000*370",
"dial_rule_limit": null,
"extension_group_id": null,
"label": "test queue",
"caller_id_name": null,
"client_id": 12,
"extra_params": null,
"message_did": null,
"dial_rule_id": null,
"ani_rfc3325": false,
"type": "queue",
"id": 208,
"did_as_transfer_caller_id": null
} |
2. Set up the queue as follows:
The main sound of the queue should be the sound with the ID 36;
The sound of the announcement is the sound with the identifier 35;
The announcement should be played every 15 seconds;
The maximum waiting time in the queue is 1800 seconds;
If the maximum waiting time has been exceeded forward the caller to the number 333;
Calling strategy of the queue agents - "Call everyone";
Recording of conversations in the queue is enabled;
Higher-level agents should start to be dialed if the lower-level agents do not respond within 15 seconds.
Tabs |
---|
[{"content":{"version":1,"type":"doc","content":[{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"default"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Resource","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Data","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"PUT"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/extension/208/queue/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"announce_frequency\": 15,"},{"type":"hardBreak"},{"type":"text","text":"\"announce_sound\": 35,"},{"type":"hardBreak"},{"type":"text","text":"\"max_wait_time\": 1800,"},{"type":"hardBreak"},{"type":"text","text":"\"record_enabled\": true,"},{"type":"hardBreak"},{"type":"text","text":"\"sound\": 36,"},{"type":"hardBreak"},{"type":"text","text":"\"sound_type\": \"music\","},{"type":"hardBreak"},{"type":"text","text":"\"strategy\": \"ring-all\","},{"type":"hardBreak"},{"type":"text","text":"\"timeout_transfer_dst\": \"333\","},{"type":"hardBreak"},{"type":"text","text":"\"tier_rules_apply\": true,"},{"type":"hardBreak"},{"type":"text","text":"\"tier_rule_wait_second\": 5"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"cfa34061-5173-4266-8553-826b99872427","label":"Interactive API Browser","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n \"announce_frequency\": 15,\n \"announce_sound\": 35,\n \"max_wait_time\": 1800,\n \"record_enabled\": true,\n \"sound\": 36,\n \"sound_type\": \"music\",\n \"strategy\": \"ring-all\",\n \"timeout_transfer_dst\": \"333\",\n \"tier_rules_apply\": true,\n \"tier_rule_wait_second\": 5\n}' \\\n-X PUT ${url}/extension/208/queue/"}]}]},"id":"d699e743-0596-49b7-a55c-21ed3c0d41b1","label":"cURL Program","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n\nimport requests\n\nurl = f\"{URL}/extension/208/queue/\"\nheaders = {\n 'Authorization': f'Bearer {ACCESS_TOKEN}',\n 'Content-Type': 'application/json'\n}\ndata = '''{\n \"announce_frequency\": 15,\n \"announce_sound\": 35,\n \"max_wait_time\": 1800,\n \"record_enabled\": true,\n \"sound\": 36,\n \"sound_type\": \"music\",\n \"strategy\": \"ring-all\",\n \"timeout_transfer_dst\": \"333\",\n \"tier_rules_apply\": true,\n \"tier_rule_wait_second\": 5\n}'''\nresponse = requests.put(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"6c5ca2f5-3eb1-43e9-9601-d2ea90f74621","label":"In Python3","type":"tab"}] |
Expand | |||||
---|---|---|---|---|---|
| |||||
|
3. Create a local queue agent:
Tabs |
---|
[{"content":{"version":1,"type":"doc","content":[{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"default"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Resource","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Data","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"POST"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/client/@me/agent/local/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"busy_delay_time\": 10,"},{"type":"hardBreak"},{"type":"text","text":"\"call_timeout\": 30,"},{"type":"hardBreak"},{"type":"text","text":"\"extension_id\": 117,"},{"type":"hardBreak"},{"type":"text","text":"\"no_answer_delay_time\": 10,"},{"type":"hardBreak"},{"type":"text","text":"\"reject_delay_time\": 10,"},{"type":"hardBreak"},{"type":"text","text":"\"status\": \"available\","},{"type":"hardBreak"},{"type":"text","text":"\"wrap_up_time\": 0"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"b415ac14-64b6-4bcc-bf50-643675a5f497","label":"Interactive API Browser","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n \"busy_delay_time\": 10,\n \"call_timeout\": 30,\n \"extension_id\": 117,\n \"no_answer_delay_time\": 10,\n \"reject_delay_time\": 10,\n \"status\": \"available\",\n \"wrap_up_time\": 0\n}' \\\n-X POST ${url}/client/@me/agent/local/"}]}]},"id":"5c948ba1-1d15-4867-951d-60aac7e90488","label":"cURL Program","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n\nimport requests\n\nurl = f\"{URL}/client/@me/agent/local/\"\nheaders = {\n 'Authorization': f'Bearer {ACCESS_TOKEN}',\n 'Content-Type': 'application/json'\n}\ndata = '''{\n \"busy_delay_time\": 10,\n \"call_timeout\": 30,\n \"extension_id\": 117,\n \"no_answer_delay_time\": 10,\n \"reject_delay_time\": 10,\n \"status\": \"available\",\n \"wrap_up_time\": 0\n}'''\nresponse = requests.post(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"1b2903ee-b1c4-4910-887b-fe89ea12f48e","label":"In Python3","type":"tab"}] |
System response:
Code Block | ||
---|---|---|
| ||
{
"status": "available",
"name": null,
"busy_delay_time": 10,
"no_answer_delay_time": 10,
"call_timeout": 30,
"wrap_up_time": 0,
"extension_id": 117,
"reject_delay_time": 10,
"extra_params": null,
"id": 1
} |
4. Create an external queue agent:
Tabs |
---|
[{"content":{"version":1,"type":"doc","content":[{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"default"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Resource","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Data","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"POST"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/client/@me/agent/remote/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"busy_delay_time\": 10,"},{"type":"hardBreak"},{"type":"text","text":"\"call_timeout\": 30,"},{"type":"hardBreak"},{"type":"text","text":"\"no_answer_delay_time\": 10,"},{"type":"hardBreak"},{"type":"text","text":"\"number\": \"89215650644\","},{"type":"hardBreak"},{"type":"text","text":"\"reject_delay_time\": 10,"},{"type":"hardBreak"},{"type":"text","text":"\"status\": \"available\","},{"type":"hardBreak"},{"type":"text","text":"\"wrap_up_time\": 0"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"e699b2e4-9f7b-4eb5-a513-20e851f57276","label":"Interactive API Browser","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n \"busy_delay_time\": 10,\n \"call_timeout\": 30,\n \"no_answer_delay_time\": 10,\n \"number\": \"89215650644\",\n \"reject_delay_time\": 10,\n \"status\": \"available\",\n \"wrap_up_time\": 0\n}' \\\n-X POST ${url}/client/@me/agent/remote/"}]}]},"id":"a0343619-ad25-4da0-aa27-2251c04fd824","label":"cURL Program","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n\nimport requests\n\nurl = f\"{URL}/client/@me/agent/remote/\"\nheaders = {\n 'Authorization': f'Bearer {ACCESS_TOKEN}',\n 'Content-Type': 'application/json'\n}\ndata = '''{\n \"busy_delay_time\": 10,\n \"call_timeout\": 30,\n \"no_answer_delay_time\": 10,\n \"number\": \"89215650644\",\n \"reject_delay_time\": 10,\n \"status\": \"available\",\n \"wrap_up_time\": 0\n}'''\nresponse = requests.post(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"837b5db2-bac4-4c84-ab1f-14027ae64956","label":"In Python3","type":"tab"}] |
System response:
Code Block | ||
---|---|---|
| ||
{
"busy_delay_time": 10,
"call_timeout": 30,
"extra_params": "string",
"id": 9,
"name": "string",
"no_answer_delay_time": 10,
"number": "89876543210",
"reject_delay_time": 10,
"status": "available",
"wrap_up_time": 0
} |
5. Add the local agent to the queue with the first position and the first level:
Tabs |
---|
[{"content":{"version":1,"type":"doc","content":[{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"default"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Resource","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Data","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"POST"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/extension/208/queue/agents/local/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"agent_id\": 1,"},{"type":"hardBreak"},{"type":"text","text":"\"level\": 1,"},{"type":"hardBreak"},{"type":"text","text":"\"position\": 1"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"53d68781-aef2-4d98-95a8-9e4233bc30a8","label":"Interactive API Browser","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n \"agent_id\": 1,\n \"level\": 1,\n \"position\": 1\n}' \\\n-X POST ${url}/extension/208/queue/agents/local/"}]}]},"id":"227f2a19-2af7-4275-ab1f-cd5bec4e2fcc","label":"cURL Program","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n\nimport requests\n\nurl = f\"{URL}/extension/208/queue/agents/local/\"\nheaders = {\n 'Authorization': f'Bearer {ACCESS_TOKEN}',\n 'Content-Type': 'application/json'\n}\ndata = '''{\n \"agent_id\": 1,\n \"level\": 1,\n \"position\": 1\n}'''\nresponse = requests.post(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"5bf3e3cf-72ec-4130-907e-428b2f5c1e12","label":"In Python3","type":"tab"}] |
System response:
Code Block | ||
---|---|---|
| ||
{
"position": 1,
"agent_id": 1,
"level": 1
} |
6. Add an external agent to the queue with the first position and the second level:
Tabs |
---|
[{"content":{"version":1,"type":"doc","content":[{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"default"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Resource","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Data","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"POST"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/extension/208/queue/agents/remote/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"agent_id\": 9,"},{"type":"hardBreak"},{"type":"text","text":"\"level\": 2,"},{"type":"hardBreak"},{"type":"text","text":"\"position\": 1"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"73238ffa-5c93-4978-82ef-bd3bd17b5067","label":"Interactive API Browser","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n \"agent_id\": 9,\n \"level\": 2,\n \"position\": 1\n}' \\\n-X POST ${url}/extension/208/queue/agents/remote/"}]}]},"id":"3ff87e9f-083b-482f-a6c7-e8e13d4a35b2","label":"cURL Program","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n\nimport requests\n\nurl = f\"{URL}/extension/208/queue/agents/remote/\"\nheaders = {\n 'Authorization': f'Bearer {ACCESS_TOKEN}',\n 'Content-Type': 'application/json'\n}\ndata = '''{\n \"agent_id\": 9,\n \"level\": 2,\n \"position\": 1\n}'''\nresponse = requests.post(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"8c47aca6-b0e2-4698-9525-3827a4982490","label":"In Python3","type":"tab"}] |
System response:
Code Block | ||
---|---|---|
| ||
{
"position": 1,
"agent_id": 9,
"level": 2
} |
Resources of the "Extension number" section
Queue configuration
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUT /extension/{extension_id}/queue/ Update the queue parameters URL Parameters
JSON Parameters
Response fields
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET /extension/{extension_id}/queue/ Get the queue parameters URL Parameters
Response fields
|
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
GET /extension/{extension_id}/queue/status/ Get a status of the queue URL Parameters
Response fiends
|
Get a list of callers in the queue
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
URL Parameters
Response field
|
Configuration of the local agent queue
Expand | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
POST /extension/{extension_id}/queue/agents/local/ Add a local agent to the queue URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
GET /extension/{extension_id}/queue/agents/local/ Get a list of local queue agents URL Parameters
Response field
|
Expand | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
PUT /extension/{extension_id}/queue/agents/local/{agent_id} Update the configuration of the local agent in the queue URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
GET /extension/{extension_id}/queue/agents/local/{agent_id} Get the configuration of the local agent in the queue URL Parameters
Response field
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
DELETE /extension/{extension_id}/queue/agents/local/{agent_id} Delete the local agent from queue URL Parameters
|
Configuration of the remote agent in the queue
Expand | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
POST /extension/{extension_id}/queue/agents/remote/ Add a remote agent to the queue URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
GET /extension/{extension_id}/queue/agents/remote/ Get a list of remote agents in the queue URL Parameters
Response field
|
Expand | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
PUT /extension/{extension_id}/queue/agents/remote/{agent_id} Update the configuration of the remote agent in the queue URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
GET /extension/{extension_id}/queue/agents/remote/{agent_id} Get the configuration of a remote agent in the queue URL Parameters
Response field
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
DELETE /extension/{extension_id}/queue/agents/remote/{agent_id} Delete the remote agent from queue URL Parameters
|
Resources of the "Client" section
Local agents
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POST /client/{client_id}/agent/local/ Add a local client agent URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
GET /client/{client_id}/agent/local/ Get a list of local client agents URL Parameters
Request parameters
Response field
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POST PUT /client/{client_id}/agent/local/{agent_id}/event/Add the http event of the queue Update a local agent URL Parameters
JSON parametersParameters
event_type string yes method string yes url string yes Response fields Name Type event_type string id long method string | stringurl
Response field
|
Expand | ||
---|---|---|
| ||
GET /client/{client_id}/agent/local/{agent_id}/event/ Get the http event of the queue agent URL Parameters | ||
Name | Type | |
agent_id | integer | |
client_id | string | |
Name | Type | |
event_type | string | |
id | long | |
method | string | url | string
Name | Type |
---|---|
agent_id | integer |
client_id | string |
Response field
Name | Type |
---|---|
busy_delay_time | long |
call_timeout | long |
extension_id | long |
extra_params | string |
id | long |
name | string |
no_answer_delay_time | long |
reject_delay_time | long |
status | object |
wrap_up_time | long |
Expand | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
DELETE / | eventclient/{ | eventclient_id} | PUT /agent/clientlocal/{clientagent_id}/agent/local/{agent_id}/event/{event_id}Update the http event of the queue agent Delete the local agent. If the parameter remove_from_queues is set to false, then an error will be returned if the agent to be removed is in at least one queue. If the parameter is set to true (by default), then the agent will be removed from the queues as well. URL Parameters
event_id integer
integer client_id string JSON parameters | ||||||||
Name | Type | Mandatory | |||||||||
event_type | string | none | |||||||||
method | string | none | |||||||||
url | string | none | |||||||||
Name | Type | ||||||||||
event_type | string | ||||||||||
id | long | ||||||||||
method | string | url | string
_id | integer |
client_id | string |
Request parameters
Name | Type |
---|---|
remove_from_queues | boolean |
External agents
Expand | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GET
| ||||||||||||
Expand | |||||||||||||
title | POSTPOST /client/{client_id}/agent/local/{agent_id}/event/{event_id} Get the http event of the queue agent URL remote/ Add an external agent URL Parameters
JSON Parameters
event_id integer agent_id integer client_id string Response fields | ||||||||||||
Name | Type | ||||||||||||
event_type | string | ||||||||||||
id | long | ||||||||||||
method | string | ||||||||||||
url | string | ||||||||||||
Expand | |||||||||||||
| |||||||||||||
Name | Type | ||||||||||||
event_id | integer | ||||||||||||
agent_id | integer | ||||||||||||
client_id | string |
External agents
Response field
|
Expand | |||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| POST /client/{client_id}/agent/remote/{agent|||||||||||||||||||||||||||||||||||||||||||||||
GET /client/{client_id}/eventagent/remote/Add the http event of the queue agent Get a list of external client agents URL Parameters
| integeragent_id
JSON parametersResponse field Name Type event_type string id long method string | stringurl
Mandatory event_type string yes method string yes url string yes Response fields
|
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||
GET PUT /client/{client_id}/agent/remote/{agent_id}/event/Get the http event of the queue Update an external agent URL Parameters
Response fieldsJSON Parameters PUT /client/{client_id}/agent/remote/{agent_id}/event/{event_id} Update the http event of the queue agent URL Parameters | |||||||||||||||||||||||||||||||||||||||||||||||||
Name | Type | ||||||||||||||||||||||||||||||||||||||||||||||||
event_id | integer | ||||||||||||||||||||||||||||||||||||||||||||||||
agent_id | integer | ||||||||||||||||||||||||||||||||||||||||||||||||
client_id | string | ||||||||||||||||||||||||||||||||||||||||||||||||
Name | Type | Mandatory | |||||||||||||||||||||||||||||||||||||||||||||||
event_type | string | none | |||||||||||||||||||||||||||||||||||||||||||||||
method | string | none | |||||||||||||||||||||||||||||||||||||||||||||||
url | string | none | |||||||||||||||||||||||||||||||||||||||||||||||
Name | Type | ||||||||||||||||||||||||||||||||||||||||||||||||
event_type | string | ||||||||||||||||||||||||||||||||||||||||||||||||
id | long | ||||||||||||||||||||||||||||||||||||||||||||||||
method | string | url | string
Name | Type | Mandatory |
---|
event_type
string
id
long
method
string
url
string
title | PUT /client/{client_id}/agent/remote/{agent_id}/event/{event_id} |
---|
busy_delay_time | long | no |
call_timeout | long | no |
extra_params | string | no |
name | string | no |
no_answer_delay_time | long | no |
number | string | no |
reject_delay_time | long | no |
status | string | no |
wrap_up_time | long | no |
Response field
Name | Type |
---|---|
busy_delay_time | long |
call_timeout | long |
extra_params | string |
id | long |
name | string |
no_answer_delay_time | long |
number | string |
reject_delay_time | long |
status | object |
wrap_up_time | long |
Expand | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
GET /client/{client_id}/agent/remote/{agent_id}/event/{event_id} Get the http event of the queue an external agent URL Parameters
| integerevent_id
Response fieldsfield
url
|
Expand | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
DELETE /client/{client_id}/agent/remote/{agent_id}/event/{event_id}Delete the http event of the queue agent Remove the external agent. If the parameter remove_from_queues is set to false, then an error will be returned if the agent to be removed is in at least one queue. If the parameter is set to true (by default), then the agent will be removed from the queues as well. URL Parameters
integer | stringclient_id
Request parameters
|