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).
Description of Data Structures
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The following parameters can be configured for the queue: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Strategy Description | All available agents are called simultaneouslyring-all
|
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.
|
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
agents with the lowest level are called first thennext-level agents start to be called after the time specified by the parameter tier_rule_wait_second, the report begins when the
next level agents are called and so onlongest-idle-agent
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).
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:
…
…
…
System responseList of callers in the queue
GET /extension/{extension_id}/queue/status/members/
This resource returns the responses in the form:
Code Block | ||
---|---|---|
| ||
{ "statuscall_api_id": "activestring", "domainjoined_datetime": "sip.ringme.rustring", "create_datenumber": "2020-03-16 12:11:13", "name": "000*370", "dial_rule_limit": null, "extension_group_id": null"string", "serving_agent": "string", "labelstate": "test queuestring", "callerwait_id_nametime": 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.
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
3. Create a local queue agent:
…
…
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:
…
…
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:
…
…
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:
…
…
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUT /client/{client_id}/agent/local/{agent_id} Update a local agent URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||
GET /client/{client_id}/agent/local/{agent_id} Get a local agent URL Parameters
Response field
|
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
DELETE /client/{client_id}/agent/local/{agent_id} 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
Request parameters
|
External agents
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POST /client/{client_id}/agent/remote/ Add an external agent URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
GET /client/{client_id}/agent/remote/ Get a list of external client agents URL Parameters
Response field
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUT /client/{client_id}/agent/remote/{agent_id} Update an external agent URL Parameters
JSON Parameters
Response field
|
Expand | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||
GET /client/{client_id}/agent/remote/{agent_id} Get an external agent URL Parameters
Response field
|
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
DELETE /client/{client_id}/agent/remote/{agent_id} 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
Request parameters
|