# Протокол

## Оглавление

- [deviceapis/device/v1/deviceapis_device_sip_v1.proto](#deviceapis_device_v1_deviceapis_device_sip_v1-proto)
    - [SipService](#deviceapis-device-v1-SipService)
  
    - [EditSipAccountRequest](#deviceapis-device-v1-EditSipAccountRequest)
    - [EditSipAccountResponse](#deviceapis-device-v1-EditSipAccountResponse)
    - [EditSipAccountResponse.Error](#deviceapis-device-v1-EditSipAccountResponse-Error)
    - [EditSipTimeoutSettingsRequest](#deviceapis-device-v1-EditSipTimeoutSettingsRequest)
    - [EditSipTimeoutSettingsResponse](#deviceapis-device-v1-EditSipTimeoutSettingsResponse)
    - [EditSipTimeoutSettingsResponse.Error](#deviceapis-device-v1-EditSipTimeoutSettingsResponse-Error)
    - [GetSipAccountListRequest](#deviceapis-device-v1-GetSipAccountListRequest)
    - [GetSipAccountListResponse](#deviceapis-device-v1-GetSipAccountListResponse)
    - [GetSipAccountStatusListRequest](#deviceapis-device-v1-GetSipAccountStatusListRequest)
    - [GetSipAccountStatusListResponse](#deviceapis-device-v1-GetSipAccountStatusListResponse)
    - [GetSipAccountStatusListResponse.SipStatus](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus)
    - [GetSipTimeoutSettingsRequest](#deviceapis-device-v1-GetSipTimeoutSettingsRequest)
    - [GetSipTimeoutSettingsResponse](#deviceapis-device-v1-GetSipTimeoutSettingsResponse)
    - [SipAccount](#deviceapis-device-v1-SipAccount)
    - [SipTimeoutSettings](#deviceapis-device-v1-SipTimeoutSettings)
  
    - [GetSipAccountStatusListResponse.SipStatus.StateType](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType)
  


## [Схема классов](/svg/protos/key/deviceapis/device/v1/deviceapis_device_sip_v1.proto.svg)
<a href="/svg/protos/key/deviceapis/device/v1/deviceapis_device_sip_v1.proto.svg"><img src="/svg/protos/key/deviceapis/device/v1/deviceapis_device_sip_v1.proto.svg" alt="/svg/protos/key/deviceapis/device/v1/deviceapis_device_sip_v1.proto.svg" style="height:100%;"></a>




<a name="deviceapis_device_v1_deviceapis_device_sip_v1-proto"></a>

## [deviceapis/device/v1/deviceapis_device_sip_v1.proto](/protos/key/deviceapis/device/v1/deviceapis_device_sip_v1.proto)
Сервис управления настройками Sip


<a name="deviceapis-device-v1-SipService"></a>

### SipService
 Сервис управления Sip

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="deviceapis-device-v1-EditSipAccount"></a> [EditSipAccount](#deviceapis-device-v1-EditSipAccount) | Метод редактирования Sip-аккаунта | [deviceapis.device.v1.EditSipAccountRequest](#deviceapis-device-v1-EditSipAccountRequest) | [deviceapis.device.v1.EditSipAccountResponse](#deviceapis-device-v1-EditSipAccountResponse) |
| <a id="deviceapis-device-v1-GetSipAccountList"></a> [GetSipAccountList](#deviceapis-device-v1-GetSipAccountList) | Метод получения списка Sip-аккаунтов | [deviceapis.device.v1.GetSipAccountListRequest](#deviceapis-device-v1-GetSipAccountListRequest) | [deviceapis.device.v1.GetSipAccountListResponse](#deviceapis-device-v1-GetSipAccountListResponse) |
| <a id="deviceapis-device-v1-EditSipTimeoutSettings"></a> [EditSipTimeoutSettings](#deviceapis-device-v1-EditSipTimeoutSettings) | Метод редактирования настроек максимального времени общения и дозвона | [deviceapis.device.v1.EditSipTimeoutSettingsRequest](#deviceapis-device-v1-EditSipTimeoutSettingsRequest) | [deviceapis.device.v1.EditSipTimeoutSettingsResponse](#deviceapis-device-v1-EditSipTimeoutSettingsResponse) |
| <a id="deviceapis-device-v1-GetSipTimeoutSettings"></a> [GetSipTimeoutSettings](#deviceapis-device-v1-GetSipTimeoutSettings) | Метод получения настроек максимального времени общения и дозвона | [deviceapis.device.v1.GetSipTimeoutSettingsRequest](#deviceapis-device-v1-GetSipTimeoutSettingsRequest) | [deviceapis.device.v1.GetSipTimeoutSettingsResponse](#deviceapis-device-v1-GetSipTimeoutSettingsResponse) |
| <a id="deviceapis-device-v1-GetSipAccountStatusList"></a> [GetSipAccountStatusList](#deviceapis-device-v1-GetSipAccountStatusList) | Метод получения статусов регистрации Sip-аккаунтов | [deviceapis.device.v1.GetSipAccountStatusListRequest](#deviceapis-device-v1-GetSipAccountStatusListRequest) | [deviceapis.device.v1.GetSipAccountStatusListResponse](#deviceapis-device-v1-GetSipAccountStatusListResponse) |

 <!-- end services -->


<a name="deviceapis-device-v1-EditSipAccountRequest"></a>


### [EditSipAccountRequest](#deviceapis-device-v1-EditSipAccountRequest)
 Запрос на редактирование Sip-аккаунта


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-EditSipAccountRequest-data"></a> [data](#deviceapis-device-v1-EditSipAccountRequest-data) | Sip-аккаунт |    [deviceapis.device.v1.SipAccount](#deviceapis-device-v1-SipAccount) | REQUIRED|
| <a id="deviceapis-device-v1-EditSipAccountRequest-update_mask"></a> [update_mask](#deviceapis-device-v1-EditSipAccountRequest-update_mask) | Маска полей обновления |    [google.protobuf.FieldMask](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|






<a name="deviceapis-device-v1-EditSipAccountResponse"></a>


### [EditSipAccountResponse](#deviceapis-device-v1-EditSipAccountResponse)
 Ответ на запрос редактирования Sip-аккаунта


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-EditSipAccountResponse-error"></a> [error](#deviceapis-device-v1-EditSipAccountResponse-error) | Ошибка |  optional  [deviceapis.device.v1.EditSipAccountResponse.Error](#deviceapis-device-v1-EditSipAccountResponse-Error) | <nil>|






<a name="deviceapis-device-v1-EditSipAccountResponse-Error"></a>


### [EditSipAccountResponse.Error](#deviceapis-device-v1-EditSipAccountResponse-Error)
 Ошибка запроса редактирования Sip-аккаунта


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-EditSipAccountResponse-Error-validation"></a> [validation](#deviceapis-device-v1-EditSipAccountResponse-Error-validation) | Ошибка валидации |  optional  [deviceapis.device.v1.ValidationError](#deviceapis-device-v1-ValidationError) | <nil>|






<a name="deviceapis-device-v1-EditSipTimeoutSettingsRequest"></a>


### [EditSipTimeoutSettingsRequest](#deviceapis-device-v1-EditSipTimeoutSettingsRequest)
 Запрос редактирования настроек максимального времени общения и дозвона


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-EditSipTimeoutSettingsRequest-data"></a> [data](#deviceapis-device-v1-EditSipTimeoutSettingsRequest-data) | Настройки максимального времени общения и дозвона |    [deviceapis.device.v1.SipTimeoutSettings](#deviceapis-device-v1-SipTimeoutSettings) | REQUIRED|
| <a id="deviceapis-device-v1-EditSipTimeoutSettingsRequest-update_mask"></a> [update_mask](#deviceapis-device-v1-EditSipTimeoutSettingsRequest-update_mask) | Маска полей обновления |    [google.protobuf.FieldMask](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|






<a name="deviceapis-device-v1-EditSipTimeoutSettingsResponse"></a>


### [EditSipTimeoutSettingsResponse](#deviceapis-device-v1-EditSipTimeoutSettingsResponse)
 Ответ на запрос редактирования настроек максимального времени общения и дозвона


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-EditSipTimeoutSettingsResponse-error"></a> [error](#deviceapis-device-v1-EditSipTimeoutSettingsResponse-error) | Ошибка |  optional  [deviceapis.device.v1.EditSipTimeoutSettingsResponse.Error](#deviceapis-device-v1-EditSipTimeoutSettingsResponse-Error) | <nil>|






<a name="deviceapis-device-v1-EditSipTimeoutSettingsResponse-Error"></a>


### [EditSipTimeoutSettingsResponse.Error](#deviceapis-device-v1-EditSipTimeoutSettingsResponse-Error)
 Ошибка запроса редактирования настроек максимального времени общения и дозвона


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-EditSipTimeoutSettingsResponse-Error-validation"></a> [validation](#deviceapis-device-v1-EditSipTimeoutSettingsResponse-Error-validation) | Ошибка валидации |  optional  [deviceapis.device.v1.ValidationError](#deviceapis-device-v1-ValidationError) | <nil>|






<a name="deviceapis-device-v1-GetSipAccountListRequest"></a>


### [GetSipAccountListRequest](#deviceapis-device-v1-GetSipAccountListRequest)
 Запрос получения списка Sip-аккаунтов






<a name="deviceapis-device-v1-GetSipAccountListResponse"></a>


### [GetSipAccountListResponse](#deviceapis-device-v1-GetSipAccountListResponse)
 Ответ на запрос получения списка Sip-аккаунтов


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetSipAccountListResponse-data"></a> [data](#deviceapis-device-v1-GetSipAccountListResponse-data) | Массив Sip-аккаунтов |  repeated  [deviceapis.device.v1.SipAccount](#deviceapis-device-v1-SipAccount) | <nil>|






<a name="deviceapis-device-v1-GetSipAccountStatusListRequest"></a>


### [GetSipAccountStatusListRequest](#deviceapis-device-v1-GetSipAccountStatusListRequest)
 Запрос получения статусов регистрации Sip-аккаунтов






<a name="deviceapis-device-v1-GetSipAccountStatusListResponse"></a>


### [GetSipAccountStatusListResponse](#deviceapis-device-v1-GetSipAccountStatusListResponse)
 Ответ на запрос получения статусов регистрации Sip-аккаунтов


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-data"></a> [data](#deviceapis-device-v1-GetSipAccountStatusListResponse-data) | Статус аккаунтов Sip |  repeated  [deviceapis.device.v1.GetSipAccountStatusListResponse.SipStatus](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus) | <nil>|






<a name="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus"></a>


### [GetSipAccountStatusListResponse.SipStatus](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus)
 Статус аккаунтов Sip


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-sip_account_id"></a> [sip_account_id](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-sip_account_id) | ID Sip-аккаунта |    [string](#scalar-types) | REQUIRED|
| <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-state_type"></a> [state_type](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-state_type) | Статус регистрации Sip |    [deviceapis.device.v1.GetSipAccountStatusListResponse.SipStatus.StateType](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType) | <nil>|
| <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-last_attempt_register_at"></a> [last_attempt_register_at](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-last_attempt_register_at) | Дата последней попытки регистрации UnixTime |    [int32](#scalar-types) | <nil>|






<a name="deviceapis-device-v1-GetSipTimeoutSettingsRequest"></a>


### [GetSipTimeoutSettingsRequest](#deviceapis-device-v1-GetSipTimeoutSettingsRequest)
 Запрос получения настроек максимального времени общения и дозвона






<a name="deviceapis-device-v1-GetSipTimeoutSettingsResponse"></a>


### [GetSipTimeoutSettingsResponse](#deviceapis-device-v1-GetSipTimeoutSettingsResponse)
 Ответ на запрос получения настроек максимального времени общения и дозвона


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetSipTimeoutSettingsResponse-data"></a> [data](#deviceapis-device-v1-GetSipTimeoutSettingsResponse-data) | Настройки максимального времени общения и дозвона |  optional  [deviceapis.device.v1.SipTimeoutSettings](#deviceapis-device-v1-SipTimeoutSettings) | <nil>|






<a name="deviceapis-device-v1-SipAccount"></a>


### [SipAccount](#deviceapis-device-v1-SipAccount)
 Sip-аккаунт


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SipAccount-account_id"></a> [account_id](#deviceapis-device-v1-SipAccount-account_id) | ID Sip-аккаунта |    [string](#scalar-types) | REQUIRED|
| <a id="deviceapis-device-v1-SipAccount-name"></a> [name](#deviceapis-device-v1-SipAccount-name) | Имя |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="deviceapis-device-v1-SipAccount-number"></a> [number](#deviceapis-device-v1-SipAccount-number) | Номер |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="deviceapis-device-v1-SipAccount-user"></a> [user](#deviceapis-device-v1-SipAccount-user) | Имя пользователя |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="deviceapis-device-v1-SipAccount-password"></a> [password](#deviceapis-device-v1-SipAccount-password) | Пароль. Не возвращается с сервера. TODO: в генерации сваггера не показывать INPUT_ONLY поля в ответах |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | INPUT_ONLY|
| <a id="deviceapis-device-v1-SipAccount-reg_server_address"></a> [reg_server_address](#deviceapis-device-v1-SipAccount-reg_server_address) | Адрес REG-сервера. Сетевой адрес и порт. Пример: 192.168.0.1:5060, reg.acme.io:5060 |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="deviceapis-device-v1-SipAccount-sip_server_address"></a> [sip_server_address](#deviceapis-device-v1-SipAccount-sip_server_address) | Адрес SIP-сервера. Сетевой адрес и порт. Пример: 192.168.0.1:5060, sip.acme.io:5060 |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="deviceapis-device-v1-SipAccount-sip_proxy_address"></a> [sip_proxy_address](#deviceapis-device-v1-SipAccount-sip_proxy_address) | Адрес SIP-прокси. Сетевой адрес и порт. Пример: 192.168.0.1:5060, proxy.acme.io:5060 |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|






<a name="deviceapis-device-v1-SipTimeoutSettings"></a>


### [SipTimeoutSettings](#deviceapis-device-v1-SipTimeoutSettings)
 Настройки максимального времени общения и дозвона


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SipTimeoutSettings-call_timeout"></a> [call_timeout](#deviceapis-device-v1-SipTimeoutSettings-call_timeout) | Максимальное время дозвона в секундах |    [int32](#scalar-types) | <nil>|
| <a id="deviceapis-device-v1-SipTimeoutSettings-talk_timeout"></a> [talk_timeout](#deviceapis-device-v1-SipTimeoutSettings-talk_timeout) | Максимальное время общения в секундах |    [int32](#scalar-types) | <nil>|





 <!-- end messages -->



<a name="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType"></a>

### [GetSipAccountStatusListResponse.SipStatus.StateType](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType)
 Тип состояния Sip-аккаунта

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-STATE_TYPE_UNKNOWN"></a> [STATE_TYPE_UNKNOWN](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-STATE_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-REGISTERING"></a> [REGISTERING](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-REGISTERING) | Клиент отправил REGISTER запрос, но ответ от сервера ещё не получен. Идёт попытка регистрации |
| 2 | <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-REGISTERED"></a> [REGISTERED](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-REGISTERED) | Успешная регистрация. SIP-сервер подтвердил регистрацию, клиент готов принимать звонки |
| 3 | <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-UNREGISTERED"></a> [UNREGISTERED](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-UNREGISTERED) | Клиент отключился или не регистрировался. Возможные причины: Клиент отправил UNREGISTER; Истек срок регистрации (expires) |
| 4 | <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-REGISTRATION_FAILED"></a> [REGISTRATION_FAILED](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-REGISTRATION_FAILED) | Ошибка при попытке регистрации. Возможные причины: Неверный логин/пароль; SIP-сервер недоступен; Ошибка в конфигурации (порт, протокол, IP) |
| 5 | <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-TIMEOUT"></a> [TIMEOUT](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-TIMEOUT) | Нет ответа от сервера в течение времени ожидания. Возможные причины: Проблемы с сетью; SIP-сервер не отвечает; Нет ответа от сервера в течение времени ожидания |
| 6 | <a id="deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-DISABLED"></a> [DISABLED](#deviceapis-device-v1-GetSipAccountStatusListResponse-SipStatus-StateType-DISABLED) | SIP клиент остановлен вручную или отключён по конфигурации. Не выполняется даже попытка регистрации |


 <!-- end enums -->

 <!-- end HasExtensions -->



## Скалярные типы значений
<a id="scalar-types"></a>

| .proto Type | Примечание | Python | Go | Ruby | C# | C++ | Java | PHP |
| ----------- | ---------- | ------ | -- | ---- | -- | --- | ---- | --- |
| [double](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | float | float64 | Float | double | double | double | float |
| [float](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | float | float32 | Float | float | float | float | float |
| [int32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [int64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [uint32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. | int/long | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| [uint64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. | int/long | uint64 | Bignum or Fixnum (as required) | ulong | uint64 | long | integer/string |
| [sint32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [sint64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [fixed32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | int | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| [fixed64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | int/long | uint64 | Bignum | ulong | uint64 | long | integer/string |
| [sfixed32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always four bytes. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [sfixed64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always eight bytes. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [bool](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | boolean | bool | TrueClass/FalseClass | bool | bool | boolean | boolean |
| [string](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode | string | String (UTF-8) | string | string | String | string |
| [bytes](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | May contain any arbitrary sequence of bytes. | str | []byte | String (ASCII-8BIT) | ByteString | string | ByteString | string |

