версия от 2023-02-13
Группа методов позволяет создавать SIP-аккаунты, получать по ним информацию и управлять переадресацией.
Адрес: https://restapi.plusofon.ru
GET
api/v1/sip
Метод позволяет получить список всех SIP-аккаунтов текущего личного кабинета.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/sip" \
-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/sip"
);
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/sip',
[
'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/sip'
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
ИД SIP-аккаунта
name
string
название
number
integer
добавочный (внутренний) номер
kazoo_id
string
внутренний ИД SIP-аккаунта
finally_created
boolean
признак активности аккаунта
aon
object
объект с установленным АОНом (А-номер, с которого будут идти исходящие вызовы)
/ id
integer
ИД телефонного номера
/ number
string
телефонный номер
/ phone_type
string
тип телефонного номера
abc
— городской номер
def
— мобильный номер
800
— номер 8-800
owner_type
stringbusiness
— многоканальный, номер для использования в логике АТС
personal
— одноканальный, номер для персонального использования одним пользователем
active_sip_scenario
object
объект со сценарием обработки входящих вызовов
/ id
integer
ИД сценария
/ name
string
название сценария
/ endpoints
array
массив переадресаций вызова в сценарии
type
stringsip
— вызов на SIP-аккаунт
mob
— переадресация на мобильный номер
timeout
integer{
"current_page": 1,
"data": [
{
"id": 79,
"name": "Sip1",
"number": 200,
"kazoo_id": "bc21b37c124ca9c9c55e9ccf070291ec",
"finally_created": true,
"aon": null,
"active_sip_scenario": {
"id": 40,
"name": "SIP",
"endpoints": [
{
"type": "sip",
"timeout": 50
}
]
}
},
{
"id": 80,
"name": "Sip2",
"number": 202,
"kazoo_id": "jc21b27c024ca7c9c55e9csi070201ef"
"finally_created": true,
"aon": {
"id": 22,
"number": "79993332210",
"phone_type": "def",
"owner_type": "personal"
},
"active_sip_scenario": {
"id": 41,
"name": "SIP",
"endpoints": [
{
"type": "sip",
"timeout": 50
}
]
}
}
],
"first_page_url": "http:\/\/localhost\/api\/v1\/sip?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http:\/\/localhost\/api\/v1\/sip?page=1",
"next_page_url": null,
"path": "http:\/\/localhost\/api\/v1\/sip",
"per_page": 15,
"prev_page_url": null,
"to": 2,
"total": 2,
"success": true
}
GET
api/v1/sip/statuses
Метод позволяет получить список статусов регистрации в сети всех SIP-аккаунтов текущего личного кабинета.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/sip/statuses" \
-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/sip/statuses"
);
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/sip/statuses',
[
'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/sip/statuses'
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
ИД SIP-аккаунта i
name
string
название SIP-аккаунта
on_line
boolean
признак регистрации аккаунта в сети
{
"current_page": 1,
"data": [
{
"id": 80,
"name": "sip_1",
"on_line": true
},
{
"id": 83,
"name": "sip_2",
"on_line": true
},
{
"id": 92,
"name": "sip_3",
"on_line": false
}
],
"first_page_url": "http:\/\/localhost\/api\/v1\/sip\/statuses?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http:\/\/localhost\/api\/v1\/sip\/statuses?page=1",
"next_page_url": null,
"path": "http:\/\/localhost\/api\/v1\/sip\/statuses",
"per_page": 15,
"prev_page_url": null,
"to": 3,
"total": 3,
"success": true
}
GET
api/v1/sip/{sip_id}
Метод позволяет получить данные конкретного SIP-аккаунта.
Path
sip_id
stringi
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/sip/25" \
-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/sip/25"
);
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/sip/25',
[
'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/sip/25'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается:
id
integer
ИД SIP-аккаунта
name
string
название SIP-аккаунта
password
string
пароль SIP-аккаунта
server
string
SIP-сервер
number
string
внутренний (добавочный) номер
aon
object
объект с установленным АОНом (А-номер, с которого будут идти исходящие вызовы)
/ id
integer
ИД телефонного номера
/ number
string
телефонный номер
sip_scenarios
array
массив сценариев SIP-аккаунта
/ id
integer
ИД сценария i
/ name
string
название сценария
/ active
boolean
признак активности сценария
/ endpoints
array
массив переадресаций вызова в сценарии
type
stringsip
— вызов на SIP-аккаунт
mob
— переадресация на мобильный номер
timeout
integer{
"id": 80,
"name": "Sip 1",
"password": "IVtv7zIF",
"login": "21221662454070",
"role": "admin",
"server": "104563.dev-voice.plusofon.ru",
"number": 202,
"finally_created": true,
"aon": {
"id": 22,
"number": "79993332210"
},
"sip_scenarios": [
{
"id": 41,
"name": "SIP",
"active": true,
"endpoints": [
{
"type": "sip",
"timeout": 50
}
]
}
],
"success": true
}
PUT
api/v1/sip
Метод позволяет создать новый SIP-аккаунт.
URL для получения созданного SIP-аккаунта находится в заголовке "Location"
.
Body
name
string
⁎ название SIP-аккаунта
number
integer / {200 ... 99999}
⁎ внутренний (добавочный) номер
role
string
дополнительное описание SIP-аккаунта (например: роль, город или отдел сотрудника)
aon
integer
ИД телефонного номера i
для АОНа исходящих вызовов
sequence_rule
string
код правила распределения входящих вызовов
single
— по очереди
simultaneous
— одновременно
sip_timeout
integer / {0 ... 90}
⁎ время дозвона на SIP-аккаунт (в секундах, с шагом 5)
phone_number
string
телефонный номер для переадресации
phone_timeout
string / {0 ... 90}
время дозвона на телефонный номер (в секундах, с шагом 5)
curl -X PUT \
"https://restapi.plusofon.ru/api/v1/sip" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"\u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440","number":300,"role":"\u041e\u0442\u0434\u0435\u043b \u043f\u0440\u043e\u0434\u0430\u0436","aon":15,"sip_timeout":50,"sequence_rule":"Order","phone_number":"79993332210","phone_timeout":25}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/sip"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"name": "\u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440",
"number": 300,
"role": "\u041e\u0442\u0434\u0435\u043b \u043f\u0440\u043e\u0434\u0430\u0436",
"aon": 15,
"sip_timeout": 50,
"sequence_rule": "Order",
"phone_number": "79993332210",
"phone_timeout": 25
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://restapi.plusofon.ru/api/v1/sip',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'Диспетчер',
'number' => 300,
'role' => 'Отдел продаж',
'aon' => 15,
'sip_timeout' => 50,
'sequence_rule' => 'Order',
'phone_number' => '79993332210',
'phone_timeout' => 25,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/sip'
payload = {
"name": "\u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440",
"number": 300,
"role": "\u041e\u0442\u0434\u0435\u043b \u043f\u0440\u043e\u0434\u0430\u0436",
"aon": 15,
"sip_timeout": 50,
"sequence_rule": "Order",
"phone_number": "79993332210",
"phone_timeout": 25
}
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
сообщение об ошибке
SIP-аккаунт успешно создан:
{
"success": true
}
PATCH
api/v1/sip/{sip_id}
Метод позволяет обновить параметры конкретного SIP-аккаунта.
Path
sip_id
stringi
Body
name
string
название SIP-аккаунта
password
string
пароль
number
integer / {200 ... 99999}
внутренний (добавочный) номер
role
string
дополнительное описание SIP-аккаунта (например: роль, город или отдел сотрудника)
aon
integer
ИД телефонного номера i
для АОНа исходящих вызовов
curl -X PATCH \
"https://restapi.plusofon.ru/api/v1/sip/42" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"rerum","password":"ea","number":1,"role":"nulla","aon":2}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/sip/42"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"name": "rerum",
"password": "ea",
"number": 1,
"role": "nulla",
"aon": 2
}
fetch(url, {
method: "PATCH",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://restapi.plusofon.ru/api/v1/sip/42',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'rerum',
'password' => 'ea',
'number' => 1,
'role' => 'nulla',
'aon' => 2,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/sip/42'
payload = {
"name": "rerum",
"password": "ea",
"number": 1,
"role": "nulla",
"aon": 2
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
SIP-аккаунт успешно обновлён:
{
"success": true
}
DELETE
api/v1/sip/{sip_id}
Метод позволяет удалить конкретный SIP-аккаунт.
Path
sip_id
stringi
curl -X DELETE \
"https://restapi.plusofon.ru/api/v1/sip/42" \
-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/sip/42"
);
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));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://restapi.plusofon.ru/api/v1/sip/42',
[
'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/sip/42'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
SIP-аккаунт успешно удалён:
{
"success": true
}
GET
api/v1/sip/{sip_id}/scenarios
Метод позволяет получить список всех сценариев обработки входящих вызовов конкретного SIP-аккаунта.
Path
sip_id
stringi
Query
page
integer
номер выводимой страницы
limit
integer
лимит записей на странице
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/sip/78/scenarios?page=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/sip/78/scenarios"
);
let params = {
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
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/sip/78/scenarios',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'query' => [
'page'=> '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/sip/78/scenarios'
params = {
'page': '1',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
В ответе возвращается массив data
:
id
integer
ИД сценария
name
string
название сценария
active
string
признак активности сценария
endpoints
array
массив настроек переадресации вызовов
type
stringsip
— вызов на SIP-аккаунт
mob
— переадресация на мобильный номер
timeout
integer{
"current_page": 1,
"data": [
{
"id": 43,
"name": "SIP",
"active": true,
"endpoints": [
{
"type": "sip",
"timeout": 50
}
]
},
{
"id": 52,
"name": "Переадресация",
"active": false,
"endpoints": [
{
"type": "sip",
"timeout": 15
},
{
"type": "mob",
"timeout": 40
},
{
"type": "mob",
"timeout": 25
}
]
}
],
"first_page_url": "http:\/\/localhost\/api\/v1\/sip\/83\/scenarios?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http:\/\/localhost\/api\/v1\/sip\/83\/scenarios?page=1",
"next_page_url": null,
"path": "http:\/\/localhost\/api\/v1\/sip\/83\/scenarios",
"per_page": 15,
"prev_page_url": null,
"to": 2,
"total": 2,
"success": true
}
POST
api/v1/sip/{sip_id}/scenarios
Метод позволяет создать новый сценарий обработки входящих вызовов для конкретного SIP-аккаунта.
URL для получения созданного сценария находится в заголовке "Location"
.
Path
sip_id
stringi
Body
name
string
⁎ название сценария
sequence_rule
string
⁎ код правила распределения входящих вызовов
single
— поочерёдное распределение вызовов
simultaneous
— одновременное распределение вызовов
sip_timeout
integer / {0 ... 90}
⁎ время дозвона на SIP-аккаунт (в секундах, с шагом 5)
phones
array
массив телефонных номеров для переадресации (до 5 шт.)
/ number
string
⁎ телефонный номер
/ timeout
integer / {0 ... 90}
⁎ время дозвона на телефонный номер (в секундах, с шагом 5)
voicemail
boolean
⁎ признак включения голосовой почты
voicemail_media_id
integer
ИД медиафайла i
для приветствия голосовой почты
curl -X POST \
"https://restapi.plusofon.ru/api/v1/sip/15/scenarios" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043c\u0435\u0441\u0442\u0430","sequence_rule":"Order","sip_timeout":50,"phones":[{"number":"79879998877","timeout":25}],"voicemail":true,"voicemail_media_id":57}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/sip/15/scenarios"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"name": "\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043c\u0435\u0441\u0442\u0430",
"sequence_rule": "Order",
"sip_timeout": 50,
"phones": [
{
"number": "79879998877",
"timeout": 25
}
],
"voicemail": true,
"voicemail_media_id": 57
}
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/sip/15/scenarios',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'Для рабочего места',
'sequence_rule' => 'Order',
'sip_timeout' => 50,
'phones' => [
[
'number' => '79879998877',
'timeout' => 25,
],
],
'voicemail' => true,
'voicemail_media_id' => 57,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/sip/15/scenarios'
payload = {
"name": "\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043c\u0435\u0441\u0442\u0430",
"sequence_rule": "Order",
"sip_timeout": 50,
"phones": [
{
"number": "79879998877",
"timeout": 25
}
],
"voicemail": true,
"voicemail_media_id": 57
}
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/sip/{sip_id}/scenarios/{scenario_id}
Метод позволяет обновить параметры созданного сценария обработки входящих вызовов для SIP-аккаунта.
Path
Body
name
string
⁎ название сценария
sequence_rule
string
⁎ код правила распределения входящих вызовов
single
— поочерёдное распределение вызовов
simultaneous
— одновременное распределение вызовов
sip_timeout
integer / {0 ... 90}
⁎ время дозвона на SIP-аккаунт (в секундах, с шагом 5)
phones
array
массив телефонных номеров для переадресации (до 5 шт.)
/ number
string
⁎ телефонный номер
/ timeout
integer / {0 ... 90}
⁎ время дозвона на телефонный номер (в секундах, с шагом 5)
voicemail
boolean
⁎ признак включения голосовой почты
voicemail_media_id
integer
ИД медиафайла i
для приветствия голосовой почты
curl -X PUT \
"https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043c\u0435\u0441\u0442\u0430","sequence_rule":"Order","sip_timeout":50,"phones":[{"number":"79993332210","timeout":25}],"voicemail":true,"voicemail_media_id":57}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"name": "\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043c\u0435\u0441\u0442\u0430",
"sequence_rule": "Order",
"sip_timeout": 50,
"phones": [
{
"number": "79993332210",
"timeout": 25
}
],
"voicemail": true,
"voicemail_media_id": 57
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'Для рабочего места',
'sequence_rule' => 'Order',
'sip_timeout' => 50,
'phones' => [
[
'number' => '79993332210',
'timeout' => 25,
],
],
'voicemail' => true,
'voicemail_media_id' => 57,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78'
payload = {
"name": "\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043c\u0435\u0441\u0442\u0430",
"sequence_rule": "Order",
"sip_timeout": 50,
"phones": [
{
"number": "79993332210",
"timeout": 25
}
],
"voicemail": true,
"voicemail_media_id": 57
}
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
}
PATCH
api/v1/sip/{sip_id}/scenarios/{scenario_id}
Метод позволяет активировать конкретный сценарий обработки входящих вызовов для конкретного SIP-аккаунта.
curl -X PATCH \
"https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78" \
-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/sip/42/scenarios/78"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "PATCH",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78',
[
'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/sip/42/scenarios/78'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('PATCH', url, headers=headers)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Сценарий успешно активирован:
{
"success": true
}
DELETE
`api/v1/sip/{sip_id}/scenarios/
Метод позволяет удалить конкретный сценарий обработки входящих вызовов для конкретного SIP-аккаунта.
curl -X DELETE \
"https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78" \
-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/sip/42/scenarios/78"
);
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));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://restapi.plusofon.ru/api/v1/sip/42/scenarios/78',
[
'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/sip/42/scenarios/78'
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
}