версия от 2023-02-13
Группа методов позволяет подключать и отключать телефонные номера других операторов для приёма входящих вызовов.
Адрес: https://restapi.plusofon.ru
GET
api/v1/number/external
Метод позволяет получить список всех настроенных в текущем личном кабинете внешних номеров.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/number/external" \
-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/number/external"
);
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/number/external',
[
'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/number/external'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив external_numbers
:
number
номер в международном формате
source
SIP-аккаунт или перечень SIP-серверов
customer_id
ИД текущего личного кабинета
type
тип подключения внешнего номера
АТС
— тип «АТС», регистрация на SIP-сервере по логину и паролю
SIP-URI
— тип «SIP-URI», приём вызовов на выделенный адрес
status
"АТС"
){
"external_numbers": [
{
"number": "79104445566",
"source": "21201588169353@sip.plusofon.ru",
"customer_id": 42291,
"type": "АТС",
"status": false
},
{
"number": "79104445567",
"source": "sip.plusofon.ru,sip.plusofon.ru1,sip.plusofon.ru2",
"host": "4229179104445567@ext.plusofon.ru",
"customer_id": 42291,
"type": "SIP-URI"
}
],
"success": true
}
GET
api/v1/number/external/status
Метод позволяет получить список статусов регистрации в сети внешнего номера. Работает только для типа «АТС».
Body
logins
arraycurl -X GET \
-G "https://restapi.plusofon.ru/api/v1/number/external/status" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"logins":[]}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/number/external/status"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"logins": []
}
fetch(url, {
method: "GET",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/number/external/status',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'logins' => [],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/number/external/status'
payload = {
"logins": []
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
В ответе возвращается массив status
:
login
логин подключения
status
статус регистрации в сети
date
дата и время обновления статуса
{
"status": [
{
"login": "111",
"status": "OK",
"date": "2021-02-10 00:00:00"
},
{
"login": "222",
"status": "OK",
"date": "2021-02-10 00:00:00"
}
],
"success": true
}
PUT
api/v1/number/external/{type}
Метод позволяет настроить новое подключение внешнего номера.
Path
type
stringate
— тип «АТС», регистрация на SIP-сервере по логину и паролю
sipuri
— тип «SIP-URI», приём вызовов на выделенный адрес
Body
host
string
⁎ SIP-сервер внешнего номера
number
integer
⁎ внешний номер в международном формате
port
integer
⁎ только для типа «АТС» — порт подключения
login
string
⁎ только для типа «АТС» — логин подключения
secret
string
⁎ только для типа «АТС» — пароль
curl -X PUT \
"https://restapi.plusofon.ru/api/v1/number/external/ate" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"host":"et","number":18,"port":1,"login":"aperiam","secret":"non"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/number/external/ate"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"host": "et",
"number": 18,
"port": 1,
"login": "aperiam",
"secret": "non"
}
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/number/external/ate',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'host' => 'et',
'number' => 18,
'port' => 1,
'login' => 'aperiam',
'secret' => 'non',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/number/external/ate'
payload = {
"host": "et",
"number": 18,
"port": 1,
"login": "aperiam",
"secret": "non"
}
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/number/external/{type}/{id}
Метод позволяет обновить параметры подключения внешнего номера.
Path
type
stringate
— тип «АТС», регистрация на SIP-сервере по логину и паролю
sipuri
— тип «SIP-URI», приём вызовов на выделенный адрес
id
stringi
Body
host
string
⁎ SIP-сервер внешнего номера
number
integer
⁎ внешний номер в международном формате
port
integer
⁎ только для типа «АТС» — порт подключения
login
string
⁎ только для типа «АТС» — логин подключения
secret
string
⁎ только для типа «АТС» — пароль
curl -X PATCH \
"https://restapi.plusofon.ru/api/v1/number/external/ate/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"host":"voluptas","number":6,"port":6,"login":"repudiandae","secret":"repellat"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/number/external/ate/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"host": "voluptas",
"number": 6,
"port": 6,
"login": "repudiandae",
"secret": "repellat"
}
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/number/external/ate/1',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'host' => 'voluptas',
'number' => 6,
'port' => 6,
'login' => 'repudiandae',
'secret' => 'repellat',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/number/external/ate/1'
payload = {
"host": "voluptas",
"number": 6,
"port": 6,
"login": "repudiandae",
"secret": "repellat"
}
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
сообщение об ошибке
Внешний номер успешно обновлён:
{
"success": true
}
DELETE
api/v1/number/external/{type}/{id}
Метод позволяет удалить подключение внешнего номера.
Path
type
stringate
— тип «АТС», регистрация на SIP-сервере по логину и паролю
sipuri
— тип «SIP-URI», приём вызовов на выделенный адрес
id
stringi
curl -X DELETE \
"https://restapi.plusofon.ru/api/v1/number/external/ate/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/number/external/ate/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));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://restapi.plusofon.ru/api/v1/number/external/ate/1',
[
'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/number/external/ate/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
}