версия от 2023-02-13
Группа методов позволяет управлять очередями обработки входящих вызовов.
Адрес: https://restapi.plusofon.ru
GET
api/v1/call-queues
Метод позволяет получить список всех очередей обработки вызовов.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/call-queues" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/call-queues"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/call-queues',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/call-queues'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив data
:
id
integer
ИД очереди
name
string
название очереди
login
integer
добавочный номер для входа оператора (агента)
logout
integer
добавочный номер для выхода оператора (агента)
{
"current_page": 1,
"data": [
{
"id": 1,
"name": "TestCallQueue",
"login": 212,
"logout": 222
},
{
"id": 2,
"name": "TestCallQueue2",
"login": 213,
"logout": 224
}
],
"first_page_url": "http:\/\/localhost\/api\/v1\/call-queues?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http:\/\/localhost\/api\/v1\/call-queues?page=1",
"next_page_url": null,
"path": "http:\/\/localhost\/api\/v1\/call-queues",
"per_page": 15,
"prev_page_url": null,
"to": 2,
"total": 2
}
GET
api/v1/call-queues/{call_queue_id}
Метод позволяет получить данные конкретной очереди обработки вызовов.
Path
call_queue_id
stringi
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/call-queues/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/call-queues/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
const url = new URL(
"https://restapi.plusofon.ru/api/v1/call-queues/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/call-queues/1'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращаются следующие данные:
id
integer
ИД очереди
name
string
название очереди
strategy
string
код правила распределения звонков i
sips
array
массив SIP-аккаунтов операторов (агентов), которым доступна очередь
/ id
integer
ИД SIP-аккаунта
/ name
string
название SIP-аккаунта
ring_simultaneously
integer
лимит операторов (агентов), на которых идёт одновременный дозвон
connection_timeout
integer
общее время дозвона в очереди (в секундах)
agent_ring_timeout
integer
время дозвона на одного оператора (агента) (в секундах)
agent_wrapup_time
integer
задержка соединения с оператором (агентом) (в секундах)
login
integer
добавочный номер для входа оператора (агента)
logout
integer
добавочный номер для выхода оператора (агента)
caller_exit_key
string
кнопка для выхода из очереди для звонящего
on_hold_media
object
объект с медиафайлом, проигрываемым абоненту при нахождении в очереди
/ id
integer
ИД медиафайла
/ name
string
название медиафайла
announce_media
object
объект с медиафайлом, проигрываемым абоненту в качестве приветствия
/ id
integer
ИД медиафайла
/ name
string
название медиафайла
{
"id": 1,
"name": "TestCallQueue",
"strategy": "most_idle",
"caller_exit_key": "#",
"agent_ring_timeout": 15,
"agent_wrapup_time": 0,
"connection_timeout": 3600,
"max_queue_size": 50,
"ring_simultaneously": 1,
"login": 212,
"logout": 222,
"sips": [
{
"id": 79,
"name": "Test"
}
],
"on_hold_media": {
"id": 9,
"name": "Test"
},
"announce_media": {
"id": 10,
"name": "Test"
}
}
POST
api/v1/call-queues
Метод позволяет создать очередь звонков.
URL для получения созданной очереди звонков находится в заголовке "Location"
.
Body
name
string
⁎ название очереди
strategy
string
⁎ код правила распределения звонков i
sips
array
массив ИД SIP-аккаунтов i
операторов (агентов), которым доступна очередь
ring_simultaneously
integer / {1 ... 999}
⁎ лимит операторов (агентов), на которых идёт одновременный дозвон
max_queue_size
integer / {0 ... 999}
⁎ вместительность очереди
connection_timeout
integer / {0 ... 99999}
⁎ общее время дозвона в очереди (в секундах)
agent_ring_timeout
string / {1 ... 30}
⁎ время дозвона на одного оператора (агента) (в секундах)
agent_wrapup_time
integer / {0 ... 15}
⁎ задержка соединения с оператором (агентом) (в секундах)
login
integer / {200 ... 99999}
⁎ добавочный номер для входа оператора (агента)
logout
integer / {200 ... 99999}
⁎ добавочный номер для выхода оператора (агента)
caller_exit_key
string
⁎ кнопка для выхода из очереди для звонящего
on_hold_media_id
integer
ИД медиафайла i
, проигрываемого при нахождении в очереди
announce_media_id
integer
ИД медиафайла i
, проигрываемого в качестве приветствия
curl -X POST \
"https://restapi.plusofon.ru/api/v1/call-queues" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"nesciunt","strategy":"neque","login":11,"logout":8,"caller_exit_key":"nobis","on_hold_media_id":2,"sips":[],"agent_ring_timeout":5,"agent_wrapup_time":1,"connection_timeout":6,"max_queue_size":15,"ring_simultaneously":13,"announce_media_id":6}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/call-queues"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"name": "nesciunt",
"strategy": "neque",
"login": 11,
"logout": 8,
"caller_exit_key": "nobis",
"on_hold_media_id": 2,
"sips": [],
"agent_ring_timeout": 5,
"agent_wrapup_time": 1,
"connection_timeout": 6,
"max_queue_size": 15,
"ring_simultaneously": 13,
"announce_media_id": 6
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/call-queues',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'nesciunt',
'strategy' => 'neque',
'login' => 11,
'logout' => 8,
'caller_exit_key' => 'nobis',
'on_hold_media_id' => 2,
'sips' => [],
'agent_ring_timeout' => 5,
'agent_wrapup_time' => 1,
'connection_timeout' => 6,
'max_queue_size' => 15,
'ring_simultaneously' => 13,
'announce_media_id' => 6,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/call-queues'
payload = {
"name": "nesciunt",
"strategy": "neque",
"login": 11,
"logout": 8,
"caller_exit_key": "nobis",
"on_hold_media_id": 2,
"sips": [],
"agent_ring_timeout": 5,
"agent_wrapup_time": 1,
"connection_timeout": 6,
"max_queue_size": 15,
"ring_simultaneously": 13,
"announce_media_id": 6
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Очередь успешно создана:
{
"success": true
}
PUT
api/v1/call-queues/{call_queue_id}
Метод позволяет изменить параметры конкретной очереди обработки вызовов.
Path
call_queue_id
stringi
Body
name
string
⁎ название очереди
strategy
string
⁎ код правила распределения звонков i
sips
array
массив ИД SIP-аккаунтов i
операторов (агентов), которым доступна очередь
ring_simultaneously
integer / {1 ... 999}
⁎ лимит операторов (агентов), на которых идёт одновременный дозвон
max_queue_size
integer / {0 ... 999}
⁎ вместительность очереди
connection_timeout
integer / {0 ... 99999}
⁎ общее время дозвона в очереди (в секундах)
agent_ring_timeout
string / {1 ... 30}
⁎ время дозвона на одного оператора (агента) (в секундах)
agent_wrapup_time
integer / {0 ... 15}
⁎ задержка соединения с оператором (агентом) (в секундах)
login
integer / {200 ... 99999}
⁎ добавочный номер для входа оператора (агента)
logout
integer / {200 ... 99999}
⁎ добавочный номер для выхода оператора (агента)
caller_exit_key
string
⁎ кнопка для выхода из очереди для звонящего
on_hold_media_id
integer
ИД медиафайла i
, проигрываемого при нахождении в очереди
announce_media_id
integer
ИД медиафайла i
, проигрываемого в качестве приветствия
curl -X PUT \
"https://restapi.plusofon.ru/api/v1/call-queues/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"molestiae","strategy":"reiciendis","login":5,"logout":16,"caller_exit_key":"numquam","on_hold_media_id":17,"sips":[],"agent_ring_timeout":18,"agent_wrapup_time":9,"connection_timeout":17,"max_queue_size":10,"ring_simultaneously":19,"announce_media_id":1}'
curl -X PUT \
"https://restapi.plusofon.ru/api/v1/call-queues/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"molestiae","strategy":"reiciendis","login":5,"logout":16,"caller_exit_key":"numquam","on_hold_media_id":17,"sips":[],"agent_ring_timeout":18,"agent_wrapup_time":9,"connection_timeout":17,"max_queue_size":10,"ring_simultaneously":19,"announce_media_id":1}'
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://restapi.plusofon.ru/api/v1/call-queues/1',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'molestiae',
'strategy' => 'reiciendis',
'login' => 5,
'logout' => 16,
'caller_exit_key' => 'numquam',
'on_hold_media_id' => 17,
'sips' => [],
'agent_ring_timeout' => 18,
'agent_wrapup_time' => 9,
'connection_timeout' => 17,
'max_queue_size' => 10,
'ring_simultaneously' => 19,
'announce_media_id' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/call-queues/1'
payload = {
"name": "molestiae",
"strategy": "reiciendis",
"login": 5,
"logout": 16,
"caller_exit_key": "numquam",
"on_hold_media_id": 17,
"sips": [],
"agent_ring_timeout": 18,
"agent_wrapup_time": 9,
"connection_timeout": 17,
"max_queue_size": 10,
"ring_simultaneously": 19,
"announce_media_id": 1
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Очередь успешно обновлена:
{
"success": true
}
DELETE
api/v1/call-queues/{call_queue_id}
Метод позволяет удалить конкретную очередь обработки вызовов.
Path
call_queue_id
stringi
curl -X DELETE \
"https://restapi.plusofon.ru/api/v1/call-queues/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/call-queues/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
const url = new URL(
"https://restapi.plusofon.ru/api/v1/call-queues/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/call-queues/1'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Очередь успешно удалена:
{
"success": true
}
GET
api/v1/call-queues/strategies
Метод позволяет получить список всех доступных правил распределения звонков.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/call-queues/strategies" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/call-queues/strategies"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/call-queues/strategies',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/call-queues/strategies'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив strategies
:
strategy
string
код правила распределения
title
string
название правила распределения
{
"strategies": [
{
"strategy": "round_robin",
"title": "По очереди"
},
{
"strategy": "most_idle",
"title": "Наиболее свободный"
}
]
}