SIP API
Программный интерфейс SIP API позволяет управлять SIP ID в приложении аккаунта МТС Exolve.
SIP (Session Initiary Protocol) — это протокол установления сеанса связи через Интернет. В МТС Exolve используется для совершения и приёма звонков. SIP-протокол позволяет открывать несколько сеансов связи одновременно без потери скорости и качества обработки информации. Отличается высоким уровенем безопасности благодаря шифрованию входных и выходных каналов связи.
SIP API Exolve предлагает пользователям следующие методы для работы:
-
Create - создает SIP ID в приложении аккаунта;
-
Delete - удаляет созданный SIP ID в приложении аккаунта;
-
GetFees - получает абонентскую плату за использование SIP ID;
-
GetAttributes - получает информацию о параметрах созданного SIP ID;
-
GetSIPList - получает информацию обо всех SIP ID приложения по заданным параметрам;
-
SetDisplayNumber - устанавливает определяемый номера на SIP ID;
-
ChangePassword - меняет пароль от SIP ID.
Для звонков используются IP-адреса:
- 80.75.130.99 — звонка с/на Static IP
- 80.75.130.100 — звонка с/на SIP ID
- 80.75.130.101 — переадресация на SIP-соединение
Решения, где используется SIP API
Метод Create
Примените этот метод для создания SIP ID. Для этого выполните POST запрос с входными параметрами к точке подключения, указанными ниже.
Точка подключения:
POST: https://api.exolve.ru/sip/v1/Create
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0 , где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.
Параметр | Тип | Описание |
---|---|---|
sip_name | string | название ресурса SIP ID |
number | uint64 | определяемый номер Exolve (для исходящих звонков в ТфОП) |
description | string | описание к ресурсу SIP ID |
call_record | boolean | запись разговора. True - включить запись разговоров, False - не включать запись разговоров |
Примечание
Чтобы включить запись звонков через SIP ID, убедитесь, что соответствующая услуга уже включена в настройках приложения в Личном кабинете разработчика.
Определяемый номер используется для исходящих звонков при выходе в телефонную сеть общего пользования. В качестве такого номера можно назначить только один из номеров этого же приложения.
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
sip_resource_id | uint64 | уникальный идентификатор ресурса SIP ID |
username | string | юзернейм SIP ID |
Возможные ошибки
Код | Статус | Пример сообщения | Описание |
---|---|---|---|
401 | Unauthorized | Unauthorized | отсутствует/невалидный API-ключ |
400 | Bad Request | Error adding SIP: sip name is not unique on the application | SIP ID с таким именем уже есть в приложении |
400 | Bad Request | Error adding SIP: not enough money on account | попытка купить 4 SIP ID при нулевом балансе |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя не активен |
409 | Conflict | Error adding SIP: call record is disabled on the app | услуга записи звонков не включена в настройках приложения |
500 | Internal Server Error | Application [app_name] does not own resource [number] | указанный номер не принадлежит приложению |
400 | Bad Request | invalid value [value] | в одном из полей невалидный формат |
400 | Bad Request | value length must be between 3 and 40 runes, inclusive | поле sip_name должно содержать от 3 до 40 символов включительно |
Примеры
Входные параметры:
{
"sip_name": "Test",
"number": 74991112233,
"description": "Test SIP ID",
"call_record": true
}
Выходные параметры:
{
"sip_resource_id": "1111",
"username": "88314011122"
}
Метод Delete
Примените этот метод для удаления ресурса SIP ID. Для этого выполните POST запрос с входными параметрами к точке подключения, указанными ниже.
Точка подключения:
POST: https://api.exolve.ru/sip/v1/Delete
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0 , где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте следующие параметры в теле запроса в JSON формате. Параметры, отмеченные жирным шрифтом, являются обязательными.
Параметр | Тип | Описание |
---|---|---|
sip_resource_id | uint64 | уникальный идентификатор ресурса SIP ID |
Выходные параметры
Пустой JSON c 200 OK статусом.
Возможные ошибки
Код | Статус | Пример сообщения | Описание |
---|---|---|---|
401 | Unauthorized | Unauthorized | отсутствует/не валидный API-ключ |
400 | Bad Request | Error deleting sip: SIP is missing in the application | заданный SIP ID не принадлежит приложению |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя не активен |
400 | Bad Request | invalid value for uint64 type | значение в поле sip_resource_id не валидно |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя не активен |
Примеры
Входные параметры:
{
"sip_resource_id": "111"
}
Выходные параметры:
{}
Метод GetFees
Примените этот метод для получения стоимости использования ресурса SIP ID. Для этого выполните POST запрос с входными параметрами к точке подключения, указанными ниже.
Точка подключения:
POST: https://api.exolve.ru/sip/v1/GetFees
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0 , где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте пустой JSON в теле запроса.
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
install_fee | float | стоимость покупки |
subscription_fee | float | абонентская плата |
Возможные ошибки
Код | Статус | Пример сообщения | Описание |
---|---|---|---|
401 | Unauthorized | Unauthorized | отсутствует/не валидный API-ключ |
400 | Bad Request | invalid value [value] | невалидное значение в запросе |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя не активен |
Примеры
Входные параметры:
{}
Выходные параметры:
{
"install_fee": 0,
"subscription_fee": 90
}
Метод GetAttributes
Примените этот метод для получения детальной информации о ресурсе SIP ID (его атрибуты). Для этого выполните POST запрос с входными параметрами к точке подключения, указанными ниже.
Точка подключения:
POST: https://api.exolve.ru/sip/v1/GetAttributes
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0 , где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте следующие параметры в теле запроса в JSON формате. Параметры, отмеченные жирным шрифтом, являются обязательными.
Параметр | Тип | Описание |
---|---|---|
sip_resource_id | uint64 | уникальный идентификатор ресурса SIP ID |
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
application_uuid | string | уникальный идентификатор приложения, ресурсом которого является SIP ID |
sip_resource_id | uint64 | уникальный идентификатор ресурса SIP ID |
sip_name | string | название ресурса SIP ID |
description | string | описание к ресурсу SIP ID |
number_code | uint64 | юзернейм SIP ID |
attributes | SipAttributes | атрибуты, информация о SIP ID |
create_date | string | дата создания SIP ID в формате RFC-3339 / ISO-8601 |
SipAttributes
Параметр | Тип | Описание |
---|---|---|
login | sting | логин (юзернейм) SIP ID |
password | string | пароль SIP ID |
install_fee | float | стоимость покупки |
subscription_fee | float | абонентская плата |
username | string | юзернейм SIP ID |
domain | string | домен для подключения |
call_record | boolean | запись разговора. True - включить запись разговоров, False - не включать запись разговоров |
cli | string | определяемый номер Exolve (для исходящих звонков в ТфОП) |
Возможные ошибки
Код | Статус | Пример сообщения | Описание |
---|---|---|---|
401 | Unauthorized | Unauthorized | отсутствует/не валидный API-ключ |
400 | Bad Request | Error getting sip info: SIP is missing in the application | заданный SIP ID не принадлежит приложению |
400 | Bad Request | invalid value for uint64 type [value] | значение в поле sip_resource_id не валидно |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя не активен |
Примеры
Входные параметры:
{
"sip_resource_id": 1111
}
Выходные параметры:
{
"application_uuid": "178ec145-6898-4b06-a92a-75f63cb57046",
"sip_resource_id": "1111",
"sip_name": "TEST SIP ID",
"description": "",
"number_code": "883140123456789",
"attributes": {
"login": "883140123456789",
"password": "password123",
"subscription_fee": 0,
"install_fee": 0,
"username": "883140123456789",
"domain": "sip.exolve.ru",
"call_record": false,
"cli": "79991112233"
},
"create_date": "2023-12-20T12:35:56.122610Z"
}
Метод GetSIPList
Примените этот метод для получения информации обо всех SIP ID по заданным параметрам. Для этого выполните POST запрос с входными параметрами к точке подключения, указанными ниже.
Точка подключения:
POST: https://api.exolve.ru/number/customer/v1/GetSIPList
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0 , где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте следующие параметры в теле запроса в JSON формате. Параметры, отмеченные жирным шрифтом, являются обязательными.
Параметр | Тип | Описание |
---|---|---|
search_filter_by_name | string | фильтр по названию ресурса SIP ID |
limit | uint64 | лимит выводимых данных |
offset | uint64 | номер строки, с которой начинать выборку (начинается с 0) |
date_from | string | дата создания SIP ID в формате RFC-3339 / ISO-8601, от которой начинать выборку |
date_to | string | дата создания SIP ID в формате RFC-3339 / ISO-8601, до которой продолжать выборку |
username_filter | string | фильтр по имени пользователя (юзернейму) |
order_by | oneof OrderBy | тип сортировки |
OrderBy
Параметр | Тип | Описание |
---|---|---|
order_by_name | enum OrderByName | сортировка по имени |
order_by_date | enum OrderByDate | сортировка по дате |
OrderByName/OrderByDate
Параметр | Тип | Описание |
---|---|---|
1 | enum | ascending order (по возрастанию) |
2 | enum | descending order (по убыванию) — по умолчанию для даты |
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
sips | SIPListElement | список SIP ID и информация о них |
SIPListElement
Параметр | Тип | Описание |
---|---|---|
application_uuid | string | уникальный идентификатор приложения, ресурсом которого является SIP ID |
sip_name | string | название ресурса SIP ID |
subscription_fee | float | абонентская плата |
install_fee | float | стоимость покупки |
sip_resource_id | uint64 | уникальный идентификатор ресурса SIP ID |
user_name | string | юзернейм SIP ID |
domain | string | домен для подключения |
number_code | string | юзернейм SIP ID |
create_date | string | дата создания SIP ID в формате RFC-3339 / ISO-8601 |
cli | string | определяемый номер телефона |
Возможные ошибки
Код | Статус | Пример сообщения | Описание |
---|---|---|---|
401 | Unauthorized | Unauthorized | отсутствует/не валидный API-ключ |
400 | Bad Request | invalid value [value] | в одном из полей не валидный формат |
400 | Bad Request | GetSIPListRequest.OrderByName: value must be one of the defined enum values | в поле order_by_name должно быть одно из определённых значений |
400 | Bad Request | GetSIPListRequest.OrderByDate: value must be one of the defined enum values | в поле order_by_date должно быть одно из определённых значений |
400 | Bad Request | invalid google.protobuf.Timestamp value [value] | в поле date_from/date_to не валидный формат даты |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя не активен |
Примеры
Входные параметры:
{
"search_filter_by_name": null,
"limit": 10,
"offset": 0,
"date_from": "2022-12-19T12:35:56.122610Z",
"date_to": "2023-12-21T12:35:56.122610Z",
"username_filter": null,
"order_by_name": 1
}
Выходные параметры:
{
"sips": [
{
"application_uuid": "178ec145-6898-4b06-a92a-75f63cb57046",
"sip_name": "TEST SIP ID",
"subscription_fee": 0,
"install_fee": 0,
"sip_resource_id": "1111",
"user_name": "883140123456789",
"domain": "sip.exolve.ru",
"number_code": "883140123456789",
"create_date": "2023-12-20T12:35:56.122610Z",
"cli": "79991112233"
},
{
"application_uuid": "178ec145-6898-4b06-a92a-75f63cb57046",
"sip_name": "TEST SIP",
"subscription_fee": 0,
"install_fee": 0,
"sip_resource_id": "2222",
"user_name": "883140987654321",
"domain": "sip.exolve.ru",
"number_code": "883140987654321",
"create_date": "2023-10-10T11:28:38.316920Z",
"cli": "79994445566"
}
]
}
Метод SetDisplayNumber
Примените этот метод для установки определяемого номера на SIP ID. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже.
Точка подключения:
POST: https://api.exolve.ru/sip/v1/SetDisplayNumber
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0 , где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.
Параметр | Тип | Описание |
---|---|---|
sip_resource_id | uint64 | уникальный идентификатор ресурса SIP ID |
number | uint64 | определяемый номер Exolve (для исходящих звонков в ТфОП) |
Выходные параметры
Пустой JSON с 200 OK статусом.
Возможные ошибки
Код | Статус | Пример сообщения | Описание |
---|---|---|---|
401 | Unauthorized | Unauthorized | отсутствует/невалидный API-ключ |
400 | Bad Request | Error set sip display number: incorrect number format | неправильный формат номера в поле number |
400 | Bad Request | Error set sip display number: number is missing in the application | указанный номер не принадлежит приложению |
400 | Bad Request | Error getting sip info: SIP is missing in the application | заданный SIP ID не принадлежит приложению |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя неактивен |
Примеры
Входные параметры:
{
"sip_resource_id": 1111,
"number": 79991112233
}
Выходные параметры:
{}
Метод ChangePassword
Примените этот метод для смены пароля от SIP ID. Для этого выполните POST запрос с входными параметрами к точке подключения, указанными ниже.
Точка подключения:
POST: https://api.exolve.ru/sip/v1/ChangePassword
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0 , где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте следующие параметры в теле запроса в JSON формате. Параметры, отмеченные жирным шрифтом, являются обязательными.
Параметр | Тип | Описание |
---|---|---|
sip_resource_id | uint64 | уникальный идентификатор ресурса SIP ID |
Выходные параметры
Пустой JSON с 200 OK статусом.
Возможные ошибки
Код | Статус | Пример сообщения | Описание |
---|---|---|---|
401 | Unauthorized | Unauthorized | отсутствует/не валидный API-ключ |
400 | Bad Request | Error getting sip info: SIP is missing in the application | заданный SIP ID не принадлежит приложению |
400 | Bad Request | Error adding SIP: customer is not active | аккаунт пользователя не активен |
400 | Bad Request | invalid value [value] | значение в поле sip_resource_id не валидно |
Примеры
Входные параметры:
{
"sip_resource_id": 1111,
}
Выходные параметры:
{}