Skip to content

Структуры данных

Эта страница описывает основные структуры из Engine/Proto. Поля not transmitted используются локально и не должны считаться частью wire contract.

Member

Source: Engine/Proto/Member.h.

Поле Тип Назначение
id int64 User/member id.
type MemberType 0=Undefined, 1=Ordinal, 2=Service.
state MemberState Текущее состояние пользователя.
login string Логин.
name string Отображаемое имя.
number string Номер/внутренний идентификатор.
icon string Icon payload/reference.
avatar string Avatar payload/reference.
groups Group[] Группы пользователя.
max_input_bitrate uint32 Ограничение входящего bitrate.
order uint32 Порядок в конференции/списках.
has_camera bool Камера доступна/видима.
has_microphone bool Микрофон доступен/слышен.
has_demonstration bool Демонстрация доступна/видима.
grants uint32 Bitmask прав участника.
deleted bool Tombstone/delete marker.
unreaded_count uint32 Локальное поле, не передается.

Conference

Source: Engine/Proto/Conference.h.

Поле Тип Назначение
id int64 Conference id.
tag string Stable tag для URL/API/connect.
name string Название.
descr string Описание.
founder string Имя владельца.
founder_id int64 Id владельца.
type ConferenceType 1=Symmetric, 2=Asymmetric, 3=AsymmetricWithSymmetricSound.
grants uint32 Bitmask прав/ограничений конференции.
duration uint64 Длительность/лимит.
members Member[] Участники.
connect_members bool Автоматическое подключение участников.
temp bool Временная конференция.
deleted bool Tombstone/delete marker.
unreaded_count uint32 Локальное поле, не передается.
rolled bool Локальное поле, не передается.

Group

Source: Engine/Proto/Group.h.

Поле Тип Назначение
id int64 Group id.
parent_id int64 Parent group id.
tag string Stable tag.
name string Название.
owner_id int64 Владелец.
password string Пароль/ключ группы, если используется.
grants uint32 Bitmask прав группы.
level int32 Уровень в дереве.
deleted bool Tombstone/delete marker.
rolled bool Локальное поле, не передается.

Message

Source: Engine/Proto/Message.h.

Поле Тип Назначение
guid string Stable message id.
dt time_t Timestamp.
type MessageType Text, call, file/media/service states.
author_id, author_name int64/string Автор содержимого.
sender_id, sender_name int64/string Отправитель.
subscriber_id, subscriber_name int64/string Получатель для p2p.
conference_tag, conference_name string Контекст конференции.
status MessageStatus Created, Sended, Delivered, Readed, Modified, Deleted.
text string Текст или JSON payload service message.
call_duration int32 Длительность звонка.
call_result CallResult Answered, Missed, Rejected, Busy, Offline.
preview string Preview payload/reference.
data string Дополнительные данные.
url string External URL.

MessageType values:

Value Meaning
1 TextMessage
2 Call
3 Join
4 Leave
5 Image
6 Document
7 Forwarded
8 Video
9 VoiceMessage
10 VideoMessage
11 Typing
12 RecordingVoice
13 RecordingVideo
14 ServiceMessage

Blob

Source: Engine/Proto/Blob.h.

Поле Тип Назначение
id int64 Blob id.
owner_id int64 Владелец.
guid string Stable blob id.
type BlobType 1=Image, 2=Document, 3=Voice, 4=CircleVideo.
status BlobStatus NotFound, Created, Received, Modified, Deleted.
action BlobAction SpeedTest, Storage, P2P.
data string Blob data/reference.
preview string Preview data/reference.
name string File name.
description string Description.
deleted bool Tombstone/delete marker.

Device values in device_connect

device_connect не отдельная структура в Engine/Proto, но это ключевой wire object.

Поле Назначение
device_id Control id устройства.
client_id Владелец устройства.
device_type Camera/Microphone/Demonstration/etc.
receiver_ssrc SSRC receiving side.
author_ssrc SSRC publishing side.
port Translator port.
resolution, color_space, video_codec, audio_codec Media parameters.
my 1, если событие относится к локальному устройству текущего клиента.
secure_key Key для RTP payload crypto.

Grants

grants — bitmask. Не интерпретировать как enum value. Перед проверкой конкретного права использовать bit operations (BitIsSet, BitIsClear) и соответствующие enum definitions:

  • Engine/Proto/MemberGrants.h;
  • Engine/Proto/ConferenceGrants.h;
  • Engine/Proto/GroupGrants.h;
  • Server/Processor/API.h для API token grants.