﻿Открытый протокол обмена данными MyChat
Официальное описание
Copyright (c) 2012-2023 by Alexey Pikurov / Network Software Solutions
https://nsoft-s.com

Редакция #154 от 2023-12-12 15:01:08
Версия протокола 2.65
---------------------------------

Все команды разделены на два типа: "клиент - сервер" и "сервер - клиент". Команды первого типа начинаются с префикса "cs" (Client->Server),
второго - наоборот - "sc" (Server->Client). Названия номинальны, на самом деле вместо этих текстовых констант будут шестнадцатеричные текстовые коды.

1. MagicString - 2 байта #23#6
Каждая команда состоит из нескольких частей:
2. идентификатор команды, HEX код в текстовом виде, 4 байта (закодировано 2 байта);
3. флаги, HEX код в текстовом виде, 2 байта (закодирован 1 байт);
   слева -> направо:
   1-й бит: пакет сжат GZIP-ом или нет. "1" - сжат, "0" - нет.
   2-й, 3-й и 4-й биты: класс команды отправителя. По умолчанию - "000" (ядро программы), остаётся без изменения и после обработки команды, этот код высылается и обратно, вместе с результатом,
   если таковой есть. Классами команд могут быть:
     "000" - ядро программы;
     "001" - текстовая консоль;
     "010" - Plugins API;
     "100" - Scripts API;
     "011" - Integration API;
     "111" - Custom API (5.2+);
     "110", "101" - зарезервировано для будущих расширений
   биты 5, 6, 7 и 8 - зарезервированы;
4. непосредственно сам JSON объект. Если он был упакован GZIP, то объект будет текстовой строкой, закодированной в BASE64, если сжатия нет - будет строка в открытом виде.
5. CRLF (#13#10) - завершающий блок (2 байта).

Все параметры в командах номинальны и даны для примера. Все параметры обязательны.


Последовательность подключения к серверу и общая схема работы
-------------------------------------------------------------------------------------------------------------------------------------------------------
Проверка работоспособности сервера:
1. Client->Server: "mctest" + CRLF
2. Server->Client: "mctest" +
{
  "ProtocolVer"      : "2.0",                        // версия протокола обмена данными !
  "ServerVer"        : "5.0",                        // версия сервера
  "RelDate"          : "26.11.2012",                 // дата выпуска сервера в формате dd.mm.yyyy
  "CurrentDT"        : "26.11.2012.09.18.31.785",    // UTC текущие дата и время на сервере в формате dd.mm.yyyy.hh.nn.ss.zzz
  "Registered"       : "Network Software Solutions", // на кого зарегистрирован сервер
  "YourIP"           : "192.168.10.15",              // IP адрес подключающегося клиента, который "видит" сервер
  "ExternalIP"       : "my.company.com",             // (7.8+) внешний IP адрес или доменное имя сервера MyChat
  "ServPass"         : false,                        // (ver5.1+) сервер закрыт специальным паролем (true/false). По умолчанию пароль не используется
  "ServName"         : "Company server",             // (ver5.1+) имя сервера
  "Free"             : false,                        // (5.7+) если сервер бесплатный, то true, иначе - false
  "ForceEncrypt"     : false,                        // обязательно использовать шифрование
  "HTTPS"            : true,                         // (7.1+) используется https-шифрование для встроенного WEB-сервера или нет
  "NodePort"         : 80,                           // (7.1+) порт встроенного WEB-сервера
  "ID"               : "FA5632"                      // (7.2+) локальный идентификатор сервера, количество секунд между 01.01.2004 года и датой первого запуска этого сервера, в HEX
}
+ CRLF
3. disconnect
-------------------------------------------------------------------------------------------------------------------------------------------------------
Проверка, можно ли подключаться к серверу под указанным пользователем
1. Client->Server: "mclogintest" + CRLF + login + CRLF + password + CRLF
2. Server->Client: "mclogintest" +
{
  "Ok" : true // можно ли подключаться к серверу с таким логином и паролем или нет
}
+ CRLF
3. disconnect

Обычная схема подключения:
1. Сразу после открытия коннекта со стороны клиента по TCP на указанный порт (по умолчанию 2004) сервер может прислать ошибку и оборвать соединение спустя 3 секунды.
   Ошибка вида: MagicPacket + sc_error + IntToHex(cmd_flag_null, 2) + '{"ErrNum":209,"Params":[]}' + CRLF
2. Если ошибки нет, то клиент отправляет на сервер текстовую строку-сигнатуру "mc2023.1.5" (без двойных кавычек) + CRLF.
   "mc" - сигнатура программы, "2023.1.5" - версия клиентского приложения.
3. Клиент может отправить на сервер, опционально, команду "?" + CRLF (3 символа).
   Если такая команда приходит на сервер, то он в ответ отдаст JSON-объект вида {"ForceEncrypt": true} с настройками.
   Это работает в версиях 7.8 и старше.
4. Клиент отправляет на сервер команду {"Secured":"SSL"} + CRLF, если он собирается использовать шифрование трафика, или {"Secured":""} + CRLF - если шифрование не нужно.
   Вместо "SSL" можно указать явно, например, "TLSv1.2".

С этого момента трафик становится шифрованным, если клиент его включил.

5. Сервер шлёт клиенту в ответ команду sc_hello, если версия клиента старше, чем версия сервера, он отключает клиента, если равна или младше - подключение не рвётся,
   чтобы клиент мог получить информацию от сервера про наличие обновлений.
6. Клиент проверяет, может ли он подключаться к серверу, и шлёт ему в ответ команду cs_hello
7. Сервер проверяет, может ли клиент подключаться, и, если всё Ок, шлёт клиенту команду sc_accept_connection
8. После этого клиент отправляет на сервер одну из команд: cs_register_new_user или cs_login, в зависимости от того, что ему нужно сделать
9. Сервер шлёт клиенту команду sc_login, которая говорит о том, что клиент успешно авторизован
10. Идёт обмен различными командами в произвольном порядке и режимах до момента, пока не потребуется разорвать соединение

Все команды, в которых есть аббревиатура "_adm_", являются административными и служат для управления сервером. Для реализации клиентского приложения они не обязательны.
Для выполнения административных команд клиентское приложение должно быть подключено к серверу с правами пользователя, которые разрешают удалённо управлять сервером.


Команды от клиента к серверу
-------------------------------------------------------------------------------------------------------------------------------------------------------

0001 cs_hello
команда-приветствие, отправляется от клиента при подключении к серверу. С этой команды начинается любое подключение к серверу.
{
  "ProtocolVer"   : "2.5",               // версия протокола клиента
  "Client"        : "win32",             // тип клиента, который подключается к серверу ("win32" - Windows-клиент, "web" - подключение через браузер,
                                         // "websupport" - WEB-поддержка с сайта, "admin" - сеанс удалённого администрирования, "kanban" - управление проектами, "android", "macos", "linux")
  "Packed"        : true,                // использовать сжатие трафика или нет. По умолчанию - false
  "MAC"           : "00-17-31-57-6C-61", // MAC адрес клиента
  "HardwareID"    : "45678906546",       // HardwareID клиента
  "NetName"       : "COMPOFFICE",        // сетевое имя компьютера
  "Ver"           : "5.0",               // версия клиентского приложения
  "OS"            : "Windows 7",         // название и версия операционной системы клиента
  "UTC"           : 2,                   // UTC смещение времени подключающегося клиента
  "NodeRemoteIP"  : "",                  // (5.15+) IP адрес удалённого хоста, если коннект происходит через встроенный WEB-сервер NodeJS
  "NodeUserAgent" : "Mozilla...",        // (5.17+) UserAgent браузера клиента, если пользователь подключился к серверу через WEB (web, websupport, admin)
  "NodeReferral"  : "https://google.com",// (5.17+) реферальная ссылка WEB-браузера, откуда пришёл клиент (web, websupport, admin)
  "NodeLanguage"  : "ru",                // (5.22+) язык браузера WEB-клиента
  "NodeOS"        : "Windows 8",         // (5.22+) операционная система браузера WEB-клиента
  "Interfaces"    : [                    // список сетевых интерфейсов клиента
     "192.168.10.1",
     "213.130.24.149"
  ]
}

0003 cs_login
подключение к серверу под заданной учётной записью. Логин может происходить по одному из вариантов: UIN, ник или адрес электронной почты.
Но самым надёжным считается UIN. Указывать достаточно один вариант + пароль, остальные необязательны
{
  "UIN"            : 125,                    // UIN пользователя
  "Pass"           : "@$%dshgsj!",           // ! пароль для подключения
  "Email"          : "v.i.chapayev@mail.su", // адрес электронной почты
  "Nick"           : "Chapay",               // ник пользователя
  "Domain"         : "",                     // имя домена, если используется прозрачная авторизация в Active Directory (5.1+)
  "Style"          : 0,                      // (5.13+) тип авторизации (0 - обычная, пара UIN/Email/Nick и пароль; 1 - AD, ник/домен; 2 - без пароля, только ник)
  "AuthService"    : "myservice",            // (5.22+) custom-поле, необязательное, нужно для внешней авторизации, может быть пустым
  "ServPass"       : "123456",               // (6.1+) пароль для подключения к серверу (если нужно). Если пароля нет - пустая строка
  "Lang"           : "RU",                   // (7.5+) язык интерфейса клиентского приложения
  "PushToken"      : "bla-bla-bla"           // (8.0+) токен для push-сообщений мобильного приложения, необязательный параметр

// deprecated
//  "State"          : 0,                      // текущий статус пользователя (0 - свободен)
}

0004 cs_register_new_user
зарегистрировать на сервере нового пользователя
{
  "Nick"                 : "Chapay",               // ник пользователя
  "Pass"                 : "@$%dshgsj!",           // пароль для подключения
  "Gender"               : 1,                      // пол пользователя, 0 - неизвестен, 1 - мужской, 2 - женский
  "Firstname"            : "Василий",              // имя пользователя
  "Lastname"             : "Чапаев",               // фамилия пользователя
  "Surname"              : "Иванович",             // отчество пользователя
  "Email"                : "v.i.chapayev@mail.su", // адрес электронной почты
  "SecretQuestionNumber" : 0,                      // номер секретного вопроса для восстановления пароля
  "SecretAnswer"         : "совершенно секретно",  // ответ на секретный вопрос
  "LoginStyle"           : 0,                      // (5.14+) тип авторизации (0 - обычная, пара UIN/Email/Nick и пароль; 1 - AD, ник/домен; 2 - без пароля, только ник, 3 - AD, прозрачная)
  "Domain"               : "domainname",           // (5.14+) имя домена пользователя, если есть
  "ServPass"             : "123456",               // (6.1+) пароль для подключения к серверу (если нужно). Если пароля нет - пустая строка
  "Random"               : false,                  // (6.1+) сгенерировать случайный ник
  "WebSupportStyle"      : 0                       // (7.2+) только для WebSupport: 0 - email+ник, 1 - email, 2 - ник, 3 - без ника и email, назвать случайно, 4 - без ника и email, назвать по шаблону

// deprecated 8.1+  "State"                : 0,                      // текущий статус пользователя (0 - свободен)
// deprecated 8.0+  "Avatar"               : 24,                     // номер аватара
}

0006 cs_restore_account
восстановление своей учётной записи
{
  "UIN"                  : "45",                   // UIN пользователя
  "Nick"                 : "Chapay",               // ник пользователя
  "Email"                : "v.i.chapayev@mail.su", // адрес электронной почты
  "SecretQuestionNumber" : 0,                      // номер секретного вопроса для восстановления пароля
  "SecretAnswer"         : "совершенно секретно"   // ответ на секретный вопрос
}

0007 cs_work_time_upload_old_data
отправка на сервер данных о рабочем времени клиента, пока тот был в офлайн (нужна доработка)

0009 cs_get_bbs
получить полный текст доски объявлений

000B cs_special_ping
пинг сервера, проверка связи а автоматическом режиме

000C cs_ping
пинг от клиента, проверка, есть ли соединение. Если длительное время от клиентов не было пинга или любого другого запроса - соединение
считается "мёртвым" и автоматически удаляется с сервера. Нужно выполнять эту команду не реже, чем раз в 30 секунд.
{
  "Ticks" : 789463 // количество миллисекунд с момента старта системы на момент выполнения команды (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724408(v=vs.85).aspx)
}

000D cs_get_channels_list
// получить с сервера список созданных каналов, например, чтобы на клиенте можно было войти в один из них
// список зависит от прав, невидимые каналы показываются не всем. Также эту команду может выполнять плагин на MyChat Client

000E cs_get_actions_list
получить список ACTIONs, если они есть и к ним есть доступ

000F cs_work_time_control_active_caption
отправка на сервер данных о рабочем времени, нужна доработка

// 8.16+ deprecated
// 0010 cs_get_small_user_info
// получить краткую информацию о пользователе
// {
//   "UIN" : 15  // UIN пользователя, о котором необходимо получить краткую информацию
// }

0011 cs_private_request
// запрос на открытие привата с указанным пользователем, в ответ - sc_grant_private_access или ошибка доступа
{
  "UIN"  : 17,              // UIN пользователя, с которым мы хотим открыть сеанс приватного разговора
  "Task" : 0,               // что хочет пользователь (открыть приват, передать файл и т.п.).
  "Lang" : "RU"             // (7.4+) язык интерфейса клиентского приложения, с которого отправляется запрос на открытие привата.
                            // Нужен для автоответчика ("RU", "UA" или "EN". Если ничего не указано, по умолчанию "EN")

//  PRIVATE_TASK_DEFAULT                  = 0;
//  PRIVATE_TASK_SEND_FILES               = 1;
//  PRIVATE_TASK_SEND_FILES_FROM_EXPLORER = 2;
//  PRIVATE_TASK_VOICE_CALL               = 3;
//  PRIVATE_TASK_VIDEO_CALL               = 4;
//  PRIVATE_TASK_MY_SCREEN_SHARING        = 5;
//  PRIVATE_TASK_DEFAULT_NO_SWITCH        = 6; // приват открыть, но не переключаться на него
//  PRIVATE_TASK_ONLINE_NOTIFY            = 7; // приват открыть, переключиться на него и написать, что человек онлайн

// deprecated 8.0+  "New"  : true            // (7.3+) открывается новый диалог или восстанавливается существующий. По умолчанию - true
}

// deprecated 8.0+
//0012 cs_get_hello_msg
//запрос содержимого приветствия канала
//{
//  "UID" : 7  // UID канала, содержимое приветствия которого необходимо получить
//}

0013 cs_pong
ответ на серверную команду sc_ping

0014 cs_get_contacts_list
получить список личных персональных контактов.

0015 cs_get_common_contacts_list
получить список общих контактов (древовидный список контактов, общий для всех пользователей сервера).

0016 cs_put_msg2txt_channel
отправить сообщение в текстовый канал
{
  "UIN"     : 17,         // UIN отправителя
  "UID"     : 21,         // UID канала, куда следует отправить сообщение
  "Msg"     : "Hello!",   // текст сообщения
  "MsgType" : 0,          // (5.19+) тип сообщения (картинка, текст, ....). По умолчанию - 0
  "Silent"  : true        // (2023.9+) необязательный параметр, если true - то сообщение нужно отправить 
                          // в "тихом" режиме, без звуковой и визуальной идентификации 
}

0017 cs_private_msg
// отправить приватное сообшение другому пользователю
{
  "UIN"     : 45,            // UIN получателя
  "Msg"     : "L$Hello!",    // текст сообщения
  "MsgType" : 0,             // (5.19+) тип сообщения (картинка, текст, ....). По умолчанию - 0
  "Silent"  : true           // (2023.9+) необязательный параметр, если true - то сообщение нужно отправить 
                             // в "тихом" режиме, без звуковой и визуальной идентификации 
}

0018 cs_join_txt_channel
подключиться к существующему текстовому каналу
{
  "UID"  : 45,       // UID канала
  "Pass" : ""        // пароль на вход, если это необходимо
}

0019 cs_leave_txt_channel
выйти из текстового канала
{
  "UID" : 21        // UID канала
}

001A cs_add_new_bbs
отправить новое сообщение на доску объявлений
{
  "Expired" : "dd.mm.yyyy.hh.nn.ss",  // UTC, до какого времени объявление будет актуально
  "Sticky"  : true,                   // "прилепленное" объявление (в самом верху) или обычное
  "Msg"     : "Test!"                 // содержимое объявления
}

001B cs_add_personal_contact_group
добавить новую группу в персональную панель контактов
{
  "Name" : "New Group"   // название новой группы
}

001C cs_delete_id_from_personal_contacts
удалить пользователя либо группу из личного списка контактов
{
  "ID" : 17  // идентификатор пользователя или группы из личного списка контактов
}

001D cs_create_txt_channel
создать новую текстовую конференцию
{
  "Name"           : "Главная конференция",   // название канала
  "Topic"          : "Общение на любые темы", // тема текстового канала
  "Pass"           : "",                      // пароль на вход в текстовый канал
  "ConfType"       : 1,                       // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
  "JoinUsers"      : "196,3,17"               // (8.0+) пользователи, которых следует включить в эту конференцию сразу после её создания
}

001E cs_get_uin_info
получить полную информацию об указанном пользователе
{
  "UIN" : 78         // UIN пользователя, который нас интересует
}

001F cs_get_uin_foto
получить фотографию пользователя
{
  "UIN" : 54         // UIN пользователя, который нас интересует
}

0020 cs_get_remote_uin_current_time
получить текущее системное время удалённого пользователя
{
  "UIN" : 47         // UIN пользователя, который нас интересует
}

0021 cs_send_my_current_time
отправить свою текущую дату и время указанному пользователю
{
  "UINTo"    : 89,                       // UIN пользователя, кому мы отправляем свою системную дату и время
  "CIDTo"    : 4521,                     // (8.2+) CID пользователя, кому мы отправляем свою системную дату и время
  "DateTime" : "08.05.2013.12.54.34"     // дата и время в формате дд.мм.гггг.чч.мм.сс
}

0022 cs_get_user_computer_info
получить IP/MAC адрес и название компьютера удалённого клиента
{
  "UIN" : 73       // UIN пользователя, который нас интересует
}

0023 cs_get_active_window_caption
получить заголовок активного окна пользователя
{
  "UIN" : 129 // UIN пользователя, который нас интересует
}

0024 cs_active_window_caption
отправка заголовка активного окна
{
  "UINTo"    : 89,                     // UIN пользователя, для которого отправляется информация
  "CIDTo"    : 1254,                   // (8.2+) CID пользователя, для которого отправляется информация
  "Caption"  : "Trolo-lo.txt",         // текст заголовка активного окна
  "AppName"  : "Notepad",              // (6.7+) название приложения
  "FullPath" : "c:\tools\notepad.exe"  // (6.7+) полный путь к приложению
}

0025 cs_get_ignores_list
получить список игноров для указанного пользователя

0026 cs_update_ignores_list
обновить персональный список игноров (доработать разбор списка)
{
  "Data" : "......"
}

// deprecated 8.0+
// 0027 cs_get_favorite_channels
// получить список "любимых" каналов

// deprecated 8.0+
// 0028 cs_add_favorite_channel
// добавить канал с указанным идентификатором в список "любимых"
// {
//   "UID" : 78      // UID текстового канала, целое число больше нуля
// }

// deprecated 8.0+
// 0029 cs_delete_favorite_channel
// удалить текстовый канал из списка "любимых"
// {
//   "UID" : 879     // UID текстового канала, целое число больше нуля
// }

002A cs_get_msgtemplates
получить список персональных "быстрых" сообщений

002B cs_update_msgtemplates
сохранить на сервере в своём аккаунте список "быстрых" сообщений (upd 7.1+)
{
  "1"      : ".....",  // список сообщений, от первого до девятого, могут быть пустые строки
  "2"      : ".....",
  "3"      : ".....",
  "4"      : ".....",
  "5"      : ".....",
  "6"      : ".....",
  "7"      : ".....",
  "8"      : ".....",
  "9"      : ".....",
  "Others" : "....."  // дополнительные сообщения, подряд, через CRLF, без пропусков строк, может быть пустой список
}

002C cs_set_account_password
установить новый пароль для своей учётной записи
{
  "OldPass" : "....",   // старый пароль
  "NewPass" : "...."    // новый пароль
}

002D cs_add_new_contact
добавить пользователя в личный список контактов
{
  "UIN"     : 78,   // идентификатор пользователя
  "GroupID" : 17    // идентификатор группы
}

002F cs_rename_contacts_group
переименовать личную группу контактов
{
  "GroupIDX" : 11,               // индекс группы
  "NewName"  : "New Best Group"  // название новой группы, в которую необходимо переименовать старую группу личных контактов
}

0030 cs_move_personal_contact
перенести персональный контакт из одной группы в другую
{
  "UIN"       : 17,    // UIN человека, которого необходимо перенести
  "GroupIDX"  : 18     // индекс группы, в которую следует перенести контакт
}

0031 cs_open_remote_computer_shares
окрыть удалённый компьютер по сети Проводником (показать открытые ресурсы (shares))
{
  "UIN"      : 29             // UIN пользователя, чем компьютер нужно открыть
}

0032 cs_forcibly_join_to_text_channel
принудительно включить выбранных пользователей в указанный текстовый канал
{
  "UINS" : "78", // (8.2+, UIN заменён на UINS) список приглашаемых UIN пользователей, через запятую
  "UID"  : 48    // идентификатор канала, в который следует включить пользователя
}

0033 cs_change_txtch_topic
изменить тему текстового канала
{
  "UID"   : 35,             // идентификатор текстового канала
  "Topic" : "bla-bla-bla"   // новая тема для канала
}

034 cs_get_public_ftp_info
получить информацию с сервера о публичном доступе к общему FTP серверу

0035 cs_get_channel_history_messages
получить историю сообщений в указанной текстовой конференции
{
  "UID"    : 78,            // идентификатор конференции
  "Type"   : 1,             // тип запроса. В зависимости от типа запроса будут поля Last или From/To либо List

  "Last"   : 20,            // 1 - получить последние N сообщений, Last
  "From"   : 78,            // 2 - получить сообщения с From по To
  "To"     : 156,
  "List"   : "11,3,87,93"   // 3 - получить список сообщений, через запятую: List
}

0036 cs_rename_text_channel
переименовать существующий текстовый канал
{
  "UID"  : 78,         // идентификатор канала
  "Name" : "program"   // новое имя для канала
}

0037 cs_ignore_get
добавить в игнор пользователя и / или получить информацию об его игнорировании
{
  "UIN" : 98     // идентификатор игнорируемого пользователя
}

0038 cs_add_ignore
добавить юзера в игнор-список (либо обновить данные)
{
  "UIN"  : 98,     // идентификатор игнорируемого пользователя
  "Data" : 231     // данные игнорирования (2 байта, целое беззнаковое)
}

0039 cs_clear_text_channel
очистить выбранный текстовый канал от всех сообщений у всех находящихся в нём пользователей
{
  "UID"  : 65     // идентификатор текстового канала
}

003B cs_block_mac_by_uin
заблокировать MAC адрес пользователя по его UIN
{
  "UIN"    : 98,               // идентификатор пользователя, MAC-адрес которого необходимо заблокировать
  "Reason" : "Bad guy"         // причина блокировки, текстовое пояснение
}

003C cs_block_ip_by_uin
заблокировать IP адрес пользователя по его UIN
{
  "UIN"        : 785,              // идентификатор пользователя, IP-адрес которого необходимо заблокировать
  "Reason"     : "Bad girl",       // причина блокировки, текстовое пояснение
  "ClientType" : "common"          // (6.1+) тип клиента (win32, admin и т.п.). Если "common" - то блокировать любые типы подключений к этому IP
}

003D cs_kill_user
отключить пользователя от сервера
{
  "UIN"    : 94             // идентификатор пользователя, которого нужно отключить от сервера
}

003E cs_kick_from_txt_channel
выгнать пользователя из текстового канала
{
  "UINKicker" : 97,     // кто выгоняет пользователя из канала
  "UIN"       : 54,     // кого выгоняют из канала
  "UID"       : 16      // идентификатор канала, из которого выгоняют пользователя
}

deprecated 30.10.2019: 003F cs_private_beep
отправить пользователю звуковой сигнал
{
  "UIN"    : 785             // идентификатор пользователя, которому следует отправить специальный звуковой сигнал ("а ля будильник", чтобы привлечь его внимание)
}

0040 cs_get_server_uptime
получить аптайм сервера MyChat

0041 cs_get_server_version
получить версию сервера

0042 cs_halt_user
отключить пользователя от сервера и завершить его приложение
{
  "UIN"    : 64 // идентификатор отключаемого пользователя
}

0043 cs_set_state
установить свой сетевой статус (свободен, занят и т.п.)
{
  "State" : 0 // номер сетевого статуса. 0 - "свободен", 1 - "нет на месте", 2 - "не беспокоить"
}

0044 cs_typing_notify
отправить уведомление пользователю о том, что мы ему что-то пишем в привате
{
  "UIN"    : 98             // идентификатор пользователя, которому следует отправить уведомление "печатаю"
}

0045 cs_get_user_state
получить статус другого пользователя
{
  "UIN"    : 67             // идентификатор пользователя, статус которого нужно получить
}

0046 cs_set_uin_foto
установить фотографию для своего профиля
{
  "Buf"   : "........." // содержимое фото JPEG, base64
}

0047 cs_quit
пользователь отключается от сервера и посылает ему уведомление об этом

0048 cs_files_offline_ok
пользователь согласился принять отложенные для него на сервере файлы
{
  "UIN" : 78     // идентификатор пользователя, который прислал нам офлайн файлы
}

0049 cs_files_offline_late
мы не хотим принимать отложенные для нас файлы прямо сейчас, примем их позже
{
  "UIN" : 964     // идентификатор пользователя, который прислал нам офлайн файлы
}

004A cs_files_offline_delete
удалить все файлы, которые были отправлены офлайн указанным пользователем
{
  "UIN" : 65     // идентификатор отправителя офлайн-файлов
}

004B cs_get_user_quick_info
// получить краткую информацию об указанном пользователе
{
  "UIN"  : 98, // идентификатор пользователя, информацию о котором нам нужно получить
  // What можно не указывать, тогда с сервера придёт стандартный набор What="sex,avatar,displayname,statetimestamp,lang"
  // что именно мы хотим узнать, через запятую. Текстовая строка
  "What" : "sex,avatar,displayname,nick,worktime,primaryemail,workphone,homecellular,statetimestamp,lang"   
}

004C cs_raw_data
отправка произвольного пакета данных для онлайн-клиента
{
  "UIN"      : 98,                 // идентификатор пользователя, для которого предназначается пакет данных
  "CID"      : 128,                // (8.2+) CID пользователя, для которого предназначается пакет данных, для корректной работы с мультилогинами
  "NameFrom" : "Beeper",           // имя плагина-отправителя для RAW пакета
  "NameTo"   : "Beeper",           // имя плагина-получателя для RAW пакета
  "Data"     : "123456 text data"  // произвольная текстовая строка
}

004D cs_raw_data_txt_channel
отправка произвольного пакета данных в текстовый канал
{
  "UID"      : 17,                 // идентификатор текстового канала, для которого предназначается пакет данных. Этот пакет получат все пользователи канала
  "NameFrom" : "Beeper",           // имя плагина-отправителя для RAW пакета
  "NameTo"   : "Beeper",           // имя плагина-получателя для RAW пакета
  "Data"     : "123456 text data"  // произвольная текстовая строка
}

004E cs_action
выполнение MyChat Action
{
  "Num"  : 2,            // номер экшна
  "Name" : "MC_LICENSE"  // название экшна
}

004F cs_files_request_transfer
отправить запрос на отправку файлов и/или папок другому пользователю
{
  "UIN"        : 654,            // идентификатор пользователя-получателя
  "FilesCount" : 78,             // общее количество файлов без учёта папок
  "FilesSize"  : 65467845,       // общий объём передаваемых файлов в байтах
  "Desc"       : "Description",  // текстовый комментарий к отправляемому блоку файлов
  "List"       : "...."          // список самих файлов. Доработать
}

0050 cs_files_transfer_deny
отказаться принимать файлы от другого пользователя
{
  "UIN" : 98   // идентификатор отправителя файлов
}

0051 cs_files_transfer_accept
согласиться принимать файлы от другого пользователя
{
  "UIN"          : 118,                            // идентификатор отправителя файлов
  "Port"         : 20001,                          // TCP порт получателя, на который будут передаваться файлы
  "Interfaces"   : "192.168.10.1, 213.130.24.148", // список локальных сетевых интерфейсов получателя
  "UncheckFiles" : "1,3,5,8",                      // индексы файлов, которые получатель не хочет принимать. Может быть пустым. Индексы перечисляются в текстовой строке через запятую
  "BufSize"      : "32768"                         // размер буфера для передачи файлов через сервер, если передача напрямую не удастся по техническим причинам
}

0052 cs_files_transfer_abort
прервать передачу файлов
{
  "UIN" : 65    // идентификатор пользователя, с которым в данный момент происходит обмен файлами (передача или приём)
}

0053 cs_file_internal_send_idx (для передачи файлов client-server-client)
уведомление о начале передачи очередного файла из списка файлов для отправки
{
  "UIN"     : 657, // идентификатор получателя файлов
  "FileIdx" : 19   // индекс файла в общем списке передаваемых файлов
}

0054 cs_fatal_error_info
отправить на сервер данные о произошедшей фатальной ошибке, приведшей к краху клиентского приложения
{
  "Data" : "......"  // текстовое описание возникшей проблемы с техническими подробностями. Команда отправляется в автоматическом режиме
}

0055 cs_files_transfer_request_abort
отказаться от отправки файлов, пока получатель ещё не согласился их принять (у него "висит" запрос на подтверждение)прервать передачу файлов
{
  "UIN" : 9856    // идентификатор пользователя, который прислал запрос на передачу файлов
}

0056 cs_file_internal_sended_ok_idx
успешно передан файл с указанным индексом из общего списка передаваемых файлов в сеансе связи
{
  "UIN"     : 486 // идентификатор пользователя, с которым происходит обмен файлами
  "FileIdx" : 17  // индекс файла в списке передаваемых файлов
}

0057 cs_files_request_timeout
команда, которая отправляется автоматически, по истечении периода времени, когда получатель ничего не ответил на
запрос приёма файлов(например, его не было за компьютером). Передача файлов в этом случае должна быть отменена автоматически
{
  "UIN" : 9856    // идентификатор пользователя, который не прислал никакого ответа на запрос о получении файлов
}

0058 cs_stat
// отправить на сервер статистику использования сервисов чата
{
  "n_voice" : 0, // количество голосовых звонков
  "n_video" : 0, // количество видео звонков
  "l_voice" : 0, // общая длительность голосовых звонков
  "l_video" : 0, // общая длительность видео звонков

  "n_msg_img" : 0, // сообщений с картинками
  "n_msg_smile" : 0, // сообщений со смайликами
  "n_msg_conf_link" : 0, // сообщений с линками на другие конференции
  "n_msg_local_net_link" : 0, // линков на ресурсы в локальной сети
  "n_msg_user_link" : 0, // user defined линков
  "n_msg_font" : 0, // использований шрифтовой разметки
  "n_msg_action" : 0, // экшнов
  "n_msg_myfiles" : 0, // ссылок на "Мои файлы"
  "n_msg_publicfiles" : 0, // ссылок на "Общие файлы"

  "n_conf_msg" : 0, // количество сообщений в конференциях
  "n_conf_create" : 0, // созданий новых конференций
  "n_conf_enter" : 0, // входов в существующие конференции
  "n_conf_invites" : 0, // приглашений в другие конференции

  "n_priv_msg" : 0, // количество сообщений в приватах
  "n_pers_msg" : 0, // количество персональных сообщений
  "n_alert_msg" : 0, // количество алерт сообщений
  "n_brdcst_msg" : 0, // количество броадкастов
  "n_bbs" : 0, // сообщений на доске объявлений

  "n_file" : 0, // количество передач файлов
  "n_file_offline" : 0, // количество передач файлов в офлайн
  "n_file_exp" : 0, // через Проводник (контекстное меню)
  "n_file_drag" : 0, // drag & drop
  "n_file_ctrlc" : 0, // Ctrl+C, Ctrl+V
  "n_file_direct" : 0, // передач файлов напрямую
  "n_file_serv" : 0, // через сервер, когда передача файлов не удалась напрямую

  "n_ohis" : 0, // открытий истории сообщений
  "n_opr" : 0, // открытий профиля (своего)
  "n_vpr" : 0, // просмотров профилей других пользователей
  "n_omyf" : 0, // количество открытий "Моих файлов"
  "n_opf" : 0, // open public files количество открытий "общих файлов"

  "n_ign_view" : 0, // просмотров игноров
  "n_ign_add" : 0, // добавлений в игноры
  "n_ign_del" : 0, // удалений из игноров
  "n_ign_mod" : 0, // модификаций игноров

  "n_opriv" : 0, // открытий приватов
  "n_frcvd" : 0, // принятых файлов
  "n_ocomp" : 0, // открытий компьютера по сети
  "n_cexp" : 0, // экспорт своих контактов
  "n_cimp" : 0, // импорт контактов
  "n_creategrp" : 0, // создание новой группы в личных контактах
  "n_delgrp" : 0, // удалить группу в личных контактах
  "n_addcnt" : 0, // добавить новый контакт в личные контакты
  "n_rengrp" : 0, // переименование группы личных контактов
  "n_delcnt" : 0, // удалить контакт из личного списка контаков

  // администрирование
  "adm_ban" : 0, // бан юзера
  "adm_kick" : 0, // изгнание из конференции
  "adm_disconnect" : 0, // отключение от сервера
  "adm_halt" : 0, // завершение работы клиента
  "adm_blockuin" : 0, // заблокировать пользователя
  "adm_block_ip" : 0, // заблокировать IP адрес пользователя
  "adm_block_mac" : 0, // заблокировать MAC адрес пользователя
  "adm_ren_conf" : 0, // переименовать конференцию
  "adm_set_topic" : 0, // сменить тему конференции

  "n_state" : 0, // изменение статуса
  "n_opt" : 0, // open options
  "n_cons" : 0, // console commands
  "n_hlp" : 0, // open help

  "n_accmng" : 0, // открытие менеджера пользователей
  "n_accmng_enter" : 0, // вход под учёткой
  "n_accmng_recall" : 0, // восстановление учётки
  "n_accmng_newuser" : 0, // создание новой учётки

  "n_fnd" : 0, // поиск пользователей (стандартный)
  "n_fnd_ext" : 0, // поиск пользователей (расширенный)

  "n_srv_spell" : 0, // проверок правописания
  "n_srv_ctrlspace" : 0, // Ctrl+пробел
  "n_srv_beep" : 0, // звуковых сигналов в привате
  "n_srv_stayontop" : 0, // Stay on top
  "n_srv_transp" : 0, // Transparent главного окна MyChat
  "n_srv_fastmsg" : 0, // применений "быстрых" сообщений
  "n_srv_block" : 0, // блокирование программы

  "cl_hid" : "", // client hardware id
  "cl_os" : "Windows 7", // версия клиентской OS
  "cl_v" : "6.0", // версия клиента
  "cl_lng" : "ru", // язык интерфейса клиента (ru/en/ua)
  "cl_plg" : "", // список загруженных плагинов с цифрой в начале (1 - загружен успешно, 0 - плагин выключен)
  "cl_skin" : "Classic", // имя используемого скина

  "cl_adm" : false, // есть права администратора компьютера или нет
  "cl_ad" : false, // используется Active Directory авторизация или нет
  "cl_portable" : false, // клиент portable

  "cl_instpath" : 2, // клиент установлен в Program Files/профиль/user defined папку (0/1/2)

  "cl_t" : "android" // тип клиентского приложения (win32, linux, macos, android)
}

0059 cs_get_users_list
получить с сервера список пользователей (ФИО, пол, аватар и т.п.) согласно запросу. В ответ отправляется команда sc_users_list
{
  "ListType" : 3,              // тип запроса, 1 - все онлайн-пользователи, 2 - все зарегистрированные пользователи на сервере, 3 - пользователи согласно запрошенному списку UIN-ов,
                               // 4 - список пользователей согласно номеру пресета для оповещения
  "Num"      : 965,            // произвольное целое число, для удобства определения типа запроса, если таких запросов делается несколько. Будет возвращено сервером в команде-ответе
  "UINS"     : "78,69,14,587", // список запрашиваемых UIN-ов пользователей, через запятую. Если нет - просто пустая строка
  "PresetID" : -1              // номер пресета для оповещения. Если нет - то равно -1
}

005A cs_send_broadcast
отправить оповещение
{
  "UsersList"     : "12,98,78",            // список UIN-ов получателей оповещения, текстовая строка, числа через запятую
  "ActualTo"      : "08.05.2013.12.54.34"  // До какого времени актуально оповещение. Дата и время в формате "дд.мм.гггг.чч.мм.сс"
  "MsgType"       : 0,                     // 0 - обычное оповещение,
                                           // 1 - оповещение обязательно к прочтению. Окошко у получателя не закроется, пока тот не подтвердит, что он действительно прочитал сообщение
                                           // 2 - оповещение требует специального ответа от получателя, и не закроется, пока тот не даст ответ
  "ReadingNotify" : false,                 // уведомлять отправителя специальным сообщением, что получатель прочитал отправленное ему оповещение
  "Msg"           : ".....",               // сам текст отправляемого оповещения
  "Files"         :                        // (6.0+) файлы, которые приложены к оповещению. Может быть пустым. Массив объектов
  [
    {
      "OriginalFileName" : "test.txt",     // оригинальное название файла
      "Size"             : 12784,          // размер файла в байтах
      "Hash"             : "kdho346523"    // SHA1 контрольная сумма
    },
    ...
  ]
}

005B cs_get_broadcast_presets_names
получить список персональных пресетов для рассылки оповещений

005C cs_delete_broadcast_preset
удалить шаблон списка пользователей для оповещения
{
  "Name" : "MyBroadcast" // (6.3+) название пресета оповещения для удаления
}

005D cs_add_broadcast_preset
добавить новый пресет для оповещений
{
  "Name" : "New Preset",     // имя создаваемого пресета
  "UINS" : "17,45,6,12,31"   // список UIN-ов для пресета, через запятую
}

005E cs_broadcast_readed_notify
уведомить отправителя оповещения персональным сообщением, что его сообщение только что было прочитано получателем, набор объектов
{
  752:  // уникальный идентификатор оповещения, присваивается сервером и приходит на клиент при получении оповещения
    {
      "UIN" : 98, // идентификатор отправителя оповещения
    }
...
}

005F cs_broadcast_just_readed
отправить на сервер уведомление об обязательном прочтении полученных оповещений (или одного оповещения), набор объектов
{
  752:  // уникальный идентификатор оповещения, присваивается сервером и приходит на клиент при получении оповещения
    {
      "ReplyText" : "bla-bla-bla" // (6.3+) текстовый ответ, если того требует тип оповещения (2)
    }
...
}

0060 cs_find_users
поиск пользователей на сервере согласно заданным критериям. Есть два варианта объекта, простой и расширенный.
Все строки для поиска проверяются на нечёткое соответствие. То есть, если в поиске указать адрес электронной почты "@mail.ru", то будут найдены все пользователи,
у которых почтовый ящик содержит строку "@mail.ru". Регистр строки не имеет значения, текст для поиска можно указывать как большими, так и маленькими буквами. В ответ
с сервера приходит список пользователей (команда sc_find_users_list).

Простой поиск:
{
  "GoogleStyle" : true,   // идентификатор простого поиска, логическая переменная = true
  "SeachSt"     : "....", // текстовая строка для поиска
  "Fields"      : "EMAIL,HOME_BIRTHDAY,WORK_POSITION" // (7.3+) список полей через запятую, которые будут возвращены в ответ (https://nsoft-s.com/mcserverhelp/index.html?mychatclientwindowsoptionsadditionalprivatefields.htm)
  "Limit"       : 10 // ограничение выдачи, если 0 - ограничений нет, будут выбраны все данные
}

Расширенный поиск:
{
  "GoogleStyle" : false,     // идентификатор простого поиска, логическая переменная = false. Обозначает, что поиск расширенный
  "Nick"        : "....",    // текстовая строка для поиска
  "Lastname"    : "",        // фамилия
  "Firstname"   : "",        // имя
  "Surname"     :  "",       // отчество
  "Email"       : "@mail.ru" // адрес электронной почты
  "Sex"         : 1,         // пол пользователя
  "Age"         : 2,         // возраст. Диапазоны: 0 - от 13 до 17 лет, 1 - 18..22, 2 - 23..29, 3 - 30..39, 4 - 40..49, 5 - 50..59, 6 свыше 60 лет
  "Lang"        : -1,        // язык, которым владеет пользователь
  "Online"      : true       // в сети пользователь сейчас? true - да, false - не имеет значения
}

0061 cs_files_transfer_progress
отправить информацию другому пользователю о прогрессе передаваемых файлов. Отправляется не чаще раза в секунду
{
  "UIN"             : 54,        // идентификатор получателя
  "Percents"        : 67,        // сколько процентов файлов передано
  "TotalSize"       : 389475683, // общий объём передаваемых файлов
  "CurrentCount"    : 17,        // сколько файлов уже передано на данный момент
  "TotalCount"      : 985,       // сколько файлов всего
  "Speed"           : 654657,    // текущая скорость передачи файлов
  "CurrentTransfer" : 260948707  // сколько байт на данный момент уже передано
}

0062 cs_files_success_recieved
уведомление отправителю файлов, что все файлы успешно приняты
{
  "UIN" : 6478, // идентификатор пользователя, от которого принимались файлы
}

0063 cs_file_packet_recieved_ok
очередной пакет файлов принёт успешно, клиент готов к приёму следующего блока данных. Только для передачи файлов через сервер
{
  "UIN" : 3784, // идентификатор пользователя, от которого принимаются файлы
}

0064 cs_send_file_packet
отправить очередной блок данных при передаче файлов через сервер другому пользователю
{
  "UIN"    : 98,    // идентификатор получателя
  "Packed" : true,  // упакован блок данных в GZIP или нет
  "Data"   : "..."  // блок данных
}

0065 cs_send_user_status
отправить значение своего текущего статуса другому пользователю
{
  "UIN"   : 657, // идентификатор получателя
  "State" : 0    // текущий статус отправителя ("свободен", "занят", "нет на месте" и т.д.)
}

0066 cs_ban_user
наложить наказание на пользователя (бан). По истении строка наказания оно автоматически снимается сервером.
Наказание может наложить только оператор канала
{
  "UIN"     : 87,    // идентификатор пользователя, на которого накладывается наказание
  "UID"     : 6,     // идентификатор текстовой конференции, в которой будет действовать наказание
  "BanOffTime" : "26.11.2023.09.18.31.785", // UTC дата и время снятия бана формате dd.mm.yyyy.hh.nn.ss.zzz
  "BanType" : 1,     // тип бана (0 - "Запрет на вход в канал", 1 - "Запрет на отправку сообщений ("молчанка")")
  "Reason"  : "..."  // текстовое описание причины наложенного наказания
}

0067 cs_set_user_online_notify
установить статус онлайн-уведомления о присутствии другого пользователя в сети
{
  "UIN" : 17,   // идентификатор пользователя, на которого устанавливается онлайн-уведомление
  "On"  : true  // true - включить уведомление, false - выключить
}

0068 cs_set_uin_info
обновить информацию о профиле пользователя
{
  "UIN" : 98, // идентификатор пользователя, о котором мы получаем информацию
  "Nick" : "John Socha", // ник
  "FirstName" : "Василий", // имя
  "LastName" : "Чапаев", // фамилия
  "MiddleName" : "Иванович", // отчество
  "Sex": 1, // пол
  "Avatar" : 54, // номер аватара
  "Email": "chapay@mail.su", // основной адрес электронной почты
  "Birthday" : "17.05.2013", // день рождения пользователя в формате "дд.мм.гггг"
  "MaritalStatus" : 0, // семейный статус (0 - В серьёзных отношениях, 1 - Вдовец/вдова, 2 - Женат/замужем, 3 - Помолвлен(а)/обручен(а), 4 - Разведен(а), 5 - Разошлись, 6 - Холост/не замужем)

  "HomePhone" : "827346827346", // домашний номер телефона
  "HomeFax" : "93485745", // домашний номер факса
  "HomeCellular" : "9048679456", // личный номер сотового телефона
  "HomeStreetAddress" : "", // домашний адрес
  "HomeCity" : "", // город, в котором живёт человек
  "HomeState" : "", // провинция, область, край, штат
  "HomeZIP" : "08500", // почтовый индекс
  "HomeCountry" : 1, // страна проживания
  "HomeWWW" : "", // личная WEB-страница

  "WorkCompanyName" : "", // название компании, в которой работает человек
  "WorkPosition" : "", // должность
  "WorkPositionIdx" : -1, // (v5.5+) индекс должности, число. Если должность не указана, то -1
// deprecated   "WorkDivDept" : "", // подразделение, отдел, департамент
  "WorkOffice" : "", // номер офиса
  "WorkPhone" : "", // рабочий телефон
  "WorkFax" : "", // рабочий факс
  "WorkPager" : "", // номер пейджера
  "WorkStreetAddress": "", // рабочий адрес
  "WorkCity" : "", // город, в котором работает человек
  "WorkState" : "", // провинция, область, край, штат
  "WorkZIP" : "", // рабочий почтовый индекс
  "WorkCountry": 17, // страна, в которой работает человек
  "WorkWWW" : "", // рабочая WEB-страница

  "SpokenLang1" : 1, // язык, который знает человек
  "SpokenLang2" : 2, // язык, который знает человек
  "SpokenLang3" : -1, // язык, который знает человек. -1 - пустое поле

  "Interests1" : -1,      // сфера интересов №1
  "InterestsWords1" : "", // ключевые слова из сферы интересов №1
  "Interests2" : -1,      // сфера интересов №2
  "InterestsWords2" : "", // ключевые слова из сферы интересов №2
  "Interests3" : -1,      // сфера интересов №3
  "InterestsWords3" : "", // ключевые слова из сферы интересов №3
  "Interests4" : -1,      // сфера интересов №4
  "InterestsWords4" : "", // ключевые слова из сферы интересов №4

  "Past1" : -1, // прошлое, №1
  "PastWords1" : "", // прошлое, ключевые слова №1
  "Past2" : -1, // прошлое, №2
  "PastWords2" : "", // прошлое, ключевые слова №1
  "Past3" : -1, // прошлое, №3
  "PastWords3" : "", // прошлое, ключевые слова №1

  "PastOrg1" : -1, // прошлое место работы №1
  "PastOrgWords1" : "", // прошлое место работы, ключевые слова №1
  "PastOrg2" : -1, // прошлое место работы №2
  "PastOrgWords2" : "", // прошлое место работы, ключевые слова №2
  "PastOrg3" : -1, // прошлое место работы №3
  "PastOrgWords3" : "", // прошлое место работы, ключевые слова №3

  "GMT" : "", // поправка на мировое время

  "About" : "", // краткая информмация о человеке
  "HelloMessage" : "", // текст приветственного сообщения, которое показывается при открытии привата
  "AutoreplayMessage": "", // текст автоответчика
  "Autoreplay" : false // включен или выключен автоответчик
}

0069 cs_get_server_tech_id
получить ServerID

006B cs_adm_restart_server
перезагрузить сервер

006C cs_get_regusers_count
получить общее количество зарегистрированных на сервере пользователей

006В cs_get_connected_users_count
получить количество пользователей, подключенных в данный момент к серверу (онлайн)

006E cs_adm_get_user_ip
получить IP адрес пользователя по его UIN
{
  "UIN"  : 17,   // идентификатор пользователя, IP адрес которого необходимо узнать
  "Type" : "any" // (6.5+) тип клиента пользователя: win32, linux, mac, android, web... либо "any"
}

006F cs_adm_get_user_mac
получить MAC адрес пользователя по его UIN
{
  "UIN" : 17,    // идентификатор пользователя, MAC адрес которого необходимо узнать
  "Type" : "any" // (6.5+) тип клиента пользователя: win32, linux, mac, android, web... либо "any"
}

0070 cs_adm_unblock_ip
удалить IP адрес из списка блокировок
{
  "IP"         : "213.130.24.149",  // IP адрес, который нужно удалить из списка блокировок сервера
  "ClientType" : "win32"            // (5.15+) тип клиента
}

0071 cs_adm_unblock_mac
удалить MAC адрес из списка блокировок
{
  "MAC" : "16-EC-99-CB-1C-C5"  // MAC адрес, который нужно удалить из списка блокировок сервера
}

0074 cs_adm_block_uin
заблокировать пользователя
{
  "UIN" : 98   // идентификатор пользователя, которого необходимо заблокировать
}

0077 cs_integration_api
команда IntegrationAPI

0078 cs_get_private_info
получить краткую информацию о пользователе, с которым открывается приватный разговор
{
  "UIN"  : 74,   // идентификатор пользователя
  "What" : "WORK_PHONE,WORK_DIVDEPT,HOME_BIRTHDAY"  // список полей, которые необходимо получить, последовательность имеет значение
                                                    // в этом же порядке будет выводиться информация, построчно
}

007A cs_media_call
запрос клиента на звонок (голос/видео) (ver5.17+)
{
  "UIN"        : 17,      // идентификатор пользователя, кому идут запрос
  "CallType"   : 0,    // (8.9+) тип звонка
                       // MEDIA_CALL_TYPE_VOICE          = 0
                       // MEDIA_CALL_TYPE_VIDEO          = 1
                       // MEDIA_CALL_TYPE_SCREEN_SHARING = 2

  "ClientType" : "win32", // (7.8+) тип клиента
  "FullScreen" : false,   // (8.7+) включить видео чат или трансляцию на полный экран
  "ScreenID"   : "screen:0:0" // (8.9+) номер экрана, только для SCREEN_SHARING

// deprecated 8.9+  "Video"      : true,    // звонок с видео или без
// deprecated 8.9+  "Share"      : false,   // шаринг экрана
}

007B cs_media_call_accept
клиент согласился принять звонок (ver5.1+)
{
  "UIN"        : 17,   // идентификатор, кому ответить
  "CallType"   : 0,    // (8.9+) тип звонка
                       // MEDIA_CALL_TYPE_VOICE          = 0
                       // MEDIA_CALL_TYPE_VIDEO          = 1
                       // MEDIA_CALL_TYPE_SCREEN_SHARING = 2
  "MID"        : 46571,  // идентификатор мультимедийного потока, кто согласился принять звонок. Число
  "ClientType" : "win32" // (7.8+) тип клиента

// deprecated 8.9+  "Video"      : false,  // использовать видео связь или нет
// deprecated 8.9+  "Share"      : false,  // (8.1+) есть шаринг экрана или нет
// deprecated 8.9+  "MediaCallType" : 0,   // (8.1+) тип звонка
}

007C cs_media_call_reject
клиент отказался принять звонок (5.1+)
{
  "UIN"   : 75,  // идентификатор пользователя, которому мы отвечаем
  "State" : 112, // (7.8+) тип статуса, почему отказались от звонка, например mediastate_incoming_call_rejected_os_too_old
  "MID"   : 4567 // (7.8+) MID несостоявшегося звонка
}

007D cs_web_get_user_foto_file
получить ссылку на файл с фотографией пользователя, используется WEB-клиентом (5.2+)
{
  "UIN" : 78 // идентификатор пользователя, который нас интересует
}

007F cs_web_login (5.2+)
// подключение к серверу под заданной учётной записью через WEB (или создание новой, если такой нет).
// Используется также при авторизации через социальные сети (Facebook, VK, Twitter etc.)
// Логин может происходить только через UIN + пароль. Если UIN и пароль не указаны - то происходит
// регистрация нового пользователя

{
  "UIN"        : 125,                    // UIN пользователя, не указывается, если неизвестен
  "Pass"       : "@$%dshgsj!",           // пароль для подключения, не указывается, если неизвестен
  "Email"      : "v.i.chapayev@mail.su", // адрес электронной почты
  "Nick"       : "Chapay",               // ник пользователя
  "Firstname"  : "Vasiliy",              // имя
  "Lastname"   : "Chapaev",              // фамилия
  "Sex"        : 1,                      // 0 - unknown, 1 - male, 2 - female
  "SocialType" : "Facebook",             // из какой социальной сети пришёл клиент
  "LinkFrom"   : "http://www.nsoft-s.com/aboutmychat.html",  // откуда пришёл клиент
  "LinkSocial" : "https://www.facebook.com/Vasiliy.Chapayev", // ссылка в социальной сети
  "UserAgent"  : "",                     // UserAgent браузера
}

0080 cs_media_close (5.3+)
произошёл разрыв соединения (аудио-видео), сеанс связи прекращён одной из сторон
{
  "UIN" : 38,  // UIN пользователя, для кого идёт уведомление. Он - пассивная сторона, соединение разорвал НЕ он, он просто получает уведомление
  "MID" : 4567 // (7.8+) MID звонка
}

0081 cs_media_error (5.3+)
произошла ошибка при сеансе аудио или видео связи
{
  "UIN"       : 17,  // UIN пользователя, для кого идёт уведомление об ошибке
  "MID"       : 123, // (8.1+) MID звонка
  "Type"      : 0,   // (8.1+) тип звонка (0 - voice, 1 - video, 2 - screen sharing)
  "ErrorNum"  : 267, // (8.1+) номер ошибки, которая возникла во время звонка
  "ErrorDesc" : ""   // (8.1+) текстовое описание ошибки, если оно есть
}

0082 cs_del_ban (5.3+)
удалить бан, наложенный на пользователя
{
  "Idx" : 17 // индекс бана, который следует удалить. Нужны административные права
}

0083 cs_list_bans (5.3+)
получить список банов, наложенных на пользователей. Нужны административные права

0084 cs_adm_set_topic (5.3+)
установить новую тему конференции. Нужны административные права
{
  "ID" : 89,          // UID конференции
  "Topic" : "Привет!" // текст новой темы для конференции
}

// deprecated 2023.1+ 0085 cs_adm_list_channels (5.3+)
// получить список созданных текстовых конференций со всей информацией (названия, кто создал, когда, пароли и прочее). Нужны административные права

0086 cs_adm_list_users (5.3+)
получить список пользователей с сервера по заданным критериям. Нужны административные права
{
  "Params"  : "online,web",             // список параметров, можно перечислять через запятую. Могут быть: 
                                        // all - все юзеры
										// online - только онлайн
										// offline - только отлюченные от сервера (не в сети)
										// notweboperators - только учётки юзеров, не являющихся операторами веб-поддержки
                                        // notincommoncontacts - все юзеры, не входящие в общий список контактов
										// groupowner - есть ли у юзера его личные группы
										// enabled - только активные учётные записи
										// disabled - только отключенные учётные записи
										// notwebsupport - все учётки пользователей, кроме юзеров веб-поддержки с сайта (группа прав web guests)
  "Filters" : "uin,nick,email,secured"  // список полей, которые нужно получить. Любые поля из профиля пользователя
}

008B cs_adm_list_roles (5.3+)
получить список групп прав пользователей (роли), нужны административные права

008C cs_adm_copy_role_rights (5.3+)
скопировать права из одной группы (роли) прав в другую, нужны административные права. Посмотреть список ID ролей можно консольной командой list roles
{
  "IDFrom" : 8,  // ID роли, из которой следует скопировать набор прав
  "IDTo"   : 17  // ID роли, в которую копируется набор прав
}

008F cs_adm_del_remote_logs (5.4+)
удаление логов пользователя, нужны административные права
{
  "UIN"  : 89,           // идентификатор пользователя, которому нужно удалить логи
  "What" : "PRIVATES",   // какие логи удалять, только заглавные буквы (PRIVATES, CHANNELS, ALL)
  "From" : "09.10.2004", // с какой даты и времени удалять сообщения. Можно указывать дату и время в формате dd.mm.yyyy или dd.mm.yyyy.hh.nn.ss
  "To"   : "12.12.2013"  // по какую дату и время удалять сообщения. Можно указывать дату и время в формате dd.mm.yyyy или dd.mm.yyyy.hh.nn.ss
}

0090 cs_adm_get_server_info (5.5+)
получение общей справочной информации о сервере, нужны административные права

0091 cs_adm_get_user_profile (5.6+)
получение полной информации о профиле любого пользователя, административная команда
{
  "UIN" : 89, // идентификатор пользователя, профиль которого нужно получить
  "CID" : 79  // (6.5+) CID пользователя (опционально). Если указан, то нужно отдавать ещё и IP, MAC, HardwareID и прочие данные
}

0092 cs_get_public_access_to_foreign_folder (5.7+)
получить доступ "только для чтения" к чужой FTP папке (получение временного пароля)
{
  "UIN"  : 73           // идентификатор пользователя, к папке которого мы хотим получить доступ по FTP в режиме "read only"
}

0093 cs_adm_get_job_positions_list (5.7+)
получить список должностей компании, административная команда

0094 cs_web_support_i_am_busy (5.7+)
если пользователю WEB-поддержки с сайта приходит сообщение не от оператора, с кем он в данный момент говорит, он отвечает этой командой
{
  "UINTo"       : 89, // кому адресовать сообщение
  "UINTalkNow"  : 17  // с кем разговаривает пользователь сейчас
}

0095 cs_adm_remove_user (5.9+)
удалить пользователя, административная команда
{
  "UINS"  : "751,13,52" // идентификаторы пользователей, которых следует удалить
}

0096 cs_adm_create_user (5.7+)
создать нового пользователя, административная команда
{
  "Nick"     : "Godzilla",        // ник нового пользователя
  "Email"    : "monster@sea.com", // (5.24+) адрес электронной почты пользователя
  "Pass"     : "*Egdiw8!#*dtuid", // пароль для подключения
  "AuthType" : 0                  // (7.7+) тип авторизации пользователя: 0 - стандартная, 2 - вход без пароля
}

0097 cs_adm_set_user_password (5.7+)
изменить пароль пользователя
{
  "UIN"  : 751,            // идентификатор пользователя, для которого устанавливается новый пароль
  "Pass" : "283JHGD87tehd" // новый пароль
}

0098 cs_adm_modify_user_profile (5.7+)
изменить профиль пользователя, административная команда
{
  "UIN"  : 98, // числовой идентификатор пользователя
  "Role" : 2б, // индекс группы прав, к которой принадлежит пользователь
  "Tag" : "", // тег, текстовая строка, произвольные данные
  "DomainName" : "", // название домена, в котором зарегистрирован пользователь (если это импортированный пользователь из Active Directory)
  "Active" : true, // включена или выключена учётная запись пользователя
  "AuthType" : 0, // тип авторизации пользователя: 0 - стандартная, 1 - прозрачная Active Directory, 2 - вход без пароля
  "Nick" : "John Socha", // ник
  "FirstName" : "Василий", // имя
  "LastName" : "Чапаев", // фамилия
  "MiddleName" : "Иванович", // отчество
  "Sex": 1, // пол
  "Avatar" : 54, // номер аватара
  "Email": "chapay@mail.su", // основной адрес электронной почты
  "Birthday" : "17.05.2013", // день рождения пользователя в формате "дд.мм.гггг"
  "MaritalStatus" : 7, // семейный статус (1 - В серьёзных отношениях, 2 - Вдовец/вдова, 3 - Женат/замужем, 4 - Помолвлен(а)/обручен(а), 5 - Разведен(а), 6 - Разошлись, 7 - Холост/не замужем)

  "HomePhone" : "827346827346", // домашний номер телефона
  "HomeFax" : "93485745", // домашний номер факса
  "HomeCellular" : "9048679456", // личный номер сотового телефона
  "HomeStreetAddress" : "", // домашний адрес
  "HomeCity" : "", // город, в котором живёт человек
  "HomeState" : "", // провинция, область, край, штат
  "HomeZIP" : "08500", // почтовый индекс
  "HomeCountry" : 1, // страна проживания
  "HomeWWW" : "", // личная WEB-страница

  "WorkCompanyName" : "", // название компании, в которой работает человек
  "WorkPosition" : "", // должность
  "WorkPositionIdx" : -1, // (v5.5+) индекс должности, число. Если должность не указана, то -1
  "WorkDivDept" : "", // подразделение, отдел, департамент
  "WorkDeptIdx" : 13, // индекс подразделения (5.10+)
  "WorkOffice" : "", // номер офиса
  "WorkPhone" : "", // рабочий телефон
  "WorkFax" : "", // рабочий факс
  "WorkPager" : "", // номер пейджера
  "WorkStreetAddress": "", // рабочий адрес
  "WorkCity" : "", // город, в котором работает человек
  "WorkState" : "", // провинция, область, край, штат
  "WorkZIP" : "", // рабочий почтовый индекс
  "WorkCountry": 17, // страна, в которой работает человек
  "WorkWWW" : "", // рабочая WEB-страница

  "SpokenLang1" : 1, // язык, который знает человек
  "SpokenLang2" : 2, // язык, который знает человек
  "SpokenLang3" : -1, // язык, который знает человек. -1 - пустое поле

  "Interests1" : -1,      // сфера интересов №1
  "InterestsWords1" : "", // ключевые слова из сферы интересов №1
  "Interests2" : -1,      // сфера интересов №2
  "InterestsWords2" : "", // ключевые слова из сферы интересов №2
  "Interests3" : -1,      // сфера интересов №3
  "InterestsWords3" : "", // ключевые слова из сферы интересов №3
  "Interests4" : -1,      // сфера интересов №4
  "InterestsWords4" : "", // ключевые слова из сферы интересов №4

  "Past1" : -1, // прошлое, №1
  "PastWords1" : "", // прошлое, ключевые слова №1
  "Past2" : -1, // прошлое, №2
  "PastWords2" : "", // прошлое, ключевые слова №1
  "Past3" : -1, // прошлое, №3
  "PastWords3" : "", // прошлое, ключевые слова №1

  "PastOrg1" : -1, // прошлое место работы №1
  "PastOrgWords1" : "", // прошлое место работы, ключевые слова №1
  "PastOrg2" : -1, // прошлое место работы №2
  "PastOrgWords2" : "", // прошлое место работы, ключевые слова №2
  "PastOrg3" : -1, // прошлое место работы №3
  "PastOrgWords3" : "", // прошлое место работы, ключевые слова №3

  "GMT" : "", // поправка на мировое время

  "About" : "", // краткая информмация о человеке
  "HelloMsg" : "", // текст приветственного сообщения, которое показывается при открытии привата
  "AutoreplayMsg": "", // текст автоответчика
  "Autoreplay" : false // включен или выключен автоответчик
}

0099 cs_adm_clear_user_foto (5.7)
удаление фотографии указанного пользователя, админкоманда
{
  "UIN" : 87 // числовой идентификатор пользователя
}

009A cs_adm_get_server_options (5.7+)
получить все настройки сервера, админкоманда

009B cs_adm_set_server_options (5.7+)
// установить настройки сервера, админкоманда
{
  "IPVer"          : 0,        // версия используемого протокола для связи: 0 - IPv4, 1 - IPv6
  "TCPPort"        : 2004,     // номер TCP порта, по которому работают подключенные клиенты
  "Bind"           : "0.0.0.0" // IP адрес интерфейса, который будет "слушать" MyChat Server. Если это "0.0.0.0" - "слушать" все доступные
  "UseConnPass"    : false,    // использовать или нет пароль для подключения к серверу (для дополнительной безопасности). Это не пароль пользователя, это дополнительный общий ключ доступа к серверу
  "ConnPass"       : "",       // текст пароля для доступа к серверу

  "ServName"       : "SERVER",          // название сервера
  "ServAdmin"      : "Chapay",          // имя администратора
  "AdminEmail"     : "chapay@mail.su",  // адрес электронной почты администратора сервера
  "AdminWEB"       : "www.null.com",    // веб-сайт администратора сервера
  "RobotName"      : "Elisa",           // имя встроенного робота
  "RobotAvatarNum" : 17,                // номер аватара встроенного робота
  "ConnectMsg"     : "Preved, medved!", // приветствие сервера, которое показывается при подключении
  "RobotHelloMsg"  : "Hello!",          // приветствие робота, которое отправляется при открытии сеанса приватного разговора

  "IntegrationAPI"    : true,            // включена или выключена интеграция со сторонним ПО
  "IntegrationAPIKey" : "$#^fd76#%dgjc", // пароль для доступа к IntegrationAPI

  "SysEventsLogLevel" : 20, // (6.8+) уровень логгирования системных протоколов
  "LogFTP"        : true, // сохранять лог FTP сервера
  "LogModerators" : true, // сохранять лог модераторов чата
  "LogScripts"    : true, // сохранять лог работы встроенных скриптов
  "LogBBS"        : true, // сохранять лог доски объявлений
  "LogConsole"    : true, // сохранять лог консольных команд
  "LogBroadcasts" : true, // сохранять лог оповещений
  "LogFiles"      : true, // сохранять лог передачи файлов
  "LogConf"       : true, // сохранять лог конференций
  "LogPrivates"   : true, // сохранять лог приватных разговоров

  "FTPServer"         : true,      // включен или выключен встроенный FTP сервер
  "FTPBind"           : "0.0.0.0", // IP адрес интерфейса, который будет "слушать" встроенный FTP сервер. Если это "0.0.0.0" - "слушать" все доступные
  "FTPPort"           : 20000,     // TCP порт для файловго сервера
  "FTPPortsPool"      : 100,       // размер пула портов для файловго сервера
  "FTPPublicDir"      : "",        // папка для хранения файлов публичных файлов FTP сервера
  "FTPPersonalDir"    : "",        // папка для хранения личных файлов пользователей MyChat
  "FTPPublicAccess"   : true,      // разрешён ли публичный доступ к файловому серверу
  "FTPPublicReadOnly" : false,     // доступ "только для чтения" для публичного аккаунта
  "FTPPublicLogin"    : "mcuser",  // логин для публичного доступа
  "FTPPublicPass"     : "mychat",  // пароль для публичного доступа

  "WEBTCPPort" : 80,   // TCP порт встроенного WEB сервера

  "TURNPortTCP"        : 8888,          // (5.17+) TCP порт TURN сервера
  "TURNUseAutoConfig"  : true,          // (5.17+) использовать автоматическую конфигурацию для TURN сервера
  "TURNFullTextConfig" : "bla-bla-bla", // (5.17+) полная текстовая конфигурация встроенного TURN сервера
  "TURNType"           : 0,             // (5.17+) 0 - наш собственный, 1 - чужой
  "TURNExternalConfig" : "bla-bla-bla", // (5.17+) настройки альтернативного TURN сервера

  "BackupWeekly"        : true, // еженедельно резервировать базу данных сервера в автоматическом режиме
  "BackupDay"           : 1,    // в какой день недели делать резервную копию
  "BackupHours"         : 18,   // время создания резервной копии (часы, от 0 до 23)
  "BackupMinutes"       : 0,    // время создания резервной копии (минуты, от 0 до 59)
  "BackupsDir"          : "",   // папка, куда нужно делать резервные копии
  "PurgeOldBackups"     : true, // автоматическое удаление старых резервных копий
  "PurgeOldBackupsDays" : 90,   // удалять старые резервные копии, старше указанного количества дней

  "PurgeOldImages"     : true,  // удалять старые кеши изображений
  "PurgeOldImagesDays" : 90,    // максимальный "возраст" в днях старых изображений, после превышения которого их следует удалять с диска

  "PurgeOldFiles"      : true,  // (6.3+) удалять старые файлы
  "PurgeOldFilesDays"  : 90,    // (6.3+) максимальный "возраст" в днях старых файлов, после превышения которого их следует удалять с диска

  "SMTPEnable"         : true,  // (5.8+) включить или выключить сервис отправки электронной почты
  "SMTPHost"           : "",    // (5.8+) адрес почтового сервера (hostname или IP адрес)
  "SMTPPort"           : 25,    // (5.8+) TCP порт для работы
  "SMTPLogin"          : "",    // (5.8+) логин к почтовому ящику
  "SMTPPassword"       : "",    // (5.8+) пароль к почтовому ящику
  "SMTPEmail"          : "",    // (5.8+) полный адрес электронной почты
  "SMTPUseSSL"         : false, // (5.8+) использовать SSL шифрование
  "SMTPFormat"         : 0,     // (5.8+) 0 - plain text, 1 - html
  "ExternalIP"         : "",    // (5.8+) внешний адрес MyChat Server (IP либо хост)
  "InvitePreset"       : "",    // (5.8+) текст инвайта для пользователя
  "EmailSubjectForInvite" : "", // (5.8+) тема письма инвайта для пользователя
  "EnableMyChatGuest"  : true,  // (5.8+) включен или выключен сервис MyChat Guest
  "EnableWebSupport"   : true,  // (5.8+) включен или выключен сервис MyChat Web Support
  "WebSupportShowOperatorsList" : true, // (7.2+) включить выбор доступного человека из списка при связи с оператором поддержки на сайте
  "WebSupportAskUserFields"     : "name,email", // (7.2+) список полей, которые следует запрашивать при входе в чат поддержки пользователя с сайта

  "DisplayNickStyle"   : 0,     // (5.9+) стиль отображения ников пользователей в чате
// 0 - Александр Сергеевич Пушкин
// 1 - Пушкин Александр Сергеевич
// 2 - Пушкин А.С.
// 3 - А.С. Пушкин
// 4 - Пушкин Александр
// 5 - Александр Пушкин
// 6 - Александр Сергеевич
// 7 - Пушкин
// 8 - Александр
// 9 - Назначенный пользователем
  "DisplayNickFormat"     : "%nick% %email%", // (5.9+) user defined стиль отображения пользователей в MyChat
  "BlockNickDublicates"   : true, // (5.9+) запрет дублирования ников на сервере
  "BlockEmailDuplicates"  : true, // (5.24+) запрет дублирования email пользователей на сервере
  "AutoLogout"            : true,  // (5.9+) автозавершение работы MyChat Client при логине с другого устройства
  "BlockNewRegistrations" : false, // (5.9+) запретить самостоятельные регистрации пользователей на сервере
  "AutoAwayTime"          : 5,     // (5.9+) время для втоматической установки статуса "Нет на месте" (в минутах)
  "MaxRegFromOneMACLimit" : false, // (5.9+) ограничить количество регистраций с одного MAC адреса
  "MaxRegFromOneMACCount" : 10,    // (5.9+) максимальное количество регистраций с одного MAC адреса (число)
  "MaxRegFromOneIPLimit"  : false, // (6.7+) ограничить количество регистраций с одного IP адреса
  "MaxRegFromOneIPCount"  : 100,   // (6.7+) максимальное количество регистраций с одного IP адреса (число)
  "MaxRegFromOneHWIDLimit" : false, // (6.7+) ограничить количество регистраций с одного HardwareID
  "MaxRegFromOneHWIDCount" : 10,   // (6.7+) максимальное количество регистраций с одного HardwareID
  "OldDaysUserAction"     : 0,     // (5.9+) что делать с пользователями, которые давно не подключались к серверу (0 - ничего не делать, 1 - блокировать учётную запись, 2 - удалять учётную запись)
  "OldDaysCount"          : 30,    // (5.9+) срок, после которого начинаются проверки на давность подключения
  "AdvertShow"            : false, // (5.9+) показывать ли рекламный баннер в интерфейсе MyChat Client
  "AdvertLink"            : "",    // (5.9+) http или https линк на рекламный баннер (в странице должен быть pure html, буз javascript и CSS)
  "AdvertHeight"          : 20,    // (5.9+) высота рекламного блока в точках
  "AdvertQuantity"        : 15,    // (5.9+) частота обновления рекламного блока в минутах
  "WEBUseSSL"             : false, // (5.9+) использовать шифрование трафика в WEB сервере MyChat
  "WEBPrivateKeyPath"     : "",    // (5.9+) абсолютный путь к файлу приватного ключа MyChat Server
  "WEBPublicKeyPath"      : "",    // (5.9+) абсолютный путь к файлу публичного ключа MyChat Server
  "WEBBundleKeyPath"      : "",    // (5.16+) authority certificate
  "STUNAdditional"        : "",    // (5.9+) дополнительные адреса STUN-серверов
  "OnlySecuredLogin"      : false, // (5.10+) использовать обязательное шифрование при подключении к серверу. Клиентов, которые не используют шифрование - отключать
  "WEBUseCache"           : true,  // использовать кеширование файлов WEB-сервера в памяти
  "WEBCacheCompress"      : true,  // сжимать файлы "на лету" (GZIP, deflate)
  "LimitUpdateDownloads"  : false, // ограничить количество одновременных загрузок файлов обновлений
  "EnableUpdatesDownloadLimit" : 10, // максимальное количество одновременных загрузок файлов обновлений
  "UseIPControlInTokens"  : true,  // (6.7+) использовать привязку к IP адресу при работе с токенами (по умолчанию true, иногда нужно отключать при работе в браузере через proxy)
  "LobbyEnable"           : true,  // (6.8+) разрешить lobby-страницу http(s)://server-name
  "FilesDir"              : "...", // (6.8+) папка для размещения файлов и изображений, которые пользователи отправляют в чате
  "LogsDir"               : "...", // (6.8+) папка для хранения текстовых протоколов

  "AliasAdmin"            : "admin",  // (7.1+) папка-псевдоним, путь к админке
  "AliasAPI"              : "API",    // (7.1+) папка-псевдоним, путь к Integration API
  "AliasChat"             : "chat",   // (7.1+) папка-псевдоним, путь к WEB-чату
  "AliasFiles"            : "files",  // (7.1+) папка-псевдоним, путь к файлам, залитым на сервер
  "AliasForum"            : "forum",  // (7.1+) папка-псевдоним, путь ко встроенному форуму
  "AliasKanban"           : "kanban", // (7.1+) папка-псевдоним, путь к канбан-доске
  "AliasSupport"          : "support",// (7.1+) папка-псевдоним, путь к WEB-чату поддержки на сайт

  "ForumEnable"           : true,     // (7.1+) включить доступ ко встроенному форуму
  "KanbanEnable"          : true,     // (7.1+) включить доступ к канбан-доске
  "ChatEnable"            : true,     // (7.1+) включить доступ к WEB-чату
  "AdminEnable"           : true,     // (7.1+) включить доступ к WEB-админке
  "DisableScriptsDueToTimeout" : false // (7.2+) отключать скрипты из-за превышения времени выполнения
  "MaxUploadFileSize"     : 0,         // (7.4+) максимальный размер файла, который можно заливать на сервер. По умолчанию - 0, без ограничений
  "AutoImportantNotifiers" : true,     // (8.7+) Автоматические важные уведомления о функциях MyChat
  "MaxActivePrivateDialogsCount" : 100, // (8.9+) максимальное количество открытых приватных диалогов
  "UpdateGPS"             : 15, // (8.12+) время в минутах, как часто отправлять на сервер свою позицию
  "MaxSelfMsgEditTime"    : 15,  // (2023.4+) максимальный период редактирования своих сообщений в конференциях и приватах, в минутах, больше 0
  "MaxSelfMsgDeleteTime"  : 15,  // (2023.7+) максимальный период удаления своих сообщений в конференциях и приватах, в минутах, больше 0
}

009C cs_adm_get_server_net_interfaces (5.7+)
получить список реальных IP всех сетевых интерфейсов сервера MyChat, админкоманда

009D cs_adm_get_user_info_by_preset (5.7+)
получить список любых полей из профиля пользователя, админкоманда
{
  "UIN"    : 17,                     // идентификатор пользователя
  "Preset" : "email, nick, ip, mac"  // набор интересуемых полей, через запятую
}

009E cs_adm_remove_all_logs (5.7+)
удалить все протоколы на сервере, админкоманда

009F cs_adm_make_backup_server_db (5.7+)
создать резервную копию базы данных сервера, админкоманда

00A0 cs_adm_set_user_foto (5.8+)
назначить фото для пользователя
{
  "UIN"      : 87,          // идентификатор пользователя
  "FileName" : "273465.jpg" // файл с изображением
}

00A2 cs_adm_job_positions_set_sequence (5.8+)
установить последовательность должностей компании, массив, админкоманда (последовательсть ID должностей, те, что первые - "старше" тех, кто дальше)
{
  "Sequence"      : "10,17,24,19", // последовательность ID должностей
  "SortPositions" : false // (5.24+) настройка: сортировать должности по алфавиту, по умолчанию - false
}

00A3 cs_adm_job_positions_add (5.8+)
добавить новую должность
{
  "Name"       : "Programmer", // название должности
  "TeamLead"   : false         // это - руководитель подразделения или нет? (true/false)
                               // порядковый номер должности в общем списке будет последним
}

00A4 cs_adm_job_positions_del (5.8+)
удалить должность по индексу
{
  "ID" : 17 // идентификатор должности, которую следует удалить
}

00A5 cs_adm_job_positions_modify (5.8+)
изменить должность
{
  "ID"         : 21,           // идентификатор должности
  "Name"       : "Programmer", // название должности
  "TeamLead"   : false         // это - руководитель подразделения или нет? (true/false)
}

00A6 cs_adm_role_add (5.8+)
добавить новую группу прав
{
  "Name" : "New group", // название группы. Не может быть "Guests"
  "ID"   : -1           // -1 - роль создаётся "с нуля", с предустановленным набором прав (Guests). Если <> -1, то список прав будет скопирован из указанной роли (по её ID)
}

00A7 cs_adm_role_delete (5.8+)
удалить группу прав
{
  "ID" : 17 // внутренний индекс группы, которую следует удалить. Группа "Guests" не может быть удалена, будет выдана ошибка
}

00A8 cs_adm_role_modify (5.8+)
изменить группу прав
{
  "Name" : "New group", // новое название группы. Не может быть "Guests"
  "ID"   : 14           // внутренний индекс группы
}

00A9 cs_adm_role_set_rights (5.8+)
установить новые правила для группы прав
{
  "ID"     : 18,                       // индекс группы прав, число
  "Rights" : "10101010100101010...."   // список прав, 1 - разрешено, 0 - запрещено. Каждая позиция - отдельное правило, последовательность имеет значение
}

00AA cs_adm_role_users_list (5.8+)
получить список пользователей, входящих в заданную группу прав
{
  "ID"     : 18 // индекс группы прав, число
}

00AB cs_adm_role_apply_to_users (5.8+)
назначить роль указанному списку пользователей
{
  "ID"        : 18,                // индекс группы прав, число
  "UsersList" : "17,34,21,19..."   // список UIN-ов пользователей, через запятую

}

00AC cs_send_invite (5.8+)
отправить приглашение для любого пользователя присоединиться к MyChat
{
  "Users"    : "user@domain.com Hitman D'Angelo|manager@company.com John Smith", // (8.8+) список пользователей
                                        // "email name|"...
  "Type"     : "0",                     // тип приглашения (0 - одноразовое, 1 - многоразовое)
  "Comment"  : "Bla-bla-bla",           // текст комментария
  "dtUTC"    : "2018.06.12.18.45.13",   // (7.0+) срок годности приглашения (гггг.мм.дд.чч.мм.сс)
  "UID"      : 0,                       // (8.8+) если юзера нужно пригласить в конфу, то UID >= 0
  "ConfName" : ""                       // желаемое имя конференции, если UID=0 (конфа ещё не создана)
                                        // если UID=0, то сервер создаст конфу и загонит туда юзера,
										// который сделал приглашение. Если UID=-1, то приглашение личное,
										// а не в конференцию
// deprecated, 8.8+  "Email"    : "mail@mail.com",         // адрес электронной почты человека, которого мы приглашаем в MyChat
// deprecated, 8.8+  "UserName" : "Username",              // имя собеседника

}

00AD cs_adm_check_smtp (5.8+)
проверить работоспособность системы отправки почты

00AE cs_adm_enter_mychat_reg_data (5.8+)
ввести регистрационные данные для MyChat Server
{
  "CompanyName" : "Magic inc.",   // название компании
  "SN"          : "..........."   // серийный номер
}

00AF cs_adm_enter_mychat_guest_reg_data (5.8+)
ввести серийный номер для MyChat Guest
{
  "SN" : "......" // серийный номер
}

00B0 cs_adm_get_websupport_groups (5.8+)
получить список групп для веб-поддержки

00B1 cs_adm_add_user_to_websupport_group (5.8+)
перенести пользователя в заданную группу веб-поддержки
{
  "UINS" : "79,82,978",  // идентификатор пользователя
  "ID"  : 7              // идентификатор группы веб-поддержки
}

00B2 cs_adm_delete_user_from_websupport (5.8+)
{
  "UINS" : "79,82,978",  // идентификаторы пользователей
}

00B3 cs_adm_add_websupport_group (5.8+)
добавить новую группу WEB-поддержки
{
  "Name" : "....." // название новой группы
}

00B4 cs_adm_delete_websupport_group (5.8+)
удалить группу веб-поддержки
{
  "ID" : 17 // числовой идентификатор группы, которую следует удалить
}

00B5 cs_adm_rename_websupport_group (5.8+)
переименовать группу веб-поддержки
{
  "ID"   : 17,    // числовой идентификатор группы, которую следует переименовать
  "Name" : "..."  // новое название группы
}

00B6 cs_adm_get_websupport_group_users (5.8+)
получить список пользователей указанной группы WEB-поддержки
{
  "ID"   : 17    // числовой идентификатор группы
}

00B7 cs_adm_get_custom_options (5.8+)
запросить кастомные настройки
{
  "OptionsFields" : "EnableMyChatGuest,EnableWebSupport" // какую настройку запросить, текстовые настройки через запятую

// EnableMyChatGuest
// EnableWebSupport
// SubjectEmailForInvite
// InvitePreset
// WebSupportShowOperatorsList
// WebSupportAskUserFields
}

00B8 cs_adm_get_total_contacts_list (5.8+)
запросить общий список контактов

00B9 cs_adm_tcl_add_group (5.8+)
добавить новую группу в общий список контактов
{
  "GroupName" : "New group",  // название новой группы контактов
  "ParentID"  : 0             // индекс родительской группы. Если 0 - то следует разместить новую группу в корне дерева
}

00BA cs_adm_tcl_del_ids_list (5.8+)
удалить список групп и/или пользователей из общего списка контактов
{
  "IDList" : "17,1,54,37,6,1......" // список числовых идентификаторов, через запятую
}

00BB cs_adm_import_users (5.8+)
импорт пользователей в MyChat Server
{
  "Fields"            : "TreeDept,WorkPosition,DisplayName,Birthday", // список полей, которые будут импортированы из CSV файла
  "DisplayNamePreset" : 5,                                            // как отображается ФИО
  "DTFormat"          : "dd.mm.yyyy",                                 // формат даты и времени
  "GenerateNick"      : false,                                        // нужно ли генерировать ник
  "NickFormat"        : 0,                                            // формат генерации ника
  "DefaultPass"       : "",                                           // пароль по умолчанию (если нужен)
  "AuthType"          : 0,                                            // тип авторизации пользователя: 0 - стандартная, 1 - прозрачная Active Directory, 2 - вход без пароля
  "Domain"            : ""                                            // имя домена, если есть

  "Users"             :
    [
      {
        "id"           : 18974,                           // идентификатор записи
        "TreeDept"     : "Головной офис > Бухгалтерия",   // подразделение, в котором работает человек
        "WorkPosition" : "Ведуший экономист",             // должность
        "DisplayName"  : "Третьякова Инна Валерьевна",    // ФИО человека
        "Birthday"     : "17.10.1985"                     // дата рождения
      }
    ...
    ]
}

возможные константы:
TreeDept, WorkPosition, Firstname, Lastname, Surname, DisplayName, Birthday, Email, Nick, Sex, HomePhone, HomeFax, HomeCellular, HomeStreetAddress, HomeCity,
HomeState, HomeZIP, HomeWWW, WorkCompanyName, WorkOffice, WorkPhone, WorkFax, Pager, WorkStreetAddress, WorkCity, WorkState, WorkZIP, WorkWWW, About, Tag

00BC cs_adm_set_custom_options (5.8+)
установить заданные настройки, количество полей может быть переменным
{
  "OptionsFields"      : "EnableMyChatGuest,EnableWebSupport", // список настроек, которые будут изменяться
  "EnableMyChatGuest"  : true,  // (5.8+) включен или выключен сервис MyChat Guest
  "EnableWebSupport"   : true   // (5.8+) включен или выключен сервис MyChat Web Support

// SubjectEmailForInvite - тема письма для MyChat Guest, строка
// InvitePreset - текст письма для MyChat Guest, строка
// WebSupportShowOperatorsList
// WebSupportAskUserFields
}

00BD cs_adm_return_server_to_zero_state (5.8+)
вернуть базу данных MyChat Server в первоначальное состояние, все данные будут удалены. Админкоманда

00BE cs_adm_get_licenses (5.8+)
получить информацию по лицензиям MyChat Server

00BF cs_adm_get_antiflood_filter_data (5.9+)
получить информацию по антифлуд-фильтрам. Админкоманда

00C0 cs_adm_set_antiflood_filter_data (5.9+)
установить настройки серверных антифлуд-фильтров. Админкоманда
{
  "AntiFloodEnabled"    : true,           // включен или выключен антифлуд фильтр
  "CriticalEventsCount" : 5,              // критическое количество событий
  "BySeconds"           : 1,              // в единицу времени (секунды)
  "IgnoreFlooderSec"    : 15,             // игнорировать флудера (в секундах)
  "UseRecurringEvents"  : true,           // считать флудом повторяющиеся слова в одном сообщении (например, смайлики)
  "MaxRecurringWords"   : 5,              // в каком количестве
  "UseRecurringImages"  : true,           // считать флудом повторяющиеся изображения в одном сообщении
  "MaxRecurringImages"  : 6               // в каком количестве
}

00C1 cs_adm_modify_flood_except_users (5.9+)
изменить список пользователей, которых не касаются настройки антифлуд-фильтров
{
  "UsersList" : "7,3,94" // список UIN-ов, через запятую. Если нужно удалить всех - отправлять пустую строку
}

00C2 cs_adm_get_flood_except_users_list (5.9+)
получить список пользователей, которіх не касаются ограничения антифлуд-фильтров

00C3 cs_adm_get_allow_ip_list (5.9+)
получить список IP адресов ("белый" список), которым разрешено подключаться к MyChat Server

00C4 cs_adm_add_new_ip_to_allow_list (5.9+)
добавить новый IP адрес, маску или диапазон в список разрешённых адресов
{
  "IP"         : "192.168.10.1-192.168.10.100", // IP адрес, маска или диапазон адресов
  "ClientType" : "win32",                       // (5.15+) тип клиента (win32, common...)
  "Comment"    : "Bla-bla"                      // комментарий
}

00C5 cs_adm_delete_allow_ip (5.9+)
удалить адрес и списка разрешённых адресов
{
  "IP"         : "192.168.10.1", // IP адрес, маска или диапазон адресов
  "ClientType" : "win32"         // (5.15+) тип клиента
}

00C6 cs_adm_clear_allow_ip_list (5.9+)
полностью очистить список разрешённых IP адресов для подключения клиентов

00C7 cs_adm_get_blocked_ip_list (5.9+)
получить список заблокированных IP адресов (масок и диапазонов). Админкоманда

00C8 cs_adm_add_ip_to_block_list (5.9+)
добавить IP адрес в список заблокированных
{
  "IP"         : "192.168.1.17", // IP адрес/маска или диапазон
  "ClientType" : "win32",        // (5.15+) тип клиента (win32, common...)
  "Comment"    : "Bla-bla"       // комментарий
}

00C9 cs_adm_delete_blocked_ip (5.9+)
удалить из списка заблокированных IP адрес/маску/диапазон
{
  "IP" : "192.168.100.1" // IP адрес/маска или диапазон
}

00CA cs_adm_clear_blocked_ip_list (5.9+)
очистить список заблокированных IP адресов/масок/диапазонов

00CB cs_adm_get_blocked_mac_list (5.9+)
получить список заблокированных MAC адресов

00CC cs_adm_delete_blocked_mac (5.9+)
удалить заблокированный MAC адрес из общего списка
{
  "MAC" : "20-CF-30-A9-1A-6D"   // заблокированный MAC-адрес
}

00CD cs_adm_add_mac_to_block_list (5.9+)
добавить MAC адрес в список заблокированных
{
  "MAC"     : "20-CF-30-A9-1A-6D" // MAC-адрес, который требуется заблокировать
  "Comment" : "Bla-bla"           // комментарий
}

00CE cs_adm_clear_blocked_mac_list (5.9+)
очистить список заблокированных MAC адресов

00CF cs_adm_get_deny_nicks_list (5.9+)
получить список заблокированных ников в JSON-формате

00D0 cs_adm_add_deny_nick (5.9+)
добавить новый ник в заблокированные
{
  "Nick" : "JohnSmith"  // ник, который следует добавить в исключения. Регистр букв не имеет значения
}

00D1 cs_adm_delete_deny_nick (5.9+)
удалить ник из списка блокировок
{
  "Nick" : "JohnSmith"  // ник, который следует удалить из списка исключений. Регистр букв не имеет значения
}

00D2 cs_adm_clear_deny_nicks_list (5.9+)
полностью очистить список заблокированных ников

00D3 cs_adm_get_deny_conf_list (5.9+)
получить список заблокированных конференций в JSON-формате

00D4 cs_adm_add_deny_conf
добавить новую конференцию в список заблокированных
{
  "ConfName" : "main"  // название конференции, которое следует добавить в список названий, запрещённых к созданию. Регистр букв не имеет значения
}

00D5 cs_adm_delete_deny_conf (5.9+)
удалить конференцию из блек-листа
{
  "ConfName" : "main"  // название конференции, которую следует удалить из списка исключений. Регистр букв не имеет значения
}

00D6 cs_adm_clear_deny_conf_list (5.9+)
полностью очистить список заблокированных конференций

00D7 cs_adm_get_bad_words_filters_data (5.9+)
получить информацию по фильтрам плохих слов в чате

00D8 cs_adm_set_bad_words_filter_data (5.9+)
сохранить данные по фильтрам "плохих" слов
{
  "EnableFilter"     : true,         // включен или выключен фильтр "плохих" слов на сервере
  "ChangeBadWordsTo" : 0,            // 0 - на "*", 1 - игнорировать сообщение целиком, 2 - заменять на указанную фразу или слово
  "TextForChange"    : "<censored>", // на что менять найденное плохое слово
  "FilterConfTopics" : true,         // включить фильтр для тем конференций
  "FilterConfNames"  : true,         // включить фильтр для названий конференций
  "FilterUserNicks"  : true,         // включить фильтр для ников пользователей
  "FilterPrivates"   : false,        // включить фильтр для сообщений в приватных разговорах
  "FilterBroadcasts" : true,         // включить фильтр для текстов оповещений
  "FilterBBS"        : true,         // включить фильтр для сообщений на доске объявлений
  "FilterConf"       : true          // включить фильтр для сообщений в конференциях
}

00D9 cs_adm_get_bad_words_list (5.9+)
получить полный список "плохих" слов. Админкоманда

00DA cs_adm_add_bad_word_to_filters (5.9+)
добавить новое "плохое" слово в список фильтрации, админкоманда
{
  "BadWord" : "Bla-bla" // слово или фраза, что следует добавить в общий список для фильтрации
}

00DB cs_adm_del_bad_word_from_filters (5.9+)
удалить "плохое" слово и общего списка
{
  "BadWord" : "Bla-bla" // слово или фраза, которую следует удалить из списка для фильтрации нецензурных выражений
}

00DC cs_adm_clear_bad_words_list (5.9+)
полностью очистить список "плохих" слов, админкоманда

00DD cs_adm_load_badwords_except_confs (5.9+)
получить список конференций, в которых отключен фильтр мата

00DE cs_adm_add_badwords_except_conf (5.9+)
// добавить новую конференцию в список исключений антимат-фильтра
{
  "UID" : 17 // идентификатор конференции
// deprecated 2023.2+ "ConfName" : "sysop" // название конференции, в которой следует отключить действие антимат-фильтра
}

00DF cs_adm_del_badwords_except_conf (5.9+)
// удалить конференцию из списка исключений антимат-фильтра
{
  "UID": 17 // идентификатор конференции, которую нужно удалить из списка исключений антимат-фильтра
// deprecated 2023.2+  "ConfName" : "sysop" // название конференции, которую нужно удалить из списка исключений антимат-фильтра
}

00E0 cs_adm_clear_badwords_except_confs (5.9+)
очистить список исключений конференций антимат-фильтров

00E1 cs_adm_export_users_to_csv (5.9+)
экспорт списка пользователей в CSV файл
{
  "UINS"   : "17,12,58,94,33",  // список идентификаторов пользователей, которых следует экспортировать
  "Fields" : ""                 // список полей для экспорта. Последовательность указания имеет значение, именно в этой последовательности и будут перечислены данные в файле экпорта
// описание полей:
// UIN - числовой идентификатор пользователя
// RemoteClientType - тип клиента (win32, web, ...)
// RemoteInterfacesList - список локальных сетевых интерфейсов
// LastAccess - дата последнего подключения
// LastSpeakTime - когда последний раз отправлял сообщение
// State - текущий статус пользователя
// Tag - специальный тег, текстовая строка, индивидуальная для каждого пользователя
// HardwareID - уникальный идентификатор компьютера клиента
// Domain - имя домена пользователя (если он авторизуется через Active Directory)
// DomainRegTime - когда пользователь был зарегистрирован в домене
// DomainChangeTime - когда последний раз были изменены данные о пользователе в домене
// Ver - версия клиента
// UTC - UTC смещение локального времени клиента
// Reputation - репутация пользователя, целое число
// Nick - ник пользователя
// DisplayName - отображаемое имя пользователя в чате
// Email - основной адрес электронной почты
// GroupRights - название группы прав пользователя
// CompNetName - имя компьютера пользователя
// IP - IP адрес
// MAC - MAC адрес
// Registered - дата регистрации
// Active - активна или заблокирована учётная запись пользователя
// LastName - фамилия
// FirstName - имя
// MiddleName - отчество
// Sex - пол
// Birthday - дата рождения
// Marital - семейное положение
// HomePhone - домашний телефон
// HomeAddress - домашний адрес: дом, улица
// HomeFax - домашний факс
// HomeCellular - сотовый
// HomeCountry - домашний адрес: страна
// HomeCity - домашний адрес: город
// HomeState - домашний адрес: штат / провинция / область / край
// HomeZIP - домашний адрес: ZIP / почтовый индекс
// HomeWWW - домашняя WEB-страничка
// CompanyName - название компании / организации
// WorkPosition - должность
// WorkDept - отдел
// WorkOffice - офис
// WorkPhone - рабочий телефон
// WorkFax - рабочий факс
// WorkPager - рабочий пейджер
// WorkAddress - рабочий адрес: дом, улица
// WorkCity - рабочий адрес: город
// WorkState - рабочий адрес: штат / провинция / область / край
// WorkZIP - рабочий адрес: ZIP / почтовый индекс
// WorkCountry - рабочий адрес: страна
// WorkWWW - рабочая WEB-страничка
// Lang1 - владение языками №1
// Lang2 - владение языками №2
// Lang3 - владение языками №3
// PersonalInterests1 - личные интересы, категория №1
// PersonalInterestsText1 - личные интересы, ключевые слова №1
// PersonalInterests2 - личные интересы, категория №2
// PersonalInterestsText2 - личные интересы, ключевые слова №2
// PersonalInterests3 - личные интересы, категория №3
// PersonalInterestsText3 - личные интересы, ключевые слова №3
// PersonalInterests4 - личные интересы, категория №4
// PersonalInterestsText4 - личные интересы, ключевые слова №4
// Past1 - прошлое №1
// PastText1 - прошлое, ключевые слова №1
// Past2 - прошлое №2
// PastText2 - прошлое, ключевые слова №2
// Past3 - прошлое №3
// PastText3 - прошлое, ключевые слова №3
// PastOrg1 - прошлое, типы организаций №1
// PastOrgText1 - прошлое, типы организаций, ключевые слова №1
// PastOrg2 - прошлое, типы организаций №2
// PastOrgText2 - прошлое, типы организаций, ключевые слова №2
// PastOrg3 - прошлое, типы организаций №3
// PastOrgText3 - прошлое, типы организаций, ключевые слова №3
// Comments - дополнительно, о пользователе
// ADUser - пользователь, импортированный из Active Directory
}

00E2 cs_adm_multiply_modify_users (5.9+)
множественное изменение данных пользователей
{
  "UsersList" : "17,94,28,53",
  "Fields"    : "Active,Sex,CompanyName,Position,WorkDept,Office,WorkAddress,WorkCity,WorkState,WorkZIP,WorkCountry,WorkWWW,Domain",

  ....        // поля с данными, которые перечислены в переменной Fields
}

00E3 cs_adm_tcl_add_users_list_to_group (5.10+)
добавить список пользователей в указанную группу
{
  "UINS"    : "17,1,54,37,6,1......", // список числовых идентификаторов, через запятую
  "GroupID" : 27                      // номер группы, в которую следует добавить пользователей
}

00E4 cs_adm_tcl_move_users_and_groups (5.10+)
переместить пользователей и/или группы в пределах общего списка контактов
{
  "ToGroupIdx" : 28,               // в какую группу следует перенести группы/пользователей. Внутренний индекс в базе данных. Если -1 - то группу следует перенести в корень
  "GroupsIdx"  : "47,14,12,7...",  // список групп, которые следует перенести. Может быть пустым
  "UsersIdx"   : "17,43,57"        // список пользователей, которых следует перенести. Может быть пустым
}

00E5 cs_adm_tcl_rename_group (5.10+)
переименовать группу в общем списке контактов
{
  "ID"        : 17,               // идентификатор группы в базе данных
  "GroupName" : "New group name"  // новое название группы контактов
}

00E6 cs_get_online_users_states (5.10+)
получить список UIN-ов и статусов всех пользователей, которые в данный момент есть онлайн

00E7 cs_get_depts_list (5.10+)
получить список подразделений компании (когда используется общий список контактов)

00E8 cs_adm_get_all_text_confs (5.10+)
получить список всех текстовых конференций, когда-либо создававшихся на сервере

00E9 cs_adm_force_update_global_contacts (5.10+)
принудительно обновить кеш общего списка контактов и разослать его всем онлайн-пользователям

00EA cs_adm_get_bans_list (5.11+)
получить список всех банов, которые в данный момент актуальны на сервере. Админкоманда

00EB cs_adm_del_bans (5.11+)
снять указанные баны по индексам, админкоманда
{
  "IDList" : "7,11,25" // список идентификаторов банов, которые следует удалить
}

00EC cs_adm_get_moderators (5.11+)
получить список модераторов, админкоманда

00ED cs_adm_get_conf_names_by_uid_list (5.11+)
получить список названий конференций по их UID
{
  "UIDS" : "17,1,28,3,45"  // список идентификаторов конференций, которые нас интересуют
}

00EE cs_adm_delete_moderators (5.11+)
удалить список модераторов
{
  "UINS" : "17,12,52,4"  // список UIN-ов модераторов, которых следует удалить
}

00EF cs_adm_add_moderator (5.11+)
добавить модератора конференции
{
  "UIN" : 17,  // идентификатор пользователя
  "UID" : -1   // идентификатор конференции, если -1 - то пользователь будет модератором во всех конференциях сервера
}

00F0 cs_adm_del_moderator_confs (5.11+)
{
  "UIN"  : 29,          // идентификатор пользователя-модератора
  "UIDS" : "17,21,3,45" // список UID-ов конференций, которые нужно удалить
}

00F1 cs_get_broadcasts_history (5.12+)
{
  "ActiveState" : 0,                     // статус оповещения. 0 - активное, 1 - "протухшее", 2 - не важно, какое
  "dtFrom"      : "12.01.2014.20.21.54", // период, с которого надо получить оповещения, начало
  "dtTo"        : "12.01.2015.00.00.00"  // конец периода
}

00F2 cs_get_broadcasts_users_stat_by_id (5.12+)
получить детализированную информацию по пользователям, получившим указанное оповещение
{
  "ID": 28 // идентификатор оповещения, полную информацию по которому нужно получить
}

00F3 cs_get_random_uin (5.13+)
получить случайный UIN из списка людей онлайн. В ответ приходит команда sc_grant_private_access

00F4 cs_set_custom_ignore (5.13+)
добавить игнор для указанного пользователя
{
  "UIN"  : 17,            // уникальный идентификатор того, кого мы будем игнорировать
  "What" : "private,conf" // что именно будем игнорировать, через запятую, в любом регистре
}

// Может быть:
// all - игнорировать всё
// confs - сообщения в конференциях
// confpersonal - личные сообщения в конференциях
// confalert - личные важные сообщения в конференциях
// private - приватные сообщения
// privatebeep - звуковые сигналы в привате
// info - запросы персональной информации о пользователе
// files - отправка файлов
// plugins - запросы плагинов

00F5 cs_del_custom_ignore (5.13+)
добавить игнор для указанного пользователя
{
  "UIN"  : 17,                       // уникальный идентификатор того, с кого мы будем снимать игнор
  "What" : "private,conf,files,info" // что именно будем убирать, через запятую, в любом регистре
}

Если игнора на пользователе нет, или нет снимаемых игноров - никаких ошибок не выдаётся, всё работает в "тихом" режиме

// Может быть:
// all - игнорировать всё
// confs - сообщения в конференциях
// confpersonal - личные сообщения в конференциях
// confalert - личные важные сообщения в конференциях
// private - приватные сообщения
// privatebeep - звуковые сигналы в привате
// info - запросы персональной информации о пользователе
// files - отправка файлов
// plugins - запросы плагинов

00F6 cs_adm_get_auto_conf_list (5.14+)
получить список автосоздаваемых конференций на сервере

00F7 cs_adm_del_auto_conf (5.14+)
удаление автосоздаваемой конференции по идентификатору
{
  "UIDS" : "17,21,3" // идентификаторы автосоздаваемых конференций, которые следует удалить
}

00F8 cs_adm_add_auto_conf (5.14+)
создать новый автосоздаваемый канал. В ответ приходит команда sc_adm_auto_conf_created с UID созданной конференции, либо ошибка
конференция создаётся моментально, в неё никто не включается, она делается пустой, владелец Elisa
{
  "Name"           : "Test room" // желаемое название конференции

// deprecated 8.0+
//  "Topic"          : "Bla-bla-bla", // тема конференции
//  "Password"       : "",            // пароль на вход в конференцию
//  "ConnectAllFlag" : true,          // присоединять абсолютно всех пользователей в эту конференцию или нет
//  "BlockCloseFlag" : false,         // запретить выход из конференции
//  "SyncLogsFlag"   : true,          // синхронизация переписки
//  "InvisibleFlag"  : false          // (6.1+) скрытая конференция
}

00F9 cs_adm_update_auto_conf (5.14+)
// обновить данные об автосоздаваемой конференции
{
  "UID"            : 24,            // идентификатор конференции
  "ConfName"       : "Test room",   // (8.0+) новое название конференции
  "ConfType"       : 1,             // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
  "ConfTopic"      : "Bla-bla-bla", // новая тема конференции
  "Pass"           : "",            // пароль на вход в конференцию
  "InviteAll"      : false          // автоматически включать всех пользователей в эту конференцию
//  "FlagLockExit"   : false          // запрет на выход из конференции
//   "JoinGroups"     : "17,21,3",             // группы пользователей, которые нужно включать в конференцию
//  "JoinUsers"      : "196,3,17",            // пользователи, которые включаются в конференцию (конфа у них в favorites)
// deprecated 8.0+
//  "SyncLogsFlag"   : true,          // синхронизация переписки
//  "InvisibleFlag"  : false          // (6.1+) скрытая конференция
}

00FA cs_adm_add_group_to_auto_conf (5.14+)
добавить группу для включения в автосоздаваемую конференцию
{
  "UID" : 17,  // идентификатор текстовой конференции
  "ID"  : 24   // идентификатор группы, которую следует добавить
}

00FB cs_adm_del_group_from_auto_conf (5.14+)
удалить группу пользователей из автосоздаваемой конференции
{
  "UID" : 21,       // идентификатор текстовой конференции
  "IDS" : "24,17,3" // идентификаторы групп, которые следует удалить из списка, через запятую
}

00FC cs_adm_get_bbs_msg_list (5.14+)
получить список актуальных сообщений на доске объявлений
{
  "Actual" : true // получать актуальные или устаревшие сообщения
}

00FD cs_adm_bbs_clear_actual (5.14+)
удалить все актуальные сообщения на доске объявлений

00FE cs_adm_bbs_get_msg (5.14+)
получить данные сообщение на доске объявлений по его идентификатору
{
  "ID" : 78 // идентификатор сообщения
}

00FF cs_adm_bbs_modify_msg (5.14+)
изменить сообщение на доске объявлений, админкоманда
{
  "ID"          : 17,                    // идентификатор объявления
  "dtActualTo"  : "01.01.2016.17.24.30", // дата и время акуальности объявления
  "Sticky"      : true,                  // "прилепленное" объявление
  "Msg"         : "Bla-bla-bla"          // текст сообщения
}

0100 cs_adm_bbs_del_messages (5.14+)
удалить актуальные сообщения на доске объявлений по их индексу
{
  "IDS" : "17,24,35,9" // идентификаторы удаляемых сообщений, текстовая строка, через запятую
}

0101 cs_adm_add_bbs_message (5.14+)
добавить новое сообщение на доску объявлений, админкоманда. В ответ приходит команда sc_adm_bbs_msg_data либо сообщение об ошибке
{
  "dtActualTo"  : "01.01.2016.17.24.30", // дата и время акуальности объявления
  "Sticky"      : true,                  // "прилепленное" объявление
  "Msg"         : "Bla-bla-bla"          // текст сообщения
}

0102 cs_adm_save_ad_options (5.15+)
// сохранить данные по настройке Active Directory интеграции
{
  "Host"       : "192.168.10.1",  // адрес сервера, к которому происходит подключение по LDAP
  "Port"       : 389,             // номер порта
  "Base"       : "dc=nss,dc=com"  // текст запроса или имя домена
  "UseSSL"     : false,           // использовать шифрование или нет
  "UserName"   : "admin",         // логин пользователя
  "LdapConfig" : ""               // (7.4+) настройка соответствия полей для импорта пользователей из домена
}

0103 cs_adm_get_ad_options (5.15+)
// получить настройки по Active Directory интеграции

0104 cs_adm_import_ad_users (5.15+)
// импортировать Active Directory пользователей из домена в базу MyChat
{
  "Fields":"Nick,FirstName,MiddleName,LastName,Email,WorkCompanyName,WorkPosition,WorkDept,WorkOffice,WorkPhone,WorkFax,WorkPager,WorkStreetAddress,WorkCity,WorkState,WorkZIP,WorkCountry,WorkWWW,HomeCellular,HomePhone,uSNChanged",
  "Domain":"NSS.COM",
  "Users": [{
    "Nick" : "",
    "FirstName" : "",
    "MiddleName" : "",
    "LastName" : "",
    "Email" : "",
    "WorkCompanyName" : "",
    "WorkPosition" : "",
    "WorkDept" : "",
    "WorkOffice" : "",
    "WorkPhone" : "",
    "WorkFax" : "",
    "WorkPager" : "",
    "WorkStreetAddress" : "",
    "WorkCity" : "",
    "WorkState" : "",
    "WorkZIP" : "",
    "WorkCountry" : "",
    "WorkWWW" : "",
    "HomeCellular" : "",
    "HomePhone" : "",
	"uSNChanged" : "" // (7.1+)
    },
  ...
  ]
}

0105 cs_adm_get_update_packet_data (5.15+)
получить данные update-пакета для клиентов MyChat

0106 cs_adm_upload_update_packet (5.15+)
загрузить пакет обновления на сервер. Административная команда
{
  "FileName" : "mcclient-v5-14-1.exe", // (8.5+) название файла-пакета обновления
  "Type"     : "win32" // или "mac"    // (8.5+) тип пакета обновления
}

0107 cs_adm_get_online_users_list (5.15+)
получить список онлайн-пользователей

0108 cs_adm_kill_users (5.15+)
отключить от сервера указанный список пользователей (разорвать соединение). В ответ приходит sc_adm_command_complete с командой cs_adm_kill_users
{
  "UINS": "17,3,2,11" // список идентификаторов пользователей, которых нужно отключить от сервера, текстовая строка
}

0109 cs_adm_halt_users (5.15+)
отправить списку пользователей команду завершения работы приложения с последующим отключением от сервера.
В ответ приходит sc_adm_command_complete с командой cs_adm_halt_users
{
  "UINS": "17,3,2,11" // список идентификаторов пользователей, текстовая строка
}

010A cs_adm_get_ad_users_list (5.15+)
получить с сервера Active Directory список пользователей
{
  "Host"         : "192.168.10.1",  // адрес сервера, к которому происходит подключение по LDAP (IP или DNS имя)
  "Port"         : 389,             // номер порта
  "Base"         : "nss.com"        // имя домена
  "UseSSL"       : false,           // использовать шифрование или нет
  "UserName"     : "admin",         // логин пользователя
  "UserPassword" : "qwer1234",      // пароль пользователя
  "Attributes"   : "givenName,sn",  // список атрибутов пользователей через запятую, которые мы хотим получить из домена. Регистр букв имеет значение
  "MakeCommonContacts" : true,      // (7.1+) формировать общий список контактов на основе структуры домена (OU)
  "MakePositions"      : true,      // (7.1+) формировать должности на основе данных из домена
  "LDAPRequest"  : "",              // (7.8+) дополнение к стандартному LDAP запросу для фильтрации импортируемых пользователей
  "LDAPBaseDN"   : "",              // (7.8+) custom Base DN, например "ou=level,dc=nss,dc=com"
  "LDAPFilter"   : false            // (7.8+) включить или выключить user filter для LDAP запроса, по умолчанию фильтр выключен
}

010B cs_sync_private_history_last (5.16+)
получить последние N сообщений из приватного разговора с указанным пользователей. Можно запросить максимум 100 сообщений
{
  "UINWith" : 17, // идентификатор собеседника
  "Count"   : 20  // количество сообщений, которые мы хотим получить
}

010C cs_sync_private_history (5.16+)
получить логи разговоров в привате (синхронизация)
{
  "UINWith" : 17,                         // с кем приватный разговор
  "Ranges"  : "78-193,211,400-971,today", // наборы диапазонов индексов, через запятую. Можно указывать одинарные индексы,
                                          // можно диапазоны, очерёдность не важна. "today" - все сообщения за текущие сутки
  "What"    : "render-last-messages"      // (8.1+) контекст, что делать после получения недостающих сообщений с сервера
}

010D cs_adm_get_script (5.16+)
получить скрипт по его ID
{
  "ID" : 17 // уникальный идентификатор скрипта
}

010E cs_adm_get_script_event_states (5.16+)
получить список статусов доступных скриптов. Нужны админправа

010F cs_adm_script_check_syntax (5.16+)
проверить синтаксис написанного серверного скрипта
{
  "ScriptSource" : "...", // исходный текст скрипта
  "ScriptName"   : "..."  // (6.4+) название скрипта
}

0110 cs_adm_script_onoff (5.16+)
включить или выключить скрипт
{
  "ID"      : 17,  // идентификатор скрипта
  "Enabled" : true // включить или выключить скрипт
}

0111 cs_adm_script_run (5.16+)
запустить скрипт
{
  "ID"           : 17,
  "ScriptSource" : "..." // исходный текст скрипта
}

0112 cs_adm_script_delete (5.16+)
удалить скрипт
{
  "ID" : 17 // уникальный идентификатор скрипта, который следует удалить
}

0113 cs_adm_script_save (5.16+)
{
  "ID" : 17,             // уникальный идентификатор скрипта, который следует удалить
  "ScriptSource" : "..." // исходный текст скрипта
}

0114 cs_adm_script_create (5.16+)
{
  "ScriptName" : "mySuperScript",    // название скрипта, задаётся пользователем
  "Event"      : "OnPrivateMessage"  // на какое событие возникает этот скрипт
}

0115 cs_adm_restart_server_services (5.16+)
принудительный перезапуск встроенного WEB-сервера, админкоманда
{
  "MyChat" : false,  // нужна или нет перезагрузка ядра MyChat Server
  "WEB"    : true,   // WEB сервер NodeJS
  "FTP"    : false   // FTP сервер
}

0116 cs_get_bbs_history (5.16+)
получить историю сообщений на доске объявлений
{
  "dtFrom" : "......"      // дата и время, с которого нужно получить сообщения на доске, в формате dd.mm.yyyy.hh.nn.ss
}

0117 cs_kanban_get_projects_list (5.17+)
получить список проектов kanban

0118 cs_kanban_get_stages_list (5.17+)
получить список этапов проекта
{
  "ID" : 17 // номер проекта, который нас интересует. Число
}

0119 cs_kanban_get_tasks_list (5.17+)
получить список задач kanban-доски
{
  "IDS" : "17,3,58" // список этапов, для которых нам нужны задачи
}

011A cs_kanban_get_tags_list (5.17+)
получить список тегов kanban-доски
{
  "Typical" : true,   // (6.0+) стандартные этапы
  "Done"    : false,  // (6.0+) этапы "завершенные"
  "Archive" : false,  // (6.0+) архивные этапы
  "MyTasks" : true    // (8.9+) только теги для заданий, где я исполнитель или постановщик задачи
}

011B cs_adm_get_active_conf_list (5.17+)
получить список работающих конференций, админкоманда

011C cs_adm_kill_txt_conf (5.17+)
удалить текстовую конференцию с сервера (не автосоздаваемую). Админкоманда. В ответ приходит complete: cs_adm_kill_txt_conf либо ошибка
{
  "UID" : 17 // числовой идентификатор конференции
}

011D cs_adm_get_users_in_conf (5.17+)
получить список пользователей в конференции
{
  "UID" : 17 // числовой идентификатор конференции
}

011E cs_adm_kick_users_from_conf (5.17+)
выгнать из конференции указанных пользователей
{
  "UID"  : 78,           // числовой идентификатор конференции
  "UINS" : "17,4,5,69,8" // список UIN-ов через запятую, текстовая строка, 0 - выгнать нельзя. Реальное наличие UIN-в в конференции не проверяется
}

0120 cs_kanban_add_project (5.17+)
добавить новый проект на kanban-доску
{
  "Name"        : "SuperProject",        // название проекта
  "dtDeadLine"  : "01.01.2016.17.24.30", // дата и время дедлайна, если его нет, то "01.01.3000.00.00.00"
  "State"       : 0,                     // статус проекта, 0 - PROJECT_STATE_OPEN
  "Description" : "Bla-bla-bla"          // описание проекта
}

0121 cs_kanban_add_stage (5.17+)
добавить новый stage на kanban доску
{
  "Name"        : "Задания",        // название этапа выполнения проекта
  "Description" : "разные задачи",  // комментарий к этапу
  "Position"    : 0,                // порядковая позиция этапа в проекте, начинается с 0
  "ProjectID"   : 1,                // идентификатор проекта
  "Type"        : 0,                // (6.0+) тип этапа, 0 - typical, 1 - done, 2 - archive
}

0122 cs_kanban_delete_stage (5.17+)
удалить этап указанного проекта с kanban-доски
{
  "ID"        : 18,  // идентификатор этапа
  "ProjectID" : 2    // идентификатор проекта, которому принадлежит этап
}

0123 cs_kanban_modify_stage (5.17+)
изменить этап проекта kanban-доски
{
  "ID"          : 17,              // идентификатор этапа, число
  "Name"        : "Задания",       // название этапа
  "Description" : "Очень срочные", // описание этапа
  "Type"        : 0,               // (6.0+) тип этапа, 0 - typical, 1 - done, 2 - archive
  "Position"    : 0                // (7.8+) новое положение в проекте, номер от 0 и больше
}

0124 cs_browser_info (5.17+)
информация о браузере пользователя, если это web-клиент
{
  "BrowserName"    : "Chrome",    // название браузера
  "BrowserVersion" : "47",        // его версия
  "BrowserDevice"  : 1,           // устройство пользователя (1 - desktop, 2 - mobile, 3 - tablet, 4 - spider)
  "BrowserOS"      : "Windows 8"  // операционная система пользователя
}

0125 cs_media_offer (5.17+)
создание медиа-запроса к клиенту
{
  "UIN" : 17,   // к какому клиенту идёт запрос
  "MID" : 78,   // идентификатор media-канала, где будут общаться пользователи
  "SDP" : "..." // текстовые данные запроса
}

0126 cs_media_answer (5.17+)
создание медиа-ответа на запрос media offer
{
  "UIN" : 17,   // к какому клиенту идёт ответ
  "MID" : 78,   // идентификатор media-канала, где будут общаться пользователи
  "SDP" : "..." // текстовые данные ответа
}

0127 cs_media_ice_candidate (5.17+)
ответ STUN/TURN сервера для собеседника
{
  "UIN"       : 17,   // к какому клиенту идёт ответ
  "MID"       : 78,   // идентификатор media-канала, где будут общаться пользователи
  "CANDIDATE" : "..." // текстовые данные ответа
}

0128 cs_media_change_settings (5.17+)
изменение настроек медиа-данных пользователя (аудио/видео)
{
  "UIN"      : 6,     // к какому клиенту идёт запрос
  "MID"      : 55,    // идентификатор media-канала, где общаются пользователи
  "Settings" : "..."  // собственно строка настроек
}

0129 cs_media_ready (5.17+)
// NodeWebKit клиента успешно стартовал и работает
{
  "UIN" : 17 // идентификатор пользователя, кому следует отправить уведомление
}

012A cs_media_exit_from_mid (5.17+)
// пользователь вышел из media-канала
{
  "MID" : 9874121 // номер Media-канала, из которого выходит пользователь
}

022B cs_import_personal_contacts (5.17+)
// импорт персональных контактов
{
  "Count" : 18,               // общее количество записей
  "1"     : "17-Своя группа", // контакты для добавления, UIN, дефис, название группы
  "2"     : "33-Своя группа",
  ...
}

012C cs_adm_get_client_options_presets (5.17+)
// получить список шаблонов настроек клиентов, админкоманда

012D cs_adm_del_client_options_preset (5.17+)
// удалить шаблон настроек клиента по его идентификатору, админкоманда
{
  "ID" : 18  // числовой идентификатор шаблона настроек, который нужно удалить
}

012E cs_adm_create_client_options_preset (5.17+)
// создать новый шаблон настроек для клиентов, админкоманда
{
  "Name"      : "Standard",  // название шаблона
  "Body"      : "..."        // содержимое шаблона, JSON объект, формат объекта как в команде sc_apply_client_settings
}

012F cs_adm_update_client_options_preset (5.17+)
изменить шаблон настроек, админкоманда
{
  "ID"   : 18     // числовой идентификатор шаблона настроек, который нужно удалить
  "Body" : "..."  // новое содержимое шаблона, JSON объект, формат объекта как в команде sc_apply_client_settings
}

0130 cs_get_options_preset (5.17+)
получить шаблон настроек по его идентификатору
{
  "ID" : 3  // идентификатор шаблона настроек
}

0131 cs_adm_apply_roles_to_options_presets (5.17+)
назначить роли групп прав пользователей для наборов настроек, массив
[
  "17:2", // пары значений, группа прав пользователей : идентификатор пресета настроек
  "3:0",  // если второе число - 0, значит, набор настроек следует убрать
  "6:4"   //
]

0132 cs_adm_add_new_user_group (5.18+)
создать новую группу пользователей
{
  "Name"       : "bla-bla-bla", // название новой группы
  "AccessType" : "admin"        // (8.9+) тип доступа (видимость), можно совмещать, указав через запятую:
	                            // any, chat, kanban, forum, admin, iapi, msl
}

0133 cs_adm_get_user_groups (5.18+)
получить список существующих групп пользователей

0134 cs_adm_get_group_users_list (5.18+)
получить список пользователей указанный группы
{
  "ID" : 82 // идентификатор группы пользователей, целое число
}

0135 cs_adm_add_users_to_group (5.18+)
добавить список пользователей в группу
{
  "Users" : "17,3,893,14", // UIN-ы пользователей, через запятую
  "ID"    : 6              // идентификатор группы, целое цисло
}

0136 cs_adm_remove_users_from_group (5.18+)
удалить пользователей из группы
{
  "Users" : "17,3,893,14", // UIN-ы пользователей, через запятую
  "ID"    : 6              // идентификатор группы, целое цисло
}

0137 cs_adm_rename_group_of_users (5.18+)
переименовать указанную группу пользователей
{
  "ID"   : 6,            // идентификатор группы, целое цисло
  "Name" : "bla-bla-bla" // новое название группы
}

0138 cs_adm_delete_groups_list (5.18+)
удалить список групп пользователей
{
  "IDS" : "17,1,35" // список ID групп, которые нужно удалить, через запятую
}

0139 cs_adm_set_integration_tool_options (5.19+)
установить настройки интеграции инструмента (phpbb, telegram, etc.)
{
  "name"     : "phpbb3",     // название инструмента, от него зависит набор настроек
  "enabled"  : true,         // включен или выключен интеграционный инструмент
  // дальше идут параметры, зависящие от инструмента интеграции
  ...
}

013A cs_adm_get_integration_tool_options (5.19+)
получить настройки интеграции инструмента (phpbb... etc.)
{
  "name" : "phpbb3" // название инструмента, набор настроек которого требуется получить
}

013B cs_kanban_add_task (5.20+)
добавить новую задачу на kanban-доску
{
    "IDStage"          : 23,                     // идентификатор этапа
	"IDProject"        : 18,                     // (7.2+) идентификатор проекта, указывается, если не указан IDStage (когда нужно просто добавить задачу в проект, не указывая Stage)
    "UINPerformer"     : 22,                     // идентификатор пользователя, который будет выполнять задачу
    "Name"             : "Task",                 // название задачи
    "Desc"             : "New task",             // описание задачи
    "Priority"         : 1,                      // важность задачи, приоритет от 1 до 6
    "dtDeadLine"       : "dd.mm.yyyy.hh.nn.ss",  // дата и время дедлайна, если есть. Если нет - 01.01.3000 года
    "State"            : 0,                      // статус задачи
    "Tags"             : "one,two,three",        // (6.0+) список тегов
    "Files":                                     // (7.2+) список файлов, набор вложенных объектов, может быть пустым
	  {
        "file_name":                             // название файла
  		  {
            Hash: "df5df54gdf5g4df5g4df4gd5f64gdsf564g6df54g", // контрольная сумма файла
            Size: "654765858"                                  // размер файла в байтах
          },
		  ...
      }
}

013C cs_kanban_task_move (5.20+)
// перенос задачи в новый stage
{
  "ID"                   : 1,  // уникальный идентификатор задачи, число
  "IDStage"              : 23  // идентификатор нового этапа
}

013D cs_kanban_task_remove (5.20+)
удаление задачи
{
  "ID" : 17 // уникальный идентификатор задачи, число
}

013E cs_kanban_task_edit (5.20+)
редактирование задачи на kanban-доске
{
  "ID"           : 17,                    // уникальный идентификатор задачи, число
  "UINPerformer" : 22,                    // (5.21+) идентификатор пользователя, который будет выполнять задачу. Можно заменить его
  "Name"         : "Task",                // название задачи
  "Desc"         : "New task",            // описание задачи
  "Priority"     : 0,                     // важность задачи, приоритет
  "dtDeadLine"   : "dd.mm.yyyy.hh.nn.ss", // дата и время дедлайна, если есть. Если нет - 01.01.3000 года
  "State"        : 0,                     // статус задачи
  "TagsAdded"    : "five,six,seven",      // (6.0+) список тегов, которые были добавлены
  "TagsDeleted"  : "",                    // (6.0+) список тегов, которые были удалены
  "Files":                                     // (7.2+) список файлов, набор вложенных объектов, может быть пустым
  {
      "file_name":                             // название файла
  	  {
        Hash: "df5df54gdf5g4df5g4df4gd5f64gdsf564g6df54g", // контрольная сумма файла
        Size: "654765858"                                  // размер файла в байтах
      },
     ...
  }

}

013F cs_kanban_add_comment (5.20+)
добавление нового комментария к таску на kanban-доске
{
  "ID"          : 17,            // уникальный идентификатор задачи, число
  "CommentType" : 0,             // тип комментария, число
  "CommentText" : "Bla-bla-bla", // текст комментария
  "Files":                                     // (8.1+) список файлов, набор вложенных объектов, может быть пустым
  {
      "file_name":                             // название файла
  	  {
        Hash: "df5df54gdf5g4df5g4df4gd5f64gdsf564g6df54g", // контрольная сумма файла
        Size: "654765858"                                  // размер файла в байтах
      },
     ...
  }
}

0140 cs_kanban_get_comments
// получить список комментариев к задаче на kanban-доске
{
  "ID" : 17 // уникальный идентификатор задачи, число
}

0141 cs_kanban_delete_comment (5.20+)
удалить комментарий к задаче с доски kanban
{
  "ID"        : 17,  // уникальный идентификатор задачи, число
  "IDComment" : 987  // уникальный идентификатор комментария, число
}

0142 cs_kanban_close_project (5.20+)
закрыть проект kanban
{
  "ID"        : 94  // уникальный идентификатор проекта
}

0143 cs_kanban_reopen_project (5.20+)
открыть заново уже закрытый проект kanban
{
  "ID"        : 94  // уникальный идентификатор проекта
}

0144 cs_kanban_delete_project (5.20+)
удалить kanban проект
{
  "ID"        : 94  // уникальный идентификатор проекта
}

0145 cs_kanban_edit_project (5.20+)
// изменить kanban-проект
{
  "ID"          : 94,                    // уникальный идентификатор проекта
  "Name"        : "SuperProject",        // название проекта
  "dtDeadLine"  : "01.01.2016.17.24.30", // дата и время дедлайна, если его нет, то "01.01.3000.00.00.00"
  "Description" : "Bla-bla-bla",         // описание проекта
  "AccessType"  : 0                      // (8.9+) тип доступа к проекту, 0 - для всех, 1 - по группам
}

0146 cs_adm_get_check_domains_list (5.20+)
получить список доменов с адресами и портами, которые используются для проверки наличия пользователей в данных доменах

0148 cs_adm_delete_check_domain (5.20+)
удалить домен из списка доменов для проверки подключающихся доменных пользователей
{
  "Domain"  : "mycompany.com" // название домена
}

0149 cs_get_personal_options (5.21+)
получить персональный набор опций клиента по его UIN

!!!014A cs_save_personal_options (5.21+)
// сохранить персональный набор настроек. JSON объект, любые поля
{
  "Notify" : { // настройки уведомлений в конференциях и приватах
   .....
  }
...
}

014C cs_kanban_get_project_info (5.21+)
получить краткую информацию о проекте
{
  "ID" : 94 // уникальный идентификатор проекта
}

014D cs_kanban_get_task_info (5.21+)
получить краткую информацию о задаче
{
  "ID" : 494 // уникальный идентификатор задачи
}

014E cs_adm_get_allowed_and_blocked_plugins (5.21+)
получить списки разрешённых и запрещённых плагинов

014F cs_adm_add_allowed_or_blocked_plugins (5.21+)
добавить названия плагинов в список запрещённых или разрешённых клиентских плагинов
{
  "Name"  : "Beeper",   // имя плагина
  "Where" : 0           // куда добавлять. 0 - список разрешённых, 1 - список запрещённых
}

0150 cs_adm_delete_allowed_or_blocked_plugin (5.21+)
удалить плагин из списка разрешённых или запрещённых клиентских плагинов
{
  "Name"  : "Beeper",   // название плагина
  "Where" : 0           // откуда удалять: 0 - из разрешённых, 1 - из запрещённых
}

0151 cs_adm_change_mychat_server (5.21+)
изменить параметры подключения клиентов к серверу MyChat
{
  "UINS"        : "17,2,14,96",      // список UIN-ов пользователей, для которых предназначена эта команда, через запятую. Все пользователи должны быть онлайн.
                                     // Можно также указать просто слово "online" маленькими буквами без кавычек. Тогда команда будет разослана всем online-пользователям
  "Immediately" : false,             // переключить пользователей немедленно
  "IP1"         : "192.168.10.1",    // основной адрес сервера чата
  "Port1"       : 2004,              // порт для подключения
  "IP2"         : "213.130.24.149",  // резервный адрес сервера чата
  "Port2"       : 10004,             // второй порт для подключения
  "ServName"    : "Corporate IM",    // название для сервера (условно)
  "Desc"        : "---",             // описание сервера (условно)
  "Pass"        : ""                 // пароль для доступа к серверу (если указан на сервере, иначе - пустая строка)
}

0152 cs_adm_get_script_info (5.21+)
получить краткую информацию о скрипте, админкоманда
{
  "ID" : 17 // уникальный идентификатор скрипта
}

0153 cs_kanban_get_last_performers (5.21+)
получить последних исполнителей задач для указанного проекта
{
  "ID"   : 94, // уникальный идентификатор проекта
  "Count": 5   // количество исполнителей
}

0154 cs_create_token (5.23+)
создать токен для быстрого доступа в какой-нибудь сервис чата
{
  "Where" : "kanban",                 // для доступа в какой сервис нужно получить токен. "kanban", "forum", "admin", "web"
  "Link"  : "#/navUsers/UserManager/" // (6.0+) подраздел сервиса для автоматического перехода. По умолчанию пустая строка
}

0155 cs_login_by_token (5.23+)
// логин в MyChat/kanban/forum/web по токену. В браузере строка логина, например, в админку, будет выглядеть примерно так:
// https://localhost:8080/admin/?token=urthcnrthgncyrthcn#/navUsers/ActiveDirectory/
// После успешного логина токен удаляется
{
  "Token"      : "sdfJHGd8237" // токен доступа
  "Client"     : "admin",      // тип клиента, который подключается к серверу. "web" - подключение через браузер,
                               // "admin" - сеанс удалённого администрирования,
                               // "kanban" - управление проектами
                               // "forum" - форум
                               // "chat" - web-чат
							   // "win32" - Windows, "iOS" - iPhone/iPad, "android" - Android, "linux" - разные Linux-системы
}

0156 cs_forum_get_structure (5.23+)
получить структуру форума (разделы и топики, в JSON)

0157 cs_forum_create_section (5.23+)
добавить новый раздел в форум
{
  "ParentID" : 0,             // ID родительского элемента в дереве, если 0 — это корневой элемент
  "Weight"   : 0,             // "вес" раздела, если это custom-сортировка
  "Caption"  : "bla-bla-bla"  // название раздела, текстовая строка
}

!!! не сделано
0158 cs_forum_delete_section (5.23+)
удаление раздела форума
{
  "ID" : 17 // идентификатор секции
}

0159 cs_forum_change_section (5.23+)
перемещение/переименование раздела форума
{
  "ID"       : 21,             // идентификатор раздела форума
  "ParentID" : 0,              // новый ID родительского элемента, если раздел перемещается (0 - корневой раздел)
  "Weight"   : 0,              // вес, для custom-сортировки
  "Caption"  : "Bla-bla-bla 2" // новое название раздела форума (если он переименовывается)
}

015A cs_forum_create_topic (5.23+)
добавить новый топик в форум
{
  "ParentID" : 1,             // ID родительского элемента в дереве, не может быть 0
  "Weight"   : 0,             // "вес" топика, если это custom-сортировка
  "Caption"  : "bla-bla-bla", // название топика, текстовая строка
  "Color"    : 0              // (7.1+) цвет топика, целое число, >=0. Если цвет не указан, то 0
}

015B cs_forum_change_topic (5.23+)
перемещение/переименование топика форума
{
  "ID"       : 21,            // идентификатор топика
  "ParentID" : 0,             // новый ID родительского раздела, если топик перемещается. Должен быть >0
  "Weight"   : 0,             // вес, для custom-сортировки
  "Caption"  : "Bla-bla 2",   // новое название топика (если он переименовывается)
  "Color"    : 0              // (7.1+) цвет топика, целое число, >=0. Если цвет не указан, то 0
}

015C cs_forum_create_post (5.23+)
добавить новый пост в форум
{
  "ParentID" : 1,             // ID родительского элемента в дереве, не может быть 0
  "Weight"   : 0,             // "вес" топика, если это custom-сортировка
  "Caption"  : "bla-bla-bla", // название топика, текстовая строка
  "Subs"     : true           // (7.1+) подписаться на тему форума, если true. Если false - оставить, как есть
}

015D cs_forum_delete_post (5.23+)
удалить сообщение из форума
{
  "ID" : 28 // идентификатор сообщения
}

015E cs_forum_delete_topic (5.23+)
удалить тему из форума
{
  "ID" : 28 // идентификатор темы на форуме
}

015F cs_forum_change_post (5.23+)
перемещение/переименование сообщения форума
{
  "ID"       : 21,              // идентификатор сообщения
  "ParentID" : 0,               // новый ID родительской темы, если пост перемещается. Должен быть >0
  "Weight"   : 0,               // вес, для custom-сортировки
  "Caption"  : "Bla-bla-bla 2", // новый текст сообщения
  "Subs"     : true             // (7.1+) подписаться на тему форума, если true. Если false - оставить, как есть
}

0160 cs_forum_get_topic_posts (5.23+)
получить список сообщений указанного топика форума
{
  "ID" : 21  // идентификатор топика
}

0161 cs_forum_get_section_info (5.23+)
получить информацию о секции (список топиков, краткая информация о них: LastChange, UIN, DisplayName, Sex, Avatar, DateTime, CountMessages)
{
  "ID" : 17 // идентификатор секции на форуме
}

// deprecated, 8.0+, следует использовать 01AD сs_get_users_changeid_data
0162 cs_get_small_info_about_users_list (5.24+)
получить краткую информацию о списке пользователей (пока только UIN, DisplayName, Sex, Avatar)
{
  "UINS" : "17,94,2,56,3" // список UIN-ов, текстовая строка с числовыми идентификаторами, разделёнными запятыми
}

0163 cs_remote_user_script_request (5.24+)
выполнить произвольный скрипт из раздела "User defined scripts" и передать ему данные для выполнения
{
  "ScriptName" : "MySpecialScript",
// ---------------------------------
// произвольные данные в JSON объекте, которые должен получить скрипт
// ---------------------------------
  "MyString"      : "Bla-bla-bla",
  "MeaningOfLife" : 43,
  "BoolData"      : true
}

0164 cs_get_book (5.24+)
получить справочник с сервера
{
  "Name" : "smtp" // название справочника. Название файла без расширения из папки C:\Program Files (x86)\MyChat Server\data\*.json
                  // в ответ на эту команду придёт команда sc_book_data
}

0165 cs_is_file_exists (5.24+)
// узнать, есть ли файл с таким хэш-кодом на сервере. Параметры Where и ID потом вернутся обратно пользователю в команде-ответке
{
  "Hash"         : "23gfik43465tierf", // SHA1 хэш файла
  "MsgType"      : 2,                  // тип файла. 2 - изображение, 4 - обычный файл
  "UTCWriteTime" : "123123.123123"     // (6.3+) UTC date&time штамп последней записи в файл ("time.date")
  "FileName"     : "832548237.jpg",    // локальное название файла
  "Where"        : 1,                  // куда вставлять файл (1 - приват, 2 - конференция, 3 - форум, 4 - канбан, 6 - доска объявлений, 6 - оповещение)
  "Size"         : 1587,               // (8.0+) размер файла в байтах
  "ID"           : 17,                 // число-идентификатор, для кого отправлять файл:
                                       // 1, private    - UIN
                                       // 2, conference - UID
                                       // 3, forum      - ID топика
                                       // 4, kanban     - ID таска
                                       // 5, bbs        - -1
                                       // 6, broadcast  - -1
  "Context"		 : "bla-bla-bla"       // контекст, необязательный параметр, безусловно будет отправлен клиенту обратно
}

0166 cs_get_image_thumbs (5.24+)
// получить уменьшенную копию изображения с сервера
{
  "Hash"     : "23gfik43465tierf", // SHA1 хэш файла
  "Width"    : 120,                // произвольная ширина уменьшенной копии изображения
  "Height"   : 100,                // произвольная высота уменьшенной копии изображения
  "FileName" : "832548237.jpg",    // локальное название файла
  "Where"    : 4,                  // (7.3+) где размещается thumb файл, число
  "ID"       : 45                  // (8.0+) UIN, UID или ещё что там у нас есть, куда потом рендерить картинку. Контекст, короче

//  LOC_PRIVATE    = 1;
//  LOC_CONFERENCE = 2;
//  LOC_FORUM      = 3;
//  LOC_KANBAN     = 4;
//  LOC_BBS        = 5;
//  LOC_BROADCAST  = 6;
}

0167 cs_kanban_create_tag (5.24+)
создать тег для kanban-доски
{
  "Name"       : "bla-bla-bla", // название тега, lowercase, без пробелов
  "ProjectID"  : 17             // идентификатор проекта, которому принадлежит тег
}

0168 cs_kanban_get_project_tags_list (6.0+)
получить список тегов для конкретного проекта
{
  "ProjectID" : 17 // идентификатор проекта, теги которого нужно получить
}

0169 cs_kanban_get_dashboard (6.0+)
получить краткую сводную информацию о проектах Kanban
{
  "Typical" : true,   // (6.0+) стандартные этапы
  "Done"    : false,  // (6.0+) этапы "завершенные"
  "Archive" : false   // (6.0+) архивные этапы
}

016A cs_add_personal_contact_with_group (6.1+)
добавить пользователя в личный список контактов сразу с группой
{
  "GroupName" : "New group",  // название группы в личном списке контактов
  "UIN"       : 789           // идентификатор пользователя, который должен быть добавлен в эту группу
}

016B cs_adm_get_integration_telegram_users (6.1+)
// получить список пользователей для интеграции с Telegram

016C cs_adm_integration_telegram_delete_user (6.1+)
// удалить Telegram пользователя из списка для интеграции
{
  "user_id" : "72364528347" // внутренний Telegram ID пользователя
}

016D cs_adm_integration_telegram_modify_user (6.1+)
// изменить параметры Telegram пользователя из списка для интеграции
{
  "user_id"    : "72364528347", // внутренний Telegram ID пользователя
  "active"     : true,          // юзер включен или нет?
  "mychat_uin" : "17"           // назначенный UIN для связки с пользователем MyChat. Если не назначен, то -1
}

016E cs_adm_integration_telegram_clear_users_list (6.1+)
// очистить список пользователей для интеграции с Telegram

016F cs_get_removed_user_info (6.2+)
// получить краткую информацию об удалённом пользователе
{
  "UIN" : 89 // уникальный идентификатор пользователя MyChat
}

0170 cs_integration_icq_set_account (6.2+)
привязать ICQ аккаунт к своей учётной записи
{
  "Login"  : "329321987",        // номер учётной записи ICQ
  "Pass"   : "&!$%iyurdft78254"  // пароль к этой учётной записи
}

0171 cs_integration_icq_send_message (6.2+)
отправить сообщение пользователю ICQ
{
  "User" : "3214569887",
  "Msg"  : "Hello!"
}

0172 cs_adm_delete_conf_message (6.2+)
// удалить сообщение из текстовой конференции
{
  "UID" : 17, // идентификатор конференции
  "Idx" : 384 // идентификатор сообщения
}

0173 cs_adm_get_history_info_private (6.3+)
админкоманда, получить информацию по сообщениям в привате за диапазон времени. В ответ приходит 8107 sc_adm_history_info_private
{
  "dtUTCFrom" : "26.11.2012.09.18.31.785", // с какой даты начинать (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "dtUTCTo"   : "26.11.2017.01.01.00.000", // до какой даты (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "UIN1"      : 3,                         // уникальный идентификатор 1-го пользователя. Порядок не важен
  "UIN2"      : 6                          // уникальный идентификатор 2-го пользователя. Порядок не важен
}

0174 cs_adm_get_history_private (6.3+)
админкоманда, получение истории приватов двух юзеров по диапазону индексов
{
  "UIN1"        : 3,  // уникальный идентификатор 1-го пользователя. Порядок не важен
  "UIN2"        : 6,  // уникальный идентификатор 2-го пользователя. Порядок не важен
  "StartConvID" : 17, // индекс начального сообщения
  "EndConvID"   : 94  // индекс конечного сообщения
}

0175 cs_adm_get_history_info_conf (6.3+)
админкоманда, получить информацию по сообщениям в конференции за диапазон времени. В ответ приходит 8109 sc_adm_history_info_conf
{
  "dtUTCFrom" : "26.11.2012.09.18.31.785", // с какой даты начинать (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "dtUTCTo"   : "26.11.2017.01.01.00.000", // до какой даты (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "UID"       : 178                        // уникальный идентификатор текстовой конференции
}

0176 cs_adm_get_history_conf (6.3+)
админкоманда, получение истории в конференции по диапазону индексов
{
  "UID"         : 3,  // уникальный идентификатор текстовой конференции
  "StartConvID" : 17, // индекс начального сообщения
  "EndConvID"   : 94  // индекс конечного сообщения
}

0177 cs_adm_get_history_private_user_pairs (6.3+)
админкоманда, получить все пары приватных разговоров за все время, ответ будет 810B sc_adm_history_private_user_pairs

0178 cs_adm_get_history_confs_list (6.3+)
админкоманда, получить список текстовых конференций, в которых были сообщения за весь период работы сервера

0179 cs_sync_conf_history (6.3+)
получить логи разговоров в конференции (синхронизация). Пользователь должен находиться в указанной конференции
{
  "UID"     : 25,                  // уникальный идентификатор конференции, число (UID)
  "Ranges"  : "78-193,211,400-971" // наборы диапазонов индексов, через запятую. Можно указывать одинарные индексы,
                                   // можно диапазоны, очерёдность не важна
}

017A cs_adm_check_ports (6.4+)
проверить, не заняты ли порты указанных сервисов, админкоманда. Если всё ок, будет complete, если нет - ошибка с первым "неудачным" портом
{
  "core"       : 2004,         // ядро сервера
  "ftp"        : 20000,        // файловый сервер
  "ftprange"   : 100,          // диапазон портов FTP
  "web"        : 443,          // WEB-сервер (http/https)
  "turn"       : 8888,         // TURN сервер
  "turnconfig" : "bla-bla-bla" // custom-вариант настройки TURN сервера, внутри параметр "listening-port"
}

017B cs_moder_delete_conf_message (6.4+)
удалить сообщение из текстовой конференции, нужны права для удаления сообщений в конференциях из раздела "Администрирование"
{
  "UID"  : 17,  // идентификатор конференции
  "Idx"  : 384, // идентификатор сообщения
  "Type" : 0    // (8.0+) если 0 - удаление для отправителя и для получателя,
                // если 1 - то сообщение будет удалено только для отправителя этого сообщения-"удалятора"
}

// deprecated 8.0+
// 017D cs_adm_reconnect_users2autoconf (6.7+)
// добавить/выгнать пользователей автосоздаваемой конференции, которую только что меняли
// {
//   "UID": 18 // идентификатор конференции
// }

017E cs_adm_get_blocked_hwid_list (6.7+)
получить список заблокированных HardwareID, админкоманда

017F cs_adm_delete_blocked_hwid (6.7+)
удалить заблокированный HardwareID адрес из общего списка
{
  "HardwareID" : "20CF30A91A6D"   // заблокированный HardwareID-адрес
}

0180 cs_adm_clear_blocked_hwid_list (6.7+)
очистить список заблокированных HardwareID на сервере

0181 cs_adm_add_hwid_to_block_list (6.7+)
добавить HardwareID клиента в список блокировок
{
  "HardwareID" : "8734dyrn78324nyx8743nym" // Hardware-номер, который требуется заблокировать
  "Comment"    : "Bla-bla"                 // комментарий
}

0182 cs_adm_get_system_logs (6.8+)
получить системные логи за период времени, админкоманда
{
  "dtUTCFrom"  : "01.03.2018.09.18.31.785", // с какой даты начинать (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "dtUTCTo"    : "01.03.2018.10.01.00.000", // до какой даты (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "Preset"     : 1,                         // типы сообщений, которые нужно увидеть
  "CID"        : -1,                        // CID, если не важен, то -1
  "UIN"        : -1,                        // UIN, если не важен, то -1
  "ClientType" : "",                        // тип приложения, если не важен, то пустая строка
  "IP"         : "",                        // IP адрес клиента, если не важен, то пустая строка
  "MAC"        : "",                        // MAC адрес клиента, если не важен, то пустая строка
  "HWID"       : "",                        // HardwareID клиента, если не важен, то пустая строка
  "GroupByCID" : true                       // группировать записи по CID либо нет
}

0183 cs_adm_remove_conversations (6.9+)
удалить любые протоколы разговоров на сервере и у клиентов за всё время
{
  "Conf"      : true,
  "Private"   : true,
  "BBS"       : true,
  "Broadcast" : true,
  "File"      : true,
  "Backup"    : true,
  "TextLog"   : true,
  "Password"  : "bla-bla-bla"
}

0184 cs_add_server_notify (7.1+)
уведомление о проблеме, которую клиент не может решить самостоятельно, нужна настройка
{
  "Type" : 1     // тип проблемы
  "Data" : {...} // JSON объект, если нужно, вложенный

  // 1 - connection timed out при заливке файла по http(s) (ip/host, port)
}

0185 cs_adm_modify_check_domain (7.1+)
отредактировать настройки для указанного домена
{
  "Domain"             : "mydomain", // имя домена
  "Sync"               : true,       // нужна синхронизация или нет
  "MakeCommonContacts" : true,       // создавать общий список контактов на основе OU пользователя
  "MakePositions"      : true        // формировать должности на основе данных пользователей из домена
}

0186 cs_adm_get_domains_list (7.1+)
получить список доменов, с которыми может работать сервер MyChat

0187 cs_adm_forum_get_subs_groups (7.1+)
получить список групп пользователей, которые подписаны на конкретную тему либо секцию
{
  "ID"   : 17, // индекс секции либо темы
  "Type" : 1   // что конкретно нам нужно, 1 - секция, 2 - тема
}

0188 cs_adm_forum_add_subs_group (7.1+)
подписать группу пользователей на тему или секцию форума
{
  "ID"      : 17, // индекс секции либо темы
  "Type"    : 1,  // что конкретно нам нужно, 1 - секция, 2 - тема
  "GroupID" : 78  // индекс группы, которую следует добавить в подписку
}

0189 cs_adm_forum_delete_subs_group (7.1+)
удалить группу пользователей из подписки на секцию или тему форума
{
  "ID"        : 17,        // индекс секции либо темы
  "Type"      : 1,         // что конкретно нам нужно, 1 - секция, 2 - тема
  "GroupList" : "78,90,11" // индексы групп, которые следует удалить из подписки
}

018A cs_adm_forum_clear_subs (7.1+)
удалить все подписки на тему или раздел форума (группы и пользователи)
{
  "ID"        : 17, // индекс секции либо темы
  "Type"      : 1,  // что конкретно нам нужно, 1 - секция, 2 - тема
  "What"      : 1   // что очищать, пользователей или группы. 1 - группы, 2 - пользователи
}

018B cs_adm_forum_add_subs_user (7.1+)
подписать пользователя на тему или секцию форума
{
  "ID"   : 17, // индекс секции либо темы
  "Type" : 1,  // что конкретно нам нужно, 1 - секция, 2 - тема
  "UIN"  : 78  // идентификатор пользователя, которую следует добавить в подписку
}

018C cs_adm_forum_delete_subs_user (7.1+)
удалить пользователей из подписки на секцию или тему форума
{
  "ID"       : 17,        // индекс секции либо темы
  "Type"     : 1,         // что конкретно нам нужно, 1 - секция, 2 - тема
  "UserList" : "78,90,11" // идентификаторы пользователей, которые следует удалить из подписки
}

018D cs_adm_forum_get_subs_users (7.1+)
получить список пользователей, которые подписаны на конкретную тему либо секцию
{
  "ID"   : 17, // индекс секции либо темы
  "Type" : 1   // что конкретно нам нужно, 1 - секция, 2 - тема
}

018E cs_get_forum_subs (7.1+)
получить список подписок на темы и разделы форума

018F cs_forum_toggle_subs (7.1+)
добавить или убрать подписку на тему либо раздел (секцию) форума
{
  "ID"     : 17,  // индекс секции либо темы
  "Type"   : 1    // что конкретно нам нужно, 1 - секция, 2 - тема
  "Enable" : true // включить либо выключить подписку
}

0190 cs_set_custom_options (7.1+)
сохранить кастомные настройки клиента на сервере
{
  "Name" : "MySuperOptions", // название настройки
  "Data" : "....."           // текстовая строка, содержимое, можно хранить что угодно, обычно JSON в текстовом виде
}

0191 cs_get_custom_options (7.1+)
получить кастомные настройки клиента на сервере
{
  "Name" : "MySuperOptions" // название настройки
}

0192 cs_exec_func (7.2+)
выполнить функцию на сервере и получить обратно результат
{
  "Func" : "bla-bla-bla" // название функции и, опционально, её параметры
}

0193 cs_adm_integration_quiz_check_question (7.2+)
проверить существование вопроса в базе робота-викторины по тексту вопроса или по номеру
{
  "Text" : "bla-bla-bla"  // точный текст вопроса или его номер
}

0194 cs_adm_integration_quiz_add_question (7.2+)
добавить новый вопрос в базу робота-викторины
{
  "Question" : "bla-bla-bla?", // новый вопрос
  "Answer"   : "bla-bla-bla"   // ответ на него
}

0195 cs_adm_integration_quiz_del_question (7.2+)
удалить вопрос из базы робота-викторины по номеру
{
  "ID" : 4518 // уникальный идентификатор вопроса
}

0196 cs_adm_integration_quiz_modify_question (7.2+)
редактировать вопрос в базе робота-викторины по индексу
{
  "ID"       : 4518,           // уникальный идентификатор вопроса
  "Question" : "bla-bla-bla?", // новый вопрос
  "Answer"   : "bla-bla-bla"   // ответ на него
}

0197 cs_adm_integration_quiz_get_stat (7.2+)
получить статистику робота-викторины

0198 cs_adm_integration_quiz_clear_stat (7.2+)
очистить статистику робота-викторины

0199 cs_adm_enter_quiz_reg_data (7.2+)
ввести серийный номер для робота-викторины
{
  "SN" : "......" // серийный номер
}

019A cs_users_live_search (7.2+)
найти список пользователей на сервере
{
  "Mask"  : "bla-bla-bla",  // маска поиска по нику, email или DisplayName
  "Limit" : 10,             // максимальное количество результатов
  "What"  : "any"           // "any" - по всем пользователям, "uid1" - конференция с UID = ???, "ccl" - общий список контактов, "pcl" - личный список контактов, "dlg" - список диалогов
  "State" : -2,             // статус пользователей: -2: любой, -1: офлайн, 0: free, 1: away, 2: dnd
  "From"  : "uin14"         // произвольная текстовая константа, откуда был вызван live search, чтобы потом при обработке результата правильно понять, куда нужно отдать данные
}

019B cs_get_private_dialogs (7.2+)
получить список своих приватных диалогов

019C cs_del_private_dialog (7.2+)
// удалить диалог с указанным юзером из списка приватных диалогов
{
  "UIN" : 18 // идентификатор пользователя, диалог с которым нужно убрать из списка диалогов приватов
}

019D cs_private_msg_read (7.2+)
пользователь только что прочитал приватное сообщение из указанного диалога
{
  "UIN" : 18,  // идентификатор пользователя, с которым открыт диалог
  "ID"  : 7845 // идентификатор сообщения в диалоге, все сообщения до него, включая указанный индекс, считаются прочитанными
}

019E cs_private_msg_got (7.2+)
// пользователь только что получил приватное сообщение из указанного диалога
{
  "UIN" : 18,  // идентификатор пользователя, с которым открыт диалог
  "ID"  : 7845 // идентификатор сообщения в диалоге, все сообщения до него, включая указанный индекс, считаются полученными
}

019F cs_private_get_dialog_msg_states (7.2+)
получить информацию о полученных и прочитанных сообщениях в приватном диалоге с оппонентом
{
  "UIN" : 18 // идентификатор пользователя, с которым открыт диалог
}

01A0 cs_adm_delete_private_message (7.3+)
удалить сообщение из приватного диалога
{
  "UIN1" : 17,  // идентификатор первого собеседника
  "UIN2" : 93,  // идентификатор второго собеседника
  "Idx"  : 3814 // идентификатор сообщения
}

01A1 cs_delete_private_message (7.3+)
удалить сообщение из привата, нужны права для удаления произвольных сообщений в своих приватах
{
  "UINWith" : 385, // идентификатор пользователя, с кем был приватный разговор
  "Idx"     : 11,  // идентификатор сообщения
  "Type"    : 0    // (8.0+) если 0 - удаление для отправителя и для получателя,
                   // если 1 - то сообщение будет удалено только для отправителя этого сообщения-"удалятора"
				   // если 2 - удаление сообщение у отправителя и получателя в течение часа, в чате появится вместо этого сообщения мессадж "Сообщение удалено"
}

01A2 cs_redirect_private_talk (7.4+)
перенаправить приватный разговор от одного пользователя к другому
{
  "UIN"     : 416, // пользователь, которого нужно "передать" другому собеседнику
  "UINTo"   : 3   // пользователь, кому мы передаём разговор
}

01A3 cs_get_users_for_redirect_dialog (7.4+)
получить список пользователей, на которых можно сделать перенаправление диалога
{
  "UIN" : 416, // пользователь, которого нужно "передать" другому собеседнику
}

01A4 cs_forward_messages (7.4+)
переслать сообщения из привата или конференции
{
  "From"     : 1,    // 1 - приват, 2 - конференция
  "WhatFrom" : 78,   // UIN либо UID, в зависимости от того, что мы указали во "From"

  "Ranges"   : "17", // индекс сообщения; range: "17-98"; набор: "45,21,109" или "today". Можно сочетать, через запятую

  "To"       : 2,    // куда отправлять сообщения: 1 - приват, 2 - конференция
  "WhatTo"   : 85    // UIN либо UID, куда отправлять мессаджи, в зависимости от того, что мы указали в "To"
}

01A5 cs_private_multicast_msg (7.4+)
отправить приватное сообщение нескольким пользователям
{
  "UINS"     : "45,13,18,255", // список получателей
  "Msg"      : "Bla-bla-bla!", // текст сообщения
  "MsgType"  : 0               // тип сообщения (картинка, текст, ....). По умолчанию - 0
}

01A6 cs_create_presenter (7.4+)
создать и сохранить presenter страницы для форума

01A7 cs_adm_terminal_command (7.4+)
выполнить команду из консоли админки
{
  "TimeStamp" : "78965461123", // дата и время отправки команды в миллисекундах
  "Cmd"       : "bla-bla-bla", // текст команды
  "Params"    : "parameters"   // параметры команды, если есть
}

01A8 cs_create_media_conf (8.15+)
// создать медиа-конференцию или вебинар
{
  "UID"    : 17, // идентификатор текстовой конференции, к которой привязывается медиа-конференция
  "Type"   : 1,  // тип конференции, CONF_MEDIA_VOICE = 1, CONF_MEDIA_VIDEO = 2, CONF_MEDIA_WEBINAR = 3
  "Params" : ""  // (8.16+) JSON с параметрами, необязательно (режимы работы, кастомные настройки и т.п.)
}

01A9 cs_get_delayed_commands (7.5.1+)
// получить список отложенных команд, ответ - sc_tech_id
{
  "LastID" : 17 // все команды, которые были отправлены для юзера, больше этого ID.
                // ID команд идут не по порядку, но всегда увеличиваются (db autoincrement общий для всех)
}

01AA cs_adm_modify_allow_ip (7.7+)
изменить IP, маску или диапазон в фильтре разрешённых IP адресов
{
  "ID"         : 17,             // числовой идентификатор записи
  "IP"         : "192.168.10.1", // IP адрес, маска или диапазон адресов
  "ClientType" : "win32",        // тип клиента
  "Comment"    : "bla-bla-bla"   // комментарий
}

01AB cs_adm_modify_blocked_ip (7.7+)
изменить IP, маску или диапазон в фильтре запрещённых IP адресов
{
  "ID"         : 17,              // числовой идентификатор записи
  "IP"         : "192.168.100.1", // IP адрес/маска или диапазон
  "ClientType" : "win32",         // тип клиента
  "Comment"    : "bla-bla-bla"    // комментарий
}

01AC cs_kanban_task_take (7.8+)
взять задачу в работу
{
  "ID" : 17 // уникальный идентификатор задачи, число
}

01AD cs_get_users_changeid_data (8.0+)
// получить краткую информацию о списке пользователей
{
  "UINS" : "3,7,8" // список UIN-ов пользователей через запятую
}

01AE cs_get_user_avatars (8.0+)
// получить аватары пользователей (прямоугольные картинки)
{
  "UINS"   : "74,17,34",  // идентификаторы пользователей
  "Width"  : 46,          // желаемый размер по горизонтали
  "Height" : 46           // желаемый размер по вертикали
}

01AF cs_live_reconnect (8.0+)
// быстрое "переподключение", нужно для мобильных клиентов. Получить дельту от данных, которые, возможно, поменялись, пока юзер был не в сети
// если ничего не поменялось, ответа на эту команду не будет
{
  "DlgIdx"         : 745,  // индекс последнего изменения приватных диалогов
  "ChangeID"       : 123,  // текущий числовой идентификатор изменений учётной записи. Если данные пользователя менялись или у пользователя есть отложенные технические сообщения - этот ID будет увеличен
  "RightsSetCRC32" : 4578, // CRC32 от строки - списка прав клиента на сервисы чата
  "State"          : 0,    // (8.1+) последний свой сетевой статус
  "Lang"           : "RU", // (8.16+) язык интерфейса клиентского приложения  
  "PushToken"      : "bla-bla-bla" // (2023.2+) токен для push-сообщений мобильного приложения, необязательный параметр  
}

01B0 cs_conf_got_message (8.0+)
// юзер получил сообщение в конференции, никакая ответная команда не отправляется
{
  "UID" : 17,   // идентификатор текстовой конференции
  "ID"  : 78123 // идентификатор сообщения, все сообщения до него, включая указанный индекс, считаются полученными
}

01B1 cs_conf_read_message (8.0+)
// юзер прочитал сообщение в конференции
{
  "UID" : 17,   // идентификатор текстовой конференции
  "ID"  : 78123 // идентификатор сообщения, все сообщения до него, включая указанный индекс, считаются прочитанными и полученными
}

// deprecated 8.9+
// 01B2 cs_media_busy (8.0+)
// передать сигнал "занято" для входящего звонка, сервер обрабатывает эту команду и генерирует приватное сообщение от имени звонящего с типом сообщения MSG_TYPE_MEDIA_CALL (12) и Type=mediastate_call_busy (10)
// {
//   "UIN"               : 17; // идентификатор пользователя, кому отправляется сообщение "занято"
//  "Type"               : 0, // тип звонка, 0 - MEDIA_CALL_TYPE_VOICE, 1 - MEDIA_CALL_TYPE_VIDEO, 2 - MEDIA_CALL_TYPE_SCREEN_SHARING
//  "MID"                : 46571,  // идентификатор мультимедийного потока, его должен удалить сервер, потому что звонок не состоялся
//  "ClientTypeCaller"   : "win32" // тип приложения клиента, кто пытался позвонить
//  "ClientTypeReceiver" : "android" // тип приложения клиента, который не смог принять звонок
//}

01B3 cs_new_important_msg_notifier (8.1+)
// залить на сервер новое уведомление с mychat-server.com

01B4 cs_halt_cid (8.1+)
отключить CID-ы пользователей от сервера и завершить их приложения
{
  "CIDS" : "1,2,3" // идентификаторы коннектов пользователей
}

01B5 cs_kill_cid (8.1+)
// отключить CID-ы пользователей от сервера
{
  "CIDS" : "7,14,71" // идентификаторы коннектов пользователей
}

01B6 cs_get_user_cids_for_plugins (8.2+)
// получить список CID-ов указанного пользователя, с указанием типа приложения и IP
{
  "UIN"             : 17,          // идентификатор пользователя
  "AppTypes"        : "any",       // типы приложений, через запятую ("win32,android,macos,linux,web,ios"), либо "any"
  "EnablePlugins"   : "VNCServer", // работающие плагины, через запятую, либо пустая строка
  "PluginRequester" : "VNCClient"  // плагин, который делал запрос
}

01B7 cs_plugins_list_active (8.2+)
// ответ на на запрос sc_is_plugins_list_active, есть ли указанный список работающих плагинов
{
  "UIN"             : 17,          // для кого ответ
  "CID"             : 1245,        // CID пользователя, которому нужно отправить ответ
  "PluginRequester" : "VNCClient", // для какого плагина ответ
  "EnablePlugins"   : "VNCServer"  // список работающих плагинов, который запросил спросил клиент (UIN/CID) для своей работы
}

01B8 cs_try_to_change_private_message (8.4+)
// попытка отредактировать своё сообщение в привате.
// редактировать можно только свои последние сообщения в течение заданного периода времени
{
  "UIN" : 17,    // идентификатор собеседника, с кем открыт диалог
  "ID"  : 78123, // идентификатор сообщения, которое нужно отредактировать. Обязательное условие: отправитель - только тот, кто запрашивает редактирование
  "Msg" : "New message text" // новый текст сообщения, не может быть пустым
}

01B9 cs_try_to_change_conf_message (2023.3+)
// попытка отредактировать своё сообщение в конференции, отправленное только в течение указанного в настройках сервера периода времени
{
  "UID" : 17,    // идентификатор конференции
  "ID"  : 78123, // идентификатор сообщения, которое нужно отредактировать. Обязательное условие: отправитель - только тот, кто запрашивает редактирование
  "Msg" : "New message text" // новый текст сообщения, не может быть пустым
}

01BA cs_asterisk_make_call (8.5+)
// сделать звонок через Asterisk API
{
  "UIN" : 21 // идентификатор собеседника, кому нужно позвонить через Asterisk
}

01BB cs_adm_asterisk_do_connect (8.5+)
// подключиться к серверу Asterisk

01BC cs_adm_asterisk_send_command (8.5+)
// выполнить команду Asterisk
{
  "Cmd" : "Action: ping" // текст команды, может быть многострочной
}

01BD cs_adm_dismiss_an_employee (8.7+)
// уволить одного или несколько сотрудников, пользователь блокируется, удаляется из всех списков контактов и из групп пользователей
{
  "UINS" : "17,3,4,5" // список UIN через запятую, можно указать одного пользователя, UIN 0 и 1 игнорируются
}

01BE cs_get_conf_msg_readers (8.7+)
// узнать, кто из пользователей конференции получил/прочитал указанное сообщение и когда
{
  "UID"     : 17,           // идентификатор конференции
  "ID"      : 17489,        // идентификатор сообщения
  "Context" : "bla-bla-bla" // любой текст, он вернётся в команде-ответке
}

01BF cs_adm_integration_turbosms_check_balance (8.8+)
// получить баланс состояния счёта в сервисе TurboSMS

01C0 cs_adm_integration_turbosms_send_message (8.8+)
// отправить SMS либо Viber-сообщение на указанный номер телефона
{
  "PhoneNumber" : "380501234578", // номер телефона в международном формате
  "Type"        : "sms"           // тип сообщения, "sms" либо "viber"
}

01C1 cs_media_call_settings (8.9+)
// изменение настроек звонка "на лету", отправляется между абонентами, у которых уже идёт звонок
{
  "ShareDesktop" : true // включить или выключить свой шаринг рабочего стола
}

01C2 cs_kanban_get_project_part_info (8.9+)
// получить  информацию о проекте, выборочно
{
   "ID" : 94, // уникальный идентификатор проекта
              // список полей, которые нужно получить, через запятую
   "What": "Name,State,Description,dtDeadLine,dtClosed,dtCreated,UINOwner,AccessType" 
}

01C3 cs_adm_modify_common_user_group (8.9+)
// изменить группу пользователей
{
  "ID"         : 17,            // идентификатор группы, целое число
  "Name"       : "bla-bla-bla", // название группы пользователей
  "AccessType" : "admin"        // тип доступа (видимость), можно совмещать, указав через запятую:
                                // any, chat, kanban, forum, admin, iapi, msl
}

01C4 cs_adm_create_personal_user_group (8.9+)
// создать новую личную группу пользователей
{
  "Name"     : "bla-bla-bla",  // название новой группы
  "UINOwner" : 17489,          // UIN владельца группы
  "Users"    : "8,6,4,554,879" // содержимое группы, опционально, UIN-ы через запятую
}

01C5 cs_adm_get_personal_user_groups (8.9+)
// получить список персональных групп указанного пользователя
{
  "UINOwner" : 19 // UIN владельца группы
}

01C6 cs_kanban_add_user_group_to_project (8.9+)
// дать доступ группе пользователей к канбан-проекту
{
  "ProjectID" : 17, // идентификатор kanban-проекта
  "GroupID"   : 5,  // группа пользователей, общая, с доступом "kanban" либо личная, нумерация сквозная
  "RightsID"  : 18  // идентификатор группы прав
}

01C7 cs_kanban_remove_user_groups_from_project (8.9+)
// убрать доступ для групп пользователей в канбан-проекте
{
  "ID"       : 17, // идентификатор kanban-проекта
  "RecordID" : 1   // идентификатор связки группа+права
}

01C8 cs_kanban_add_access_user_groups_to_stage (8.9+)
// дать доступ списку групп пользователей к этапу канбан-проекта, ответка - sc_adm_command_complete с командой
{
  "StageID"   : 17,        // идентификатор этапа проекта
  "GroupsID"  : "6,17,156" // список групп пользователей, через запятую
}

01C9 cs_kanban_remove_access_stages_from_user_group (8.9+)
// убрать доступ группе пользователей к списку этапов канбан-проектов
{
  "ID"     : 17,        // идентификатор группы пользователей
  "Stages" : "6,17,156" // список этапов проектов, через запятую. Можно укаывать этапы из разных
                        // проектов, нумерация сквозная
}

01CA cs_adm_modify_personal_user_group (8.9+)
// изменить персональную группу пользователей
{
  "ID"         : 17,           // идентификатор группы, целое число
  "Name"       : "bla-bla-bla" // название группы пользователей
}

01CB cs_adm_add_users_to_private_group (8.9+)
// добавить пользователей в личную группу указанного пользователя
{
  "ID"       : 87,           // идентификатор группы пользователей
  "Users"    : "7,3,57,985"  // список пользователй для добавления
}

01CC cs_adm_remove_users_from_private_group (8.9+)
// удалить пользователей из личной группы пользователя
{
  "ID"       : 87,           // идентификатор группы пользователей
  "Users"    : "7,3,57,985"  // список пользователй для добавления
}

01CD cs_adm_get_personal_group_users_list (8.9+)
// получить список пользователей персональной группы
{
  "ID"  : 87, // идентификатор группы пользователя
  "UIN" : 17  // идентификатор пользователя-владельца группы
}

01CE cs_create_personal_user_group (8.9+)
// создать новую личную группу пользователей, результат - sc_new_personal_user_group_created
{
  "Name"       : "bla-bla-bla",   // название новой группы
  "Users"      : "8,6,4,554,879", // содержимое группы, опционально, UIN-ы через запятую
  "AccessType" : "kanban,any"     // модификатор, "any" - на чтение для всех, кто получит доступ к группе
}

01CF cs_remove_personal_user_group (8.9+)
// удалить личные группы пользователя
{
  "IDList"  : "87,3,45" // идентификаторы личных групп пользователя
}

01D0 cs_add_users_to_personal_user_group (8.9+)
// добавить список пользователей в личную группу пользователя
{
  "ID"    : 87, // идентификатор группы пользователя
  "Users" : "8,6,4,554,879" // список добавляемых пользователей, UIN-ы через запятую
}

01D1 cs_get_personal_user_group_data (8.9+)
// получить данные персональной группы пользователей
{
  "ID" : 87 // идентификатор группы пользователя
}

01D2 cs_remove_users_from_personal_user_group (8.9+)
// удалить пользователей из личной группы пользователя
{
  "ID"    : 87 // идентификатор группы пользователя  
  "Users" : "8,6,4,554,879" // список удаляемых пользователей, UIN-ы через запятую
}

01D3 cs_get_personal_user_groups (8.9+)
// получить список персональных групп пользователя

01D4 cs_rename_personal_user_group (8.9+)
// переименовать персональную группу пользователей
{
  "ID"    : 87, // идентификатор группы пользователя
  "Name"  : "bla-bla-bla-2",  // новое название группы
}

01D5 cs_get_public_user_groups (8.9+)
// получить список публичных групп пользователей
{
  "AccessType" : "kanban" // тип доступа (видимость), можно совмещать, указав через запятую:
	                      // any, chat, kanban, forum 
						  // модификаторы admin, msl, iapi - недоступны, даже если выбрать "any"
}

01D6 cs_get_kanban_rights_group_list (8.9+)
// получить список групп прав с доступом к канбану

01D7 cs_get_kanban_get_projects_groups (8.9+)
// получить список групп проекта для разграничения прав доступа,
// ответ - sc_kanban_project_group_list
{
  "ID" : 18 // идентификатор Канбан-проекта
}

01D8 cs_get_common_user_group_data (8.9+)
// получить данные общей группы пользователей
{
  "ID" : 87 // идентификатор группы
}

01D9 cs_adm_get_all_user_group_membership_list (8.9+)
// получить список общих и личных групп, куда входит указанный пользователь,
// ответ - sc_all_user_group_membership_list
{
  "UIN" : 17 // идентификатор пользователя
}

01DA cs_geo_position (8.12+)
// текущая геопозиция устройства пользователя
// ответ на запрос 815C sc_get_geo_position (8.12+)
{
  "Latitude"  : "50.08006205562636",
  "Longitude" : "29.931609258055687",
  "Error"     : 0 // 0 - всё ок, 1 - permission denied, 2 - gps disabled
}

01DB cs_get_user_gps_history (8.12+)
// запрос истории перемещений пользователя за период времени
{
  "UIN"        : 17, // идентификатор пользователя
  "dtUTCStart" : "26.11.2021.09.18.31", // дата и время начала диапазона в UTC формате dd.mm.yyyy.hh.nn.ss
  "dtUTCEnd"   : "26.12.2021.09.18.31", // дата и время конца диапазона в UTC формате dd.mm.yyyy.hh.nn.ss
  "AppType"    : "any"                  // тип приложения: any, android, ios
}

01DC cs_get_user_gps_position (8.12+)
// отправить запрос на текущие GPS координаты всем онлайн-приложениям указанного пользователя
{
  "UIN" : 17 // идентификатор пользователя
}

01DD cs_adm_fire_users (8.12+)
// уволить одного или нескольких сотрудников, учётные записи блокируются, пользователи удаляются из общего и личных списков контактов и из всех групп
// ответ на команду - ошибка или sc_users_fired
{
  "Users" : "17,2,3" // список UIN-ов через запятую
}

01DE cs_media_conf (8.15+)
// работа с медиаконференциями, универсальная команда
{
  "cmd" : 0, // тип команды
  "UID" : 17, // номер конференции
  ... // дополнительные команды, любые
}

01DF cs_adm_custom_menu_create (8.14+)
// создать custom-меню для клиентских приложений
{
  "MenuName" : "MyNewMenu", // название меню
  "BodyJSON" : "...."       // содержимое меню, JSON-объект в текстовом поле 
}

01E0 cs_adm_get_custom_menu_list (8.14+)
// получить список существующих custom-меню для клиентских приложений

01E1 cs_adm_remove_custom_menu_list (8.14+)
// удалить список шаблонов кастомных меню по их индексам, если всё ок, то отправляется команда sc_adm_command_complete
// если есть ошибки - то 8001 sc_error с указанием номера, что не так
{
  "IDList" : "17,3,14" // список идентификаторов шаблонов меню, через запятую
}

01E2 cs_adm_modify_custom_menu (8.14+)
// изменить шаблон и/или имя кастомного меню по индексу, если всё ок, придёт 808C sc_adm_command_complete с этой командой либо ошибка
{
  "ID"       : 17,          // уникальный идентификатор меню, число 
  "MenuName" : "mynewmenu", // название меню, всегда в lowercase
  "BodyJSON" : "...."       // содержимое меню, JSON-объект в текстовом поле
}

01E3 cs_adm_add_group_to_custom_menu (8.14+)
// добавить группу пользователей в custom-menu
{
  "ID"      : 17, // уникальный идентификатор меню, число 
  "GroupID" : 73  // идентификатор группы пользователей
}

01E4 cs_remove_groups_from_custom_menu (8.14+)
// удалить группы пользователей из custom-menu, если всё ок, то ответка - sc_adm_command_complete
{
  "ID"         : 17,        // уникальный идентификатор меню, число 
  "GroupsList" : "17,3,573" // идентификаторы групп пользователей через запятую
}

01E5 cs_get_custom_menu (8.14+)
// получить данные своего custom-menu, ответ, если меню есть - 8164 sc_custom_menu (8.14+)
// если меню нету, никакого ответа не будет, ошибки тоже не будет

01E6 cs_remote_exec (8.14+)
// удалённый запуск скрипта на сервере, скриптовое событие OnClientRemoteExec. Нужны права
{
  "Cmd"      : "mycommand", // название исполняемой команды
  "JSONData" : "..."        // JSON-объект в текстовом поле, параметры команды, если нужно
}

01E7 cs_fresh_logs (8.15+)
// свежие протоколы MyChat Client, ответ на команду 8165 sc_get_fresh_logs
{
  "Files" : "..." // ZIP-файл с протоколами в base64
}

01E8 cs_media_conf_leave (8.15+)
// пользователь выходит из медиаконференции
{
  "UID" : 17 // идентификатор медиаконференции
}

01E9 cs_media_conf_join (8.15+)
// пользователь подключается к уже созданной медиаконференции
{
  "UID" : 17 // идентификатор медиаконференции
}

01EA cs_modify_conf_msg (8.15+)
// изменить текстовое сообщение в конференции. Можно редактировать только свои сообщения за последние N минут
// время редактирования по умолчанию - 15 минут, можно изменять на сервере
{
  "UID"  : 17,           // идентификатор конференции
  "Idx"  : 384,          // идентификатор сообщения
                         // следующие два параметра взаимоисключаемые: либо один, либо второй:
  "Mask" : "*fixed",     // шаблон для изменения текста, быстрое редактирование куска последнего сообщения
  "Text" : "bla-bla-bla" // полностью новый текст сообщения
}

01EB cs_adm_ad_get_user_photo_thumbs (8.15+)
// получить миниатюры фотографий пользователей из домена
{
  "Domain" : "domainname", // имя домена в lowercase
  "Users" : "login1,usnchange1,login2,usnchange2....." // список логинов и uSNChanged через запятую, по очереди
}

01EC cs_get_conf_msg_types_count (8.15+)
// получить информацию о количестве разных типов сообщений в конференции, ответ придёт в команде 816A sc_conf_msg_types_count
{
  "UID" : 17 // идентификатор конференции
}

01ED cs_adm_ad_sync_now (8.15+)
// административная команда для немедленного выполнения синхронизации с доменом
{
  "Domain" : "domainname" // имя домена в lowercase
}

01EE cs_remove_my_acc_request (8.16+)
// запрос на удаление моей учётной записи

01EF cs_adm_check_user_pwd (8.16+)
// проверка, правильный ли пароль у пользователя, ответ на запрос - sc_adm_check_user_pwd_state
{
  "UIN" : 17,       // идентификатор пользователя
  "Pwd" : "@#$%^&"  // пароль пользователя
}

01F0 cs_media_conf_close (8.16+)
// пользователь закрывает медиаконференцию, все автоматически выходят из неё
{
  "UID" : 17 // идентификатор медиаконференции
}

01F1 cs_get_media_conf_user_list (8.16+)
// получить список пользователей в медиа конференции. Если в конференции нет звонка, будет ошибка. Ответ - sc_media_conf_user_list
{
  "UID" : 17 // идентификатор конференции
}

01F2 cs_media_conf_broadcast (8.16+)
// универсальная команда рассылки сообщения всем пользователям медиа конференции, кроме отправителя
{
  "cmd" : 0,  // тип команды
  "UID" : 17 // номер конференции
  ... // дополнительные команды, любые
}

01F3 cs_get_fresh_users_data (8.16+) 
// получить свежую информацию по изменениям ChangeID пользователей сервера, всех, у кого этот показатель больше
// указанного числа
{
  "UsersID" : 1834 // самый свежий локальный ChangeID пользователя, что у него есть в кеше
}

01F4 cs_login_done (8.16+)
// клиент сигнализирует, что он получил от сервера основную порцию данных для первичного подключения и готов принимать оставшиеся данные

01F5 cs_get_conf_user_list (8.16+)
// получить список пользователей указанной конференции. Пользователь должен в ней находиться
// команда отправляется, если на клиент-сайде нет списка юзеров конференции или не совпадает 
// контрольная сумма "UserListCRC32" из команды sc_join_txt_channel. Ответка - 
{
  "UID" : 17 // идентификатор конференции
}

01F6 cs_close_text_conf (2023.2+)
// закрыть текстовую конференцию. Для этого должны быть права на закрытие конференций вообще либо юзер должен быть owner-ом указанной конфы и у него
// должно быть право на закрытие своих текстовых конференций.
// Нельзя закрыть автосоздаваемую конференцию, у которой owner Elisa (UIN 0). Если в данный момент в конфе происходит звонок - он будет прекращён.
// Необязательно находиться в конференции. Если конфа будет успешно закрыта, то она блокируется, убирается из онлайн-структур сервера,
// а все юзеры получают уведомление про выход из этой конференции
{
  "UID" : 17 // идентификатор закрываемой конференции
}

01F7 cs_adm_change_text_conf_owner (2023.2+)
// сменить владельца текстовой конференции. Если владелец uin=0, то функция вернёт ошибку.
// Если всё ок - в ответ приходит sc_adm_command_complete с командой cs_adm_change_text_conf_owner
{
  "UID"      : 17, // идентификатор конференции
  "NewOwner" : 135 // новый идентификатор владельца конференции, может быть любой юзер.
                   // если сменить на 0 (Elisa), то конференция станет автосоздаваемой 
}

01F8 cs_adm_get_user_conf_list (2023.2+)
// получить список конференций, куда входит указанный пользователь, ответ - sc_adm_user_conf_list
{
  "UIN"      : 17 // идентификатор пользователя
}

01F9 cs_remove_text_conf (2023.2+)
// удалить текстовую конференцию. Для этого должны быть права на удаление любых конференций, либо, если юзер -  владелец этой конференции, то 
// право на удаление своих тектовых конференций. Нельзя удалить конференцию с owner Elisa (UIN 0). Если в данный момент в конфе происходит 
// звонок - он будет прекращён. Необязательно находиться в конференции. Если конфа будет успешно удалена, то она полностью удаляется с сервера
// вместе с историей сообщений, а все юзеры получают уведомление про выход из этой конференции + клиентские приложения обязаны удалить локальный
// кеш истории в этой конференции
{
  "UID" : 17 // идентификатор закрываемой конференции
}

01FA cs_adm_upload_badword_list (2023.2+)
// загрузить на сервер список "плохих" слов для фильтра, список дополнит сущетвующий и в ответ придёт команда sc_badword_list_uploaded 
// с информацией, сколько слов добавлено, либо ошибка
{
  "Data" : .... // base64 строка от текстового файла в UTF8 с набором строк, разделёнными CRLF
}

01FB cs_kanban_get_last_comments_by_stages
// получить список последних комментариев для тасков выбранных этапов, ответ придёт в команде sc_kanban_last_comments_list
{
  "IDS" : "17,3,58" // список этапов, для которых нам нужны списки комментариев (таск + каммент)
}

01FC cs_kanban_get_script_list (2023.7+)
// получить список скриптов, которые можно назначать для задач в разных этапах. Нужны права для получения списка скриптов (#281)
// ответка - sc_kanban_script_list, если список не пустой

01FD cs_kanban_update_task_script_list (2023.7+)
// обновить список скриптов для задания. Если список пустой - всё будет удалено
{
  "TaskID" : 354, // идентификатор задачи
  "List"   : "17,Script1,33,Script2,19,Script3" // id группы, название скрипта, ....
}

01FE cs_kanban_get_task_script_list (2023.7+)
// получить список скриптов, "привязанных" к указанной задаче. Нужны права для получения списка скриптов (#281). Ответ - sc_kanban_task_script_list,
// даже если скриптов нет, просто придёт пустой список
{
  "TaskID" : 354 // идентификатор задачи  
}

01FF cs_remove_private_dialogues (2023.8+)
// удалить все прочитанные либо абсолютно все приватные диалоги пользователя. 
// Если что-то изменилось, то всем инкарнациям клиента придёт новый список приватных диалогов
// "Удалить" с точки зрения сервера означает "деактивировать диалог" (active=false), все непрочитанные индексы сохранятся,
// просто диалог не будет отправляться клиенту
{
  "All" : false // если параметра нет либо он = false, то удаляются только прочитанные диалоги,
                // если All = true, то будут удалены все диалоги полностью
}

0200 cs_cache_url (2023.8+)
// добавить произвольный URL в базу кешей сервера. Эта команда должна моментально отправиться на сервер,
// как только пользователь вставляет любой URL в строку ввода (Ctrl+V, Shift+Ins, ПКМ->"Вставить" и т.п.)
// как только сервер её получит, он сразу постарается получить title, decription и image страницы, если доступен OpenGraph,
// либо стандартные теги <title> и <meta name="description"...
// Сразу после этого сервер отправит клиенту сниппет для указанного URL-а
// Если получить сниппет не удалось (нет интернета, болшой таймаут, несуществующий домен...), никакого ответа не будет
{
  "URL"     : "https://ogp.me/", // ссылка, которую нужно проверить и получить в ответ snippet
  "Context" : "uin-17" // контекст, где нужно будет отображать полученный сниппет
}
====================================================================================================================================================
=====================================================================================================================================================
=====================================================================================================================================================


Команды от сервера к клиенту
-------------------------------------------------------------------------------------------------------------------------------------------------------
8000 sc_hello
// ответ на соединение клиента (сигнатура версии, которую присылает клиент, например "mc5.0")
{
  "ProtocolVer"      : "2.0",                        // версия протокола обмена данными !
  "ServerVer"        : "5.0",                        // версия сервера
  "RelDate"          : "26.11.2012",                 // дата выпуска сервера в формате dd.mm.yyyy
  "CurrentDT"        : "26.11.2012.09.18.31.785",    // UTC текущие дата и время на сервере в формате dd.mm.yyyy.hh.nn.ss.zzz
  "HelloMsg"         : "Приветствие",                // текстовое приветствие, передаваемое от сервера при подключении
  "Registered"       : "Network Software Solutions", // на кого зарегистрирован сервер
  "YourIP"           : "192.168.10.15",              // IP адрес подключающегося клиента, который "видит" сервер
  "UpdatePacketVer"  : "5.0.0",                      // версия пакета для обновления клиента. Если пустая строка - нету
  "UpdatePacketSize" : 23094823,                     // размер пакета для обновлений (если есть). Если нет - 0
  "UpdateCRC32"      : 65431,                        // (5.11+) контрольная сумма пакета для обновления
  "AndroidUpdatePacketSize" : 12094823,              // (7.7+) размер Android-пакета для обновлений (если есть). Если нет - 0
  "AndroidUpdateCRC32"      : 7897654,               // (7.7+) контрольная сумма Android-пакета для обновления. Если пакета нет - 0
  "MacUpdatePacketSize" : 123123123,                 // (8.4+) размер mac-пакета для обновлений (если есть). Если нет - 0
  "MacUpdateCRC32"      : 289764254,                 // (8.4+) контрольная сумма Mac-пакета для обновления. Если пакета нет - 0
  "MacUpdatePacketVer" : "8.5.2",                    // (8.5+) версия пакета для обновления mac-приложения

  "LinuxUpdatePacketSize" : 123123123,               // (8.6+) размер linux-пакета для обновлений (если есть). Если нет - 0
  "LinuxUpdateCRC32"      : 289764254,               // (8.6+) контрольная сумма linux-пакета для обновления. Если пакета нет - 0
  "LinuxUpdatePacketVer" : "8.5.2",                  // (8.6+) версия пакета для обновления linux-приложения

  "Linux32UpdatePacketSize" : 123123123,             // (8.6+) размер linux(x32)-пакета для обновлений (если есть). Если нет - 0
  "Linux32UpdateCRC32"      : 289764254,             // (8.6+) контрольная сумма linux(x32)-пакета для обновления. Если пакета нет - 0
  "Linux32UpdatePacketVer" : "8.5.2",                // (8.6+) версия пакета для обновления linux(x32)-приложения

  "PortFTP"          : 20001,                        // порт файлового сервера, если не указан - значит, FTP выключен
  "PortNode"         : 8080,                         // (ver5.3+) TCP порт для доступа к серверу NodeJS
  "NoSSLPortNode"    : 9080,                         // (8.12+) TCP порт для доступа к серверу NodeJS без шифрования, задаётся в файле options.json рядом с mcserv.exe
                                                     // для клиентских старых ОС (XP, 2000, 2003), в них не работает последний OpenSSL (чтобы клиентские приложения
                                                     // могли качать апдейты и передавать файлы)
  "ServPass"         : false,                        // (ver5.1+) сервер закрыт специальным паролем (true/false). По умолчанию пароль не используется
  "ServName"         : "Company server",             // (ver5.1+) имя сервера
  "HWID"             : "....",                       // (5.3+) HardwareID сервера MyChat
  "Free"             : false,                        // (5.7+) если сервер бесплатный, то true, иначе - false
  "HTTPS"            : false,                        // (5.16+) используется ли шифрование трафика в NodeJS
  "ID"               : "FA5632",                     // (7.2+) локальный идентификатор сервера, количество секунд между 01.01.2004 года и датой первого запуска этого сервера, в HEX
  "CID"              : 314,                          // (8.1+) мой CID - идентификатор соединения
  "PortTURN"         : 8888,                         // (8.2.1+) порт TURN-сервера
  "IPListTURN"       : "192.168.10.1,213.130.24.149" // (8.2.1+) IP адреса, которые слушает встроенный TURN сервер

// deprecated, для версий 5.11 и старше не используется. Нужен для обратной совместимости, чтобы корректно работало обновление со старых версий
//  "ForceUpdate"      : true
}

8001 sc_error
// произошла какая-то ошибка. Параметров также может не быть вовсе, всё зависит от типа ошибки.

{
  "ErrNum" : 21,        // номер ошибки
  "Params" : [          // параметры ошибки, если есть, параметров может быть любое количество, все - текстовые строки
    "bla-bla-bla",
    "test-test-test"
  ]
}

8002 sc_accept_connection
// сервер разрешает соединение, параметров нет

8004 sc_get_all_rights
// список прав клиента на сервисы чата, а также список разрешённых и запрещённых плагинов на данном сервере
// списки запрещённых и разрешённых плагинов могут сочетаться между собой
{
  "RightsSet"      : "10101011111110101", // список прав клиента на сервисы чата, 1 - разрешено, 0 - запрещено. Полное описание будет позже;
  "AllowedPlugins" : [],                  // список плагинов, которые разрешено использовать. Может быть пустым;
  "BlockedPlugins" : []                   // список плагинов, которые запрещается использоваться на данном сервере. Может быть пустым.
}

8005 sc_login
// вход на сервер
{
  "UIN"                : 17,                   // UIN пользователя, который залогинен в системе
  "Nick"               : "Василий Иванович",   // шаблонный ник пользователя, который сообщил ему сервер
  "InternalNick"       : "Chapay",             // (5.3+) ник пользователя, под которым он был зарегистрирован
  "Firstname"          : "Василий",            // (8.0+) имя пользователя
  "Lastname"           : "Чапаев",             // (8.0+) фамилия пользователя
  "Sex"                : 1,                    // пол пользователя
  "LoginStyle"         : 0,                    // (5.13+) тип авторизации (0 - обычная, пара UIN/Email/Nick и пароль; 1 - AD, ник/домен; 2 - без пароля, только ник, 3 - AD, transparent)
  "AutoAwayTime"       : 15,                   // время в минутах, после которого будет считаться, что пользователь неактивен за компьютером, если он не нажимал ничего на клавиатуре и не шевелил мышкой
  "Domain"             : "domainname",         // имя домена пользователя, если есть
  "OptionsPresetID"    : 17,                   // (5.17+) идентификатор название шаблона настроек, если 0 - шаблона нет
  "OptionsPresetCRC32" : 4564871,              // (5.17+) контрольная сумма шаблона настроек
  "ForumCRC"           : 1234540,              // (5.23+) контрольная сумма структуры форума
  "QuickMsgCRC"        : 0,                    // (7.1+) контрольная сумма списка шаблонных сообщений
  "Email"              : "user@mail.com",      // (7.2+) свой собственный email
  "PvDlgIdx"           : 17,                   // (7.2+) число, автоинкремент, при любом изменении диалогов или сообщений в них увеличивается на единицу. Если 0 - приватных диалогов ещё нет
  "MaxUploadFileSize"  : 0,                    // (7.4+) максимальный размер файла для заливки на сервер, 0 - без ограничений

  "WebSupportDisconnectIdleTime" : -1,         // (7.4+) только для WebSupport-пользователей. Время бездействия, после которого следует отключить пользователя от сервера
                                               // -1 - не отключать, 0 - 10 минут, 1 - полчаса, 2 - 1 час, 3 - 3 часа, 4 - 8 часов, 5 - сутки
  "ExternalIP"         : "",                   // (7.4+) внешний адрес MyChat Server (IP либо хост)
  "ChangeID"           : 0                     // (7.5.1+) числовой идентификатор изменений. Если данные пользователя менялись или у пользователя есть отложенные технические сообщения - этот ID будет увеличен
  "Avatar"             : 54,                   // CRC32 аватара пользователя, 0, если аватара нету
  "ActionsCRC32"       : 45261,                // (8.0+) CRC32 списка ACTIONS
  "State"              : 0,                    // (8.1+) статус, который нужно установить
  "WebKitCRC32"        : 18273428734,          // (8.12+) CRC32 плагина для звонков (WebKit)
  "TechID"             : 17,                   // (8.13+) ID последнего технического сообщения, если есть. Если таких сообщений нет, то переменной не будет
                                               // клиент может запросить разницу командой cs_get_delayed_commands
  "CustomMenuCRC32"    : 65413264,             // (8.14+) CRC32 custom menu, если есть. Если нет - параметра не будет
  "UsersID"            : 17384,                // (8.16+) последний глобальный ChangeID списка зарегистрированных пользователей
  "NotifyCommonID"     : 17,                   // (2023.3+) последний ID общих уведомлений, необязательный параметр (по умолчанию 0)
  "NotifyLocalID"      : 21,                   // (2023.3+) последний ID локальных уведомлений, необязательный параметр (по умолчанию 0)
  "MaxSelfMsgEditTime" : 15,                   // (2023.4+) максимальный период редактирования своих сообщений в конференциях и приватах, в минутах, больше 0,
                                               // необязательный параметр, по умолчанию - 15 минут  
  "MaxSelfMsgDeleteTime" : 15                  // (2023.7+) максимальный период удаления своих сообщений в конференциях и приватах, в минутах, больше 0,
                                               // необязательный параметр, по умолчанию - 15 минут  
}

8008 sc_get_channels_list
// список конференций, которые созданы на сервере и существуют в данный момент, набор объектов, привязка к UID конференции
{
"12" :                                      // UID конференции
{
  "Name"         : "main",                // название конференции
  "Topic"        : "Главный канал",       // тема конференции
  "UsersCount"   : 10,                    // количество онлайн-пользователей в конференции
  "UsersTotal"   : 70,                    // (2023.2+) общее количество пользователей в конференции  
  "ConfType"     : 1,                     // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
  "Owner"        : 17,                    // (8.0+) владелец конференции, её создатель. Если это UIN=0, то это автосоздаваемая конференция
  "dtUTCCreated" : "01.01.1900.00.00.00"  // (8.0+) дата и время первичного создания конференции в UTC

// deprecated 8.0+
//  "Created"       : "12.01.2013.20.21.54",  // дата и время создания конференции
//  "CreatorUIN"    : 78,                     // UIN создателя конференции
//  "Secured"       : false,                  // защищёна паролем или нет
//  "SyncLogs"      : false,                  // синхронизировать историю сообщений в конференции или нет
//  "InvisibleFlag" : false                   // (6.1+) true, если конференция скрытая. Если у пользователя нет прав на просмотр скрытых конференций,
                                              // то скрытые конференции вообще не будут присылаться с сервера
}
.......
}

8009 sc_bbs_changed - уведомление клиента о том, что была изменена доска объявлений

800B sc_private
// обычное приватное сообщение для клиента
{
  "UINFrom"    : 10,                    // UIN отправителя
  "UINTo"      : 15,                    // UIN получателя
  "Msg"        : "Hello, world!",       // текст сообщения
  "Top"        : false,                 // принудительно переключаться на полученное сообщение или нет
  "StateFrom"  : 0,                     // статус отправителя
  "StateTo"    : 0,                     // статус получателя
  "MsgType"    : 0,                     // (5.19+) тип сообщения (картинка, текст, ....). По умолчанию - 0
  "Idx"        : 2457,                  // (6.1+) встроенный индекс приватного сообщения
  "ClientType" : 0,                     // (6.1+) тип клиента
                                        // CLIENT_TYPE_MYCHAT_WIN32      = 0
                                        // CLIENT_TYPE_MYCHAT_WEB        = 1
                                        // CLIENT_TYPE_MYCHAT_MACOS      = 2
                                        // CLIENT_TYPE_MYCHAT_LINUX      = 3
                                        // CLIENT_TYPE_MYCHAT_ANDROID    = 4
                                        // CLIENT_TYPE_MYCHAT_IOS        = 5
                                        // CLIENT_TYPE_MYCHAT_WIN32NEXT  = 6
                                        // CLIENT_TYPE_MYCHAT_SERVER_API = 7
  
  "dtUTC"      : "09.03.2012.10.14.55", // (6.1+) дата и время сообщения в UTC формате (dd.mm.yyyy.hh.nn.ss)
  "DlgIdx"     : 7145,                  // (7.2+) индекс последнего изменения приватных диалогов
  "ChangeID"   : 0,                     // (7.5.2+) числовой идентификатор изменений отправителя
  "DisplayName" : "John Smith",         // (8.15+) опционально, для ios-клиента  
  "Silent"      : true                  // (2023.9+) необязательный параметр, если true - то сообщение нужно отправить 
                                        // в "тихом" режиме, без звуковой и визуальной идентификации 
  
}

// 8.16+ deprecated
// 800C sc_get_small_user_info - получить краткую информацию о пользователе (доделать)
// {
//   "UIN"        : 17,              // уникальный идентификатор пользователя
//   "Avatar"     : 78,              // аватар, CRC32 фотографии, если фото нету - то 0
//   "Sex"        : 1,               // пол
//   "Nick"       : "User1",         // ник пользователя
//   "Email"      : "",              // адрес электронной почты
//   "Fullname"   : "John G. Smith", // имя, которое отображается в чате, согласно настроек сервера
//   "State"      : 0,               // сетевой статус пользователя (offline = -1, free = 0, away = 1, dnd = 2)
//   "HelloMsg"   : "Ola!",          // приветственное сообщение
//   "ChangeID"   : 0                // (7.5.2+) числовой идентификатор изменений отправителя
// 
// 8.0+ deprecated  "PhotoCRC32" : 348756354,       // (6.8+) CRC32 фотографии, если фото нету - то 0
// }

800D sc_show_advert_block - показать рекламный блок в клиенте
{
  "Height"   : 80,                                  // высота в точках для рекламного блока
  "HTTPLink" : "http://www.nsoft-s.com/adv.html",   // http линк для рекламного блока, pure html, no css
  "Quantity" : 10                                   // как часто обновлять рекламный блок, в минутах
}

800E sc_hide_advert_block - спрятать рекламный блок

800F sc_pong - отправка с сервера команды-реакции на cs_ping, проверка связи

8010 sc_actions_list - пришёл список команд ACTIONs с сервера, нужна доработка

8011 sc_files_offline_exists - есть отложенные файлы для клиента
{
  "UIN"   : 10,               // UIN отправителя
  "Nick"  : "Chapay",         // ник отправителя
  "Email" : "chapay@mail.su", // адрес почты отправителя
  "Count" : 10,               // сколько файлов всего
  "Size"  : 456781,           // общее количество файлов
  "State" : 0,                // статус отправителя
  "Files" : ""                // сами файлы, нужна доработка
}

8012 sc_grant_private_access - разрешение общаться с пользователем в привате, краткая информация о собеседнике
{
  "UIN"          : 456,                   // UIN пользователя
  "Task"         : 0,                     // тип запроса, 0 - просто открытие привата, 1 - нужно начать передавать файлы, 2 - вставлять файлы из буфера обмена и начинать передачу,
                                          // 3 - PRIVATE_TASK_VOICE_CALL, 4 - PRIVATE_TASK_VIDEO_CALL, 5 - PRIVATE_TASK_MY_SCREEN_SHARING, 6 - PRIVATE_TASK_DEFAULT_NO_SWITCH
  "IDMsgLast"    : 0,                     // (7.2+) автоинкрементный индекс последнего сказанного сообщения в привате. Если 0 - то сообщений ещё не было
  "IDMsgGot"     : 0,                     // (7.2+) индекс последнего полученного сообщения
  "IDMsgRead"    : 0,                     // (7.2+) индекс последнего прочитанного сообщения
  "dt"           : "01.01.1900.00.00.00", // (7.2+) дата и время в UTC последней активности. Если разговоров нет - то дата добавления пользователя в список приватных диалогов
  "DlgIdx"       : 7145,                  // (7.2+) индекс последнего изменения приватных диалогов
  "IDMyMsgGot"   : 4560,                  // (7.2+) ID последнего полученного собеседником моего сообщения (для рисования статусов сообщений)
  "IDMyMsgRead"  : 4560,                  // (7.2+) ID последнего прочитанного собеседником моего сообщения (для рисования статусов сообщений)
  "Speaker"      : 18,                    // (8.0+) кто сказал последнее сообщение в диалоге, -1, если никто (диалог новый)
  "MsgType"      : 0,                     // (8.0+) тип сообщения, если никто не говорил, то 1
  "MsgCut"       : "bla-bla",             // (8.0+) текст сообщения, первые 64 символа
  "Lang"         : "UA", // (2023.7+) необязательное поле. Основной язык пользователя. Установлен в профиле, в разделе "Личное", "Владение языками", первая позиция
  "State"        : 0, // (2023.7+) текущий сетевой статус пользователя
  "StateTimeStamp" : "26.11.2023.09.18.31.785" // (2023.7+) UTC штамп даты и времени, когда был установлен этот статус у пользователя

// deprecated (2023.7+)  "OfflineSince" : "2018.06.12.18.45.13"  // (8.0+) если пользователь офлайн, то здесь указано, с какого времени в UTC (гггг.мм.дд.чч.мм.сс). Если юзер онлайн - этого поля нет
// deprecated (8.16+)  "ChangeID"     : 0,                     // (7.5.2+) числовой идентификатор изменений отправителя
// deprecated (8.16+)  "State"        : 0,                     // текущий статус
// deprecated (8.0+)
// "Sex"         : 1,                     // пол пользователя
// "HelloMsg"    : "Привет, как дела?",   // приветственное сообщение. Может быть пустым
// "Avatar"      : 27,                    // аватар пользователя, CRC32 фото, если фото нету - то 0
// "Nick"        : "Chapay",              // ник пользователя
// "Email"       : "chapay@mail.earth",   // электронная почта пользователя
// deprecated (7.2+)
// "ConvID"    : 1789                // (6.3+) Conversation ID, автоинкрементный индекс последнего сказанного сообщения в привате. Если -1 - то сообщений ещё не было
// "FotoCRC32"   : 348756354,             // CRC32 фото, если фото нету - то 0
}

8013 sc_join_txt_channel
// вход пользователя в текстовую конференцию
{
  "UID"            : 78,                    // идентификатор конференции, целое число, больше нуля
  "ConfType"       : 1,                     // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
  "State"          : 0,                     // (8.16+) статус конференции, необязательный параметр (0 - текст, 1 - аудио конфа, 2 - видео конфа, 3 - вебинар)
  "dtUTCStarted"   : "01.01.1900.00.00.00", // (8.16+) опционально, если State > 0, UTC дата и время начала звонка
  "Params"         : "",                    // (8.16+) опционально, если State > 0, параметры media-конференции, застрингованный JSON
  "Owner"          : 17,                    // (8.0+) владелец конференции, её создатель. Если это UIN=0, то это автосоздаваемая конференция
  "dtUTCCreated"   : "01.01.1900.00.00.00", // (8.0+) дата и время первичного создания конференции в UTC
  "ConfName"       : "Главная",             // (8.0+) название конференции
  "ConfTopic"      : "Тема конференции",    // (8.0+) текущая тема конференции
  "ConvID"         : 9874,                  // (6.1+) Conversation ID, автоинкрементный индекс последнего сказанного сообщения в конференции
  "LastMsgType"    : 1,                     // (8.0+) тип последнего сказанного сообщения
  "LastMsgCutText" : "bla-bla-bla",         // (8.0+) текст последнего сообщения. Если ничего не было - то пустая строка
  "LastSpeaker"    : 18,                    // (8.0+) UIN того, кто последний раз говорил. Если ещё никто, то -1
  "dtUTCLastMsg"   : "01.01.1900.00.00.00", // (8.0+) UTC дата и время последнего сообщения в конференции
  "IDMsgGot"       : 0,                     // (8.0+) индекс моего последнего полученного сообщения в конференции
  "IDMsgRead"      : 0,                     // (8.0+) индекс моего последнего прочитанного сообщения в конференции
  "OpenNow"        : true,                  // (8.0+) перейти в эту конференцию прямо сейчас и открыть её в интерфейсе
  "UserListCRC32"  : 321654125,             // (8.16+) контрольная сумма списка юзеров конференции
  "Operators"      : "1,17,94,2"            // (8.16+) список операторов конференции, опционально

// deprecated, 2023.2+  "FlagLockExit"   : true // (8.16+) запрет покидать конференцию, опциональный параметр
  // deprecated 8.16+
//  "Operator"       : false,                 // (8.0+) вы оператор этой конференции  
//  "UsersList" : [                           // (8.0+) список пользователей конференции; массив из объектов-пользователей
//    {
//      "UIN"         : 21,     // идентификатор пользователя
//	  "ChangeID"    : 0       // (7.5.2+) числовой идентификатор изменений пользователя
//      "State"       : 0,      // сетевой статус (свободен, занят и т.д.). Необязательный параметр, если нету - то пользователь свободен
//      "Moder"       : true,   // статус модератора конференции. Необязательный параметр, если нету - то человек не модератор. Elisa - всегда модератор, для неё этот статус не приходит
//    }
//    ...
//  ]
// deprecated 8.0+
//  "Name"     : "Главный канал", // название канала
//  "Topic"    : "Тема канала",   // тема канала
//    "CRC32"    : 92384738,        // контрольная сумма приветствия канала
//    "Secured"  : false,           // закрыт паролем канал или нет
//    "Modes"    : "000|0",         // режимы работы канала
//    "Sync"     : true,            // включена или нет синхронизация истории сообщений в канале
//    "TeamLead" : false,           // (7.2+) пользователь руководитель группы или нет
//  "InvisibleFlag" : false,      // (6.1+) true, если конференция скрытая. Если у пользователя нет прав на просмотр скрытых конференций,
                                  // то скрытые конференции вообще не будут присылаться с сервера
//    "Type"     : 1,               // (7.5+) тип конференции, CONF_TEXT = 0, CONF_MEDIA_STANDARD = 1, CONF_MEDIA_WEBINAR  = 2
//  "UsersList" : [               // (7.5+) список пользователей конференции; массив из объектов-пользователей
//    {
//      "UIN"         : 21,     // идентификатор пользователя
//      "DisplayName" : "Ivan", // отображаемое имя пользователя
//      "Sex"         : 0,      // пол
//      "Avatar"      : 89,     // аватар
//	  "ChangeID"    : 0       // (7.5.2+) числовой идентификатор изменений пользователя
//      "State"       : 0,      // сетевой статус (свободен, занят и т.д.)
//      "Moder"       : true,   // статус модератора конференции
//	  "TeamLead"    : true    // (7.2+) статус руководителя подразделения. Параметр есть, только если = true
//    }
//    ...
//  ]
}

// deprecated 8.0+
//8014 sc_txt_channel_hello_msg - текст приветствия указанного текстового канала
//{
//  "UID"      : 45,              // UID канала с приветствием
//  "CRC32"    : 78945241,        // контрольная сумма приветствия
//  "HelloMsg" : "Hello, World!"  // содержимое приветствия
//}

8015 sc_txt_channel_give_grant
// получение прав на текстовый канал
{
  "UID"       : 45,      // UID канала
  "Operator"  : true     // оператор вы в этой конференции или нет

// deprecated 8.0+  "UsersList" : "......" // список пользователей, нужно доработать
}

8018 sc_online_notify
уведомление о том, что пользователь, который нам интересен, появился в онлайн
{
  "UIN"   : 65, // идентификатор пользователя
  "State" : 0   // (8.0+) текущий статус пользователя (0 - свободен)
}

8019 sc_broadcast
// текстовое оповещение с требованием подтверждения прочтения (необязательно)
{
  "uinOwner"     : 34,                      // UIN отправителя
  "ID"           : 789,                     // уникальный числовой идентификатор оповещения, больше нуля
  "ChangeID"     : 64,                      // (8.12+) ChangeID отправителя
  "msg"          : "Тестовое оповещение",   // текст оповещения
  "dtCreatedUTC" : "13.09.2013.12.54.56",   // дата и время отправки в формате гг.мм.дддд.чч.мм.сс (UTC)
  "read_notify"  : true,                    // уведомлять отправителя о прочтении оповещения
  "msg_type"     : 0,                       // 0 - обычное оповещение,
                                            // 1 - оповещение обязательно к прочтению. Окошко у получателя не закроется, пока тот не подтвердит, что он действительно прочитал сообщение
                                            // 2 - оповещение требует специального ответа от получателя, и не закроется, пока тот не даст ответ

  "DisplayName"  : "Chapaev",               // отображаемое имя отправителя
  "Avatar"       : 98,                      // аватар отправителя
  "Sex"          : 1,                       // пол отправителя
  "State"        : 1,                       // статус отправителя

  "files_list"   :                          // (6.0+) файлы, которые приложены к оповещению. Может быть пустым. Массив объектов
   [
     {
       "OriginalFileName" : "test.txt",     // оригинальное название файла
       "Size"             : 12784,          // размер файла в байтах
       "Hash"             : "kdho346523",   // SHA1 контрольная сумма
       "UTCWriteTime"     : "123123.123123" // UTC date&time штамп последней записи в файл ("time.date")
     },
     ...
   ]
}

801B sc_trial - информация о том, что используемая версия сервера не зарегистрирована, и сколько дней осталось до конца работы trial-версии
{
  "Days": 17  // сколько дней триала ещё осталось
}

801D sc_get_msgtemplates - с сервера пришёл список шаблонов для "быстрых" сообщений. Нужна переделка
{
  "Templates" : .....  // пока просто текстовый список шаблонов
}

801E sc_get_contacts_list - список личных контактов клиента. Доделать
{
  "Head" : ....
  "Body" : ....
}

801F sc_get_common_contacts_list - список общих контактов клиента. Доделать
{
  "Head" : ....
  "Body" : ....
}

8020 sc_ping - принудительный пинг с сервера, проверка связи при плохом соединении, нужно при получении ответить командой cs_pong

8021 sc_ignore - отправленное сообщение было проигнорировано другим пользователем
{
  "IgnoreCmd" : 1,   // тип игнора (1: cmd_ignore_channels, ...);

// если IgnoreCmd = cmd_ignore_channels, то набор полей такой:
  "UID" : 23, // UID канала, в котором біло отправлено сообщение
  "UIN" : 78 // UIN того пользователя, который проигнорировал отправленное сообщение

// если IgnoreCmd = cmd_ignore_privates:
  "UIN" : 78 // UIN того пользователя, который проигнорировал отправленное сообщение
}

8022 sc_user_state - текущий статус пользователя
{
  "UIN"   : 45,  // UIN пользователя
  "State" : 0    // его текущий статус. 0 - онлайн
}

8023 sc_leave_txt_channel
пользователь вышел из указанного канала, информационное уведомление
{
  "UID" : 17,           // идентификатор канала
  "UINS" : "1,17,18,19" // (7.5.2+) идентификаторы пользователей, через запятую
}

8024 sc_kill_txt_ch
// текстовый канал закрыт на сервере
{
  "UID" : 21 // идентификатор закрытого текстового канала
}

8025 sc_bbs_body
содержимое доски объявлений, доработать
{
  "Body" : ......
}

// deprecated 8.0+
// 8028 sc_txt_channel_created
// уведомление о том, что на сервере создан новый текстовый канал
// {
// "UID"           : 54,                    // UID канала
// "ConfType"      : 1,                     // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
// "Name"          : "Main",                // название канала
// "Topic"         : "Common conference"    // тема канала

// deprecated 8.0+
//  "Secured"       : false,                 // закрыт паролем канал или нет
//  "InvisibleFlag" : false                  // (6.1+) true, если конференция скрытая. Если у пользователя нет прав на просмотр скрытых конференций,
                                             // то скрытые конференции вообще не будут присылаться с сервера
}

8029 sc_get_uin_info
получение полной информации о пользователе
{
  "Show" : true, // показывать на экране окно с информацией о пользователе или нет
  "UIN" : 98, // идентификатор пользователя, о котором мы получаем информацию
  "ChangeID" : 1234, // (8.5+) идентификатор количества изменений учётной записи пользователя
  "Online" : true, // в сети пользователь или нет
  "Birthday" : "17.05.2013", // день рождения пользователя в формате "дд.мм.гггг"
  "Nick" : "John Socha", // ник
  "DisplayNick" : "В. Чапаев", // отображаемый в чате ник
  "FirstName" : "Василий", // имя
  "LastName" : "Чапаев", // фамилия
  "MiddleName" : "Иванович", // отчество
  "Sex": 1, // пол
  "Avatar" : 51234, // CRC32 фотографии юзера
  "Email": "chapay@mail.su", // основной адрес электронной почты
  "MaritalStatus" : 0, // семейный статус (0 - В серьёзных отношениях, 1 - Вдовец/вдова, 2 - Женат/замужем, 3 - Помолвлен(а)/обручен(а), 4 - Разведен(а), 5 - Разошлись, 6 - Холост/не замужем)
  "HomePhone" : "827346827346", // домашний номер телефона
  "HomeFax" : "93485745", // домашний номер факса
  "HomeCellular" : "9048679456", // личный номер сотового телефона
  "HomeStreetAddress" : "", // домашний адрес
  "HomeCity" : "", // город, в котором живёт человек
  "HomeState" : "", // провинция, область, край, штат
  "HomeZIP" : "08500", // почтовый индекс
  "HomeCountry" : 1, // страна проживания
  "HomeWWW" : "", // личная WEB-страница
  "WorkCompanyName" : "", // название компании, в которой работает человек
  "WorkPosition" : "", // должность
  "WorkPositionIdx" : -1, // (v5.5+) индекс должности, число. Если должность не указана, то -1
  "WorkDivDept" : "", // подразделение, отдел, департамент
  "WorkOffice" : "", // номер офиса
  "WorkPhone" : "", // рабочий телефон
  "WorkFax" : "", // рабочий факс
  "WorkPager" : "", // номер пейджера
  "WorkStreetAddress": "", // рабочий адрес
  "WorkCity" : "", // город, в котором работает человек
  "WorkState" : "", // провинция, область, край, штат
  "WorkZIP" : "", // рабочий почтовый индекс
  "WorkCountry": 17, // страна, в которой работает человек
  "WorkWWW" : "", // рабочая WEB-страница

  "SpokenLang1" : 1, // язык, который знает человек
  "SpokenLang2" : 2, // язык, который знает человек
  "SpokenLang3" : -1, // язык, который знает человек. -1 - пустое поле

  "Interests1" : -1,      // сфера интересов №1
  "InterestsWords1" : "", // ключевые слова из сферы интересов №1
  "Interests2" : -1,      // сфера интересов №2
  "InterestsWords2" : "", // ключевые слова из сферы интересов №2
  "Interests3" : -1,      // сфера интересов №3
  "InterestsWords3" : "", // ключевые слова из сферы интересов №3
  "Interests4" : -1,      // сфера интересов №4
  "InterestsWords4" : "", // ключевые слова из сферы интересов №4

  "Past1" : -1, // прошлое, №1
  "PastWords1" : "", // прошлое, ключевые слова №1
  "Past2" : -1, // прошлое, №2
  "PastWords2" : "", // прошлое, ключевые слова №1
  "Past3" : -1, // прошлое, №3
  "PastWords3" : "", // прошлое, ключевые слова №1

  "PastOrg1" : -1, // прошлое место работы №1
  "PastOrgWords1" : "", // прошлое место работы, ключевые слова №1
  "PastOrg2" : -1, // прошлое место работы №2
  "PastOrgWords2" : "", // прошлое место работы, ключевые слова №2
  "PastOrg3" : -1, // прошлое место работы №3
  "PastOrgWords3" : "", // прошлое место работы, ключевые слова №3

  "GMT" : "", // поправка на мировое время

  "About" : "", // краткая информация о человеке

  "HelloMsg" : "", // текст приветственного сообщения, которое показывается при открытии привата
  "AutoreplayMsg": "", // текст автоответчика
  "Autoreplay" : false, // включен или выключен автоответчик

  "OnlineNotify" : true, // показывать или нет уведомление о том, что данный человек появился в онлайн
  "JobPositionsList" : "", // (v5.5+) список должностей компании

  "OnlineSince"  : "2018.06.12.18.45.13", // (8.0+) с какой даты и времени в UTC юзер онлайн. Может быть пустой строкой или 1.1.1900 года. Тогда игнорим эти данные
  "OfflineSince" : "2018.06.12.18.45.13" // (8.0+) с какой даты и времени в UTC юзер офлайн. Может быть пустой строкой или 1.1.1900 года. Тогда игнорим эти данные

// deprecated 8.5+  // необязательные параметры, которых может не быть, если на их получение нет прав
// deprecated 8.5+  "MAC"         : "", // MAC адрес сетевого интерфейса пользователя
// deprecated 8.5+  "IP"          : "192.168.10.100", // IP пользователя
// deprecated 8.5+    "CompNetName" : "MSWIN02-1" // сетевое имя компьютера пользователя
// deprecated 8.0+  "FotoCRC32" : 7897654, // контрольная сумма (CRC32) фотографии пользователя
// deprecated 8.0+  "LastAccess" : "", // последняя дата и время подключени в сеть, к серверу MyChat (UTC)

}

802A sc_get_remote_uin_current_time
// получить текущее системное время для удалённого пользователя (remote user)
{
  "UINFrom" : 47,   // UIN пользователя, который спрашивает системное время
  "CIDFrom" : 4521, // (8.2+) CID пользователя, который спрашивает системное время
}

802B sc_user_current_time
// текущие системные дата и время указанного пользователя
{
  "UINFrom"  : 89,                     // UIN удалённого пользователя
  "CIDFrom"  : 1234,                   // (8.2+) CID удалённого пользователя
  "AppType"  : "android",              // (8.2+) тип приложения пользователя
  "DateTime" : "17.04.2013.14.15.23"   // дата и время в формате дд.мм.гггг.чч.мм.сс
}

802C sc_user_foto
// информация о фотографии указанного пользователя
{
  "UIN"   : 19,                                // UIN пользователя - владельца фотографии
  "CRC32" : 82374634,                          // контрольная сумма фото (CRC32)
  "Foto"  : "slfkjeopw4tius;lg..........."     // содержимое фото, строка
}

802D sc_user_computer_info (6.7+)
// информация об IP/MAC адресе пользователя и сетевом имени его компьютера
{
  "UIN"  : 56, // UIN пользователя
  "Data" :     // массив объектов, информация про активные соединения
    [
      {
        "CID"        : 17,                          // внутренний серверный номер клиентского подключения (Connection ID)
        "Client"     : "Android",                   // тип клиента пользователя
        "IP"         : "213.130.24.149",            // "внешний" IP адрес компьютера, который "видит" сервер MyChat
        "MAC"        : "12-43-6F-67-CD-84",         // MAC адрес активного сетевого интерфейса пользователя
        "NetName"    : "Vasyl",                     // сетевое имя компьютера пользователя
        "HardwareID" : "1273465-23423",             // HardwareID пользователя
        "UserAgent"  : "Browser: Mozilla/5.0...",   // UserAgent пользователя, если это WebSupport
        "Reflink"    : "https://nsoft-s.com/s.html" // Reflink пользователя, если это WebSupport
      },
    ...
    ]
}

802E sc_get_active_window_caption
// получить заголовок активного окна для указанного в запросе пользователя
{
  "UINFrom" : 89,   // UIN удалённого пользователя, который запрашивает данную информацию
  "CIDFrom" : 1157, // (8.2+) CID удалённого пользователя, который запрашивает данную информацию
  "What"    : "111" // (6.7+) что нужно, 1 или 0 (Program, Location, Caption)
}

802F sc_user_active_window_caption
// отправка пользователю информации о другом пользователе, заголовок его активного процесса
{
  "UINFrom"  : 65,            // идентификатор запрашиваемого пользователя, заголовок активного процесса которого нам нужно получить
  "CIDFrom"  : 2,             // (6.7+) CID отправителя
  "Caption"  : "Калькулятор", // текст заголовка активного процесса
  "AppName"  : "",            // (6.7+) название активного приложения
  "FullPath" : ""             // (6.7+) полный путь к ативному приложению
}

8030 sc_ignores_list
// список игноров для указанного пользователя
// доработать разбор строки!!!
{
  "Data" : "....."
}

// deprecated 8.0+ 8031 sc_favorite_channels_list
список "любимых" каналов пользователя, набор объектов, UID канала
"134" :                                   // UID канала
{
  "Name"       : "test",                 // название канала
  "Topic"      : "Test channel",         // тема канала
  "Secured"    : false                   // защищён паролем или нет
}
.......

8032 sc_change_password
для пользователя установлен новый пароль к его учётной записи. Команда приходит в ответ
на попытку изменения собственного пароля, либо при изменении пароля пользователя принудительно, на сервере, администратором
{
  "NewPass" : "..."     // текст нового пароля
}

8037 sc_open_remote_computer_shares
открыть удалённый компьютер по сети Проводником (показать открытые ресурсы (shares))
{
  "UIN"      : 29,             // UIN пользователя, чем компьютер нужно открыть
  "IPList"   : "192.168.0.25"  // (6.5+) список IP адресов удалённых компьютеров пользователя, через запятую
}

deprecated 18.09.2019: 8038 sc_txtch_topic_changed
изменена тема текстового канала
{
  "UIN"      : 29,             // UIN пользователя, который изменил тему канала
  "UID"      : 17,             // идентификатор текстового канала, в котором была изменена тема
  "Topic"    : "bla-bla"       // текст новой темы текстового канала
}

8039 sc_public_ftp_info
информация о публичном доступе к FTP серверу MyChat
{
  "Login" : "mcuser",       // логин
  "Pass"  : "mychat"        // пароль
}

803A sc_channel_history_messages (8.0+)
// получена история сообщений в текстовой конференции, ответ на cs_get_channel_history_messages
{
  "UID"   : 78, // идентификатор текстовой конференции
  "Users" : [ // список юзеров-спикеров, array of objects
    {
      "UIN"         : 21,     // идентификатор пользователя
      "DisplayName" : "Ivan", // отображаемое имя пользователя
      "Sex"         : 0,      // пол
      "Avatar"      : 123129, // CRC32 фотографии юзера
      "ChangeID"    : 0       // числовой идентификатор изменений пользователя
    },
	...
	],
  "Data" : [ // список сообщений, array of objects
    {
      "UIN"         : 17,                    // идентификатор отправителя сообщения
      "Msg"         : "Tro-lo-lo",           // текст сообщения
      "MsgType"     : 0,                     // тип сообщения
      "dt"          : "dd.mm.yyyy.hh.nn.ss", // дата и время сообщения (UTC)
      "MsgIdx"      : 6894,                  // внутренний индекс сообщения
      "SenderType"  : 0,                     // тип приложения отправителя
      "Mod"         : 0,                     // модификатор сообщения, если модификатора нет, то поле может отсутствовать
                                             // MSG_MODIFIER_NONE     = 0;
                                             // MSG_MODIFIER_MODIFIED = 1;
                                             // MSG_MODIFIER_DELETED  = 2;
      // два необязательных параметра, есть, если Mod = 1 (MSG_MODIFIER_MODIFIED)
      "ModUIN"     : 17,                   // кто изменил сообщение 
      "ModUTC"     : "2023.05.01.17.18.35" // когда было изменено сообщение (UTC)
    },
    .....
	]
}

803B sc_rename_text_channel
// текстовый канал переименован
{
  "UID"  : 98,         // идентификатор канала
  "Name" : "sysop"     // новое имя канала
}

803C sc_user_ignore_info - информация об игнорировании указанного пользователя
{
  "IgnoredUIN" : 785,      // идентификатор игнорируемого пользователя
  "Nick"       : "Zeon",   // ник пользователя
  "Data"       : 215,      // данные по игнорированию
  "Avatar"     : 98,       // аватар игнорируемого пользователя
  "Sex"        : 1         // пол игнорируемого пользователя
}

803D sc_clear_text_channel
// очистить выбранный текстовый канал от всех сообщений
{
  "UID"  : 65     // идентификатор текстового канала
}

deprecated 20.09.2019: 803F sc_kick_from_txt_channel (начиная с 8.0 это сообщение вида MSG_TYPE_CONF_TURN_OUT)
пользователя выгнали из текстового канала
{
  "UID"              : 98,                    // идентификатор текстового канала, из которого выгоняется пользователь
  "UINKicker"        : 18,                    // UIN того, кто выгоняет другого пользователя
  "ModerDisplayName" : "Killer",              // (5.24+) отображаемое имя модератора
  "UIN"              : 101                    // идентификатор изгоняемого пользователя
  "UserDisplayName"  : "Slave",               // (5.24+) отображаемое имя пользователя, которого изгоняют из конференции
  "dtUTC"            : "dd.mm.yyyy.hh.nn.ss", // (6.1+) дата и время сообщения (UTC)
  "Idx"              : 17,                    // (6.1+) внутренний индекс сообщения
  "ClientType"       : 0                      // (6.1+) тип клиента
                                              // CLIENT_TYPE_MYCHAT_WIN32   = 0;
                                              // CLIENT_TYPE_MYCHAT_WEB     = 1;
                                              // CLIENT_TYPE_MYCHAT_MACOS   = 2;
                                              // CLIENT_TYPE_MYCHAT_LINUX   = 3;
                                              // CLIENT_TYPE_MYCHAT_ANDROID = 4;

}

deprecated 30.10.2019: 8040 sc_private_beep
отправить пользователю звуковой сигнал
{
  "UIN"    : 785             // идентификатор пользователя, который отправил нам звуковой сигнал
}

8041 sc_server_uptime
// сколько времени работает сервер MyChat без перезагрузки
{
  "UpTime" : "145:12:39:17"   // дней:часов:минут:секунд
}

8042 sc_server_version
// информация о версии сервера
{
  "Ver"     : "5.0",           // версия сервера
  "RelDate" : "25.05.2013"     // дата сборки сервера в формате dd.mm.yyyy
}

8044 sc_halt
// немедленно отключиться от сервера и завершить работу приложения в принудительном порядке

8045 sc_typing_notify
// уведомление о том, что нам в привате в данный момент кто-то пишет ответ
{
  "UIN"    : 101             // идентификатор пользователя, который пишет нам ответ
}

// deprecated 8.16+ 
// 8046 sc_update_user_data
// обновить информацию об указанном пользователе
// {
//   "UIN"      : 87,            // идентификатор пользователя
//   "Nick      : "John Deer",   // его новый ник (если был изменён)
//   "Sex"      : 1,             // новый пол (если был изменён)
//   "Avatar"   : 98,            // новый аватар (если был изменён)
//   "TeamLead" : false,         // (5.10+) юзер - тимлид?
//   "ChangeID" : 0              // (7.5.2+) числовой идентификатор изменений отправителя
// }

8047 sc_change_server
// изменить параметры подключения к серверу MyChat
{
  "IP1"      : "192.168.10.1",    // основной адрес сервера чата
  "Port1"    : 2004,              // порт для подключения
  "IP2"      : "213.130.24.149",  // резервный адрес сервера чата
  "Port2"    : 10004,             // второй порт для подключения
  "ServName" : "Corporate IM",    // название для сервера (условно)
  "Desc"     : "---",             // описание сервера (условно)
  "Pass"     : "",                // пароль для доступа к серверу (если указан на сервере, иначе - пустая строка)
  "Immediately" : false           // (8.0+) отключиться от сервера немедленно, если true, и соединиться заново, с новыми настройками
}

8048 sc_user_quick_info
// краткая информация о пользователе
{
  "UIN"      : 9, // идентификатор пользователя
  "ChangeID" : 17, // индекс изменений учётной записи
  "State"    : 0, // (2023.7+) текущий статус пользователя
  "What"     : "sex,avatar,displayname,nick,worktime,primaryemail,workphone,homecellular,statetimestamp,lang", // что конкретно пришло с сервера и в каком порядке (набор информационных полей)
  "Data"     : [ // информация о пользователе, строки
    1,
	567365765,
	"Alexey Pikurov",
    "Hobit",
    6985,
    "hobit@mail.com",
    "(050)123-45-67",
    "45678961254",
	"2023.06.12.18.45.13",
	"UK"
  ]
}

8049 sc_raw_data
// отправка произвольного пакета данных для онлайн-клиента
{
  "UIN"      : 98,                 // идентификатор пользователя-отправителя
  "CID"      : 128,                // (8.2+) CID пользователя, кому нужно будет отправить пакет данных в ответ, если нужно
  "NameFrom" : "Beeper",           // имя плагина-отправителя для RAW пакета
  "NameTo"   : "Beeper",           // имя плагина-получателя для RAW пакета
  "Data"     : "123456 text data"  // произвольная текстовая строка с данными
}

804A sc_raw_data_txt_channel
// отправка произвольного пакета данных в текстовый канал
{
  "UIN"      : 879,                // идентификатор пользователя-отправителя
  "Nick"     : "Alex",             // ник отправителя
  "UID"      : 17,                 // идентификатор текстового канала, для которого предназначается пакет данных. Этот пакет получат все пользователи канала
  "NameFrom" : "Beeper",           // имя плагина-отправителя для RAW пакета
  "NameTo"   : "Beeper",           // имя плагина-получателя для RAW пакета
  "Data"     : "123456 text data"  // произвольная текстовая строка
}

804B sc_files_offline_send_accept
подтверждение на отправку файлов в офлайн (на сервер) для указанного пользователя
{
  "UIN"  : 98,         // идентификатор пользователя-получателя файлов
  "Port" : 21,         // порт для передачи файлов
  "List" : "......."   // список файлов. Доработать
}

804C sc_files_request_transfer
запрос на приём файлов от указанного пользователя
{
  "UIN"          : 658,                     // идентификатор отправителя
  "FilesCount"   : 98,                      // количество отправляемых файлов
  "FilesSize"    : 9854411247,              // общий объём отправляемых файлов, в байтах
  "DisplayName"  : "Alexey Pikurov",        // (5.16+) имя отправителя
  "InternalNick" : "Hobit",                 // (5.16+) ник отправителя
  "Desc"         : "Тестовый набор файлов", // текстовое описание списка файлов
  "List"         : "......."                // список файлов. Доработать
}

804D sc_files_transfer_deny
пользователь отказался принимать файлы
{
  "UIN" : 145    // идентификатор пользователя-получателя
}

804E sc_files_transfer_accept
пользователь согласился принимать файлы
{
  "UIN"          : 456,                           // идентификатор пользователя-получателя файлов
  "Port"         : 10000,                         // порт для приёма файлов "напрямую", минуя сервер
  "BufSize"      : 65520,                         // размер буфера для приёма файлов (если файлы будут передаваться не напрямую, а через сервер)
  "Interfaces"   : "192.168.10.1,213.130.24.149", // список сетевых интерфейсов получателя. Доработать
  "UncheckFiles" : "1,17,21,25"                   // индексы файлов, которые получатель принимать отказался. Доработать
}

804F sc_files_transfer_abort
пользователь прервал передачу файлов
{
  "UIN" : 14    // идентификатор пользователя, который прервал обмен файлами
}

8050 sc_file_internal_send_idx
идёт передача очередного файла
{
  "UIN"     : 96,  // идентификатор отправителя
  "FileIdx" : 27   // номер отправляемого файла из общей структуры файлов
}

8051 sc_files_transfer_request_abort
пользователь ответил отказом на запрос приёма файлов
{
  "UIN" : 85    // идентификатор пользователя, который отказался от запроса на обмен файлами
}

8052 sc_file_internal_sended_ok_idx
очередной файл успешно передан
{
  "UIN"     : 96,  // идентификатор отправителя
  "FileIdx" : 27   // номер отправленного файла из общей структуры файлов
}

8053 sc_files_request_timeout
отказ от приёма файлов по тайм-ауту
{
  "UIN"     : 96,  // идентификатор пользователя, который отказался от приёма файлов по тайм-ауту (слишком долго не было подтверждение запроса на приём файлов)
}

8054 sc_serv_stat
// общая статистика сервера
{
  "Uptime" : 68574, // аптайм сервера
  "Stat"   : "..."  // полная статистика сервера, текстовая строка
}

8055 sc_users_list
список пользователей, отправляемый на клиент. Набор объектов
{
  "Num" : 0,

  98 // идентификатор пользователя
  {
    "Nick"   : "Chapay", // ник пользователя
    "Sex"    : 1,        // пол
    "Avatar" : 65,       // аватар
    "State"  : 0         // сетевой статус ("свободен", "занят" и т.п.)
  }
 ....
}

8056 sc_broadcast_presets_names (6.3+)
список пресетов для оповещений. Массив строк
[
  "Preset numero uno",  // название пресета, текстовая строка
....
]

// deprecated 13.12.2020
// 8057 sc_broadcast_read_notify
// уведомление о прочтении оповещения для пользователя
// {
//   "UIN"           : 986,              // идентификатор пользователя, который получил и прочитал оповещение
//   "Nick"          : "Elisa",          // ник робота-отправителя
//   "Avatar"        : 98,               // аватар робота-отправителя
//   "Sex"           : 0,                // пол робота-отправителя
//   "Email"         : "chapay@mail.su", // адрес электронной почты администратора сервера
//   "ID"            : 631,              // идентификатор оповещения
//   "UserNick"      : "Chapay",         // ник пользователя
//   "UserAvatar"    : 98,               // аватар
//   "UserSex"       : 1,                // пол пользователя
//   "ReadedCount"   : 7,                // количество прочитанных оповещений из общего блока отправленного оповещения
//   "TotalCount"    : 10                // (6.3+) общее количество пользователей в оповещении
// }

8058 sc_find_users_list
список пользователей, в ответ на клиентский запрос поиска пользователей (cs_find_users). Набор объектов
{
  "Fields"      : "EMAIL,HOME_BIRTHDAY,WORK_POSITION", // (7.3+) список полей через запятую, которые будут возвращены в ответ (https://nsoft-s.com/mcserverhelp/index.html?mychatclientwindowsoptionsadditionalprivatefields.htm)
                                                       // если это поле непустое, то во вложенных объектах будут поля с запрошенными названиями

"17": // идентификатор найденого пользователя (UIN)
{
  "Nick"      : "Chapay",           // ник пользователя
  "Lastname"  : "Чапаев",           // фамилия
  "Surname"   : "Иванович",         // отчество
  "Firstname" : "Василий",          // имя
  "Email"     : "chapay@maill.su",  // адрес электронной почты
  "Birthday"  : "17.10.1979",       // дата рождения в формате дд.мм.гггг
  "State"     : 0,                  // статус в чате
  "Sex"       : 1,                  // пол пользователя
  "Avatar"    : 65,                 // аватар
  "Online"    : true                // в сети пользователя или нет. True - да, false - отключен в данный момент о сервера
}
...
}

8059 sc_files_transfer_progress
информация о прогрессе передаваемых файлов между двумя пользователями
{
  "UIN"             : 54,        // идентификатор отправителя
  "Percents"        : 67,        // сколько процентов файлов передано
  "TotalSize"       : 389475683, // общий объём передаваемых файлов
  "CurrentCount"    : 17,        // сколько файлов уже передано на данный момент
  "TotalCount"      : 985,       // сколько файлов всего
  "Speed"           : 654657,    // текущая скорость передачи файлов
  "CurrentTransfer" : 260948707  // сколько байт на данный момент уже передано
}

// deprecated 8.16+
// 805A sc_update_self_nick_avatar_sex
// уведомление пользователю о том, что ему следует обновить свои ник, аватар и пол в интерфейсе программы
// {
//   "Nick"     : "John Smith", // новый ник пользователя (5.1+)
//    "Avatar"   : 17,           // новый аватар (5.1+)
//   "Sex"      : 1,            // новый пол (5.1+)
//   "ChangeID" : 17            // (7.5.2+) числовой идентификатор изменений профиля юзера
// }

805B sc_files_success_recieved
уведомление пользователя, что процесс передачи файлов успешно завершён
{
  "UIN" : 17   //  идентификатор отправителя
}

805C sc_file_packet_recieved_ok
очередной пакет данных при передаче файлов принят, можно высылать следующий
{
  "UIN" : 17   //  идентификатор отправителя
}

805D sc_send_file_packet
очередной блок данных при передаче файлов через сервер другому пользователю
{
  "UIN"    : 98,    // идентификатор отправителя
  "Packed" : true,  // упакован блок данных в GZIP или нет
  "Data"   : "..."  // блок данных
}

805E sc_registered
// уведомление пользователя о том, что он успешно зарегистрирован на сервере
{
  "UIN"          : 98,              // присвоенный идентификатор пользователя
  "Nick"         : "Chapay",        // ник
  "Pass"         : "1@56#4sdfKDF",  // пароль учётной записи
  "Sex"          : 1,               // пол пользователя
  "LoginStyle"   : 0,               // (5.14+) тип авторизации (0 - обычная, пара UIN/Email/Nick и пароль; 1 - AD, ник/домен; 2 - без пароля, только ник, 3 - AD, прозрачная)
  "AutoAwayTime" : 15,              // (5.14+) время в минутах, после которого будет считаться, что пользователь неактивен за компьютером, если он не нажимал ничего на клавиатуре и не шевелил мышкой
  "Domain"       : "domainname",    // (5.14+) имя домена пользователя, если есть

  "OptionsPresetID"    : 17,                  // (5.17+) идентификатор название шаблона настроек, если 0 - шаблона нет
  "OptionsPresetCRC32" : 4564871              // (5.17+) контрольная сумма шаблона настроек

// deprecated 8.0+  "Avatar"       : 53,              // номер аватара
}

deprecated 19.09.2019 (7.7+): 805F sc_ban_user
уведомление о наложении наказания на указанного пользователя, отправляется в текстовую конференцию
{
  "UID"     : 6,        // идентификатор текстовой конференции, в которой будет действовать наказание
  "AdmUIN"  : 17,       // идентификатор пользователя, который наложил наказание
  "AdmNick" : "Chapay", // ник пользователя, который наложил наказание
  "UIN"     : 87,       // идентификатор пользователя, на которого накладывается наказание
  "Nick"    : "Izverg", // ник пользователя, который получил наказание в текстовой конференции
  "BanTime" : 0,        // время действия бана (0 - 5 минут, 1 - 15 минут, 2 - 1 час, 3 - 3 часа, 4 - сутки, 5 - неделя, 6 - месяц, 7 - год)
  "BanType" : 1,        // тип бана (0 - "Запрет на вход в канал", 1 - "Запрет на отправку сообщений ("молчанка")")
  "Reason"  : "..."     // текстовое описание причины наложенного наказания
}

8060 sc_server_tech_id
// отправка ServerID клиенту
{
  "ID"       : 654657, // ID сервера
  "DateTime" : "..."   // текущее серверное время и дата
}

8061 sc_user_killed
уведомление о том, что пользователь отключен от сервера после вашей команды cs_kill_user
{
  "UIN" : 78  // идентификатор пользователя, который был отключен
}

8062 sc_regusers_count
сколько пользователей зарегистрировано на сервере
{
  "Count" : 19876    // количество пользователей
}

8063 sc_connected_users_count
сколько пользователей сейчас онлайн
{
  "Count" : 217    // количество пользователей
}

8064 sc_user_ip
// IP адреса указанного пользователя
{
  "UIN" : 98,              // идентификатор пользователя

  // дальше идут CID этого пользователя, их может быть много,
  // в зависимости от того, сколько клиентов разного типа
  // подключено к серверу под этим UIN

  "17" : {                     // CID клиента
    "ip"     : "192.168.10.1", // IP адрес этого подключения
    "client" : "win32"         // тип подключения
  },
  "21" : {
    "ip"     : "213.130.24.149",
    "client" : "android"
  },
  ...
}

8065 sc_user_mac
// MAC адреса указанного пользователя
{
  "UIN" : 98,                  // идентификатор пользователя

  // дальше идут CID этого пользователя, их может быть много,
  // в зависимости от того, сколько клиентов разного типа
  // подключено к серверу под этим UIN

  "17" : {                           // CID клиента
    "mac"     : "00-17-31-57-6C-61", // MAC адрес этого подключения
    "client"  : "win32"              // тип подключения
  },
  "21" : {
    "mac"     : "45-AA-DA-34-AF-50",
    "client"  : "win32"
  },
  ...
}

8066 sc_user_halted
уведомление о том, что указанный пользователь успешно получил команду завершения работы и отключился от сервера (cs_halt_user)
{
  "UIN" : 456    // идентификатор пользователя, приложение которого принудительно завершило свою работу
}

8067 sc_user_ips_blocked
уведомление, что IP адреса указанного пользователя были заблокированы
{
  "UIN"     : 1876,                          // идентификатор пользователя
  "IPList"  : "192.168.20.17, 192.168.10.25" // (6.5+) заблокированные IP адреса, через запятую
}

8068 sc_user_macs_blocked
уведомление, что все MAC адреса указанного пользователя были заблокированы
{
  "UIN"     : 1876,                                   // идентификатор пользователя
  "MACList" : "00-17-31-57-6C-61, 01-FA-31-12-54-01 " // (6.5+) заблокированные MAC-адреса, через запятую
}

8069 sc_ip_unblocked
уведомление, что IP адрес разблокирован
{
  "IP" : "192.168.20.17"    // разблокированный IP
}

806A sc_mac_unblocked
уведомление, что MAC адрес разблокирован
{
  "MAC" : "00-17-31-57-6C-61"  // разблокированный MAC адрес
}

806B sc_badword_addded
стоп-слово успешно добавлено в антимат-фильтр
{
  "BadWord" : "bla-bla-bla"     // добавленное стоп-слово
}

806C sc_badword_deleted
стоп-слово удалено из антимат-фильтра
{
  "BadWord" : "bla-bla-bla"     // удалённое стоп-слово
}

806D sc_user_blocked
указанный пользователь заблокирован на сервере
{
  "UIN" : 6489       // идентификатор пользователя, который был успешно заблокирован
}

806E sc_restore_account
учётная запись успешно восстановлена, присланы данные для подключения
{
  "UIN"  : 17,               // идентификатор, под которым можно подключаться
  "Psss" : "kg#^%#KJAS7",    // его пароль
  "Nick" : "Chapay"          // ник восстановленной учётной записи
}

806F sc_private_info
// краткая информация о пользователе, полученная по шаблону
{
  "UIN"         : 17,               // идентификатор пользователя
  "What"        : "EMAIL,WORK_PHONE,WORK_DIVDEPT,HOME_BIRTHDAY,WORK_DIVDEPT,WORK_POSITION,WORK_COMPANYNAME,CLIENTVERSION,ROLE,WORK_DEPT_IDX", // список информационных полей
  "EMAIL"       : "",  // данные запрошенных информационных полей, по очереди
  "WORK_PHONE"  : "",
  ...

// deprecated 8.16+  
//  "Avatar"      : 968763541,        // CRC32 фотографии пользователя
//  "ChangeID"    : 17,               // (8.0+) индекс изменений пользователя
//  "DisplayName" : "MegaTester",     // (8.0+) отображаемое имя юзера в чате
//  "Sex"         : 1,                // (8.0+) пол юзера
// deprecated 8.0+
// "FotoCRC32"  : 968763541,        // CRC32 фотографии пользователя
}

8070 sc_media_call
// запрос клиента на звонок (голос/видео) (ver5.1+)
{
  "UIN"       : 17,               // идентификатор того, кто звонит
  "MID"       : 785512,           // (5.17+) идентификатор медиа канала, число
  "Avatar"    : 17,               // аватар, CRC32 фотографии пользователя
  "Sex"       : 1,                // пол пользователя
  "State"     : 0,                // статус
  "Nick"      : "testuser",       // ник пользователя
  "Email"     : "",               // адрес электронной почты
  "HelloMsg"  : "Hello!",         // приветственное сообщение
  "TURNPort"   : 8888,                          // (5.17+) номер TCP порта TURN сервера MyChat
  "IPList"     : "192.168.10.1,213.130.24.149", // (5.17+) список IP адресов TURN сервера MyChat, через запятую
  "Credential" : ".....",                       // (5.17+) пароль на доступ к TURN серверу
  "UserName"   : ".....",                       // (5.17+) имя пользователя для доступа к TURN серверу
  "ChangeID"   : 0,               // (7.5.2+) числовой идентификатор изменений отправителя
  "ClientType" : "win32",         // (8.0+) тип приложения клиента, откуда производится попытка звонка
  "FullScreen" : false,           // (8.7+) включить видео чат или трансляцию на полный экран
  "CallType"   : 0,               // (8.9+) тип звонка
                                  // MEDIA_CALL_TYPE_VOICE          = 0
                                  // MEDIA_CALL_TYPE_VIDEO          = 1
                                  // MEDIA_CALL_TYPE_SCREEN_SHARING = 2
  "STUNOnly"   : true             // (8.15+) необязательный параметр, надо в случае, если TURN не используется, а только STUN,
                                  // если прописали вручную конфиг-файл на сервере, параметр
                                  // stun-only=true 

// deprecated 8.9+  "Video"     : true,             // звонок с видео или без
// deprecated 8.9+  "Share"      : false,           // (6.9+) screen sharing
// deprecated 8.0+   "FotoCRC32" : 968763541,        // CRC32 фотографии пользователя
}

8071 sc_media_call_accept
// клиент согласился принять звонок (video = true/false) (ver5.1+)
{
  "UIN"        : 17,                            // идентификатор того, кто согласился принять звонок
  "MID"        : 748961,                        // (5.17+) идентификатор мультимедийного канала (MID), число
  "TURNPort"   : 8888,                          // (5.17+) номер TCP порта TURN сервера MyChat
  "IPList"     : "192.168.10.1,213.130.24.149", // (5.17+) список IP адресов TURN сервера MyChat, через запятую
  "Credential" : ".....",                       // (5.17+) пароль на доступ к TURN серверу
  "UserName"   : ".....",                       // (5.17+) имя пользователя для доступа к TURN серверу
  "CallType"   : 0,               // (8.9+) тип звонка
                                  // MEDIA_CALL_TYPE_VOICE          = 0
                                  // MEDIA_CALL_TYPE_VIDEO          = 1
                                  // MEDIA_CALL_TYPE_SCREEN_SHARING = 2
  "STUNOnly"   : true             // (8.15+) необязательный параметр, надо в случае, если TURN не используется, а только STUN,
                                  // если прописали вручную конфиг-файл на сервере, параметр
                                  // stun-only=true 


// deprecated 8.9+  "Video"      : false,                         // использовать видео в звонке или нет
}

deprecated (7.8+): 8072 sc_media_call_reject - клиент отказался принять звонок (ver5.1+)
{
  "UIN" : 75 // идентификатор пользователя, который отказался принять звонок
}

// deprecated 8.16+
// 8073 sc_join_newbies_txt_channel - новые пользователи вошли в текстовый канал
// {
//   "UID" : 12,             // идентификатор канала
// набор объектов
//    "267"     // UIN пользователя
// {
//   "State"           : 0,        // (8.0+) его текущий статус, если параметра нет, значит онлайн и свободен
//   "Op"              : false,    // (8.0+) признак того, имеет ли пользователь статус оператора в данном канале. Если параметра нет, значит, обычный пользователь
//   "ChangeID"        : 17        // (8.0+) ChangeID пользователя

// 8.0+ deprecated  "DisplayName"     : "Чапаев", // ник пользователя
// 8.0+ deprecated    "Avatar"          : 78,       // аватар пользователя
// 8.0+ deprecated  "Sex"             : 1,        // пол
// 8.0+ deprecated  "TeamLead"        : true      // (7.2+) признак того, что пользователь - руководитель подразделения. Если нет, то параметра не будет
// }
// }

8074 sc_web_user_foto_file - имя файла с фотографией пользователя (5.2+)
{
  "UIN"      : 29,                 // идентификатор пользователя
  "FileName" : "29-477348784.jpg"  // имя файла с фотографией. Если пустое поле - то фото нету
}

deprecated (7.8+): 8075 sc_media_close (5.3+)
произошёл разрыв соединения (аудио-видео), сеанс связи прекращён одной из сторон
{
  "UIN" : 38 // UIN пользователя, который разорвал сеанс связи
}

8076 sc_media_error (5.3+)
произошла ошибка при сеансе аудио или видео связи
{
  "UIN"      : 17, // UIN пользователя, от кого идёт уведомление об ошибке
  "ErrorNum" : 1   // номер ошибки

// 1 - не удалось получить доступ к камере и микрофону компьютера
}

8077 sc_del_ban (5.3+)
// результат работы команды по удалению бана
{
  "Result" : 0,   // результат работы: 0 - всё Ок, 1 - бана с таким индексом не существует
  "Idx"    : 17   // индекс удаляемого бана
}

8078 sc_list_bans (5.3+)
// список банов, наложенных на разных пользователей, набор обьектов, ID бана (по этому индексу его можно удалить)
{
"14" : // ID бана
{
  "UIN"         : 28,                    // UIN пользователя, на которого наложено наказание
  "Nick"        : "John West",           // имя пользователя, на которого наложено наказание
  "ChannelName" : "main",                // название конференции
  "BannerUIN"   : 89,                    // UIN пользователя, который наложил наказание
  "BannerNick"  : "Alexander Mak-Gee",   // имя пользователя, который наложил наказание
  "BanDT"       : "12.01.2014.20.21.54", // дата и время наложения наказания
  "BanDTOff"    : "12.01.2015.20.21.54", // дата и время истечения срока наказания
  "BanType"     : 1,                     // тип бана. 0 - "Запрет на вход в канал", 1 - "Запрет на отправку сообщений ("молчанка")"
  "BanReason"   : "for bad behavior"     // причина бана. Текстовый комментарий
}
.......
}

8079 sc_adm_set_topic (5.3+)
// результат работы административной команды по установке темы конференции
{
  "ID"     : 87, // UID конференции, тему которой надо было изменить
  "Result" : 0   // результат работы команды. 0 - всё Ок, 1 - конференции с таким UID не существует
}

// deprecated 2023.2+ 807A sc_adm_list_channels (5.3+)
// результат работы административной команды по получению полного списка созданных текстовых конференций. Набор объектов, UID канала
// {
// "27" : // UID текстовой конференции
// {
//    "Name"          : "main",                // название конференции
//   "Topic"         : "Тема канала",         // тема конференции
//   "CreatorUIN"    : 79,                    // UIN пользователя, который создал конференцию. Если 0 - это автосоздаваемая конференция
//   "CreatorNick"   : "Alexey",              // имя пользователя, который создал конференцию
//   "Users"         : 90,                    // количество пользователей в конференции
//   "Messages"      : 33,                    // количество отправленных сообщений в конференции
//   "dtCreatedUTC"  : "17.03.2014.13.24.55", // (8.0+) UTC дата и время создания конференции в формате дд.мм.гггг.чч.мм.сс
//   "ConfType"      : 1                      // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
// 
// deprecated 8.0+
//  "Pass"        : "",                    // пароль на вход в конференцию, если есть. Если нет - пустая строка
//  "Created"     : "17.03.2014.13.24.55", // дата и время создания конференции в формате дд.мм.гггг.чч.мм.сс
//  "SyncLogs"    : true                   // автоматическая синхронизация истории сообщений в конференции или нет (true/false)
// }
// ...
// }

807F sc_adm_list_roles (5.3+)
список ролей (групп прав) пользователей с сервера, административная команда, массив
[
{
  "ID"     : 1,                        // индекс группы прав, число
  "Name"   : "Guests"                  // название группы прав
  "Rights" : "10101010100101010...."   // список прав, 1 - разрешено, 0 - запрещено. Каждая позиция - отдельное право
}
...
]

8080 sc_adm_copy_role_rights (5.3+)
результат работы команды копирования списка прав из одной роли в другую
{
  "IDFrom" : 17,  // ID роли, права которой копировались
  "IDTo"   : 6,   // ID роли, в которую применялись скопированные права
  "Result" : 0    // результат работы команды. 0 - всё Ок, 1 - исходной роли не существует, 2 - результирующей роли не существует
}

deprecated (7.8+): 8081 sc_media_busy (5.3+)
отправка клиенту сигнала "занято" в ответ на аудио или видеозвонок, если он общается в данный момент с другим человеком
{
  "UIN" : 11 // UIN пользователя, от кого пришёл сигнал "занято"
}

8082 sc_adm_del_remote_logs (5.4+)
удаление логов пользователя, нужны административная команда
{
  "UIN"  : 89,           // идентификатор пользователя, кто отправил команду на удаление логов
  "What" : "PRIVATES",   // какие логи удалять, только заглавные буквы (PRIVATES, CHANNELS, ALL)
  "From" : "09.10.2004", // с какой даты и времени удалять сообщения. Можно указывать дату и время в формате dd.mm.yyyy или dd.mm.yyyy.hh.nn.ss
  "To"   : "12.12.2013"  // по какую дату и время удалять сообщения. Можно указывать дату и время в формате dd.mm.yyyy или dd.mm.yyyy.hh.nn.ss
}

8083 sc_adm_get_server_info (5.5+)
// получение общей справочной информации о сервере, административная команда
{
  "Ver"         : "5.5",                  // версия сервера
  "VerDate"     : "02.07.2014",           // дата сборки сервера
  "RegBy"       : "NSS",                  // на кого зарегистрирован сервер
  "Free"        : true,                   // бесплатная лицензия сервера или нет?
  "MaxConnects" : 20,                     // максимальное количество подключений к серверу
  "Started"     : "02.07.2014.17.10.24",  // дата и время старта сервера
  "Uptime"      : 987,                    // uptime сервера в секундах
  "OnlineUsers" : 17,                     // сколько пользователей подключено в данный момент (онлайн)
  "Connections" : 19,                     // (6.1+) количество занятых соединений к серверу в данный момент
  "RegUsers"    : 94,                     // сколько пользователей зарегистрировано на сервере
  "ConfCount"   : 4,                      // количество текстовых конференций
// deprecated  "FTPServ"     : 21,                     // файловый сервер, работает на TCP порту 21. Если порт=-1, значит, сервер выключен
// deprecated  "HTTPServ"    : 8080,                   // HTTP NodeJS сервер, работает на TCP порту 8080. Если порт=-1, значит, сервер выключен
  "StatPrivMsgCount"      : 98,           // количество приватных сообщений, отправленных за время работы сервера
  "StatConfMsgCount"      : 17,           // количество сообщений в конференциях, отправленных за время работы сервера
  "StatBroadcastMsgCount" : 32,           // количество оповещений, отправленных за время работы сервера
  "StatBBSMsgCount"       : 4,            // количество сообщений, размещённых на доске объявлений, пока сервер работает
  "InTraffic"             : 987451,       // суммарный входящий трафик, в байтах
  "OutTraffic"            : 987651154,    // суммарный исходящий трафик MyChat сервера, в байтах
  "ErrorsScripts"         : 0,            // количество ошибок при выполнении скриптов
  "MaxOnline"             : 19,           // максимальное количество пользователей, которые были подключены к серверу одновременно
  "FTPUsersFoldersSize"   : 0,            // общий размер папок пользователей на файловом сервере, в байтах
  "FTPPublicFolderSize"   : 0,            // размер публичной папки файлового сервера, в байтах
  "MyChatGuestInvites"    : 0,            // (5.8+) количество отправленных приглашений MyChat Guest

  "NetInterfacesList"     : ["192.168.10.1",
                             "213.130.24.149"], // (5.24+) доступные сетевые интерфейсы сервера, массив строк
  "ServicesList"          : ["....",            // (5.24+) список работающих сервисов, массив строк, разделены запятыми
                             "...."]

}

8084 sc_adm_get_user_profile (5.7+)
// получение полной информации о профиле любого пользователя, административная команда
{
  "UIN" : 98, // идентификатор пользователя, о котором мы получаем информацию

  "CID" : 128, // CID пользователя, если он онлайн
// ------------------------------------------------------------
// если есть CID, то будут поля в этом блоке
// ------------------------------------------------------------
  "HardwareID"            : "765123DGHJ", // уникальный HardwareID компьютера пользователя, текстовая строка. Может быть пустым
  "Ver"                   : "5.6.0", // версия клиентского приложения
  "InterfacesList"        : "192.168.1.100,192.168.2.30", // список локальных адресов сетевых интерфейсов клиента
  "ClientType"            : "win32", // тип клиента, который подключается к серверу ("win32" - Windows-клиент, "web" - подключение через браузер,
  "MAC"                   : "", // MAC адрес сетевого интерфейса пользователя
  "IP"                    : "192.168.10.100", // IP пользователя
  "CompNetName"           : "MSWIN02-1" // сетевое имя компьютера пользователя (NETBIOS)
  "WEBSupportBrowserInfo" : "", // информация о браузере пользователя чата WEB-поддержки
  "WEBSupportRefLink"     : "", // с какой WEB страницы пришёл пользователь в чат поддержки
  "SysLang"               : "", // язык локали пользователя (или браузера, если он WEB-юзер)
  "PlatformOS"            : "", // операционная система пользователя
                                  // "websupport" - WEB-поддержка с сайта, "admin" - сеанс удалённого администрирования)
  "Secured"               : 1, // SECURED_CONNECTION_TYPE_NONE  = 0; // без шифрования
                               // SECURED_CONNECTION_TYPE_TLS12 = 1; // TLSv1.2
// ------------------------------------------------------------
  "Tag" : "", // специальный тег, текстовая строка, могут быть любые user defined данные

  "Avatar"               : 2348234, // (8.0+)  контрольная сумма (CRC32) фотографии пользователя
  "DomainName"           : "", // имя домена, если пользователь доменный. Если нет - пустая строка
  "AuthType"             : 0, // тип авторизации (0 - стандартная, 1 - AD, 2 - без пароля)
  "Registered"           : "17.05.2013.17.18.23", // дата регистрации пользователя на сервере MyChat (в формате "дд.мм.гггг.чч.мм.сс")
  "Nick"                 : "John Socha", // внутренний ник, под которым пользователь зарегистрирован в чате. Если это Active Directory пользователь - тут будет его AD-логин
  "DisplayName"          : "J. Socha", // отображаемый в чате ник
  "Active"               : true, // если пользователь заблокирован, то = false
  "FirstName"            : "Василий", // имя
  "LastName"             : "Чапаев", // фамилия
  "MiddleName"           : "Иванович", // отчество
  "Role"                 : 10, // индекс группы прав, в которой состоит пользователь, число
  "RoleName"             : "Администраторы", // название группы прав

  "MaritalStatus"        : 0, // семейный статус (0 - В серьёзных отношениях, 1 - Вдовец/вдова, 2 - Женат/замужем, 3 - Помолвлен(а)/обручен(а), 4 - Разведен(а), 5 - Разошлись, 6 - Холост/не замужем)
  "HomePhone"            : "827346827346", // домашний номер телефона
  "HomeFax"              : "93485745", // домашний номер факса
  "Birthday"             : "17.05.2013", // день рождения пользователя в формате "дд.мм.гггг"
  "Email"                : "chapay@mail.su", // основной адрес электронной почты
  "HomeCellular"         : "9048679456", // личный номер сотового телефона
  "HomeStreetAddress"    : "", // домашний адрес
  "HomeCity"             : "", // город, в котором живёт человек
  "HomeState"            : "", // провинция, область, край, штат
  "HomeZIP"              : "08500", // почтовый индекс
  "HomeCountry"          : 1, // страна проживания, числовой индекс
  "HomeWWW"              : "", // личная WEB-страница

  "WorkDept"             : "", // название подразделения, в котором работает человек
  "WorkDeptIdx"          : 10, // (5.10+) индекс подразделения из опщего списка контактов, если он используется. Если нет, то -1
  "WorkPosition"         : "", // должность
  "WorkPositionIdx"      : -1, // индекс должности, число. Если должность не указана, то -1
  "WorkCompanyName"      : "", // название компании, в которой работает человек
  "WorkOffice"           : "", // номер офиса
  "WorkPhone"            : "", // рабочий телефон
  "WorkFax"              : "", // рабочий факс
  "WorkPager"            : "", // номер пейджера
  "WorkStreetAddress"    : "", // рабочий адрес
  "WorkCity"             : "", // город, в котором работает человек
  "WorkState"            : "", // провинция, область, край, штат
  "WorkZIP"              : "", // рабочий почтовый индекс
  "WorkCountry"          : 17, // страна, в которой работает человек? числовой индекс
  "WorkWWW"              : "", // рабочая WEB-страница

  "SpokenLang1"          : 1, // язык, который знает человек
  "SpokenLang2"          : 2, // язык, который знает человек
  "SpokenLang3"          : -1, // язык, который знает человек. -1 - пустое поле

  "Interests1"           : -1,      // сфера интересов №1
  "InterestsWords1"      : "", // ключевые слова из сферы интересов №1
  "Interests2"           : -1,      // сфера интересов №2
  "InterestsWords2"      : "", // ключевые слова из сферы интересов №2
  "Interests3"           : -1,      // сфера интересов №3
  "InterestsWords3"      : "", // ключевые слова из сферы интересов №3
  "Interests4"           : -1,      // сфера интересов №4
  "InterestsWords4"      : "", // ключевые слова из сферы интересов №4

  "Past1"                : -1, // прошлое, №1
  "PastWords1"           : "", // прошлое, ключевые слова №1
  "Past2"                : -1, // прошлое, №2
  "PastWords2"           : "", // прошлое, ключевые слова №1
  "Past3"                : -1, // прошлое, №3
  "PastWords3"           : "", // прошлое, ключевые слова №1

  "PastOrg1"             : -1, // прошлое место работы №1
  "PastOrgWords1"        : "", // прошлое место работы, ключевые слова №1
  "PastOrg2"             : -1, // прошлое место работы №2
  "PastOrgWords2"        : "", // прошлое место работы, ключевые слова №2
  "PastOrg3"             : -1, // прошлое место работы №3
  "PastOrgWords3"        : "", // прошлое место работы, ключевые слова №3

  "Sex"                  : 1, // пол (0 не указан, 1 - мужской, 2 - женский)
  "About"                : "", // краткая информация о человеке, может быть многострочный текст

  "LastAccess"           : "", // дата и время подключения к серверу MyChat. Если пользователь отключен от сервера в данный момент, до дата и время, когда это произошло (в формате "дд.мм.гггг.чч.мм.сс")
  "LastSpeakTime"        : "", // дата и время, когда пользователь последний раз отправлял сообщение в чат (в формате "дд.мм.гггг.чч.мм.сс")

  "Custom1"     : "", // текстовое custom-поле №1
  "Custom2"     : "", // текстовое custom-поле №2
  "Custom3"     : "", // текстовое custom-поле №3

  "OfflineFilesExists"    : false, // есть ли офлайн файлы для пользователя, отправленные ему кем-то
  "State"                 : 0, // текущий статус пользователя (-1 - офлайн; 0 - онлайн, свободен; 1 - онлайн, нет на месте; 2 - онлайн, "не беспокоить")
  "FavoriteChannelsExists"  : true, // есть ли "любимые" каналы
  "BroadcastMessagesExists" : false, // есть ли непрочитанные оповещения
  "HelloMessage"            : "", // текст приветственного сообщения, которое показывается при открытии привата
  "AutoreplayMessage"       : "", // текст автоответчика
  "Autoreplay"              : false, // включен или выключен автоответчик
  "Reputation",             : 0 // количество баллов для репутации

  "Connections" : (6.7+) информация о подключениях пользователя, массив объектов
    [
      {
        "ClientType"  : "win32",                         // тип приложения
        "Ver"         : "6.6.0",                         // версия приложения
        "LastAccess"  : "17.05.2013.17.18.23",           // дата/время регистрации пользователя в домене в формате "дд.мм.гггг.чч.мм.сс"
        "IP"          : "192.168.10.1",                  // IP адрес пользователя
        "MAC"         : "00-FF-4F-3B-FF-DE",             // MAC адрес пользователя
        "CompName"    : "TOSHIBA-PC",                    // NETBIOS имя компьютера
        "HardwareID"  : "FGJFD348UGF876834",             // идентификатор "железа"
        "OS"          : "Windows 8",                     // операционная система
        "IPList"      : "192.168.10.1,192.168.10.113",   // список локальных сетевых интерфейсов через запятую
        "Reflink"     : "",                              // reflink пользователя (для websupport)
        "BrowserInfo" : "",                              // UserAgent браузера пользователя (для websupport)
        "Secured"     : 1                                // используется ли шифрование (0 - нет, 1 - да)
     },
    ...
    ]
}

8085 sc_get_public_access_to_foreign_folder (5.7+)
дать доступ к личной папке указанного пользователя на сервере (FTP, "только чтение"). Сессионный пароль
{
  "UIN"      : 19,              // UIN пользователя, к папке которого мы получаем доступ
  "TempPass" : "71263JDGUygh1"  // временный пароль, действующий только на время одной сессии
}

8086 sc_adm_get_job_positions_list (5.7+)
список должностей компании, массив объектов
{
  "SortPositions" : false, // (5.24+) настройка: сортировать должности по алфавиту, по умолчанию - false
  "Data" :
  [
    {
      "ID"       : 1,              // идентификатор должности, число
      "Name"     : "НачальнеГ",    // название должности
      "TeamLead" : true            // эта должность - руководитель подразделения? Если да - true, иначе - false
    },
    ...
  ]
}

0087 sc_web_support_i_am_busy (5.7+)
если пользователю WEB-поддержки с сайта приходит сообщение не от оператора, с кем он в данный момент говорит, он отвечает этой командой
{
  "UINFrom"     : 89,         // от какого пользователя пришло сообщение
  "UINTalkNow"  : 17,         // с каким оператором разговаривает этот пользователь WEB поддержки сейчас
  "NickTalkNow" : "Alexander" // имя оператора
}

8088 sc_adm_user_created (5.7+)
// пользователь только что был создан
{
  "UIN" : 8987 // идентификатор только что созданного пользователя
}

8089 sc_adm_server_options (5.7+)
// настройки сервера, ответ на административную команду cs_adm_get_server_options
{
  "IPver"          : 0,        // версия используемого протокола для связи: 0 - IPv4, 1 - IPv6
  "TCPPort"        : 2004,     // номер TCP порта, по которому работают подключенные клиенты
  "Bind"           : "0.0.0.0" // IP адрес интерфейса, который будет "слушать" MyChat Server. Если это "0.0.0.0" - "слушать" все доступные
  "UseConnPass"    : false,    // использовать или нет пароль для подключения к серверу (для дополнительной безопасности). Это не пароль пользователя, это дополнительный общий ключ доступа к серверу
  "ConnPass"       : "",       // текст пароля для доступа к серверу

  "ServName"       : "SERVER",          // название сервера
  "ServAdmin"      : "Chapay",          // имя администратора
  "AdminEmail"     : "chapay@mail.su",  // адрес электронной почты администратора сервера
  "AdminWEB"       : "www.null.com",    // веб-сайт администратора сервера
  "RobotName"      : "Elisa",           // имя встроенного робота
  "RobotAvatarNum" : 17,                // номер аватара встроенного робота
  "ConnectMsg"     : "Preved, medved!", // приветствие сервера, которое показывается при подключении
  "RobotHelloMsg"  : "Hello!",          // приветствие робота, которое отправляется при открытии сеанса приватного разговора

  "IntegrationAPI"    : true,            // включена или выключена интеграция со сторонним ПО
  "IntegrationAPIKey" : "$#^fd76#%dgjc", // пароль для доступа к IntegrationAPI

  "SysEventsLogLevel" : 20, // (6.8+) уровень логгирования системных протоколов
  "LogFTP"        : true, // сохранять лог FTP сервера
  "LogModerators" : true, // сохранять лог модераторов чата
  "LogScripts"    : true, // сохранять лог работы встроенных скриптов
  "LogBBS"        : true, // сохранять лог доски объявлений
  "LogConsole"    : true, // сохранять лог консольных команд
  "LogBroadcasts" : true, // сохранять лог оповещений
  "LogFiles"      : true, // сохранять лог передачи файлов
  "LogConf"       : true, // сохранять лог конференций
  "LogPrivates"   : true, // сохранять лог приватных разговоров

  "FTPServer"         : true,      // включен или выключен встроенный FTP сервер
  "FTPBind"           : "0.0.0.0", // IP адрес интерфейса, который будет "слушать" встроенный FTP сервер. Если это "0.0.0.0" - "слушать" все доступные
  "FTPPort"           : 20000,     // TCP порт для файловго сервера
  "FTPPortsPool"      : 100,       // размер пула портов для файловго сервера
  "FTPPublicDir"      : "",        // папка для хранения файлов публичных файлов FTP сервера
  "FTPPersonalDir"    : "",        // папка для хранения личных файлов пользователей MyChat
  "FTPPublicAccess"   : true,      // разрешён ли публичный доступ к файловому серверу
  "FTPPublicReadOnly" : false,     // доступ "только для чтения" для публичного аккаунта
  "FTPPublicLogin"    : "mcuser",  // логин для публичного доступа
  "FTPPublicPass"     : "mychat",  // пароль для публичного доступа

  "WEBTCPPort"         : 80,            // TCP порт встроенного WEB сервера
  "TURNPortTCP"        : 8888,          // (5.17+) TCP порт TURN сервера
  "TURNUseAutoConfig"  : true,          // (5.17+) использовать автоматическую конфигурацию для TURN сервера
  "TURNFullTextConfig" : "bla-bla-bla", // (5.17+) полная текстовая конфигурация встроенного TURN сервера
  "TURNType"           : 0,             // (5.17+) 0 - наш собственный, 1 - чужой
  "TURNExternalConfig" : "bla-bla-bla", // (5.17+) настройки альтернативного TURN сервера

  "BackupWeekly"        : true, // еженедельно резервировать базу данных сервера в автоматическом режиме
  "BackupDay"           : 1,    // в какой день недели делать резервную копию
  "BackupHours"         : 18,   // время создания резервной копии (часы, от 0 до 23)
  "BackupMinutes"       : 0,    // время создания резервной копии (минуты, от 0 до 59)
  "BackupsDir"          : "",   // папка, куда нужно делать резервные копии
  "PurgeOldBackups"     : true, // автоматическое удаление старых резервных копий
  "PurgeOldBackupsDays" : 90,   // удалять старые резервные копии, старше указанного количества дней

  "PurgeOldImages"     : true,  // удалять старые кеши изображений
  "PurgeOldImagesDays" : 90,    // максимальный "возраст" в днях старых изображений, после превышения которого их следует удалять с диска

  "PurgeOldFiles"      : true,  // (6.3+) удалять старые файлы
  "PurgeOldFilesDays"  : 90,    // (6.3+) максимальный "возраст" в днях старых файлов, после превышения которого их следует удалять с диска

  "SMTPEnable"         : true,  // (5.8+) включить или выключить сервис отправки электронной почты
  "SMTPHost"           : "",    // (5.8+) адрес почтового сервера (hostname или IP адрес)
  "SMTPPort"           : 25,    // (5.8+) TCP порт для работы
  "SMTPLogin"          : "",    // (5.8+) логин к почтовому ящику
  "SMTPPassword"       : "",    // (5.8+) пароль к почтовому ящику
  "SMTPEmail"          : "",    // (5.8+) полный адрес электронной почты
  "SMTPUseSSL"         : false, // (5.8+) использовать SSL шифрование
  "SMTPFormat"         : 0,     // (5.8+) 0 - plain text, 1 - html
  "ExternalIP"         : "",    // (5.8+) внешний адрес MyChat Server (IP либо хост)
  "InvitePreset"       : "",    // (5.8+) текст инвайта для пользователя
  "EmailSubjectForInvite" : "", // (5.8+) тема письма инвайта для пользователя
  "EnableMyChatGuest"  : true,  // (5.8+) включен или выключен сервис MyChat Guest
  "EnableWebSupport"   : true,  // (5.8+) включен или выключен сервис MyChat Web Support
  "WebSupportShowOperatorsList" : true, // (7.2+) включить выбор доступного человека из списка при связи с оператором поддержки на сайте
  "WebSupportAskUserFields"     : "name,email", // (7.2+) список полей, которые следует запрашивать при входе в чат поддержки пользователя с сайта
  "DisplayNickStyle"   : 0,     // (5.9+) стиль отображения ников пользователей в чате

// 0 - Александр Сергеевич Пушкин
// 1 - Пушкин Александр Сергеевич
// 2 - Пушкин А.С.
// 3 - А.С. Пушкин
// 4 - Пушкин Александр
// 5 - Александр Пушкин
// 6 - Александр Сергеевич
// 7 - Пушкин
// 8 - Александр
// 9 - Назначенный пользователем
  "DisplayNickFormat"     : "%nick% %email%", // (5.9+) user defined стиль отображения пользователей в MyChat
  "BlockNickDublicates"   : true, // (5.9+) запретить дублирования ников на сервере
  "BlockEmailDuplicates"  : true, // (5.24+) запрет дублирования email пользователей на сервере
  "AutoLogout"            : true,  // (5.9+) автозавершение работы MyChat Client при логине с другого устройства
  "BlockNewRegistrations" : false, // (5.9+) запретить самостоятельные регистрации пользователей на сервере
  "AutoAwayTime"          : 5,     // (5.9+) время для втоматической установки статуса "Нет на месте" (в минутах)
  "MaxRegFromOneMACLimit" : false, // (5.9+) ограничить количество регистраций с одного MAC адреса
  "MaxRegFromOneMACCount" : 0,     // (5.9+) максимальное количество регистраций с одного MAC адреса (число)

  "MaxRegFromOneIPLimit"  : false, // (6.7+) ограничить количество регистраций с одного IP адреса
  "MaxRegFromOneIPCount"  : 100,   // (6.7+) максимальное количество регистраций с одного IP адреса (число)
  "MaxRegFromOneHWIDLimit" : false, // (6.7+) ограничить количество регистраций с одного HardwareID
  "MaxRegFromOneHWIDCount" : 10,   // (6.7+) максимальное количество регистраций с одного HardwareID

  "OldDaysUserAction"     : 0,     // (5.9+) что делать с пользователями, которые давно не подключались к серверу (0 - ничего не делать, 1 - блокировать учётную запись, 2 - удалять учётную запись)
  "OldDaysCount"          : 30,    // (5.9+) срок, после которого начинаются проверки на давность подключения
  "AdvertShow"            : false, // (5.9+) показывать ли рекламный баннер в интерфейсе MyChat Client
  "AdvertLink"            : "",    // (5.9+) http или https линк на рекламный баннер (в странице должен быть pure html, буз javascript и CSS)
  "AdvertHeight"          : 20,    // (5.9+) высота рекламного блока в точках
  "AdvertQuantity"        : 15,    // (5.9+) частота обновления рекламного блока в минутах
  "WEBUseSSL"             : false, // (5.9+) использовать шифрование трафика в WEB сервере MyChat
  "WEBPrivateKeyPath"     : "",    // (5.9+) абсолютный путь к файлу приватного ключа MyChat Server
  "WEBPublicKeyPath"      : "",    // (5.9+) абсолютный путь к файлу публичного ключа MyChat Server
  "WEBBundleKeyPath"      : "",    // (5.16+) authority certificate
  "STUNAdditional"        : "",    // (5.9+) дополнительные адреса STUN-серверов
  "OnlySecuredLogin"      : false, // (5.10+) использовать обязательное шифрование при подключении к серверу. Клиентов, которые не используют шифрование - отключать
  "WEBUseCache"           : true,  // использовать кеширование файлов WEB-сервера в памяти
  "WEBCacheCompress"      : true,  // сжимать файлы "на лету" (GZIP, deflate)
  "LimitUpdateDownloads"  : false, // ограничить количество одновременных загрузок файлов обновлений
  "EnableUpdatesDownloadLimit" : 10, // максимальное количество одновременных загрузок файлов обновлений
  "UseIPControlInTokens"  : true,  // (6.7+) использовать привязку к IP адресу при работе с токенами (по умолчанию true, иногда нужно отключать при работе в браузере через proxy)
  "LobbyEnable"           : true,  // (6.8+) разрешить lobby-страницу http(s)://server-name
  "FilesDir"              : "...", // (6.8+) папка для размещения файлов и изображений, которые пользователи отправляют в чате
  "LogsDir"               : "...", // (6.8+) папка для хранения текстовых протоколов
  "DisableScriptsDueToTimeout" : false, // (7.2+) отключать скрипты из-за превышения времени выполнения
  "MaxUploadFileSize"     : 0,          // (7.4+) максимальный размер файла, который можно заливать на сервер. По умолчанию - 0, без ограничений
  "AutoImportantNotifiers" : true, // (8.7+) Автоматические важные уведомления о функциях MyChat
  "MaxActivePrivateDialogsCount" : 100, // (8.9+) максимальное количество открытых приватных диалогов
  "UpdateGPS"             : 15, // (8.12+) время в минутах, как часто отправлять на сервер свою позицию
  "MaxSelfMsgEditTime"    : 15, // (2023.4+) максимальный период редактирования своих сообщений в конференциях и приватах, в минутах, больше 0
  "MaxSelfMsgDeleteTime"  : 15  // (2023.7+) максимальный период удаления своих сообщений в конференциях и приватах, в минутах, больше 0  
}

808A sc_adm_server_net_interfaces (5.7+)
// список реальных IP адресов сетевых интерфейсов сервера MyChat (IPv4 и IPv6)
{
  "IPv6" : ["::/128","fe80::f1d2:ad8a:92aa:d5cf%28","fe80::cdf9:9319:fb76:5f5f%18"],  // массив, список IPv6 адресов, первым идёт всегда "::/128"
  "IPv4" : ["0.0.0.0","192.168.56.1","192.168.1.103"]                                 // массив, список IPv4, первым идёт всегда "0.0.0.0"
}

808B sc_adm_user_info_by_preset (5.7+)
// список информационных полей указанного пользователя согласно запрошенному набору
{
  "UIN"    : 17,                     // идентификатор пользователя
  "Preset" : "email, nick, ip, mac"  // набор интересуемых полей, через запятую, может быть переменным
  ...
  "Email"  : "test@domain.com",      // собственно, информационные поля, которые были указаны в поле "Preset"
  "Nick"   : "TestUser",
  "IP"     : "192.168.10.75",
  "MAC"    : "36-EC-99-CB-1C-C5"
  ...
}

808C sc_adm_command_complete (5.7+)
// административная команда успешно выполнена
{
  "Cmd" : "00A1" // клиентская команда, которая была успешно выполнена (команды с префиксом cs_adm_.....)
}
// команды, с которыми высылается данный ответ:
// cs_adm_remove_all_logs
// cs_adm_set_user_foto
// cs_adm_job_positions_del
// cs_adm_job_positions_set_sequence
// cs_adm_role_delete
// cs_adm_role_set_rights
// cs_adm_role_apply_to_users
// cs_adm_add_user_to_websupport_group
// cs_adm_delete_user_from_websupport
// cs_adm_delete_websupport_group
// cs_adm_tcl_del_ids_list
// cs_adm_set_custom_options
// cs_adm_return_server_to_zero_state
// cs_adm_enter_mychat_guest_reg_data
// cs_adm_enter_mychat_reg_data
// cs_adm_remove_user
// cs_adm_multiply_modify_users
// cs_adm_del_bans
// cs_adm_delete_moderators
// cs_adm_add_moderator
// cs_adm_del_moderator_confs
// cs_adm_update_auto_conf
// cs_adm_add_group_to_auto_conf
// cs_adm_del_group_from_auto_conf
// cs_adm_bbs_clear_actual
// cs_adm_bbs_modify_msg
// cs_adm_bbs_del_messages
// cs_adm_kill_users
// cs_adm_script_onoff (5.16+)
// cs_adm_kill_txt_conf (5.17+)
// cs_adm_kick_users_from_conf (5.17+)
// cs_adm_restart_server_services (5.17+)
// cs_kanban_delete_stage (5.17+)
// cs_kanban_modify_stage (5.17+)
// cs_adm_del_client_options_preset (5.17+)
// cs_adm_apply_roles_to_options_presets (5.17+)
// cs_adm_add_users_to_group (5.18+)
// cs_adm_remove_users_from_group (5.18+)
// cs_adm_rename_group_of_users (5.18+)
// cs_adm_delete_groups_list (5.18+)
// cs_adm_del_auto_conf (5.18+)
// cs_adm_set_integration_tool_options (5.19+)
// cs_kanban_task_move (5.20+)
// cs_kanban_task_remove (5.20+)
// cs_kanban_task_edit (5.20+)
// cs_kanban_delete_comment (5.20+)
// cs_kanban_close_project (5.20+)
// cs_kanban_reopen_project (5.20+)
// cs_kanban_delete_project (5.20+)
// cs_kanban_edit_project (5.20+)
// cs_adm_delete_check_domain (5.20+)
// cs_adm_add_allowed_or_blocked_plugins (5.21+)
// cs_adm_delete_allowed_or_blocked_plugin (5.21+)
// cs_adm_change_mychat_server (5.21+)
// cs_adm_integration_telegram_delete_user (6.1+)
// cs_adm_integration_telegram_modify_user (6.1+)
// cs_adm_integration_telegram_clear_users_list (6.1+)
// cs_adm_delete_conf_message (6.4+)
// cs_adm_check_ports (6.4+)
// cs_adm_reconnect_users2autoconf (6.7+)
// cs_adm_delete_blocked_hwid (6.7+)
// cs_adm_clear_blocked_hwid_list (6.7+)
// cs_adm_add_hwid_to_block_list (6.7+)
// cs_adm_set_server_options (6.8+)
// cs_adm_remove_conversations (6.9+)
// cs_adm_modify_check_domain (7.1+)
// cs_adm_forum_add_subs_group (7.1+)
// cs_adm_forum_delete_subs_group (7.1+)
// cs_adm_forum_clear_subs (7.1+)
// cs_adm_forum_add_subs_user (7.1+)
// cs_adm_forum_delete_subs_user (7.1+)
// cs_adm_integration_quiz_del_question (7.2+)
// cs_adm_integration_quiz_modify_question (7.2+)
// cs_adm_integration_quiz_clear_stat (7.2+)
// cs_adm_enter_quiz_reg_data (7.2+)
// cs_adm_delete_private_message (7.3+)
// cs_adm_modify_allow_ip (7.7+)
// cs_adm_modify_common_user_group (8.9+)
// cs_adm_modify_personal_user_group (8.9+)
// cs_adm_add_users_to_private_group (8.9+)
// cs_adm_remove_users_from_private_group (8.9+)
// cs_kanban_add_access_user_groups_to_stage (8.9+)
// cs_adm_remove_custom_menu_list (8.14+)
// cs_adm_modify_custom_menu (8.14+)
// cs_remove_groups_from_custom_menu (8.14+)
// cs_adm_change_text_conf_owner (2023.2+)

808E sc_adm_job_positions_added (5.8+)
добавлена новая должность
{
  "ID"         : 97,           // идентификатор должности
  "Name"       : "Programmer", // название должности
  "Number"     : 11,           // порядковый номер должности в общем списке
  "TeamLead"   : false         // это - руководитель подразделения или нет? (true/false)
}

808F sc_adm_job_positions_modified (5.8+)
должность была изменена успешно
{
  "ID"         : 21,           // идентификатор должности
  "Name"       : "Programmer", // название должности
  "TeamLead"   : false         // это - руководитель подразделения или нет? (true/false)
}

8090 sc_adm_role_added (5.8+)
успешно создана новая группа прав
{
  "Name"      : "New group",               // название группы
  "ID"        : 17                         // идентификатор группы прав в базе данных
  "Rights"    : "10100101010010001011...." // список прав
}

8091 sc_adm_role_modified (5.8+)
группа прав была успешно изменена
{
  "Name"      : "New group",               // название группы
  "ID"        : 17                         // идентификатор группы прав в базе данных
}

8092 sc_adm_role_users_list (5.8+)
список пользователей указанной группы прав
{
  "ID"    : 19,                     // идентификатор группы прав
  "Users" : [                       // массив пользователей
    {
      "UIN"         : 98,           // идентификатор пользователя
      "Sex"         : 1,            // пол пользователя
      "DisplayName" : "Ivan Grozny" // отображаемое имя
    },
    ...
  ]
}

8093 sc_adm_smtp_checked (5.8+)
SMTP проверка
{
  "Ok"  : true,          // если всё Ок - true, если нет - false, нужно проверять настройки SMTP
  "Log" : "Bla-bla-bla"  // протокол SMTP соединения
}

8094 sc_invite_to_webchat_sended_ok (5.8+)
уведомление о том, что отправка приглашения для другого человека в MyChat прошла успешно
{
  "Email"    : "mail@mail.com",         // адрес электронной почты человека, которого мы приглашаем в MyChat
  "UserName" : "Ivan Grozny",           // имя собеседника
  "Link"     : "https://.....",         // (7.0+) ссылка для перехода по приглашению
  "dtUTC"    : "10.11.2018.23.59.59",   // (7.0+) дата и время окончания действия приглашения в формате "dd.mm.yyyy.hh.nn.ss", UTC
  "Type"     : 1                        // (7.0+) тип приглашения, 0 - одноразовое, 1 - многоразовое
}

8095 sc_adm_websupport_groups (5.8+)
список групп для сотрудников WEB-поддержки сайта, массив
[
{
  "ID"     : 1,                        // индекс группы, число
  "Name"   : "Guests"                  // название группы
}
...
]

8096 sc_adm_websupport_group_added (5.8+)
добавлена новая группа WEB-поддержки
{
  "Name" : "....." // название новой группы
  "ID" : 17 // числовой идентификатор группы
}

8097 sc_adm_websupport_group_users (5.8+)
список пользователей WEB-support группы
{
  "ID"    : 17, // числовой идентификатор группы
  "Users" :
  [
  {
    "UIN"          : 39,            // идентификатор пользователя
    "DisplayName"  : "John Smith",  // полное имя пользователя
    "Sex"          : 1              // пол пользователя
  }
  ...
  ]
}

8098 sc_adm_websupport_group_renamed (5.8+)
группа веб-поддержки успешно переименована
{
  "ID"   : 17,    // числовой идентификатор группы
  "Name" : "..."  // новое название группы
}

8099 sc_adm_custom_options (5.8+)
// кастомные настройки, запрошенные с помощью команды cs_adm_get_custom_options, количество полей может быть переменным
{
  "OptionsFields"      : "EnableMyChatGuest,EnableWebSupport", // список полей, которые были отправлены клиенту
  "EnableMyChatGuest"  : true,  // (5.8+) включен или выключен сервис MyChat Guest
  "EnableWebSupport"   : true   // (5.8+) включен или выключен сервис MyChat Web Support
}

809A sc_adm_total_contacts_list (5.8+)
общий список контактов, массив объектов
[
 {
    "ID"          : 11,     // идентификатор в базе данных
    "GroupID"     : 2,      // идентификатор группы
    "GroupName"   : "Main", // название группы
    "ParentID"    : "0",    // ID родительской группы
    "IsGroup"     : true,   // запись - группа или пользователь?
    "UIN"         : 0,      // идентификатор пользователя
    "Sex"         : 0,      // пол пользователя
    "TeamLead"    : false,  // пользователь - руководитель команды?
    "DisplayName" : ""      // отображаемый ник пользователя
 }
...
]


809B sc_adm_tcl_group_added (5.8+)
группа общего списка контактов успешно создана
{
  "ID"          : 11,      // уникальный идентификатор записи в базе данных
  "GroupID"     : 2,       // идентификатор группы
  "GroupName"   : "Main",  // название группы
  "ParentID"    : "0"      // индекс родительской группы, если есть. Если группа корневая - то 0
}

809C sc_adm_users_imported (5.8+)
пользователи импортированы в сервер
{
  "123123" : 1, // "123123" - идентификатор, 1 - номер ошибки
  "827345" : 2,
  ......
}

id - идентификатор пользователя
status - результат:
IMPORT_ERROR_NICKORDISPLAYNAME_NOT_EXISTS = 1; // ошибка импорта, не указан ник или ФИО
IMPORT_ERROR_NICK_ALREADY_EXISTS          = 2; // пользователь уже существует

809D sc_adm_server_licenses (5.8+)
информация о лицензиях MyChat Server
{
  "ServerRegisteredBy"      : "Network Software Solutions", // на кого зарегистрирован сервер
  "IsFree"                  : false,                        // (5.7+) если сервер бесплатный, то true, иначе - false
  "IsMyChatGuestRegistered" : true,                         // (5.8+) зарегистрирован ли сервис MyChat Guest
  "ServerLicenseKey"        : "XXXX-RRRR-YYYY-QQQQ-ZZZZ-VVVV-DDDD-SSSS-EEEE-WWWW-PPPP", // (5.8+) сам ключ, которым активирован сервер, если ключа нет - то "-"
  "ServerKeySaleDate"       : "dd.mm.yyyy", // (5.8+) дата продажи ключа, если сервер не куплен, то пустая строка
  "ServerUpdatesEndDate"    : "dd.mm.yyyy", // (5.8+) до какой даты валидны обновления, если сервер не куплен, то пустая строка
  "QuizRegistered"          : true,         // (7.2+) если робот-викторина зарегистрирована
  "QuizLicenseKey"          : "bla-bla-bla" // (7.2+) ключ регистрации робота-викторины
}

809E sc_adm_antiflood_filter_data (5.9+)
информация по антифлуд-фильтрам. Админкоманда
{
  "AntiFloodEnabled"    : true,           // включен или выключен антифлуд фильтр
  "CriticalEventsCount" : 5,              // критическое количество событий
  "BySeconds"           : 1,              // в единицу времени (секунды)
  "IgnoreFlooderSec"    : 15,             // игнорировать флудера (в секундах)
  "UseRecurringEvents"  : true,           // считать флудом повторяющиеся слова в одном сообщении (например, смайлики)
  "MaxRecurringWords"   : 5,              // в каком количестве
  "UseRecurringImages"  : true,           // считать флудом повторяющиеся изображения в одном сообщении
  "MaxRecurringImages"  : 6,              // в каком количестве
  "ExceptUsers"         : "6,17,28,9,30"  // список UIN-ов пользователей, который не касаются ограничения (через запятую, строка)
}

809F sc_adm_flood_except_users_list (5.9+)
список пользователей, которых не касаются ограничения антифлуд-фильтров
[
  {
    "UIN"         : 17,             // UIN пользователя
    "DisplayName" : "A.Makedonsky"  // имя пользователя (согласно серверным настройкам отображения имён пользователей в чате)
  }
]

80A0 sc_adm_allow_ip_list (5.9+)
список разрешённых IP адресов
[
  {
    "ID"         : 31,              // (7.7+) числовой идентификатор записи в базе данных
    "IP"         : "192.168.10.1",  // IP адрес, маска или диапазон
    "Comment"    : "Bla-bla-bla",   // комментарий
    "ClientType" : "common"         // (5.15+) тип клиента
  }
...
]

80A1 sc_adm_blocked_ip_list (5.9+)
список заблокированных IP адресов (масок и диапазонов), массив объектов
[
  {
    "ID"          : 172,                   // (7.7+) числовой идентификатор записи в базе данных
    "IP"          : "192.168.10.1",        // заблокированный адрес/маска/диапазон
    "Comment"     : "Bla-bla-bla",         // комментарий
    "UIN"         : 17,                    // идентификатор пользователя, который добавил адрес в блокировки
    "DisplayName" : "Vasyl Podoprigora",   // имя пользователя, которое отображается в чате
    "Date"        : "17.10.2014.17.35.21", // дата и время, когда была создана блокировка в формате дд.мм.гггг.чч.мм.сс
    "ClientType"  : "win32"                // (5.15+) тип клиента
  }
...
]

80A2 sc_adm_blocked_mac_list (5.9+)
список заблокированных MAC адресов
[
  {
    "MAC"         : "20-CF-30-A9-1A-6D",   // заблокированный MAC-адрес
    "Comment"     : "Bla-bla-bla",         // комментарий
    "UIN"         : 17,                    // идентификатор пользователя, который добавил адрес в блокировки
    "DisplayName" : "Vasyl Podoprigora",   // имя пользователя, которое отображается в чате
    "Date"        : "17.10.2014.17.35.21"  // дата и время, когда была создана блокировка в формате дд.мм.гггг.чч.мм.сс
  }
...
]

80A3 sc_adm_blocked_nicks_list (5.9+)
список заблокированных ников, админкоманда. Массив текстовых строк
[
  "User1",
  "User2",
  ...
]

80A4 sc_adm_blocked_confs_list (5.9+)
// список заблокированных названий конференций. Массив текстовых строк
[
  "Conf1",
  "Conf2",
  ...
]

80A5 sc_adm_bad_words_filter_data (5.9+)
данные по фильтрам "плохих" слов
{
  "EnableFilter"     : true,         // включен или выключен фильтр "плохих" слов на сервере
  "ChangeBadWordsTo" : 0,            // 0 - на "*", 1 - игнорировать сообщение целиком, 2 - заменять на указанную фразу или слово
  "TextForChange"    : "<censored>", // на что менять найденное плохое слово
  "FilterConfTopics" : true,         // включить фильтр для тем конференций
  "FilterConfNames"  : true,         // включить фильтр для названий конференций
  "FilterUserNicks"  : true,         // включить фильтр для ников пользователей
  "FilterPrivates"   : false,        // включить фильтр для сообщений в приватных разговорах
  "FilterBroadcasts" : true,         // включить фильтр для текстов оповещений
  "FilterBBS"        : true,         // включить фильтр для сообщений на доске объявлений
  "FilterConf"       : true          // включить фильтр для сообщений в конференциях
}

80A6 sc_adm_bad_words_list (5.9+)
// полный список "плохих" слов, админкоманда. Массив текстовых строк
[
  "BadWord",
  "BadWord2",
  ...
]

80A7 sc_adm_bad_words_except_confs (2023.2+)
// список конференций, в которых отключен антимат-фильтр. Массив объектов
[
  {
    "ConfName" : "main",
    "UID"      : 17
  },
  {  
    "ConfName" : "sysop",
    "UID"      : 23
  },	
...  
]

80A8 sc_adm_export_users_to_csv_file (5.9+)
// список пользователей с указанными данными успешно экспортирован в CSV файл
{
  "Fields" : "",                   // список полей для экспорта
  "FileName" : "1231231231223.csv" // имя файла для скачивания
}

80A9 sc_adm_tcl_users_added (5.10+)
список пользователей успешно занесён в группу общих контактов
{
  "17" : 73,  // пары UIN/idx в базе данных
  "3"  : 11,
...
}

80AA sc_online_users_states (8.16+)
список UIN-ов и статусов всех пользователей, которые в данный момент есть онлайн
{
  "Free" : "1,7,14",  // список идентификаторов пользователей в статусе "Свободен", опционально, если такие пользователи есть в наличии
  "Away" : "2,893,4", // список идентификаторов пользователей в статусе "Нет на месте", опционально, если такие пользователи есть в наличии
  "DND"  : "13"       // список идентификаторов пользователей в статусе "Не беспокоить", опционально, если такие пользователи есть в наличии 
  
// deprecated (8.15+) "Users"    : "1,21,87,56", // идентификаторы пользователей
// deprecated (8.15+) "Statuses" : "0,0,0,0"     // сетевые статусы
}

80AB sc_dept_list (5.10+)
список подразделений компании, массив объектов
[
 {
    "ID"          : 11,     // идентификатор в базе данных
    "GroupID"     : 2,      // идентификатор группы
    "GroupName"   : "Main", // название группы
    "ParentID"    : "0"     // ID родительской группы
 }
...
]

80AC sc_caches (5.10+)
контрольные суммы (CRC32) кешей различных данных, которые, возможно, будут нужны клиенту
{
  "PublicContacts"   : 0, // общий список контактов, если 0 - то кеша нет
  "PersonalContacts" : 0  // личный список контактов, если 0 - кеша нет
}

80AD sc_adm_all_text_confs (6.4+)
список всех текстовых конференций, которые когда-либо создавались на сервере и в них было отправлено хотя бы одно сообщение
{
  "1" : {                            // UID конференции, уникальное целое число
    "Name"  : "main",                // название конференции
    "dtUTC" : "dd.mm.yyyy.hh.nn.ss", // дата и время последнего сообщения (в UTC)
    "Idx"   : 783                    // номер последнего сказанного сообщения = общему количеству сообщений в этой конференции за всё время
  },
...
}

80AE sc_just_connect_disconnect_users (5.10+)
список пользователей, которые отключились или подключились за последнее время (раз в три секунды обычно, или реже, если данных для отправки нету)
{
  "Online"  : "17,94,3", // список UIN-ов, которые появились в онлайн
  "States"  : "0,0,0",   // список статусов тех пользователей, которые уже в онлайн
  "Offline" : "8"        // список UIN-ов, отключившихся от сервера
}

80AF sc_adm_bans_list (5.11+)
список банов пользователей, массив объектов
[
  {
    "UIN"               : 17,                      // идентификатор пользователя, на которого наложен бан
    "DisplayName"       : "Vasiliy",               // отображаемое имя пользователя в чате
    "ID"                : 34,                      // индекс бана
    "BanType"           : 0,                       // тип бана (0 - запрет на вход в конференцию, 1 - запрет на отправку сообщений ("молчанка")
    "ConfID"            : 17,                      // идентификатор конференции
    "ConfName"          : "main",                  // название конференции
    "UINBanner"         : 98,                      // идентификатор того, кто наложил наказание
    "DisplayNameBanner" : "Alex Murphy",           // отображаемое имя того, кто наложил бан
    "dtBan"             : "dd.mm.yyyy.hh.nn.ss",   // дата и время наложения наказания
    "dtBanOff"          : "dd.mm.yyyy.hh.nn.ss",   // дата и время истечения наказания
    "Reason"            : "Bla-bla-bla"            // причина бана, текстовая строка
  }
...
]

80B0 sc_adm_moderators_list (5.11+)
список модераторов чата, админкоманда, массив объектов
[
  {
    "UIN"         : 17,            // UIN модератора
    "DisplayName" : "John Smith",  // отображаемое имя в чате
    "ConfList"    : ""             // список UID-ов текстовых конференций, через запятую. Если список пустой - модератор во всех конференциях
  }
...
]

80B1 sc_adm_conf_names_list_by_uid (5.11+)
список текстовых конференций, которые когда-либо создавались на сервере.
По запрошенным UID-ам, ответ на команду-запрос cs_adm_get_conf_names_by_uid_list.
Набор объектов, пары UID / название конференции
{
  "17" : "main",
  "2"  : "sysop",
  "79" : "Sales department"
  ...
}

80B2 sc_broadcasts_list_history (5.12+)
список оповещений, которые были отправлены пользователем, за период. Массив объектов
[
  {
    "Active"     : true,                   // тип оповещения (true - активное, false - устаревшее, из архива)
    "Msg"        : "Hello!",               // текст сообщения
    "ID"         : "",                     // идентификатор оповещения, число
    "dtCreated"  : "dd.mm.yyyy.hh.nn.ss",  // дата создания оповещения (UTC)
    "dtExpired"  : "dd.mm.yyyy.hh.nn.ss",  // конечная дата актуальности оповещения (UTC)
    "Importance" : true,                   // "важное" оповещение
    "WantRead"   : false                   // обязательно к прочтению
  }
...
]

80B3 sc_broadcasts_users_stat (5.12+)
подробная информация по пользователям, которые получили оповещение
{
  "ID"    : 18, // числовой идентификатор оповещения
  "Users" :
  [
  {
    "UIN"          : 39,                   // идентификатор пользователя
    "DisplayName"  : "John Smith",         // полное имя пользователя
    "Sex"          : 1,                    // пол пользователя
    "dtReaded"     : "dd.mm.yyyy.hh.nn.ss" // дата и время прочтения оповещения. Если оповещение не читал - поле будет пустым
  }
  ...
  ]
}

80B4 sc_put_msg2txt_channel
// отправить сообщение в текстовую конференцию
{
  "UIN"        : 17,                    // UIN отправителя
  "UID"        : 21,                    // UID конференции, куда следует отправить сообщение
  "Msg"        : "Hello!",              // текст сообщения
  "MsgType"    : 0,                     // (5.19+) тип сообщения (картинка, текст, ....). По умолчанию - 0
  "dtUTC"      : "dd.mm.yyyy.hh.nn.ss", // (6.1+) дата и время сообщения (UTC)
  "Idx"        : 17,                    // (6.1+) внутренний индекс сообщения
  "State"      : 0,                     // (8.0+) статус отправителя
  "ClientType" : 0,                     // (6.1+) тип клиента
                                        // CLIENT_TYPE_MYCHAT_WIN32      = 0
                                        // CLIENT_TYPE_MYCHAT_WEB        = 1
                                        // CLIENT_TYPE_MYCHAT_MACOS      = 2
                                        // CLIENT_TYPE_MYCHAT_LINUX      = 3
                                        // CLIENT_TYPE_MYCHAT_ANDROID    = 4
                                        // CLIENT_TYPE_MYCHAT_IOS        = 5
                                        // CLIENT_TYPE_MYCHAT_WIN32NEXT  = 6
                                        // CLIENT_TYPE_MYCHAT_SERVER_API = 7
  
  "ConfName"    : "main",               // (8.15+) опционально, для ios-клиента
  "DisplayName" : "John Smith",         // (8.15+) опционально, для ios-клиента
  "Silent"      : true                  // (2023.9+) необязательный параметр, если true - то сообщение нужно отправить 
                                        // в "тихом" режиме, без звуковой и визуальной идентификации 
// deprecated 2023.2+  "ChangeID"   : 0 // (8.0+) числовой идентификатор изменений отправителя  
}

80B5 sc_adm_auto_conf_list (5.14+)
список автосоздаваемых конференций, массив объектов
[
  {
    "UID"          : 12,                    // UID канала
    "ConfName"     : "main",                // название канала
    "ConfTopic"    : "Главный канал",       // тема канала
    "dtUTCCreated" : "01.01.1900.00.00.00"  // (8.0+) дата и время первичного создания конференции в UTC
    "ConfType"     : 1,                     // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
    "Owner"        : 0,                     // (8.0+) владелец конференции, её создатель. Если это UIN=0, то это автосоздаваемая конференция

    "JoinGroups"   : "17,21,3",             // (8.0+) группы пользователей, которые нужно включать в конференцию,
	                                        // если есть группа с ID=0, это означает, что в конференцию включаются абсолютно все юзеры,
											// кроме websupport и заблокированных учётных записей
    "JoinUsers"    : "196,3,17",            // (8.0+) пользователи, которые включаются в конференцию (конфа у них в favorites)
    "Pass"         : "",                    // (8.0+) пароль на конференцию

// deprecated 2023.2.0+    "InviteAll"    : false,                 // (8.0+) автоматически включать всех пользователей в эту конференцию
// deprecated 8.4+  "FlagLockExit" : false                  // (8.0+) запрет на выход из конференции
// deprecated 8.0+
//    "Modes"          : "11010010...",          // режимы конференции
//
//    "dtCreated"      : "12.01.2013.20.21.54",  // дата и время создания канала
//    "Creator"        : 78,                     // UIN создателя канала
//    "Password"       : "",                     // пароль на вход в конференцию. Если пароля нет - то пустое поле
//    "ConnectAllFlag" : true,                   // присоединять абсолютно всех пользователей в эту конференцию или нет
//    "BlockCloseFlag" : false,                  // запретить выход из конференции
//    "SyncLogsFlag"   : true,                   // синхронизация переписки
//    "InvisibleFlag"  : false                   // (6.1+) скрытая конференция
//    "InviteGroups"  : "17,1,36"                // ID групп пользователей, которых следует подключать в данную автосоздаваемую конференцию
}
.......
]

80B6 sc_adm_auto_conf_created (5.14+)
успешно добавлена автосоздаваемая конференция. Админкоманда
{
  "UID"          : 17,                    // идентификатор конференции
  "ConfType"     : 1,                     // тип конференции: обычная - 1, закрытая паролем - 2, скрытая - 3
  "ConfName"     : "Test channel",        // название конференции
  "dtUTCCreated" : "dd.mm.yyyy.hh.nn.ss", // дата и время создания конференции в UTC
  "Owner"        : 0,                     // UIN создателя конференции, если = 0, то это автосоздаваемая конференция
  "ConfTopic"    : "",                    // тема конференции
  "Enable"       : false,                 // если false, то конференция существует, но выключена (удалена)
  // необязательные параметры:
  "JoinGroups"   : "17,21,3",             // группы пользователей, которые нужно включать в конференцию. 
                                          // Если = "0" - то включать абсолютно всех юзеров сервера, кроме websupport
  "JoinUsers"    : "196,3,17",            // пользователи, которые включаются в конференцию (конфа у них в favorites)
  "Pass"         : ""                     // пароль на вход конференцию, если надо

// deprecated 2023.2+  "Auto"         : true, // автосоздаваемая конференция, создаётся сервером, автоматически включает туда бота Elisa UIN=0
// deprecated 2023.2+  "InviteAll"    : false, // автоматически включать всех пользователей в эту конференцию
// deprecated 8.4+   "FlagLockExit" : false                  // запрет на выход из конференции
// deprecated 8.0+   "Created"  : "dd.mm.yyyy.hh.nn.ss" // дата создания конференции
// deprecated 8.0+   "Modes"    : "...",                // режимы работы конференции
}

80B7 sc_txtch_update_modes (5.14+)
обновить режимы текстовой конференции
{
  "UID"   : 17,    // идентификатор текстовой конференции
  "Modes" : "..."  // новые режимы работы конференции
}

80B9 sc_adm_bbs_msg_list (5.14+)
список сообщений на доске объявлений, админкоманда, массив объектов
[
  {
    "ID"          : 17,                    // идентификатор объявления
    "UIN"         : 23,                    // идентификатор создателя объявления
    "DisplayName" : "John Smith",          // отображаемое имя создателя объявления
    "dtCreated"   : "2015.01.01.17.24.30"  // дата и время создания объявления
  }
...
]

80BA sc_adm_bbs_msg_data (5.14+)
подробные данные по сообщению на доске объявлений
{
  "ID"          : 17,                    // идентификатор объявления
  "UIN"         : 69,                    // идентификатор создателя объявления
  "DisplayName" : "John Smith",          // отображаемое имя создателя объявления
  "dtCreated"   : "2015.01.01.17.24.30", // дата и время создания объявления
  "dtActualTo"  : "2016.01.01.17.24.30", // дата и время актуальности объявления
  "Sticky"      : true,                  // "прилепленное" объявление
  "Msg"         : "Bla-bla-bla"          // текст сообщения
}

80BB sc_adm_ad_users_imported (5.15+)
список пользователей, которых импортировали из Active Directory
{
  "Users"    : ["admin","user1",.....],
  "Statuses" : [0,0,0,1,1,1,0....]         // 0 - пользователь добавлен
                                           // 1 - успешно обновлены данные
}

80BC sc_adm_ad_options (5.15+)
// настройки по Active Directory интеграции
{
  "Host"                      : "192.168.10.1",  // адрес сервера, к которому происходит подключение по LDAP
  "Port"                      : 389,             // номер порта
  "Base"                      : "dc=nss,dc=com"  // текст запроса или имя домена
  "UseSSL"                    : false,           // использовать шифрование или нет
  "UserName"                  : "admin",         // логин пользователя
  "MakeCommonContactListByOU" : true,            // (5.24+) формировать древовидный общий список контактов согласно дереву Organization Units из Active Directory
  "MakeWorkPositions"         : true,            // (5.24+) создавать должности пользователей и прописывать их в профиле, если они указаны в карточке пользователя в домене
  "WhoShow"                   : 0,               // (5.25+) каких пользователей импортировать из домена: 0 - всех, 1 - только новых, 2 - уже импортированных
  "LdapConfig"                : "",              // (7.4+) настройка соответствия полей для импорта пользователей из домена
  "LDAPRequest"               : "",              // (7.8+) дополнение к стандартному LDAP запросу для фильтрации импортируемых пользователей
  "LDAPHead"                  : ".....",         // (7.8+) заголовок основного LDAP запроса, который выполняется при получении списка пользователей с сервера
  "LDAPBaseDN"                : "",              // (7.8+) custom Base DN, например "ou=level,dc=nss,dc=com"
  "LDAPFilter"                : false            // (7.8+) включить или выключить user filter для LDAP запроса, по умолчанию фильтр выключен
}

80BD sc_adm_update_packet_data (5.15+)
// данные по пакетам обновления для MyChat Client
{
  "PacketExists_win32"   : true,         // есть пакет обновления или нет
  "CRC32_win32"          : 823746897683, // контрольная сумма пакета для обновления
  "Size_win32"           : 24567342,     // размер пакета в байтах
  "Version_win32"        : "5.14.1",     // версия пакета для обновления

  "PacketExists_linux"   : true,         // linux: есть пакет обновления или нет
  "CRC32_linux"          : 823746897683, // linux: контрольная сумма пакета для обновления
  "Size_linux"           : 24567342,     // linux: размер пакета в байтах
  "Version_linux"        : "5.14.1",     // linux: версия пакета для обновления

  "PacketExists_linux32" : true,         // linux32: есть пакет обновления или нет
  "CRC32_linux32"        : 823746897683, // linux32: контрольная сумма пакета для обновления
  "Size_linux32"         : 24567342,     // linux32: размер пакета в байтах
  "Version_linux32"      : "5.14.1"      // linux32: версия пакета для обновления
}

80BE sc_adm_online_users_list (5.15+)
// список онлайн-пользователей, которые в данный момент подключены к MyChat Server. Массив объектов
[
  {
    "UIN"           : 17,                            // уникальный идентификатор пользователя, число
    "Nick"          : "i.grozny",                    // ник, под которым пользователь зарегистрирован на сервере. Если юзер доменный - это его логин в домене Windows
    "DisplayName"   : "Ivan V. Grozny",              // отображаемое имя пользователя
    "Email"         : "",                            // (5.17+) адрес электронной почты
    "Domain"        : "kremlin.moscow.russia.earth", // имя домена. Может быть пустым
    "AuthType"      : 0,                             // (6.5+) тип авторизации пользователя: 0 - стандартная, 1 - Active Directory, 2 - вход без пароля, 3 - AD transparent
    "Secured"       : 0,                             // используется ли шифрование. 0 - нет, 1 - TLSv1.2
    "IP"            : "192.168.10.25",               // IP адрес пользователя, под которым его видит сервер. IP адреса разных пользователей могут совпадать, если они подключаются с одной сети из-за NAT

    "ClientType"    : "win32",                       // тип клиента, который подключается к серверу ("win32" - Windows-клиент, "web" - подключение через браузер,
                                                     // "websupport" - WEB-поддержка с сайта, "admin" - сеанс удалённого администрирования, "kanban", "forum", "linux", "macos", "android"...)

    "State"         : 0,                             // номер сетевого статуса. 0 - "свободен", 1 - "нет на месте", 2 - "не беспокоить"
    "LastAccessUTC" : "dd.mm.yyyy.hh.nn.ss",         // (6.5+) UTC дата и время, когда клиент подключился к серверу (по серверному времени)

    "OnlineTime"    : "01:12:30:16",                 // время, сколько клиент находится онлайн с момента последнего подключения в формате dd:hh:nn:ss. Текстовая строка
                                                     // если дней, часов или минут ещё 0 - то они не будут указаны. Например, 17:43 - 17 минут и 43 секунды.
    "HardwareID"    : "123-53489763-jsdfhg",         // (6.5+) HardwareID устройства пользователя, может быть пустым
    "MAC"           : "0A-00-27-00-00-00",           // (6.5+) MAC адрес сетевого интерфейса, может быть пустым
    "NetName"       : "TOSHIBAPC",                   // (6.5+) сетевое имя компьютера пользователя, может быть пустым
    "Ver"           : "6.4",                         // (6.5+) версия клиентского приложения
    "Interfaces"    : "192.168.10.1,192.168.11.3",   // (6.5+) список локальных сетевых интерфейсов пользователя, может быть пустым
    "OS"            : "Windows 7",                   // (6.5+) операционная система пользователя, может быть пустой
    "UserAgent"     : "",                            // (6.5+) UserAgent браузера пользователя, будет пустым, это это не WEB-приложение
    "Reflink"       : "",                            // (6.5+) referral link из браузера пользователя, будет пустым, это это не WEB-приложение
    "Lang"          : "",                            // (6.5+) язык приложения, может быть пустым
    "CID"           : 785                            // (6.5+) connection ID пользователя, всегда > 0, уникальное целое число
  }
...
]

80BF sc_adm_ad_users_list (5.15+)
// список пользователей домена для импорта, массив объектов. Количество полей может быть переменным, 
// в зависимости от того, указаны они для данного пользователя в домене, или нет. Заблокированные доменные пользователи специально не "вытаскиваются".
[
  {
    "sAMAccountName"    : "ivan", // ник пользователя
    "distinguishedName" : "...",  // полный путь в структуре домена
    ...
  }
...
]

80C0 sc_sync_private_history (5.16+)
// данные для синхронизации истории сообщений в привате. Массив объектов
{
  "UINWith" : 17, // (5.24+) пользователь, с которым был приватный разговор
  "Data"    :
    [
      {
        "UIN"        : 98,                   // кто отправил сообщение
        "dtUTC"      : "2015.09.01.17.18.35" // когда (UTC)
        "MsgType"    : 1,                    // тип сообщения
        "State"      : 3,                    // статус сообщения
        "Idx"        : 75,                   // уникальный индекс разговора (пары uin1/uin2)
        "Msg"        : "Hello!",             // тело сообщения
		"SenderType" : 0,                    // (7.2+) тип приложения-отправителя
		"Mod"        : 0,                    // (7.2+) модификатор сообщения, по умолчанию 0
		// два необязательных параметра, есть, если Mod = 1 (MSG_MODIFIER_MODIFIED)
		"ModUIN"     : 17,                   // кто изменил сообщение 
		"ModUTC"     : "2023.05.01.17.18.35" // когда было изменено сообщение (UTC)
      },
    ...
    ]
}

80C1 sc_adm_script_data (5.16+)
// серверный скрипт со всеми данными, админкоманда, ответ на 010D cs_adm_get_script
{
  "ID"                     : 17,                      // идентификатор скрипта, число
  "UINCreator"             : 0,                       // UIN пользователя, который создал скрипт
  "CreatorDisplayName"     : "Elisa",                 // имя пользователя, который создал скрипт
  "UINLastChanged"         : 6,                       // UIN пользователя, который последний раз менял скрипт
  "LastChangedDisplayName" : "Alexey Pikurov",        // имя пользователя, который последний раз менял скрипт
  "StatRunsCount"          : 17,                      // сколько раз выполнялся скрипт
  "ScriptPosition"         : 0,                       // позиция скрипта с очереди. 0 - самый первый
  "LastRunDuration"        : 96,                      // продолжительность последнего выполнения скрипта в миллисекундах
  "Checked"                : true,                    // проверен ли синтаксис скрипта
  "Enabled"                : true,                    // включен или выключен скрипт
  "dtLastStart"            : "11.11.2015.17.20.34",   // когда последний раз скрипт выполнялся
  "dtCreated"              : "09.10.2012.09.30.00",   // дата и время создания скрипта
  "dtLastModified"         : "17.05.2013.23.20.17",   // дата и время последнего изменения скрипта
  "ScriptName"             : "myOnPrivateMsg script", // название скрипта
  "SourceText"             : "..."                    // исходный текст скрипта
}

80C2 sc_adm_all_script_states (5.16+)
список скриптов со статусами, массив объектов
[
  {
    "ID"             : 17,                 // уникальный идентификатор скрипта, число
    "ScriptName"     : "mySuperScript",    // название скрипта, задаётся пользователем
    "Enabled"        : true,               // включен или выключен скрипт
    "ScriptPosition" : 0,                  // позиция скрипта в разделе, если их несколько. Первый - всегда 0
    "Event"          : "OnPrivateMessage"  // на какое событие возникает этот скрипт
  }
...
]

80C3 sc_adm_script_checked (5.16+)
проверен синтаксис скрипта
{
  "dt"     : "17.05.2013.23.20.17", // серверные дата и время выполнения команды
  "Ok"     : true,   // скрипт скомпилирован без ошибок? Если да, то true
  "ErrMsg" : "...",  // сообщение об ошибке, если при компиляции возникла ошибка
  "Row"    : 0,      // строка, в которой произошла ошибка
  "Col"    : 0       // позиция курсора в строке, где произошла ошибка
}

80C4 sc_adm_script_executed (5.16+)
скрипт выполнен по запросу, админкоманда
{
  "dt"     : "17.05.2013.23.20.17", // серверные дата и время выполнения команды
  "Ok"     : true,   // скрипт скомпилирован без ошибок? Если да, то true
  "ErrMsg" : "...",  // сообщение об ошибке, если при компиляции возникла ошибка
  "Row"    : 0,      // строка, в которой произошла ошибка
  "Col"    : 0,      // позиция курсора в строке, где произошла ошибка
  "Time"   : 34      // время выполнения скрипта в миллисекундах
}

80C5 sc_adm_script_created (5.16+)
новый серверный скрипт создан, админкоманда, ответ на 0114 cs_adm_script_create
{
  "ID"                     : 17,                      // идентификатор скрипта, число
  "Event"                  : "OnPrivateMessage",      // событие, на которое должен выполняться скрипт
  "UINCreator"             : 6,                       // UIN пользователя, который создал скрипт
  "CreatorDisplayName"     : "Alexey Pikurov",        // имя пользователя, который создал скрипт
  "UINLastChanged"         : 6,                       // UIN пользователя, который последний раз менял скрипт
  "LastChangedDisplayName" : "Alexey Pikurov",        // имя пользователя, который последний раз менял скрипт
  "StatRunsCount"          : 0,                       // сколько раз выполнялся скрипт
  "ScriptPosition"         : 0,                       // позиция скрипта с очереди. 0 - самый первый
  "LastRunDuration"        : 0,                       // продолжительность последнего выполнения скрипта в миллисекундах
  "Checked"                : true,                    // проверен ли синтаксис скрипта
  "Enabled"                : true,                    // включен или выключен скрипт
  "dtLastStart"            : "11.11.2015.17.20.34",   // когда последний раз скрипт выполнялся
  "dtCreated"              : "09.10.2012.09.30.00",   // дата и время создания скрипта
  "dtLastModified"         : "17.05.2013.23.20.17",   // дата и время последнего изменения скрипта
  "ScriptName"             : "myOnPrivateMsg script", // название скрипта
  "SourceText"             : "..."                    // исходный текст скрипта
}

80С6 sc_adm_script_deleted (5.16+)
скрипт только что удалён успешно, пришёл список новых идентификаторов позиций для скриптов (если они есть, если нет - список пустой)
{
  "Event" : "OnPrivateMessage", // название события, в разделе которого был удалён скрипт
  "17"  : 0,                    // новые позиции существующих скриптов. ID скрипта / позиция
  "94"  : 1,
  "214" : 2
}

80C7 sc_adm_script_saved (5.16+)
// скрипт успешно сохранён, админкоманда
{
  "ID"                     : 17,                      // идентификатор скрипта, число
  "UINLastChanged"         : 6,                       // UIN пользователя, который последний раз менял скрипт
  "LastChangedDisplayName" : "Alexey Pikurov",        // имя пользователя, который последний раз менял скрипт
  "dtLastModified"         : "17.05.2013.23.20.17"    // дата и время последнего изменения скрипта
}

80C8 sc_adm_script_log (5.16+)
добавить текстовую строчку в лог редактора скриптов
{
  "dt"  : "17.05.2013.23.20.17", // дата и время сообщения
  "Msg" : "Bla-bla-bla",         // текст сообщения, может быть многострочным
  "Tag" : "TESTTAG"              // тег сообщения, текстовая строка, может быть пустой
}

80C9 sc_kanban_projects_list (5.17+)
список проектов kanban доски, массив объектов, ответ на 0117 cs_kanban_get_projects_list
[
  {
    "ID"          : 1,                     // уникальный идентификатор проекта, число
    "UINOwner"    : 74,                    // (5.20+) UIN владельца проекта
	"DisplayName" : "Administratius",      // (8.9+) имя пользователя в чате
    "Name"        : "MyChat",              // название проекта
    "dtCreated"   : "17.05.2013.23.20.17", // дата и время создания проекта
    "dtDeadLine"  : "17.05.2014.18.00.00", // дата и время дедлайна. Если дедлайна нет, то "01.01.3000.00.00.00"
    "dtClosed"    : "01.01.3000.00.00.00", // дата и время закрытия проекта
    "State"       : 0,                     // статус проекта, число, PROJECT_STATE_OPEN=0, PROJECT_STATE_CLOSED=1
	"Description" : "Bla-bla-bla",         // описание проекта
	"AccessType"  : 0,                     // (8.9+) тип доступа, 0 - для всех, 1 - только по группам
	"RightsSet"   : "101010001011111.."    // (8.9+) список прав доступа к конкретному проекту
  }
...
]

80CA sc_kanban_stages_list (5.17+)
// список этапов kanban-доски, массив объектов
{
  "ID"   : 83, // идентификатор объекта
  "Data" : [
    {
      "ID"        : 78,                   // идентификатор этапа
      "Name"      : "В процессе",         // название этапа
      "Desc"      : "(в данный момент)",  // описание этапа
      "Position"  : 0,                    // позиция по порядку
      "Type"      : 0,                    // (6.0+) тип этапа, 0 - typical, 1 - done, 2 - archive
	  "TaskCount" : 9,                    // (2023.7+) сколько задач находится в этапе
	  "GroupsID"  : "1,7,8"               // (8.9+) список групп, у которых есть доступ к этапу
    }
  ...
  ]
}

80CB sc_kanban_tags_list (5.17+)
список тегов kanban-доски, ответ на 011A cs_kanban_get_tags_list
{
  "1" : "сайт",     // пары ID/название
  "2" : "почта",
  "3" : "форум",
  "4" : "багфикс",
...
}

80CC sc_adm_active_conf_list (5.17+)
список работающих конференций, админкоманда, ответ на запрос 011B cs_adm_get_active_conf_list. Массив объектов
[
  {
    "UID"                : 17,                    // числовой идентификатор конференции
    "Name"               : "Main channel",        // название конференции
    "Topic"              : "Bla-bla-bla",         // тема конференции
    "ConfType"           : 1,                     // (8.0+) тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
    "Password"           : "",                    // пароль на вход в конференцию
    "ConnectAllFlag"     : true,                  // присоединять абсолютно всех пользователей в эту конференцию, 
                                                  // опциональный параметр, если есть группа с индексом 0, которая включается в эту конфу
    "dtUTCCreated"       : "01.01.1900.00.00.00"  // (8.0+) дата и время первичного создания конференции в UTC

    "CreatorUIN"         : 94,                    // UIN создателя конференции (если 0 - автосоздаваемая конференция)
    "CreatorDisplayName" : "John Smith",          // имя создателя конференции
	"TotalUsers"         : 72,                    // (2023.2+) сколько пользователей всего находится в конференции
    "CountUsers"         : 2,                     // сколько пользователей онлайн находится в конференции
    "CountMessages"      : 93                     // сколько сообщений было отправлено в конференции

// deprecated 2023.2+
// "BlockCloseFlag"     : false,                 // запретить выход из конференции
// deprecated 8.0+
//    "CreatorSex"         : 0,                     // пол создателя конференции
//    "Created"            : "11.11.2015.17.20.34", // дата и время создания конференции
//    "SyncLogsFlag"       : true,                  // синхронизация переписки
//    "InvisibleFlag"      : false                  // (6.1+) скрытая конференция
  }
...
]

80CD sc_adm_conf_users_list (5.17+)
// полный список пользователей конференции, админкоманда, ответ на запрос 011D cs_adm_get_users_in_conf. Массив объектов
[
  {
    "UIN"         : 17,                // идентификатор пользователя, число
    "DisplayName" : "Monica Bellucci", // отображаемое имя
    "Sex"         : 2,                 // пол пользователя
    "State"       : 0,                 // текущий статус (свободен/занят/нет на месте)
    "Avatar"      : 18,                // аватар пользователя
    "Moder"       : true,              // true, если пользователь модератор в этой конференции
	"CanKick"     : false              // true, если пользователя можно выгнать из конфы,
	                                   // если false - это значит, что он попадает в конфу согласно включаемых групп 
									   // или в конфу входит группа с индексом 0 (режим "Включать всех")
  }
...
]

80CE sc_kanban_tasks_list (5.17+)
// список задач kanban доски. Массив объектов
[
  {
    "ID"                   : 17,                    // идентификатор задачи, число
    "IDStage"              : 23,                    // идентификатор этапа
    "UINOwner"             : 22,                    // идентификатор пользователя, который поставил задачу
    "DisplayNameOwner"     : "John Smith",          // имя пользователя, поставившего задачу
    "SexOwner"             : 1,                     // пол
    "AvatarOwner"          : 83,                    // аватар
    "UINPerformer"         : 29,                    // (5.21+) идентификатор исполнителя
    "DisplayNamePerformer" : "Paul Brown",          // (5.21+) имя пользователя-исполнителя
    "SexPerformer"         : 1,                     // (5.21+) пол исполнителя
    "AvatarPerformer"      : 83,                    // (5.21+) аватар исполнителя
    "Name"                 : "Task",                // название задачи
    "Desc"                 : "New task",            // описание задачи
    "Priority"             : 0,                     // важность задачи, приоритет
    "dtCreated"            : "dd.mm.yyyy.hh.nn.ss", // дата и время создания задачи
    "dtDeadLine"           : "dd.mm.yyyy.hh.nn.ss", // дата и время дедлайна, если есть. Если нет - 01.01.3000 года
    "dtClosed"             : "dd.mm.yyyy.hh.nn.ss", // дата и время закрытия задачи, если нету - 01.01.3000 года
    "State"                : 0,                     // статус задачи
    "CommentsCount"        : 0,                     // количество комментариев к задаче
    "Tags"                 : "one,two,three"        // (6.0+) теги для задачи, если есть, через запятую
  }
...
]

80D0 sc_kanban_project_created (5.17+)
// новый проект kanban-доски успешно создан
{
  "ID"          : 1,                     // уникальный идентификатор проекта, число
  "UINOwner"    : 74,                    // (5.20+) UIN владельца проекта
  "Name"        : "MyChat",              // название проекта
  "dtCreated"   : "17.05.2013.23.20.17", // дата и время создания проекта
  "dtDeadLine"  : "17.05.2014.18.00.00", // дата и время дедлайна. Если дедлайна нет, то "01.01.3000.00.00.00"
  "dtClosed"    : "01.01.3000.00.00.00", // дата и время закрытия проекта
  "State"       : 0,                     // статус проекта, число
  "Description" : "Bla-bla-bla"          // описание проекта
}

80D1 sc_kanban_stage_created (5.17+)
новый этап kanban-доски успешно создан
{
  "ID" : 17    // уникальный идентификатор только что созданного этапа
}

80D2 sc_media_offer (5.17+)
медиа-запрос к клиенту
{
  "UIN" : 21,   // от какого клиента идёт запрос
  "MID" : 78,   // идентификатор media-канала, где будут общаться пользователи
  "SDP" : "..." // текстовые данные запроса
}

80D3 sc_media_answer (5.17+)
ответ на запрос media offer
{
  "UIN" : 17,   // от какого клиента идёт ответ
  "MID" : 78,   // идентификатор media-канала, где будут общаться пользователи
  "SDP" : "..." // текстовые данные ответа
}

80D4 sc_media_ice_candidate (5.17+)
ответ на запрос ответ cs_media_ice_candidate
{
  "UIN"       : 17,   // от какого клиента идёт ответ
  "MID"       : 78,   // идентификатор media-канала, где будут общаться пользователи
  "CANDIDATE" : "..." // текстовые данные ответа
}

80D5 sc_media_change_settings (5.17+)
изменение настроек медиа-данных пользователя (аудио/видео)
{
  "UIN"      : 6,     // от какого клиента идёт запрос
  "MID"      : 55,    // идентификатор media-канала, где общаются пользователи
  "Settings" : "..."  // собственно строка настроек
}

80D6 sc_media_ready (5.17+)
NodeWebKit клиента успешно стартовал и работает
{
  "UIN" : 17 // идентификатор пользователя, от кого пришло уведомление
}

deprecated (7.8+): 80D7 sc_media_incoming_call_missed (5.17+)
пропущен входящий медиазвонок от указанного пользователя, вы в данный момент общались с другим человеком
{
  "UIN" : 17 // идентификатор пользователя
}

80D8 sc_adm_client_options_presets_list (5.17+)
// список шаблонов клиентских настроек, админкоманда, ответ на запрос 122C cs_adm_get_client_options_presets. Массив объектов
[
  {
    "ID"        : 10,          // идентификатор шаблона, число
    "Name"      : "Standard",  // название шаблона
    "Body"      : "...",       // содержимое шаблона, JSON объект, формат объекта как в команде sc_apply_client_settings
    "CRC32"     : 7236452,     // контрольная сумма шаблона
    "RolesList" : "1,4,17"     // список ролей (групп прав), для кого применять шаблон. Если пустой - не применять никому
  }
...
]

80D9 sc_adm_client_options_preset_created (5.17+)
// набор настроек клиента успешно создан, ответ на команду 122E cs_adm_create_client_options_preset
{
  "ID"        : 10,     // идентификатор шаблона, число
  "CRC32"     : 7236452 // контрольная сумма шаблона
}

80DA sc_adm_client_options_preset_updated (5.17+)
// набор настроек успешно отредактирован
{
  "ID"        : 10,     // идентификатор шаблона, число
  "CRC32"     : 7236452 // контрольная сумма шаблона
}

80DB sc_apply_client_settings (5.17+)
применить клиентские настройки
{
  "ID"                                 : 10,     // идентификатор шаблона, число
  "CRC32"                              : 7236452 // контрольная сумма шаблона

  "NetworkReconnectTime"               : 10,    // время в секундах между попытками переподключения при "отвале" связи
  "NetworkSecured"                     : true,  // использовать или нет шифрование трафика при подключении к серверу
  "NetworkProxyType"                   : 0,     // тип прокси сервера: 0 - не используется, 1 - SOCKS4, 2 - SOCKS5
  "NetworkProxyHost"                   : "",    // адрес прокси-сервера
  "NetworkProxyPort"                   : 80,    // порт прокси-сервера
  "NetworkProxyAuth"                   : false, // используется ли аутентификация на прокси-сервере
  "NetworkProxyUserName"               : "",    // имя пользователя (логин) для прокси-аутентификации
  "NetworkProxyUserPass"               : "",    // пароль пользователя для прокси-аутентификации

  "GeneralWindowsStart"                : true,  // автоматически запускать MyChat Client вместе с Windows
  "GeneralConfirmExit"                 : true,  // спрашивать подтверждение перед выходом из программы
  "GeneralStartPassword"               : false, // спрашивать пароль при каждом подключении к серверу
  "GeneralDailyUpdatesCheck"           : true,  // еженедельно проверять наличие новой версии MyChat на сайте разработчиков
  "GeneralOpenPrivateByOneClick"       : true,  // открывать приваты одинарным кликом
  "GeneralFadeWindows"                 : true,  // использовать эффект "проявки" при показе диалоговых окон
  "GeneralDoubleClickPagesClose"       : true,  // закрывать вкладки разговоров двойным щелчком мышки
  "GeneralMainWindow"                  : 0,     // что делать с главным окном программы при старте: 0 - ничего не делать, 1 - прятать окно в трей, 2 - развернуть на весь экран;
  "GeneralShowUsersCounterOnTheTabs"   : true,  // показывать количество пользователей на закладках конференций
  "GeneralShowMainToolsPanel"          : true,  // показывать главную панель инструментов
  "GeneralShowSendButton"              : false, // показывать кнопку отправки сообщения или нет
  "GeneralCtrlEnterSend"               : false, // отправка сообщений по нажатию Ctrl+Enter
  "GeneralTipOfTheDayNum"              : 8,     // номер "Совета дня" в панели советов (Shift+F3)
  "GeneralShowTipOfTheDay"             : false, // показывать панель советов или нет
  "GeneralDisableAvatars"              : false, // выключить аватары в интерфейсе MyChat Client
  "GeneralQuickMsgAutoSend"            : true,  // мгновенная отправка в чат шаблонных сообщений
  "GeneralSpellCheck"                  : true,  // автоматическая проверка правописания в чате
  "GeneralAutoHideMainWindow"          : true,  // автоматическое скрытие окна MyChat Client в трей при бездействии пользователя

  "EventsShowPopupTrayWindow"          : true , // показывать всплывающее окошко уведомлений в трее
  "EventsPopupOnNewBBS"                : false, // показывать окно MyChat Client на переднем плане при появлении сообщения на доске объявлений
  "EventsPopupOnChannelMessage"        : false, // показывать окно MyChat Client на переднем плане при получении сообщения в конференции
  "EventsPopupOnPrivateMessage"        : false, // показывать окно MyChat Client на переднем плане при получении сообщения в привате
  "EventsDateTimeStampFormat"          : "[hh:mm:ss]", // формат даты и времени для отображения сообщений
  "EventsTimeStamp"                    : true,  // ставить или нет штамп даты и времени в сообщениях
  "EventsTrayBBSMsg"                   : true,  // показывать всплывающее окошко уведомлений в трее при появлении сообщения на доске объявлений
  "EventsTrayChMsg"                    : true,  // показывать всплывающее окошко уведомлений в трее при получении нового сообщения в конференции
  "EventsTrayPvMsg"                    : true,  // показывать всплывающее окошко уведомлений в трее при получении нового сообщения в привате
  "EventsTrayDontHide"                 : false, // не убирать автоматически окошко уведомлений в системном трее
  "EventsTrayWindowDuration"           : 3,     // время в секундах, в течение которого показывается окошко уведомлений в трее, перед тем как исчезнуть
  "EventsOpenPrivateOnPersonalOrAlert" : false, // принудительно открывать приват при получении персонального или важного сообщения в конференции


  "HotKeysHotKeyMyChat"                : "<Win>+F12", // комбинация "быстрых" клавиш для вызова окна чата из трея
  "HotKeysHotKeyMyChatScreenShot"      : "<Win>+F9",  // комбинация "быстрых" клавиш для снятия скриншота и отправки его в чат
  "HotKeysUseGlobalHotKeys"            : true,        // использовать или нет глобальные "горячие клавиши"
  "HotKeysEscHide"                     : true,        // прятать окно MyChat Client в трей по нажатию клавиши Esc

  "SmileysSmileysSet"                  : "extended",  // название используемого набора смайлов (classic, extended, newyear, skype, static)

  "SoundsAllSoundsOff"                 : false,       // отключить все используемые звуки в программе
  "SoundsSndNewMsg"                    : true,        // включить звук нового сообщения на доске объявлений
  "SoundsSndBadWord"                   : true,        // включить звук заблокированного слова или выражения
  "SoundsSndLeave"                     : true,        // включить звук выхода из конференции
  "SoundsSndJoin"                      : true,        // включить звук входа в текстовую конференцию
  "SoundsSndChatType"                  : true,        // включить звук ввода текста
  "SoundsSndChatBS"                    : true,        // включить звук правки текста (BS, Del)
  "SoundsSndStatus"                    : true,        // включить звук статусных сообщений чате (например, смены темы конференции или назначения банов)
  "SoundsSndError"                     : true,        // включить звук ошибки
  "SoundsSndPrivate"                   : true,        // включить звук нового сообщения в привате
  "SoundsSndChatRet"                   : true,        // включить звук отправки сообщения клавишей Enter
  "SoundsSndSignal"                    : true,        // включить звук сигнала будильника в привате
  "SoundsSndChat"                      : true,        // включить звук сообщения в текстовой конференции
  "SoundsSndBroadcast"                 : true,        // включить звук входящего оповещения (Ctrl+F9)
  "SoundsSndFilesExchangeRequest"      : true,        // включить звук запроса на приём файлов
  "SoundsSndFilesExchangeDone"         : true,        // включить звук окончания сеанса приёма либо передачи файлов
  "SoundsSndScreenShot"                : true,        // включить звук снятия скриншота
  "SoundsSndMediaBusy"                 : true,        // включить звук сигнала "занято" для медиа звонка
  "SoundsSndMediaCall"                 : true,        // включить звук исходящего медиа звонка
  "SoundsSndMediaCallReject"           : true,        // включить звук отказа от принятия входящего медиа звонка
  "SoundsSndMediaEndCall"              : true,        // включить звук окончания медиа звонка
  "SoundsSndMediaIncomingCall"         : true,        // включить звук входящего медиа звонка

  "SoundsSndNewMsgFile"               : "newmsg.mp3",            // файл звука нового сообщения на доске объявлений
  "SoundsSndBadWordFile"              : "badword.mp3",           // файл звука "плохих слов" фильтра нецензурных выражений
  "SoundsSndLeaveFile"                : "leave.mp3",             // файл звука пользователей, которые покидают конференцию
  "SoundsSndJoinFile"                 : "join.mp3",              // файл звука пользователей, которые входят в конференцию
  "SoundsSndChatTypeFile"             : "chattype.mp3",          // файл звука набора сообщения
  "SoundsSndChatBSFile"               : "chatbs.mp3",            // файл звука нажатия BS либо Del при наборе сообщения
  "SoundsSndStatusFile"               : "status.mp3",            // файл звука статусного сообщения
  "SoundsSndErrorFile"                : "error.mp3",             // файл звука сообщения об ошибке
  "SoundsSndPrivateFile"              : "private.mp3",           // файл звука входящего приатного сообщения
  "SoundsSndChatRetFile"              : "chatret.mp3",           // файл звука нажатия "Enter" при отправке сообщеия в чат
  "SoundsSndSignalFile"               : "signal.mp3",            // файл звука "будильника" в привате
  "SoundsSndChatFile"                 : "chat.mp3",              // файл звука сообщения в текстовой конференции
  "SoundsSndBroadcastFile"            : "broadcast.mp3",         // файл звука входящего оповещения
  "SoundsSndScreenShotFile"           : "screenshot.mp3",        // файл звука снятия скриншота
  "SoundsSndFilesExchangeRequestFile" : "filesrequest.mp3",      // файл звука запроса на передачу файлов
  "SoundsSndFilesExchangeDoneFile"    : "filesdone.mp3",         // файл звука окончания передачи файлов
  "SoundsSndMediaBusyFile"            : "mediabusy.mp3",         // файл звука "занято" для медиа звонка
  "SoundsSndMediaCallFile"            : "mediacall.mp3",         // файл звука исходящего медиа звонка
  "SoundsSndMediaCallRejectFile"      : "mediacallreject.mp3",   // файл звука отмены входящего медиа звонка
  "SoundsSndMediaEndCallFile"         : "mediaendcall.mp3",      // файл звука окончания медиа звонка
  "SoundsSndMediaIncomingCallFile"    : "mediaincomingcall.mp3", // файл звука входящего медиа звонка

  "SysEventsShowSysEvents"          : true, // показывать системные сообщения в конференциях чата
  "SysEventsEnterTxtxCh"            : true, // показывать "*** Пользователь вошёл в канал"
  "SysEventsLeaveTxtxCh"            : true, // показывать "*** Пользователь вышел из канала"
  "SysEventsQuitChat"               : true, // показывать "*** Пользователь отключился от сервера"
  "SysEventsChangeTheme"            : true, // показывать "*** Пользователь установил новую тему канала - "Theme""
  "SysEventsBanUser"                : true, // показывать "*** Пользователь наказал пользователя "User2""
  "SysEventsTurnOut"                : true, // показывать "*** Пользователь выгнал пользователя "User2" из канала"
  "SysEventsIgnore"                 : true, // показывать "*** Пользователь проигнорировал ваше сообщение"

  "SysEventsConnectionLost"         : true, // показывать "*** Произошёл обрыв связи, вы отключены от сервера"
  "SysEventsConnectionRestored"     : true, // показывать "*** Связь восстановлена"

  "SysEventsDisableEmotions"        : false, // отключить использование графических смайликов
  "SysEventsEnableSmileysAnimation" : true,  // включить анимацию смайликов
  "SysEventsAutoreplaceSmileys"     : true,  // автозамена текстовых смайликов на графические
  "SysEventsUseMessagesFontLayouts" : true,  // использовать шрифтовую разметку сообщений
  "SysEventsLoadHistoryType"        : 2,     // тип загрузки истории сообщений в привате (0 - не загружать, 1 - загружать последние N сообщений, 2 - загружать последние N дней)
  "SysEventsHistory_1_Num"          : 30,    // сколько последних сообщений загружать в приват
  "SysEventsHistory_2_Num"          : 3,     // за сколько дней загружать историю сообщений в приват
  "SysEventsAutoFillBroadcastUsersList" : true, // заполнять автоматически список людей при создании оповещения
  "SysEventsShowImagesInChat"       : true,  // показывать изображения в тексте чата

  "LogsServer"            : true, // протоколировать соединение с сервером
  "LogsTxtChannels"       : true, // протоколировать сообщения в текстовых конференциях
  "LogsPrivates"          : true, // протоколировать сообщения в приватах
  "LogsFiles"             : true, // протоколировать сеансы обмена файлами
  "LogsMaxConsoleHistory" : 100,  // сколько сообщений (максимально) показывать в истории консоли
  "LogsMaxChannelHistory" : 100,  // сколько сообщений (максимально) показывать в окне конференции
  "LogsMaxPrivateHistory" : 100,  // сколько сообщений (максимально) показывать в окне приватного разговора

  "SecurityOptionsPassword" : "", // пароль на вход в раздел настроек. Если установить пустой, то предыдущий пароль будет автоматически убран

  "LanguagesLanguage"       : "russian.ini", // тип языка интерфейса и системных сообщений. Может быть "russian.ini", "english.ini" и "ukrainian.ini"
  "SendFilesInputFilesDir" : "путь на локальном диске", // стандартный путь для приёма файлов от других пользователей чата. 
                                                        // например, "C:\MyChatFiles\". Путь указан для примера, если его не существует, 
														// будет изменён на стандартный
  "SendFilesBasePort"                       : 10004,             // порт встроенного FTP сервера для приёма файлов (управляющий)
  "SendFilesDataPort"                       : 10005,             // порт встроенного FTP сервера для приёма файлов (данные)
  "SendFilesBufferSize"                     : 5,                 // размер буфера при приёме-передаче файлов через сервер: 0 - 8KB, 1 - 16KB, 2 - 32KB, 3 - 64KB, 4 - 128KB, 5 - 256KB, 6 - 512KB
  "SendFilesSayYes"                         : true,              // принимать файлы от пользователей из контактов (общих или личных), не задавая вопросов
  "SendFilesRememberSelectInputFilesFolder" : true,              // запоминать выбранную папку для каждого пользователя
  "SendFilesRandomPorts"                    : false,             // использовать случайные порты для передачи файлов из указанного диапазона или нет
  "SendFilesRandomPortStart"                : 10004,             // начало диапазона случайных портов
  "SendFilesRandomPortEnd"                  : 10104,             // конец диапазона случайных портов
  "SendFilesRenameRecievedDuplicates"       : true,              // переименовывать файлы-дубликаты при приёме, не перезаписывая поверху

  "Colorscolor_ch_pv_back"      : 13758972,  // цвет фона конференций и приватов
  "Colorscolor_inp_back"        : 13758972,  // цвет фона строки ввода сообщения
  "Colorscolor_userslist_back"  : 13758972,  // цвет фона списка пользователей в конференциях
  "Colorscolor_userslist_text"  : 0,         // цвет текста списка пользователей в конференциях
  "Colorscolor_own_nick_text"   : 255,       // цвет собственного ника в сообщениях
  "Colorscolor_active_link"     : 255,       // цвет активной ссылки в конференциях и приватах
  "Colorscolor_visited_link"    : 8388736,   // цвет открытой ссылки в конференциях и приватах
  "Colorscolor_timestamp"       : 10526880,  // цвет штампа даты и времени сообщения
  "Colorscolor_hello_nick"      : 13209,     // цвет ника, к которому обращаются в чате
  "Colorscolor_users_nick_text" : 16711680,  // цвет ников пользователей в сообщениях

  "UpdateUseAccountForUpdates"                         : false, // использовать специальную учётную запись для обновления MyChat Client
  "UpdateUpdateLogin"                                  : "",    // windows-логин пользователя для обновления
  "UpdateUpdatePassword"                               : "",    // пароль windows-пользователя для обновления
  "UpdateUpdateDomain"                                 : "",    // имя домена для обновления, если пользователь доменный
  "UpdateForceUpdateFromMyChatServerInActiveDirectory" : false, // использовать технологию обновления прямо с MyChat Server, даже если используется доменная авторизация (вместо MSI через GPO)

  "SpecialMessagesFontSize"     : 1, // размер шрифта для сообщений (0 - маленький, 1 - обычный, 2 - большой, 3 - очень большой)
  "SpecialToolsPanelType"       : 1, // тип главной панели инструментов (1 - большая, 2 - маленькая)
  "SpecialPagesPanel"           : 3, // ориентация панели с закладками (1 - вверху, 2 - справа, 3 - снизу, 4 - слева)

  "AdditionalPrivateInfoFields" : "EMAIL,WORK_PHONE,WORK_DIVDEPT,HOME_BIRTHDAY,WORK_WWW", // список информационных полей, которые показываются в приватном чате
  "AdditionalProgramCaption"    : "%program% %ver% - %nickname% [%company%] (%state%)",   // стиль заголовка программы, что там показывать
  "AdditionalSystemTrayText"    : "%program% (v.%ver%)
                                  "%state%"
                                  %745%: "%server%", %746%: %secured%"                    // текст в системном трее, может быть многострочный текст, с переводами строк

  "InterfaceTrayIconListNumber" : 0 // тип иконки в трее: 0 - стандартная, 1 - вариант 2, 2 - вариант 3
}

80DC sc_log_message (5.18+)
сообщение с сервера, обычная строка либо многострочный текст, которое следует показать в консоли и записать в серверный лог
{
  "Msg": "bla-bla-bla" // строка сообщения
}

80DD sc_adm_new_user_group_created (5.18+)
уведомление о том, что новая группа пользователей успешно создана
{
  "ID" : 17 // уникальный идентификатор группы, целое число
}

80DE sc_adm_users_groups_list (5.18+)
список групп пользователей, масив объектов
[
  {
    "Name"       : "bla-bla-bla", // название группы пользователей
    "ID"         : 17,            // идентификатор группы, целое число
	"AccessType" : "admin"        // (8.9+) тип доступа (видимость), можно совмещать, указав через запятую:
	                              // any, chat, kanban, forum, admin, iapi, msl
  },
....
]

80DF sc_adm_group_users_list (5.18+)
список пользователей в группе, массив объектов
[
  {
    "DisplayName" : "John Smith", // отображаемое имя пользователя
    "UIN"         : 17            // уникальный идентификатор пользователя, целое число
  },
....
]

80E0 sc_adm_integration_tool_options (5.19+)
// настройки интеграции инструмента (phpbb... etc.)
{
  "name"     : "phpbb3",     // название инструмента, от него зависит набор настроек
  "enabled"  : true,         // включен или выключен интеграционный инструмент
  "template" : "bla-bla-bla" // текст шаблона сообщения
  "uins"     : "17,3,4",     // список UIN-ов пользователей, которым будет отправляться сообщение, через запятую
  "uids"     : "",           // список UID-ов автосоздаваемых конференций, в которых будет отправляться сообщение, через запятую
  "groupids" : ""            // список ID групп пользователей, для которых будет отправляться сообщение, через запятую
}

80E1 sc_kanban_task_created (5.20+)
новый проект kanban-доски успешно создан
{
  "ID"                   : 1,                     // уникальный идентификатор задачи, число
  "IDStage"              : 23,                    // идентификатор этапа
  "UINOwner"             : 6,                     // идентификатор создателя задачи
  "DisplayNameOwner"     : "Alexey",              // отображаемое имя создателя задачи
  "SexOwner"             : 1,                     // пол создателя задачи
  "AvatarOwner"          : 87,                    // аватар создателя задачи
  "UINPerformer"         : 22,                    // идентификатор пользователя, который будет выполнять задачу
  "DisplayNamePerformer" : "Maria",               // отображаемое имя создателя задачи
  "SexPerformer"         : 2,                     // пол исполнителя задачи
  "AvatarOwner"          : 87,                    // аватар исполнителя задачи
  "Name"                 : "Task",                // название задачи
  "Desc"                 : "New task",            // описание задачи
  "Priority"             : 0,                     // важность задачи, приоритет
  "dtCreated"            : "17.05.2013.23.20.17", // дата и время создания задачи
  "dtDeadLine"           : "dd.mm.yyyy.hh.nn.ss", // дата и время дедлайна, если есть. Если нет - 01.01.3000 года
  "State"                : 0                      // статус задачи
}

80E2 sc_kanban_task_comment_added (5.20+)
новый комментарий к задаче успешно добавлен
{
  "ID"               : 17,                    // уникальный идентификатор задачи, число
  "CommentType"      : 0,                     // тип комментария, число
  "CommentText"      : "Bla-bla-bla",         // текст комментария
  "dtPosted"         : "17.05.2013.23.20.17", // дата и время создания комментария
  "IDComment"        : 987,                   // уникальный идентификатор комментария, число
  "UINOwner"         : 6,                     // идентификатор создателя задачи
  "DisplayNameOwner" : "Alexey",              // отображаемое имя создателя задачи
  "SexOwner"         : 1,                     // пол создателя задачи
  "AvatarOwner"      : 87,                    // аватар создателя задачи
  "Files":                                    // (8.1+) список файлов, набор вложенных объектов, может быть пустым
  {
      "file_name":                             // название файла
  	  {
        Hash: "df5df54gdf5g4df5g4df4gd5f64gdsf564g6df54g", // контрольная сумма файла
        Size: "654765858"                                  // размер файла в байтах
      },
     ...
  }
}

80E3 sc_kanban_task_comments_list (5.20+)
список комментариев к задаче на kanban доске
{
  "ID"   : 18, // идентификатор задачи
  "Data" :  [
    {
      "IDComment"        : 987,                   // уникальный идентификатор комментария, число
      "UINOwner"         : 6,                     // идентификатор создателя задачи
      "CommentType"      : 0,                     // тип комментария, число
      "CommentText"      : "Bla-bla-bla",         // текст комментария
      "dtPosted"         : "17.05.2013.23.20.17", // дата и время создания комментария
      "DisplayNameOwner" : "Alexey",              // отображаемое имя создателя задачи
      "SexOwner"         : 1,                     // пол создателя задачи
      "AvatarOwner"      : 87,                    // аватар создателя задачи
      "Files":                                    // (8.1+) список файлов, набор вложенных объектов, может быть пустым
      {
          "file_name":                             // название файла
    	    {
            Hash: "df5df54gdf5g4df5g4df4gd5f64gdsf564g6df54g", // контрольная сумма файла
            Size: "654765858"                                  // размер файла в байтах
          },
         ...
      }
    },
  ...
  ]
}

80E4 sc_adm_get_check_domains_list (5.20+)
список доменов с адресами, пользователи которых могут подключаться к серверу, массив объектов
[
  {
    "Host"               : "192.168.10.1",   // имя хоста или IP адрес домена
    "Domain"             : "mycompany.com",  // название домена
    "Port"               : 389,              // номер порта для LDAP соединения
    "Secured"            : false,            // использовать шифрованное соединение или нет
	"UserLogin"          : "admin",          // (7.1+) логин Windows-пользователя, у которого есть доступ к домену для проведения синхронизации
	"Sync"               : true,             // (7.1+) использовать автоматическую синхронизацию или нет
	"MakeCommonContacts" : true,             // (7.1+) формировать общий список контактов на основе структуры домена (OU)
	"MakePositions"      : true              // (7.1+) формировать должности на основе данных из домена
  },
....
]

80E5 sc_personal_options_list (5.21+)
// список персональных настроек клиента, JSON объект
{
...
}

80E6 sc_kanban_event (5.21+)
уведомление о событии на kanban-доске для подключенных к ней клиентов
{
  "What"      : 0, // 0 - project (ProjectID), 1 - stage (ProjectID + StageID), 2 - task (ProjectID + TaskID), 3 - comment (ProjectID + TaskID + CommentID)
  "Action"    : 0, // 0 - created, 1 - changed, 2 - deleted

  "ProjectID" : 1,  // идентификатор проекта
  "StageID"   : 2,  // идентификатор этапа
  "TaskID"    : 3,  // идентификатор задачи
  "CommentID" : 4   // идентификатор комментария
}

80E7 sc_kanban_project_info (5.21+)
информация о kanban-проекте, ответ на запрос 014C cs_kanban_get_project_info
{
  "ID"          : 94,                    // уникальный идентификатор проекта
  "Name"        : "SuperProject",        // название проекта
  "dtCreated"   : "02.01.2015.00.17.32", // дата и время создания проекта в формате dd.mm.yyyy.hh.nn.ss
  "dtDeadLine"  : "01.01.2016.17.24.30", // дата и время дедлайна, если его нет, то "01.01.3000.00.00.00"
  "dtClosed"    : "02.01.2016.17.24.30", // дата и время закрытия проекта, если его нет, то "01.01.3000.00.00.00"
  "State"       : 0,                     // статус проекта, пока не используется, равен 0
  "Description" : "Bla-bla-bla",         // описание проекта
  "UINOwner"    : 21,                    // (7.8+) UIN создателя проекта
  "AccessType"  : 0,                     // (8.9+) тип доступа к проекту, 0 - для всех, 1 по группам
  "Tags"        :                        // (6.0+) объект "теги"
    {
      "one"     : 1,                     // (6.0+) название тега/количество вхождений в проект
      "two"     : 13,
      "example" : 21
    }
}

80E8 sc_kanban_task_info (5.21+)
// информация о задаче на kanban-доске, ответ на запрос 014D cs_kanban_get_task_info (5.21+)
{
  "ID"                   : 1,                     // уникальный идентификатор задачи, число
  "IDStage"              : 23,                    // идентификатор этапа
  "UINPerformer"         : 22,                    // идентификатор пользователя, который будет выполнять задачу
  "DisplayNamePerformer" : "Maria",               // отображаемое имя создателя задачи
  "SexPerformer"         : 2,                     // пол исполнителя задачи
  "AvatarPerformer"      : 87,                    // аватар исполнителя задачи
  "Name"                 : "Task",                // название задачи
  "Desc"                 : "New task",            // описание задачи
  "Priority"             : 0,                     // важность задачи, приоритет
  "dtCreated"            : "17.05.2013.23.20.17", // дата и время создания задачи
  "dtClosed"             : "dd.mm.yyyy.hh.nn.ss", // дата и время закрытия задачи, если есть. Если нет - 01.01.3000 года
  "dtDeadLine"           : "dd.mm.yyyy.hh.nn.ss", // дата и время дедлайна, если есть. Если нет - 01.01.3000 года
  "State"                : 0,                     // статус задачи
  "Tags"                 : "bugs,test,info",      // (6.0+) текстовые теги проекта, если есть, через запятую
  "UINCreator"           : 17,                    // (6.0+) идентификатор пользователя, который создал задачу
  "Files":                                        // (7.2+) список файлов, набор вложенных объектов, может быть пустым
  {
      "file_name":                                // название файла
  	  {
        Hash: "df5df54gdf5g4df5g4df4gd5f64gdsf564g6df54g", // контрольная сумма файла
        Size: "654765858"                                  // размер файла в байтах
      },
     ...
  }
}

80E9 sc_adm_allowed_and_blocked_plugins (5.21+)
список разрешённых и запрещённых клиентских плагинов
{
  "Allowed" : "AntiCAPS,Beeper",  // список плагинов, что разрешены к использованию, через запятую
  "Blocked" : ""                  // список запрещённых клиентских плагинов
}

80EA sc_adm_script_info (5.21+)
краткая информация о скрипте, ответ на 0152 cs_adm_get_script_info
{
  "ID"                     : 17,                      // идентификатор скрипта, число
  "UINCreator"             : 0,                       // UIN пользователя, который создал скрипт
  "CreatorDisplayName"     : "Elisa",                 // имя пользователя, который создал скрипт
  "UINLastChanged"         : 6,                       // UIN пользователя, который последний раз менял скрипт
  "LastChangedDisplayName" : "Alexey Pikurov",        // имя пользователя, который последний раз менял скрипт
  "StatRunsCount"          : 17,                      // сколько раз выполнялся скрипт
  "LastRunDuration"        : 96,                      // продолжительность последнего выполнения скрипта в миллисекундах
  "Enabled"                : true,                    // включен или выключен скрипт
  "dtLastStart"            : "11.11.2015.17.20.34",   // когда последний раз скрипт выполнялся
  "dtCreated"              : "09.10.2012.09.30.00",   // дата и время создания скрипта
  "dtLastModified"         : "17.05.2013.23.20.17",   // дата и время последнего изменения скрипта
  "ScriptName"             : "myOnPrivateMsg script"  // название скрипта
}

80EB sc_kanban_last_performers_list (5.21+)
список последних исполнителей задач на kanban-доске, ответ на запрос 0153 cs_kanban_get_last_performers, массив объектов
[
{
  "UIN"         : 22,       // идентификатор пользователя
  "DisplayName" : "Maria",  // отображаемое имя пользователя
  "Sex"         : 2,        // пол пользователя
  "Avatar"      : 87        // аватар пользователя
},
...
]

80EC sc_server_message (5.22+)
сообщение от сервера-клиенту. Обычная строка либо многострочный текст. Выводится в консоль клиента
{
  "Msg"       : "bla-bla-bla", // текст сообщения
  "Focus"     : true,          // переключиться на него или просто тихо записать в лог
  "SaveToLog" : true,          // записывать в лог - true, просто фиксировать в окне - false
  "Sound"     : "error",       // если пустая строка - звука нет, если есть запись, то будет проигран соответствующий звук
  "Type"      : -1             // тип сообщения.
//  ico_none     = -1;
//  ico_info     = 78;
//  ico_ok       = 75;
//  ico_error    = 77{0};
//  ico_stop     = 73;
//  ico_warning  = 74;
//  ico_command  = 72;
//  ico_bug      = 79;
//  ico_script   = 145;
//  ico_plugin   = 155;
//  ico_serv_log = 208;

}

80ED sc_token_created (5.23+)
создан токен для доступа к сервису чата
{
  "Token" : "sdujfgks832GGD75234", // тело токена
  "Where" : "kanban"               // сервис, для которого он предназначен
}

80EE sc_tech_message (8.9+), раньше было sc_private_tech_message (5.23+)
// специальное техническое сообщение, не фиксируется в истории, отправляется только онлайн-пользователям
// сообщение можно отправить в приват(ы), в конференцию(и), либо и туда и туда, "одним махом"
// у сообщения нет автора, это просто текстовое уведомление заданного типа
{
  "ID"        : 17,            // (8.9+) UIN либо UID, в зависимости от Place
  "Place"     : 1,             // (8.9+) PLACE_TYPE_PRIVATE = 1, PLACE_TYPE_TEXT_CONF = 2
  "Msg"       : "bla-bla-bla", // текст сообщения
  "Type"      : 0,             // тип сообщения, 0 - белый текст на красном фоне, по центру,
                               // 1 - сиреневый жирный текст, левое выравнивание  
  "StayOnTop" : false,         // (8.9+) открыть окно MyChat Client на переднем плане, даже в терминале
  "Focus"     : true           // (8.10+) переключиться на канал/приват и показать сообщение
}

80EF sc_forum_structure (5.23+)
структура форума MyChat, ответ на запрос 0156 cs_forum_get_structure
{
  "CRC32" : 1284375234, // CRC32 контрольная сумма структуры форума
  "Data"  : "...."      // JSON объект-содержимое, строка
}

80F0 sc_forum_section_or_topic_created (5.23+)
раздел форума или тема успешно создан
{
  "ID"       : 83,            // ID записи
  "ParentID" : 0,             // ID родительской записи, если 0 - то корень
  "Weight"   : 0,             // "вес" для сортировки, по умолчанию 0
  "Caption"  : "bla-bla-bla", // название раздела или топика
  "Type"     : 1,             // тип. 1 - это раздел, 2 - топик
  "Color"    : 0              // (7.1+) цвет топика
}

80F1 sc_command_complete (5.23+)
// команда успешно выполнена
{
  "Cmd" : "00A1" // клиентская команда, которая была успешно выполнена (команды с префиксом cs_.....)
}

80F2 sc_forum_post_created (5.23+)
// сообщение в форуме успешно создано
{
  "ID"                 : 83,                    // ID записи
  "ParentID"           : 0,                     // ID родительской записи, всегда >0
  "Weight"             : 0,                     // "вес" для сортировки, по умолчанию 0
  "Caption"            : "bla-bla-bla",         // текст сообщения
  "dtCreated"          : "09.10.2012.09.30.00", // дата и время создания сообщения
  "DisplayNameCreator" : "John Smith",          // отображаемое имя пользователя, который создал сообщение
  "SexCreator"         : 1,                     // пол создателя сообщения
  "AvatarCreator"      : 17,                    // аватар создателя сообщения
  "UINCreator"         : 23                     // UIN создателя сообщения
}

80F3 sc_forum_section_or_topic_changed (5.23+)
// раздел или тема форума успешно изменены
{
  "ID"        : 83,            // ID записи
  "ParentID"  : 0,             // ID родительской записи, всегда >0
  "Weight"    : 0,             // "вес" для сортировки, по умолчанию 0
  "Caption"   : "bla-bla-bla", // текст сообщения
  "Type"      : 1              // тип. 1 - это раздел, 2 - топик
}

80F4 sc_forum_section_or_topic_or_post_deleted (5.23+)
// раздел, тема форума или сообщение успешно удалены
{
  "ID"        : 83,          // ID записи
  "Type"      : 1            // тип. 1 - это раздел, 2 - топик, 3 - сообщение
}

80F5 sc_forum_post_changed (5.23+)
// пост форума изменён
{
  "ID"        : 83,           // ID сообщения
  "ParentID"  : 0,            // ID топика, всегда >0
  "Weight"    : 0,            // "вес" для сортировки, по умолчанию 0
  "Caption"   : "bla-bla-bla" // текст сообщения
}

80F6 sc_forum_topic_posts (5.23+)
// список сообщений темы форума. Массив объектов
[
  {
    "ID"                  : 83,                    // ID записи
    "Weight"              : 0,                     // "вес" для сортировки, по умолчанию 0
    "Caption"             : "bla-bla-bla",         // текст сообщения
    "dtCreated"           : "09.10.2012.09.30.00"  // дата и время создания сообщения
    "DisplayNameCreator"  : "John Smith",          // отображаемое имя пользователя, который создал сообщение
    "SexCreator"          : 1,                     // пол создателя сообщения
    "AvatarCreator"       : 17,                    // аватар создателя сообщения
    "UINCreator"          : 23,                    // UIN создателя сообщения
    "dtModified"          : "09.10.2012.09.30.00", // дата и время создания сообщения

    // следующий блок может отсутствовать, если dtModified = dtCreated (то есть, сообщение никогда не редактировалось)
    "DisplayNameModifier" : "John Smith",          // отображаемое имя пользователя, который создал сообщение
    "SexModifier"         : 1,                     // пол создателя сообщения
    "AvatarModifier"      : 17,                    // аватар создателя сообщения
    "UINModifier"         : 23                     // UIN создателя сообщения
  },
...
]

80F7 sc_forum_section_info (5.23+)
// информация о секции (список топиков, краткая информация о них: LastChange, UIN, DisplayName, Sex, Avatar, CountMessages). Массив объектов
[
  {
    "ID"            : 985,                   // числовой идентификатор топика
    "Caption"       : "Topic example",       // название топика
    "UIN"           : 179,                   // идентификатор последнего создателя/редактора сообщения в топике
    "DisplayName"   : "John Smith",          // отображаемое имя пользователя
    "Sex"           : 2,                     // пол пользователя
    "Avatar"        : 97,                    // номер аватара пользователя
    "dtLastChange"  : "09.10.2012.09.30.00", // дата и время создания/изменения последнего сообщения
    "CountMessages" : 28                     // количество сообщений в топике
  },
...
]

80F8 sc_all_users_changed (5.24+)
// информирование всех подключенных клиентов о том, что все юзеры изменились. Как правило, поменялся DisplayName. Следует спросить у сервера
// новую информацию обо всех пользователях, которые интересны клиентам (открытые конференции и приваты).

// 8.0 deprecated 80F9 sc_small_info_about_users_list (5.24+)
краткая информация (UIN, DisplayName, Avatar, Sex, ChangeID) о списке пользователей, массив объектов
[
  {
    "UIN" : 17,
    "DisplayName" : "John Smith",
    "Avatar"      : 97, // (6.1+)
    "Sex"         : 1,  // (6.1+)
	"ChangeID"    : 0   // (7.5.2+)
  },
  {
    "UIN" : 21,
    "DisplayName" : "Sarah Connor",
    "Avatar"      : 53, // (6.1+)
    "Sex"         : 2,  // (6.1+)
	"ChangeID"    : 11  // (7.5.2+)
  }
...
]

80FA sc_remote_user_script_request_answer (5.24+)
ответ на команду 0163 cs_remote_user_script_request, скрипт выполнен, результат выполнения - custom JSON объект. Может быть пустым, если скрипт не возвращает никаких результатов.
{}

80FB sc_book_data (5.24+)
// возвращает содержимое справочника в ответ на команду cs_get_book
{
  "Name": "smtp", // название запрашиваемого справочника
  "Data": [ // содержимое справочника, встроенный JSON объект, структура зависит от самого справочника, может быть любой, в том числе и пустым объектом, если справочника не существует
    {
      "Server": "",
      "Encrypted": false,
      "HelpLink": "smtpoptions.htm",
      "Port": 25,
      "Name": "Custom"
    },
    {
      "Server": "smtp.yandex.ru",
      "Encrypted": true,
      "HelpLink": "smtpoptionsyandex.htm",
      "Port": 25,
      "Name": "Yandex"
    }
  ]
}

80FC sc_file_exists (5.24+)
// есть или нет файл с таким хэш-кодом на сервере
{
  "Hash"         : "23gfik43465tierf", // SHA1 хэш файла
  "MsgType"      : 44,                 // тип файла. 44 (MSG_TYPE_IMAGE_NEW) - изображение, 45 (MSG_TYPE_FILE_NEW) - обычный файл
  "Present"      : true,               // true, если такой хеш уже есть, false - если файл с таким хешем не существует
  "UTCWriteTime" : "123123.123123",    // (6.0+) UTC date&time штамп последней записи в файл ("time.date")
  "Size"         : 23645,              // (6.0+) размер файла в байтах
  "FileName"     : "832548237.jpg",    // локальное название файла
  "Where"        : 1,                  // куда вставлять файл (priv, conf, bbs, broadcast, forum, kanban)
  "ID"           : 17,                 // число-идентификатор, для кого отправлять файл:
                                       // 1, private    - UIN
                                       // 2, conference - UID
                                       // 3, forum      - ID топика
                                       // 4, kanban     - ID таска
                                       // 5, bbs        - -1
                                       // 6, broadcast  - -1
  "Context"		 : "bla-bla-bla",      // (7.5+) контекст, необязательный параметр, безусловно отправляется в ответ на команду cs_is_file_exists
  "DiskFree"     : 1748654121,         // (8.6+), если Present=false, то будет это поле, в котором указано,
                                       // сколько байт свободного места осталось на диске сервера
  "Drive"        : "C"                 // (2023.2+) буква диска на сервере, где хранятся пользователькие файлы клиентов
}

80FD sc_image_thumbs (5.24+)
// уменьшенная копия изображения с сервера
{
  "Hash"     : "23gfik43465tierf", // SHA1 хэш файла
  "Width"    : 120,                // произвольная ширина уменьшенной копии изображения
  "Height"   : 100,                // произвольная высота уменьшенной копии изображения
  "FileName" : "832548237.jpg",    // локальное название файла
  "Exists"   : true,               // (6.7+) существует ли файл оригинала на сервере. Если false - файл удалён и качать нечего, надо показать "noimage"
  "Where"    : 1,                  // (7.3+) где размещается thumb файл, число. Если в запросе этого поля не было, сервер вставит "-1"
  "ID"       : 17,                 // (8.0+) если приват - то UIN, если конференция - UID. Иначе -1. Этот параметр передаёт клиент в запросе картинки-миниатюры
  "Body"     : "..."               // (8.0+) base64 jpg файл миниатюры изображения

//  LOC_UNKNOWN    = -1
//  LOC_CONSOLE    = 0
//  LOC_PRIVATE    = 1
//  LOC_CONFERENCE = 2
//  LOC_FORUM      = 3
//  LOC_KANBAN     = 4
//  LOC_BBS        = 5
//  LOC_BROADCAST  = 6
}

80FE sc_kanban_project_tags_list (6.0+)
// список тегов конкретного проекта
{
  "ProjectID"   : 17, // идентификатор проекта
  "Tags" :            // список тегов со счётчиками вхождений
    {
      "one"     : 1,
      "two"     : 13,
      "example" : 21
    }
}

80FF sc_kanban_dashboard (6.0+)
// краткая сводная информация по текущим задачам и проектам, массив объектов
[
  {
    "ProjectID"            : 17,                    // идентификатор проекта
    "ProjectName"          : "bla-bla",             // название проекта
    "ID"                   : 17,                    // идентификатор задачи, число
    "IDStage"              : 23,                    // идентификатор этапа
    "UINOwner"             : 22,                    // идентификатор пользователя, который поставил задачу
    "DisplayNameOwner"     : "John Smith",          // имя пользователя, поставившего задачу
    "SexOwner"             : 1,                     // пол
    "AvatarOwner"          : 83,                    // аватар
    "UINPerformer"         : 29,                    // идентификатор исполнителя
    "DisplayNamePerformer" : "Paul Brown",          // имя пользователя-исполнителя
    "SexPerformer"         : 1,                     // пол исполнителя
    "AvatarPerformer"      : 83,                    // аватар исполнителя
    "Name"                 : "Task",                // название задачи
    "Desc"                 : "New task",            // описание задачи
    "Priority"             : 0,                     // важность задачи, приоритет
    "dtCreated"            : "dd.mm.yyyy.hh.nn.ss", // дата и время создания задачи
    "dtDeadLine"           : "dd.mm.yyyy.hh.nn.ss", // дата и время дедлайна, если есть. Если нет - 01.01.3000 года
    "dtClosed"             : "dd.mm.yyyy.hh.nn.ss", // дата и время закрытия задачи, если нету - 01.01.3000 года
    "State"                : 0,                     // статус задачи
    "CommentsCount"        : 0,                     // количество комментариев к задаче
    "Tags"                 : "one,two,three",       // теги для задачи, если есть, через запятую
    "Type"                 : 0                      // (6.0+) тип этапа, 0 - typical, 1 - done, 2 - archive
  },
...
]

8100 sc_broadcast_sent_ok (6.1+)
// оповещение успешно отправлено
{
  "dtUTC"         : "08.05.2012.12.54.34", // дата и время создания оповещения (UTC) формате "дд.мм.гггг.чч.мм.сс"
  "ID"            : 756,                   // уникальный идентификатор оповещения, целое число > 0, выдаётся сервером
  "UsersList"     : "12,98,78",            // список UIN-ов получателей оповещения, текстовая строка, числа через запятую
  "ActualTo"      : "08.05.2013.12.54.34"  // До какого времени актуально оповещение. Дата и время в формате "дд.мм.гггг.чч.мм.сс"
  "MustRead"      : true,                  // оповещение обязательно к прочтению. Окошко у получателя не закроется, пока тот не подтвердит, что он действительно прочитал сообщение
  "ReadingNotify" : false,                 // уведомлять отправителя специальным сообщением, что получатель прочитал отправленное ему оповещение
  "Msg"           : ".....",               // сам текст отправляемого оповещения
  "Files"         :                        // файлы, которые приложены к оповещению. Может быть пустым. Массив объектов
  [
    {
      "OriginalFileName" : "test.txt",     // оригинальное название файла
      "Size"             : 12784,          // размер файла в байтах
      "Hash"             : "kdho346523"    // SHA1 контрольная сумма
    },
    ...
  ]
}

8101 sc_adm_backup_server_db_ok (6.1+)
// резервная копия баз данных сервера успешно создана
{
  "FileName" : "mcservrdb-12-05-2017-13-05.zip", // название файла резервной копии
  "FileSize" : 83457638,                         // (8.15+) размер файла бекапа в байтах
  "Token"    : "sdlkj38457fiweiiuy"              // (7.8+) токен для скачивания файла, используется, 
                                                 // если команду бекапа запросили не из админкм, а например, из консоли MyChat Client
}

8102 sc_hide_text_conf (6.1+)
// скрыть конференцию из списка доступных
{
  "UID" : 17   // уникальный идентификатор конференции
}

8103 sc_adm_integration_telegram_users_list (6.1+)
// список пользователей для интеграции с Telegram. Массив объектов
[
  {
    "active"             : false,                 // юзер включен или нет?
    "dt_reg_utc"         : "08.05.2013.12.54.34"  // дата регистрации Telegram пользователя, в формате "дд.мм.гггг.чч.мм.сс". UTC
    "user_id"            : "72364528347",         // внутренний Telegram ID пользователя
    "user_firstname"     : "John",                // имя пользователя Telegram (может быть пустым)
    "user_lastname"      : "Connor",              // фамилия пользователя Telegram (может быть пустым)
    "user_nickname"      : "Commandor",           // ник пользователя Telegram (может быть пустым)
    "mychat_uin"         : "-1",                  // назначенный UIN для связки с пользователем MyChat. Если не назначен, то -1
    "mychat_displayname" : ""                     // отображаемое имя пользователя MyChat
  },
...
]

8104 sc_adm_integration_telegram_user_added (6.1+)
уведомление, только что добавлен новый мобильный юзер в таблицу Telegram-пользователей
{
  "active"             : false,                 // юзер включен или нет?
  "dt_reg_utc"         : "08.05.2013.12.54.34"  // дата регистрации Telegram пользователя, в формате "дд.мм.гггг.чч.мм.сс". UTC
  "user_id"            : "72364528347",         // внутренний Telegram ID пользователя
  "user_firstname"     : "John",                // имя пользователя Telegram (может быть пустым)
  "user_lastname"      : "Connor",              // фамилия пользователя Telegram (может быть пустым)
  "user_nickname"      : "Commandor",           // ник пользователя Telegram (может быть пустым)
  "mychat_uin"         : "-1",                  // назначенный UIN для связки с пользователем MyChat. Если не назначен, то -1
  "mychat_displayname" : ""                     // отображаемое имя пользователя MyChat
}

8105 sc_removed_user_info (6.2+)
краткая информация об удалённом пользователе
{
  "UIN"         : 89, // уникальный идентификатор пользователя MyChat
  "Nick"        : "john",
  "DisplayName" : "John Connor",
  "Email"       : "john@cyberdyne.com",
  "Sex"         : 0
}

8106 sc_login_finish (6.2+)
// клиентское приложение успешно авторизовано на сервере и ему передана вся необходимая информация (права, join-ы в конференции и т.п.)
{
  "CID"           : 3,        // пользователь успешно авторизовался, необязательный параметр
  "Ok"            : true,     // успешное соединение, необязательный параметр
  "RobotAvatar"   : 0,        // (8.0+) аватар встроенного робота
  "RobotNick"     : "Elisa",  // (8.0+) ник встроенного робота
  "AutoNotifiers" : true,     // (8.7+) показывать автоматические важные уведомления про функции чата
  "UpdateGPS"     : 15,       // (8.12+) время в минутах, как часто отправлять на сервер свою позицию
  "Lic"           : "c00C8uac16D0" // (2024.4+) 
                              // 1: информация по лицензии: [c]ommercial/[f]ree, 
                              // 2..5: коннектов в лицензии (hex FFFF),
                              // 6..7: страна покупки: ua/ru/kz/by/uz/pl(Польша)/kg(Киргизия)/us(USA)/??(страна не определена, старая лицензия), 
                              // 8: способ оплаты: [c]ard/[b]ank/[m]ono/[p]rivat24/[?]не определено, старые лицензии
							  // 9..12: дней до конца действия подписки (hex FFFF)
}

8107 sc_adm_history_info_private (6.3+)
админкоманда, информация по сообщениям в привате за диапазон времени, ответ на 0173 cs_adm_get_history_info_private
{
  "dtUTCFrom"   : "26.11.2012.09.18.31.785", // с какой даты начинать (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "dtUTCTo"     : "26.11.2017.01.01.00.000", // до какой даты (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "UIN1"        : 3,                         // уникальный идентификатор 1-го пользователя. Порядок не важен
  "UIN2"        : 6,                         // уникальный идентификатор 2-го пользователя. Порядок не важен
  "StartConvID" : 1,                         // идентификатор начального сообщения, -1 - если в таком диапазоне нет сообщений
  "EndConvID"   : 17456                      // идентификатор конечного сообщения, -1 - если в таком диапазоне нет сообщений
}

8108 sc_adm_history_private (6.3+)
лог приватных сообщений двух пользователей по указанному диапазону индексов, админкоманда, ответ на 0174 cs_adm_get_history_private
{
  "UIN1"           : 3,                      // уникальный идентификатор 1-го пользователя. Порядок не важен
  "UIN2"           : 6,                      // уникальный идентификатор 2-го пользователя. Порядок не важен
  "StartConvID"    : 1,                      // идентификатор начального сообщения из запроса команды cs_adm_get_history_private
  "EndConvID"      : 17456,                  // идентификатор конечного сообщения из запроса команды cs_adm_get_history_private
  "Data"           :                         // массив истории сообщений
    [
      {
      "Idx"        : 2457,                   // встроенный индекс приватного сообщения
      "UINFrom"    : 15,                     // UIN отправителя
      "dtUTC"      : "09.03.2012.10.14.55"   // дата и время сообщения в UTC формате (dd.mm.yyyy.hh.nn.ss)
      "Msg"        : "Hello, world!",        // текст сообщения
      "MsgType"    : 1,                      // тип сообщения (картинка, текст, ....). По умолчанию - 1
      "ClientType" : 0,                      // тип клиента-отправителя
                                             // CLIENT_TYPE_MYCHAT_WIN32   = 0;
                                             // CLIENT_TYPE_MYCHAT_WEB     = 1;
                                             // CLIENT_TYPE_MYCHAT_MACOS   = 2;
                                             // CLIENT_TYPE_MYCHAT_LINUX   = 3;
                                             // CLIENT_TYPE_MYCHAT_ANDROID = 4;
      "Status"     : 3,                      // статус сообщения
                                             // MSG_STATUS_SENT       = 1;
                                             // MSG_STATUS_RECIEVED   = 2;
                                             // MSG_STATUS_VIEWED     = 3;
      "Mod"        : 0                       // модификатор сообщения
                                             // MSG_MODIFIER_NONE     = 0;
                                             // MSG_MODIFIER_MODIFIED = 1;
                                             // MSG_MODIFIER_DELETED  = 2;
      },
    ...
    ]
}

8109 sc_adm_history_info_conf (6.3+)
// админкоманда, информация по сообщениям в конференции за диапазон времени, ответ на 0175 cs_adm_get_history_info_conf
{
  "dtUTCFrom"   : "26.11.2012.09.18.31.785", // с какой даты начинать (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "dtUTCTo"     : "26.11.2017.01.01.00.000", // до какой даты (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
  "UID"         : 18,                        // уникальный идентификатор конференции
  "StartConvID" : 1,                         // идентификатор начального сообщения, -1 - если в таком диапазоне нет сообщений
  "EndConvID"   : 17456                      // идентификатор конечного сообщения, -1 - если в таком диапазоне нет сообщений
}

810A sc_adm_history_conf (6.3+)
// лог конференц-сообщений двух пользователей по указанному диапазону индексов, админкоманда, ответ на 0176 cs_adm_get_history_conf
{
  "UID"            : 97,                     // уникальный идентификатор текстовой конференции
  "StartConvID"    : 1,                      // идентификатор начального сообщения
  "EndConvID"      : 17456,                  // идентификатор конечного сообщения
  "Data"           :                         // массив истории сообщений
    [
      {
      "Idx"        : 2457,                   // встроенный индекс приватного сообщения
      "UINFrom"    : 15,                     // UIN отправителя
      "dtUTC"      : "09.03.2012.10.14.55"   // дата и время сообщения в UTC формате (dd.mm.yyyy.hh.nn.ss)
      "Msg"        : "Hello, world!",        // текст сообщения
      "MsgType"    : 1,                      // тип сообщения (картинка, текст, ....). По умолчанию - 1
      "ClientType" : 0,                      // тип клиента-отправителя
                                             // CLIENT_TYPE_MYCHAT_WIN32   = 0;
                                             // CLIENT_TYPE_MYCHAT_WEB     = 1;
                                             // CLIENT_TYPE_MYCHAT_MACOS   = 2;
                                             // CLIENT_TYPE_MYCHAT_LINUX   = 3;
                                             // CLIENT_TYPE_MYCHAT_ANDROID = 4;
      "Status"     : 3,                      // статус сообщения
                                             // MSG_STATUS_SENT       = 1;
                                             // MSG_STATUS_RECIEVED   = 2;
                                             // MSG_STATUS_VIEWED     = 3;
      "Mod"        : 0                       // модификатор сообщения
                                             // MSG_MODIFIER_NONE     = 0;
                                             // MSG_MODIFIER_MODIFIED = 1;
                                             // MSG_MODIFIER_DELETED  = 2;
      },
    ...
    ],
  "Users" : {                   // список пользователей, объект с объектами
    "3": {                      // идентификатор пользователя
      "DisplayName" : "Gifer",  // отображаемое имя в чате
      "Avatar"      : 17        // номер аватара
    },
    ...
  }
}

810B sc_adm_history_private_user_pairs (6.3+)
админкоманда, все пары приватных разговоров за все время, ответ на 0177 cs_adm_get_history_private_user_pairs
{
  "Pairs" : {
    "3"  : [2,8],       // с кем говорил пользователь с UIN 3
    "18" : [17,341,89], // с кем говорил пользователь с UIN 18
    ...
  },
  "Users" : {                               // список пользователей, объект с объектами
    "3": {                                  // идентификатор пользователя
      "DisplayName" : "Gifer",              // отображаемое имя в чате
      "Avatar"      : 17,                   // номер аватара
      "dtUTC"       : "2015.09.01.17.18.35" // (6.4+) когда юзер последний раз отправлял кому-нибудь сообщение (UTC).
                                            // Если "1900.01.01.00.00.00" - юзер никогда не писал никому приватные сообщения
    },
    ...
  },
  "PairsDT" : {
    "17_24" : "26.11.2017.01.01.00.000", // когда был последний разговор в паре пользователей uin 17 и uin 24 (UTC, формат dd.mm.yyyy.hh.nn.ss.zzz)
    ...
  }
}

810C sc_adm_history_confs_list (6.3+)
// админкоманда, список текстовых конференций, в которых были сообщения за весь период работы сервера. Ответ на 0178 cs_adm_get_history_confs_list
{
  "3" : {                      // уникальный идентификатор текстовой конференции (UID), число
    "Name" : "tro-lo-lo conf"  // название конференции
  },
  ...
}

810D sc_sync_conf_history (6.3+)
// данные для синхронизации истории сообщений в конференции, ответ на cs_sync_conf_history
{
  "UID"     : 21, // уникальный идентификатор конференции (UID)
  "Data"    :
    [
      {
        "UIN"     : 98,                   // кто отправил сообщение
        "dtUTC"   : "2015.09.01.17.18.35" // когда (UTC)
        "MsgType" : 1,                    // тип сообщения
        "Idx"     : 75,                   // уникальный индекс сообщения
        "Msg"     : "Hello!",             // тело сообщения
        "Mod"     : 0,                    // (6.4+) необязательное поле, присутствует, только если сообщение було удалено или изменено
                                          // 0 - нет модификаторов  
                                          // MSG_MODIFIER_MODIFIED = 1;
                                          // MSG_MODIFIER_DELETED  = 2;
		// два необязательных параметра, есть, если Mod = 1 (MSG_MODIFIER_MODIFIED)
		"ModUIN"     : 17,                   // кто изменил сообщение 
		"ModUTC"     : "2023.05.01.17.18.35" // когда было изменено сообщение (UTC)
      },
    ...
    ]
  "Users"   :                             // список пользователей, которые отправляли эти сообщения. Массив объектов
    [
      {
        "UIN"         : 17,               // UIN пользователя
        "DisplayName" : "Terminator",     // отображаемое в чате имя
        "Avatar"      : 21,               // аватар пользователя
        "Sex"         : 1                 // пол пользователя
      },
      ...
    ]
}

810F sc_adm_clear_console (6.7+)
// очистить консоль вывода данных в редакторе скриптов

8110 sc_adm_blocked_hwid_list (6.7+)
// список заблокированных HardwareID адресов
[
  {
    "HardwareID"  : "20CF30A91A6D",        // заблокированный HardwareID адрес
    "Comment"     : "Bla-bla-bla",         // комментарий
    "UIN"         : 17,                    // идентификатор пользователя, который добавил адрес в блокировки
    "DisplayName" : "Vasyl Podoprigora",   // имя пользователя, которое отображается в чате
    "Date"        : "01.03.2018.23.04.00"  // UTC дата и время, когда была создана блокировка в формате дд.мм.гггг.чч.мм.сс
  }
...
]

8111 sc_adm_system_logs (6.8+)
системные логи за период времени, ответ на 0182 cs_adm_get_system_logs
{
  "NoMore"       : true,                        // true, если данных больше нет, false, если нужно делать дополнительный запрос, записей больше 1 000
  "dtUTCToFrame" : "17.02.2018.14.52.31.123",   // если NoMore=false, то здесь дата и время последней вычитанной записи, до неё надо будет делать повторный запрос
  "Data"  : [                                   // данные, массив объектов
    {
      "RowID"      : 1234487,                   // идентификатор записи в базе данных, уникальное целое число
      "dtUTC"      : "01.03.2018.09.18.31.723", // дата события (UTC, формат dd.mm.yyyy.hh.nn.ss)
      "Type"       : 1,                         // тип сообщения, число
      "CID"        : 117,                       // CID сессии пользователя
      "UIN"        : 84,                        // UIN пользователя, если ещё не определён, то -1
      "ClientType" : "win32",                   // тип приложения, если пустая строка - не определён
      "IP"         : "192.168.10.113",          // IP адрес клиента
      "MAC"        : "24-EC-99-CB-1C-C5",       // MAC адрес клиента, если пустая строка - не определён
      "HWID"       : "jlfkdhg9834653lkh",       // HardwareID клиента, если пустая строка - не определён
      "Params"     : ["one","two"]              // параметры события, если их нет, может отсутствовать
    },
    ...
  ]
}

8112 sc_remove_conversations (6.9+)
полностью удалить указанные протоколы разговоров за всё время из локальной базы данных
{
  "Conf"      : true, // 8.2+
  "Private"   : true, // 7.5.2+
  "BBS"       : true, // not working
  "Broadcast" : true, // not working
  "File"      : true, // not working
  "Backup"    : true, // not working
  "TextLog"   : true  // not working
}

8113 sc_activate_personal_contact_user (7.1+)
открыть личный список контактов и активировать там указанного юзера
{
  "UIN" : 17 // идентификатор пользователя
}

8114 sc_web_services_info (7.1+)
информация о WEB-сервисах MyChat Server. Присылается, только если они перенастроены либо изменяются в данный момент
{
  "AliasAdmin"            : "admin",   // папка-псевдоним, путь к админке
  "AliasAPI"              : "API",     // папка-псевдоним, путь к Integration API
  "AliasChat"             : "chat",    // папка-псевдоним, путь к WEB-чату
  "AliasFiles"            : "files",   // папка-псевдоним, путь к файлам, залитым на сервер
  "AliasForum"            : "forum",   // папка-псевдоним, путь ко встроенному форуму
  "AliasKanban"           : "kanban",  // папка-псевдоним, путь к канбан-доске
  "AliasSupport"          : "support", // папка-псевдоним, путь к WEB-чату поддержки на сайт

  "LobbyEnable"           : true,      // включен доступ к списку сервисов MyChat
  "ForumEnable"           : true,      // включить доступ ко встроенному форуму
  "KanbanEnable"          : true,      // включить доступ к канбан-доске
  "ChatEnable"            : true       // включить доступ к WEB-чату
  "AdminEnable"           : true       // включить доступ к WEB-админке
}

8115 sc_server_ports (7.1+)
список сетевых портов MyChat сервер, отправляется клиенту, если меняются сетевые настройки MyChat Server
{
  "PortCore"         : 2004,  // TCP порт ядра сервера MyChat
  "PortFTP"          : 20001, // TCP порт файлового сервера
  "PortNode"         : 8080,  // TCP порт для доступа к серверу NodeJS
  "HTTPS"            : false  // используется ли шифрование трафика в NodeJS
}

8116 sc_adm_domains_list (7.1+)
список доменов, с которыми может работать сервер MyChat
{
  "List" : "mycompany.local,nss.com,site.org" // список доменов в алфавитном порядке, через запятую
}

8117 sc_adm_forum_subs_groups_list (7.1+)
список групп пользователей, которые подписаны на конкретную тему либо секцию
{
  "ID"   : 17,      // индекс секции либо темы
  "Type" : 1,       // 1 - секция, 2 - тема
  "List" : "1,7,18" // список индексов групп через запятую, список может быть пустым, если подписок нет
}

8118 sc_adm_forum_subs_users_list (7.1+)
список идентификаторов пользователей, которые подписаны на конкретную тему либо секцию
{
  "ID"   : 17,         // индекс секции либо темы
  "Type" : 1,          // 1 - секция, 2 - тема
  "List" : "11,47,718" // список UIN-ов пользователей через запятую, список может быть пустым, если подписок нет
}

8119 sc_forum_subs (7.1+)
список подписок на темы и разделы форума
{
  "Sections" : "17,1,39" // список разделов, индексы, через запятую
  "Topics"   : "7,3"     // список тем, индексы, через запятую
}

811A sc_custom_options (7.1+)
// кастомные настройки клиента, запрошенные с сервера командой cs_set_custom_options
{
  "Name" : "MySuperOptions", // название настройки
  "Data" : "....."           // текстовая строка, содержимое. Если настройки не существует, будет возвращена пустая строка
}

811B sc_adm_integration_quiz_check_question (7.2+)
проверка существования вопроса в базе робота-викторины
{
  "ID"       : 82,              // идентификатор вопроса (номер, число > 0). Если ID = -1, значит, вопрос не найден
  "Question" : "bla-bla-bla?",  // текст вопроса
  "Answer"   : "bla-bla"        // текст ответа
}

811C sc_adm_integration_quiz_question_added (7.2+)
новый вопрос в базу робота-викторины добавлен успешно
{
  "ID"       : 18745,          // идентификатор вопроса
  "Question" : "bla-bla-bla?", // новый вопрос
  "Answer"   : "bla-bla-bla"   // ответ на него
}

811D sc_adm_integration_quiz_stat (7.2+)
статистика робота-викторины
{
  "Questions"        : 78,    // вопросов задано
  "Answers"          : 14,    // правильных ответов получено
  "TotalQuestions"   : 14000, // всего вопросов в базе
  "Players"          : 30,    // всего игроков
  "LastMonthPlayers" : 21,    // игроков за последний месяц
  "ServID"           : "ASDQ",// идентификатор сервера, текстовая строка
  "Registered"       : false, // если робот-викторина не зарегистрирован
  "AdminEmail"       : ""     // email администратора сервера
}

811E sc_exec_func_result (7.2+)
результат выполнения функции на сервере
{
  "Func"   : "bla-bla-bla",  // название функции, в lowercase, без параметров
  "Result" : "custom result" // результат выполнения функции
}

811F sc_users_live_search (7.2+)
список пользователей на сервере по заданному шаблону, результат поиска команды 019A cs_users_live_search
{
  "Mask"   : "bla-bla-bla",  // маска поиска по нику, email или DisplayName
  "Limit"  : 10,             // максимальное количество результатов
  "What"   : "any"           // "any" - по всем пользователям, "uid1" - конференция с UID = ???, "ccl" - общий список контактов, "pcl" - личный список контактов, "dlg" - список диалогов
  "State"  : -2,             // статус пользователей: -2: любой, -1: офлайн, 0: free, 1: away, 2: dnd
  "From"   : "uid143",       // произвольная текстовая константа, откуда был вызван live search, чтобы при обработке результата правильно понять, куда нужно отдавать данные
  "Result" :                 // массив найденных пользователей, сортировка по алфавиту (DisplayName)
    [
      {
        "User"         : "John Smith (mailbox@mail.com)",
	    "UIN"          : 19,
		"ChangeID"     : 14,           // (8.0.5+)
		"Avatar"       : 0,            // (8.0.5+)
		"DisplayName"  : "J.Smith II", // (8.0.5+)
		"State"        : 1,            // (8.0.5+)
		"Sex"          : 1             // (8.0.5+)
      },
    ...
    ]
}

8120 sc_private_dialogs (7.2+)
список приватных диалогов пользователя, массив объектов, свежие - сначала
{
  "DlgIdx" : 7145, // индекс последнего изменения приватных диалогов
  "Data"   :
  [
    {
      "UIN"         : 17,                    // идентификатор собеседника
	  "ChangeID"    : 123,                   // (8.0+) числовой идентификатор изменений собеседника
	  "IDMsgLast"   : 4567,                  // ID последнего отправленного сообщения
      "IDMsgGot"    : 4560,                  // ID последнего полученного сообщения
      "IDMsgRead"   : 4560,                  // ID последнего прочитанного сообщения

      // статусы сообщений в диалогах, если отправитель последнего сообещения - я
	  // "отправлено", "получено", "прочитано"
	  "IDMyMsgGot"  : 4558,                  // ID последнего полученного моего сообщения оппонентом
	  "IDMyMsgRead" : 4558,                  // ID последнего прочитанного моего сообщения оппонентом
	  
      "dt"          : "26.11.2012.09.18.31", // дата и время последнего сообщения в UTC в формате dd.mm.yyyy.hh.nn.ss.zzz
      "Speaker"     : 18,                    // (8.0+) кто сказал сообщение
	  "MsgType"     : 0,                     // (8.0+) тип сообщения
	  "MsgCut"      : "bla-bla"              // (8.0+) текст сообщения, первые 64 символа


      // deprecated 8.0+ "DisplayName" : "John Smith",          // отображаемое имя собеседника в чате
      // deprecated 8.0+ "Avatar"      : 1234245435,            // CRC32 контрольная сумма фотографии пользователя
      // deprecated 8.0+ "Sex"         : 1                      // пол пользователя, 0 - unknown, 1 - male, 2 - female
    },
    ...
  ]
}

8121 sc_del_private_dialog (7.2+)
// удалить диалог с указанным юзером из списка приватных диалогов, уведомление об успешном удалении на сервере, рассылается всем пользователям-владельцам
{
  "UIN"    : 18,  // идентификатор пользователя, диалог с которым нужно убрать из списка диалогов приватов
  "DlgIdx" : 7145 // индекс последнего изменения приватных диалогов
}

8122 sc_private_read (7.2+)
// уведомление самому себе и всем инстансам себя (multilogin) о том, что указанное приватное сообщение прочитано
{
  "UIN"    : 18,   // идентификатор пользователя, с которым открыт диалог
  "DlgIdx" : 7845, // индекс последнего изменения приватных диалогов
  "ID"     : 735   // индекс приватного сообщения, которое теперь считается прочитанным
}

8123 sc_private_read_notify (7.2+)
// уведомление оппоненту, что его собеседник только что прочитал приватное сообщение с указанным индексом (и все приватные сообщения до него)
{
  "UIN"    : 18,   // идентификатор отправителя
  "ID"     : 7145, // индекс приватного сообщения, которое теперь считается прочитанным
  "DlgIdx" : 123   // (8.0+) индекс последнего изменения ваших приватных диалогов
}

8124 sc_private_got (7.2+)
// уведомление самому себе и всем инстансам себя (multilogin) о том, что указанное приватное сообщение получено
{
  "UIN"    : 18,  // идентификатор пользователя, с которым открыт диалог
  "DlgIdx" : 7845 // индекс последнего изменения приватных диалогов
  "ID"     : 735  // индекс приватного сообщения, которое теперь считается полученным
}

8125 sc_private_got_notify (7.2+)
// уведомление оппоненту, что его собеседник только что получил приватное сообщение с указанным индексом (и все приватные сообщения до него)
{
  "UIN"    : 18,   // идентификатор отправителя
  "ID"     : 7145, // индекс последнего полученного приватного сообщения
  "DlgIdx" : 123   // (8.0+) индекс последнего изменения ваших приватных диалогов
}

8126 sc_private_dialog_msg_states (7.2+)
информация о полученных и прочитанных сообщениях в приватном диалоге с оппонентом
{
  "UIN"       : 18,   // идентификатор пользователя, с которым открыт диалог
  "IDMsgGot"  : 4560, // ID последнего полученного сообщения
  "IDMsgRead" : 4560  // ID последнего прочитанного сообщения
}

8127 sc_private_redirect_complete (7.4+)
диалог успешно передан, приват можно закрыть
{
  "UIN" : 18  // идентификатор пользователя, приват с которым можно закрыть
}

8128 sc_users_list_for_redirect_dialog (7.4+)
список пользователей для редиректа
{
  "UIN"        : 8517,                    // пользователь, которого будем редиректить
  "WebSupport" : true,                    // true, если это список людей из websupport-а, false - если полный список людей с сервера, кроме Web Guests
  "Users"      :                          // список пользователей для редиректа. Массив объектов, в массиве может быть UIN отправителя запроса, его следует пропустить при рендеринге
    [
      {
        "UIN"         : 17,               // UIN пользователя
        "DisplayName" : "Terminator",     // отображаемое в чате имя
        "Avatar"      : 21,               // аватар пользователя
        "Sex"         : 1,                // пол пользователя
		"State"       : 0                 // текущий статус пользователя (0 - свободен)
      },
      ...
    ]
}

8129 sc_my_multicast_msg (7.4+)
// моё многоадресное сообщение, ответ от сервера
{
  "dtUTC"   : "2019.06.12.18.45.13", // дата и время сообщения в UTC
  "MsgType" : 0,                     // тип сообщения (картинка, текст, ....). По умолчанию - 0
  "Msg"     : "bla-bla-bla",         // текст сообщения
  "Users"   : "17,4,890,12"          // список UIN-ов получателей мультикаст-сообщения
}

812A sc_create_presenter (7.4+)
ответ на создание презентера страницы на форуме

812B sc_adm_terminal_command_result (7.4+)
ответ на терминальную команду админки
{
  "TimeStamp"  : "45631217",     // дата и время отправки оригинальной команды-запроса с клиента на сервер, в милллисекундах
  "Cmd"        : "bla-bla-bla",  // текст оригинальной команды-запроса
  "Params"     : "parameters",   // параметры команды, если есть
  "Result"     : "sh-sh-shhhhhh" // результат обработки команды. Текстовая строка, могут быть ведущие пробемы и символы CRLF
}

812C sc_tech_kick (7.5.2+)
// принудительно выйти из текстовой конференции, на сервер ничего не отправлять
{
  "UID" : 17 // идентификатор конференции
}

812D sc_common_options (2023.3+)
// команда для обновления общих для всех пользователей сервера параметров,
// все переменные - необязатльные, применять настройку, только если поле реально есть внутри JSON
{
  "MaxUploadFileSize"  : 10, // максимальный размер файла для заливки на сервер в мегабайтах, 0 - без ограничений
  "MaxSelfMsgEditTime" : 15, // максимальное время редактирования собственных сообщений в конференциях и приватах, в минутах
  "MaxSelfMsgDeleteTime" : 15 // (2023.7+) максимальный период удаления своих сообщений в конференциях и приватах, в минутах, больше 0  
}

812E sc_adm_allow_ip_added (7.7+)
добавлен IP, маска или диапазон в фильтре разрешённых IP адресов
{
  "ID"         : 17,             // числовой идентификатор записи
  "IP"         : "192.168.10.1", // IP адрес, маска или диапазон адресов
  "ClientType" : "win32",        // тип клиента
  "Comment"    : "bla-bla-bla"   // комментарий
}

812F sc_adm_blocked_ip_added (7.7+)
добавлен IP, маска или диапазон в фильтре запрещённых IP адресов
{
  "ID"         : 17,              // числовой идентификатор записи
  "IP"         : "192.168.100.1", // IP адрес/маска или диапазон
  "ClientType" : "win32",         // тип клиента
  "Comment"    : "bla-bla-bla"    // комментарий
}

8130 sc_adm_script_log_clear (7.8+)
очистить лог редактора скриптов в админке

8131 sc_kanban_task_taken (7.8+)
задача успешно взята в работу
{
  "ID" : 17 // уникальный идентификатор задачи, число
}

8132 sc_users_changeid_data (8.0+)
// информация о списке пользователей, UIN, ChangeID + данные
[ // список пользователей: массив объектов
    {
      "UIN"         : 21,     // идентификатор пользователя
      "ChangeID"    : 0,      // числовой идентификатор изменений пользователя
	                          // если ChangeID = -1, это значит, что юзер удалён и на клиенте надо в базу записать эти данные и больше не спрашивать
	  // если ChnageID = -1, то остальных полей для этого юзера не будет
      "DisplayName" : "Ivan", // отображаемое имя пользователя
      "Sex"         : 0,      // пол
      "Avatar"      : 123129, // CRC32 фотографии юзера
	  "TeamLead"    : true    // (8.16+) true, если пользователь TeamLead, поле опционально
    }
    ...
]

8133 sc_users_avatars (8.0+)
// аватары пользователей (прямоугольные картинки), массив объектов
[
  {
    "UIN"    : 192,   // идентификатор юзера
	"CRC32"  : 6987,  // CRC32 оригинальной фотографии пользователя. Если 0 - то фото нет, и поля Width, Height и Data не будут сформированы
    "Width"  : 46,    // размер по горизонтали
    "Height" : 46     // размер по вертикали
	"Data"   : "..."  // base64 изображение в формате jpg
  },
...
]

8134 sc_text_conf_update (8.0+)
// конференция обновлена
{
  "UID"          : 98,            // идентификатор конференции
  "ConfName"     : "sysop"        // новое имя
  "ConfTopic"    : "bla-bla-bla", // тема конференции
  "ConfType"     : 1             // тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая

// deprecated 8.4+  "FlagLockExit" : false          // запретить выход из конференции
}

8135 sc_live_reconnect (8.0+)
// быстрое "переподключение", нужно для мобильных клиентов. Параметры необязательны.
// Если какого-то из них нет, то эти данные не менялись.
// Если права пользователя были изменены, то они придут отдельной командой, sc_get_all_rights
{
  "DlgIdx"             : 745,     // индекс последнего изменения приватных диалогов
  "ChangeID"           : 123,     // текущий числовой идентификатор изменений учётной записи. Если данные пользователя менялись или у пользователя есть отложенные технические сообщения - этот ID будет увеличен
  "BBS"                : true,    // если была изменена доска объявлений
  "State"              : 0,       // (8.1+) статус, который нужно установить
  "UpdateGPS"          : 15,      // (8.12+) время в минутах, как часто отправлять на сервер свою позицию
  "RobotAvatar"        : 0,       // (8.13+) аватар встроенного робота
  "RobotNick"          : "Elisa", // (8.13+) ник встроенного робота
  "CustomMenuCRC32"    : 654134,  // (8.14+) CRC32 custom menu, если есть. Если нет - параметра не будет  
  "OptionsPresetID"    : 17,      // (8.14+) идентификатор название шаблона настроек, если 0 - шаблона нет
  "OptionsPresetCRC32" : 4564871, // (8.14+) контрольная сумма шаблона настроек
  "CID"                : 12367,   // (8.16+) идентификатор соединения
  "UsersID"            : 17384,   // (8.17+) последний глобальный ChangeID списка зарегистрированных пользователей   
  "PublicContacts"     : 723645,  // (2023.2+) контрольная сумма общего списка контактов, если 0 - список пустой
  "PersonalContacts"   : 0        // (2023.2+) контрольная сумма личного списка контактов, если 0 - личных контактов нет
}

// 8136 sc_update_user_avatar (8.0+)
// // обновлено фото пользователя
// {
// "UIN"       : 83,     // идентификатор пользователя
//  "Avatar"    : 123129, // CRC32 фотографии юзера
//  "ChangeID"  : 21      // числовой идентификатор изменений пользователя
// }

8137 sc_cids_killed (8.1+)
// только что отключен от сервера список CID-ов пользователей
{
  "CIDS" : "1,17,84,3" // список сетевых идентификаторов
}

8138 sc_cids_halted (8.1+)
// только что отключен от сервера + завершены приложения списка CID-ов пользователей
{
  "CIDS" : "1,17,84,3" // список сетевых идентификаторов
}

8139 sc_conf_read (8.1+)
// пользователь только что прочитал сообщение в конференции, команда рассылается всем инстансам UIN при мультилогине
{
  "UID" : 17,  // идентификатор конференции
  "ID"  : 1847 // номер сообщения в этой конференции
}

813A sc_media_incoming_call_accepted_by_another_cid (8.1+)
// медиа-звонок принят мной на другом устройстве
{
  "CID"      : 17,             // идентификатор подключения клиента, который принял вызов
  "IP"       : "192.168.10.1", // IP адрес приложения
  "OS"       : "Windows 10",   // операционная система приложения
  "AppType"  : "win32",        // тип клиента, который принял вызов (win32, android, linux, macos, ios, web etc.)
  "CallType" : 0               // тип принятого звонка: 0 - голосовой, 1 - видео, 2 - шаринг экрана
}

813B sc_close_broadcast_window (8.2+)
// закрыть окно входящего оповещения, оповещения были прочитаны на другом устройстве

813C sc_is_plugins_list_active (8.2+)
// запрос с сервера, есть ли указанный список работающих плагинов. Если плагины есть и работают - нужно ответить, если нет - просто игнорируем запрос
{
  "UIN"             : 17,          // идентификатор пользователя, который сделал запрос
  "CID"             : 1245,        // CID пользователя, который сделал запрос
  "PluginRequester" : "VNCClient", // плагин, который делал запрос
  "EnablePlugins"   : "VNCServer"  // работающие плагины, через запятую
}

813D sc_plugins_list_active (8.2+)
// есть указанный список работающих плагинов, ответ для конкретного CID, для указанного плагина-реквестера
{
  "UIN"             : 17,               // кто ответил
  "CID"             : 1245,             // CID пользователя, который отправил ответ
  "AppType"         : "win32",          // тип приложения ответчика
  "IP"              : "192.168.10.113", // IP адрес ответчика
  "PluginRequester" : "VNCClient",      // для какого плагина ответ
  "EnablePlugins"   : "VNCServer"       // список работающих плагинов, который запросил спросил клиент (UIN/CID) для своей работы
}

813E sc_incoming_message_removed (8.2+)
// ваше исходящее сообщение в конференцию или в приват удалено на сервере, сообщение уходит только CID-у отправителя сообщения
{
  "Place" : 1,   // 1 - PLACE_TYPE_PRIVATE, 2 - PLACE_TYPE_TEXT_CONF
  "ID"    : 17,  // UIN либо UID, в зависимости от Place
  "CRC32" : 7841 // контрольная сумма исходящего сообщения
}

813F sc_incoming_message_modified (8.2+)
// ваше исходяшее сообщение в конференцию или в приват модифицировано на сервере, сообщение уходит только CID-у отправителя сообщения
{
  "Place" : 1,   // 1 - PLACE_TYPE_PRIVATE, 2 - PLACE_TYPE_TEXT_CONF
  "ID"    : 17,  // UIN либо UID, в зависимости от Place
  "CRC32" : 7841 // контрольная сумма исходящего сообщения
}

8140 sc_try_to_modify_self_private_message (8.4+)
// попытка отредактировать своё сообщение в привате
{
  "UIN"     : 17,    // идентификатор собеседника, с кем открыт диалог
  "ID"      : 78123, // идентификатор сообщения, которое нужно отредактировать. Обязательное условие: отправитель - только тот, кто запрашивает редактирование
  "MsgType" : 0,     // тип сообщения
  "Msg"     : ""     // тело сообщения согласно типу
}

8141 sc_live_reconnect_finish (8.4+)
// процесс переподключения закончен

8142 sc_adm_asterisk_log (8.5+)
// свежий кусок лога работы с Asterisk
{
  "Connected" : true, // подключен к серверу или нет
  "Log"       : ""    // многострочный текст лога
}

8143 sc_integrations (8.5+)
// список включенных интеграций, объекты. Количество пунктов может меняться,
// true или false указывается явно. То есть, если какой-то позиции нет в списке,
// это не значит, что она выключена
{
  "Asterisk"      : true, // включена интеграция с Asterisk
  "AutoNotifiers" : false // (8.7+) автоматические "важные" уведомления (Ctrl+4)
}

8144 sc_conf_msg_readers (8.7+)
// кто из пользователей конференции получил/прочитал указанное сообщение и когда
{
  "UID"     : 17,    // идентификатор конференции
  "ID"      : 17489, // идентификатор сообщения
  "Context" : "bla-bla-bla", // текст, отправленный в команде-запросе

  "Got" : [      // массив объектов, список пользователей, кто получил сообщение
   {
     "UIN"   : 6, // идентификатор получателя сообщения
	 "dtUTC" : "2021.03.12.18.45.13", // UTC дата и время получения последнего сообщения
	 "ID"    : 36 // ID последнего полученного сообщения
   },
   ...
  ],
  "Read" : [ // массив объектов, список пользователей, кто прочитал сообщение
   {
     "UIN"   : 6, // идентификатор пользователя, который прочитал сообщение
	 "dtUTC" : "2021.03.12.18.45.13" // UTC дата и время прочтения последнего сообщения
	 "ID"    : 36 // ID последнего прочитанного сообщения
   },
   ...
  ],
  "Users" : [ // список пользователей-получаталей/читалей сообщения, array of objects
    {
      "UIN"         : 21,     // идентификатор пользователя
      "DisplayName" : "Ivan", // отображаемое имя пользователя
      "Sex"         : 0,      // пол
      "Avatar"      : 123129, // CRC32 фотографии юзера
      "ChangeID"    : 54      // числовой идентификатор изменений пользователя
    }
}

8145 sc_set_remote_client_current_place_id (8.7+)
// открыть в интерфейсе удалённого клиента приват с определённым человеком либо конференцию
{
  "Show"  : true, // показать окно чата на передний план или нет
  "Place" : 1,    // тип раздела чата, который нужно открыть
                  //  PLACE_TYPE_CONSOLE   = 0;
                  //  PLACE_TYPE_PRIVATE   = 1;
                  //  PLACE_TYPE_TEXT_CONF = 2;
                  //  PLACE_TYPE_FORUM     = 3;
                  //  PLACE_TYPE_KANBAN    = 4;
                  //  PLACE_TYPE_BBS       = 5;
                  //  PLACE_TYPE_BROADCAST = 6;
                  //  PLACE_TYPE_DEFAULT   = 7;
                  //  PLACE_TYPE_CREATE_NEW_TEXT_CONF = 8;
                  //  PLACE_TYPE_SELECT_CONF_TO_JOIN  = 9;
                  //  PLACE_TYPE_GET_ANDROID          = 10;
                  //  PLACE_TYPE_GET_IMPORTANT_MESSAGES = 11;
				  //  PLACE_TYPE_GET_IOS = 13
  "ID"    : 17    // UIN, если нужно открыть приват, UID - если конференцию и т.п.
}

8146 sc_try_to_make_media_call (8.7+)
// принудительно начать звонок с указанными параметрами, выполняется через API сервера
{
  "UIN"        : 17,   // кому нужно позвонить
  "Type"       : 0,    // тип звонка
                       // MEDIA_CALL_TYPE_VOICE          = 0
                       // MEDIA_CALL_TYPE_VIDEO          = 1
                       // MEDIA_CALL_TYPE_SCREEN_SHARING = 2
  "FullScreen" : true  // разворачивать окно звонка на весь экран (только для VIDEO/SCREEN_SHARING)
}

8147 sc_adm_integration_turbosms_balance (8.8+)
// баланс состояния счёта в сервисе TurboSMS
{
  "response_code"   : 0,
  "response_status" : "OK",
  "response_result" :
    {
	  "balance": 3.25
	}
}

8148 sc_adm_integration_turbosms_ping (8.8+)
// ответ PING от сервиса TurboSMS
{
  "response_code"   : 1,
  "response_status" : "PONG",
  "response_result" : null
}

8149 sc_adm_integration_turbosms_send_message (8.8+)
// ответ на отправку тестового сообщения в сервисе TurboSMS
{
  "response_code"   : 800,
  "response_status" : "SUCCESS_MESSAGE_ACCEPTED",
  "response_result" :
    [
      {
        "phone"           : "380501234567",
	    "message_id"      : "80ad6b60-609a-363b-7664-2507e68f6e52",
		"response_code"   : 0,
		"response_status" : "OK"
      }
    ]
}

814A sc_media_call_start_ok (8.9+)
// начат медиа звонок с указанными параметрами
{
  "UIN"              : 17,   // кому нужно позвонить
  "UINOriginal"      : 17,
  "CallTypeOriginal" : 0,    // тип звонка
  "CallType"         : 0,    // тип звонка
                       // MEDIA_CALL_TYPE_VOICE          = 0
                       // MEDIA_CALL_TYPE_VIDEO          = 1
                       // MEDIA_CALL_TYPE_SCREEN_SHARING = 2
  "MID"              : 82374827346, // MediaID
  "FullScreen" : true, // разворачивать окно звонка на весь экран (только для VIDEO/SCREEN_SHARING)
  "ScreenID"   : "screen:0:0" // номер экрана, только для SCREEN_SHARING
}

814B sc_kanban_project_part_info (8.9+)
// запрошенная информация о проекте, выборочно
{
  "ID" : 94, // уникальный идентификатор проекта
  "What": "Name,State,Description,dtDeadLine,dtClosed,dtCreated,UINOwner", // список запрошенных полей
  // запрошенные поля, по одному
  "Name"        : "SuperProject",        // название проекта
  "dtCreated"   : "02.01.2015.00.17.32", // дата и время создания проекта в формате dd.mm.yyyy.hh.nn.ss
  "dtDeadLine"  : "01.01.2016.17.24.30", // дата и время дедлайна, если его нет, то "01.01.3000.00.00.00"
  "dtClosed"    : "02.01.2016.17.24.30", // дата и время закрытия проекта, если его нет, то "01.01.3000.00.00.00"
  "State"       : 0,                     // статус проекта, пока не используется, равен 0
  "Description" : "Bla-bla-bla",         // описание проекта
  "UINOwner"    : 21                     // UIN создателя проекта
}

814C sc_personal_users_groups_list (8.9+)
// список личных групп пользователей, со списком юзеров внутри, массив объектов
[
  {
    "Name"       : "bla-bla-bla", // название группы пользователей
    "ID"         : 17,            // идентификатор группы, целое число
    "Users"      : "7,8,4,15"     // список пользователей группы
  },
....
]

814D sc_adm_new_personal_user_group_created (8.9+)
// уведомление о том, что новая персональная группа пользователей успешно создана, 
// ответ на команду cs_create_personal_user_group
{
  "ID"         : 17, // уникальный идентификатор группы, целое число
  "UINOwner"   : 21, // UIN владельца группы
  "AccessType" : "kanban,any" // модификатор, слова через запятую
}

814E sc_adm_personal_group_users_list (8.9+)
// список пользователей в персональной группе юзера, массив объектов
{
  "UIN"   : 17, // идентификатор владельца группы
  "ID"    : 21, // идентификатор личной группы пользователя-владельца
  "Users" : // список пользователей в группе, массив объектов
  [
    {
      "DisplayName" : "John Smith", // отображаемое имя пользователя
      "UIN"         : 17            // уникальный идентификатор пользователя, целое число
    },
  ....
  ]
}

814F sc_new_personal_user_group_created (8.9+)
// уведомление о том, что новая персональная группа пользователей успешно создана
{
  "ID"    : 17,            // уникальный идентификатор группы, целое число
  "Name"  : "bla-bla-bla", // название группы пользователей
  "Users" : "17,4,56,789"  // список пользователей группы, UIN-ы через запятую
}

8150 sc_personal_user_groups_removed (8.9+)
// список личных групп пользователя удалён с сервера
{
  "IDList"  : "87,3,45" // идентификаторы личных групп пользователя
}

8151 sc_personal_user_group_data (8.9+)
// личная группа пользователя, ID, название и список пользователей
{
  "ID"    : 17,            // уникальный идентификатор группы, целое число
  "Name"  : "bla-bla-bla", // название группы пользователей
  "Users" : [ // массив объектов
    {
      "UIN" : 17,                        // идентификатор пользователя
	  "DisplayName" : "Elon Reeve Musk"  // отображаемое имя в чате
	},
	...
  ]
}

8152 sc_users_from_personal_user_group_removed (8.9+)
// список пользователей из персональной группы успешно удалён
{
  "ID"    : 87 // идентификатор группы пользователя  
  "Users" : "8,6,4,554,879" // список удалённых пользователей, UIN-ы через запятую
}

8153 sc_personal_users_groups_names_list (8.9+)
// список личных групп пользователей, массив объектов
[
  {
    "Name"       : "bla-bla-bla", // название группы пользователей
    "ID"         : 17             // идентификатор группы, целое число
  },
....
]

8154 sc_personal_user_group_renamed (8.9+)
// персональная группа пользователей переименована
{
  "ID"    : 87, // идентификатор группы пользователя
  "Name"  : "bla-bla-bla-2",  // новое название группы
}

8155 sc_public_users_groups_list (8.9+)
// список публичных групп пользователей, массив объектов
[
  {
    "Name"       : "bla-bla-bla", // название группы пользователей
    "ID"         : 17             // идентификатор группы, целое число
  },
....
]

8156 sc_kanban_rights_group_list (8.9+)
// список групп прав с доступом к канбану, массив объектов
[
  {
    "ID"   : 17,                    // идентификатор группы прав в базе данных
	"Name" : "kanban rights group"  // название группы прав
  },
...  
]

8157 sc_kanban_user_group_added_to_project (8.9+)
// группа успешно добавлена в проект
{
  "ID"        : 789, // идентификатор созданной записи в базе данных
  "ProjectID" : 17,  // идентификатор kanban-проекта
  "GroupID"   : 5,   // группа пользователей, общая, с доступом "kanban" либо личная, нумерация сквозная
  "RightsID"  : 18   // идентификатор группы прав
}

8158 sc_kanban_project_group_list (8.9+)
// список групп доступа к канбан-проекту, ответ на запрос cs_get_kanban_get_projects_groups
{
  "ProjectID" : 17,  // идентификатор kanban-проекта
  "Data" : [ // массив объектов
    {
      "ID"         : 178,     // идентификатор записи
      "GroupID"    : 45,      // идентификатор группы пользователей 
      "RightsID"   : 165,     // идентификатор группы прав
	  "Type"       : 0,       // 0 - общая группа, 1 - личная
	  "UINOwner"   : 0,       // UIN владельца группы, если это не я - значит только read only
      "GroupName"  : "Group", // название группы пользователей  
      "RightsName" : "Guests" // название группы прав
	},
    ...
  ]
}

8159 sc_kanban_removed_user_groups_from_project (8.9+)
// из канбан-проекта удалены указанные группы пользователей
{
  "ID"     : 17,       // идентификатор kanban-проекта
  "Groups" : "1,5,29"  // список групп пользователей, через запятую. 
                       // Общих, с доступом "kanban" либо личных, нумерация сквозная
}

815A sc_common_user_group_data (8.9+)
// общая группа пользователя, ID, название и список пользователей
{
  "ID"    : 17,            // уникальный идентификатор группы, целое число
  "Name"  : "bla-bla-bla", // название группы пользователей
  "Users" : [ // массив объектов
    {
      "UIN" : 17,                        // идентификатор пользователя
	  "DisplayName" : "Elon Reeve Musk"  // отображаемое имя в чате
	},
	...
  ]
}

815B sc_all_user_group_membership_list (8.9+)
// список общих и личных групп, куда входит указанный пользователь,
// ответ на запрос cs_adm_get_all_user_group_membership_list
{
  "UIN" : 17, // идентификатор пользователя
  "Personal" : [ 
    {
      "Name"        : "Bla-bla-bla",
	  "ID"          : 78,
	  "UINOwner"    : 6, 
	  "DisplayName" : "John Smith"
	},
    ...	
  ],
  "Common" : [
    {
      "Name"        : "Common Group",
	  "ID"          : 12
	},
    ...	
  ]
}

815C sc_get_geo_position (8.12+)
// запросить географическую позицию устройства пользователя
// ответ за запрос должен быть - 01DA cs_geo_position (8.12+)

815D sc_user_gps_history (8.12+)
// история перемещений пользователя за период, ответ на запрос 01DB cs_get_user_gps_history
{
  "UIN" : 17, // идентификатор пользователя
  "Data" : [ // массив объектов
    {
      "id"        : 17, // порядковый номер записи в базе данных 
      "Latitude"  : "50.08006205562636", // широта
      "Longitude" : "29.931609258055687", // долгота
      "Error"     : 0, // 0 - всё ок, 1 - permission denied, 2 - gps disabled
	  "AppType"   : "android", // тип приложения: ios, android
	  "dtUTC"     : "26.11.2021.09.18.31", // дата и время геопозиции в UTC формате dd.mm.yyyy.hh.nn.ss
	},
    ...	
  ]
}

815E sc_users_fired (8.12+)
// пользователи успешно уволены, ответ на cs_adm_fire_users
{
  "Users"      : "17,2,3", // список UIN-ов через запятую, которые были переданы для увольнения
  "FiredCount" : 3         // сколько пользователей из этого списка были реально уволены
}

815F sc_remove_history (8.13+)
// удаление сообщений/файлов/логов/записей звонков и т.п. любого контента в MyChat Client за период или полностью
// команда может приходить по запросу cs_get_delayed_commands либо, если клиент онлайн, то в момент выполнения на сервере
{
  "performer" : "msl", // кто это сделал. msl - скрипт, iapi - Integration API, 17 - UIN исполнителя, если выполнил из клиента или из админки, например

  "private" : { если объекта нет в JSON, значит, приваты не трогаем, точно так же и для всего остального
      "what" : "all" // все приваты, либо конкретные, через запятую, тогда вместо all будет, например "17,0,3"
        // Дата и время в UTC, часы, минуты и секунды можно не указывать, если они 00
        "from" : "01.01.2000", // с какого времени удалять данные, UTC. Если стартовой даты нет в объекте - валим "с начала времён"
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC. Если конечной даты нет в объекте - валим всё "по сейчас", в UTC
    },
  "conf" : {
      "what" : "2,3,911", // UID-ы конференций, через запятую, либо "all". Если нужной конфы нет в истории, просто пропускаем
        "from" : "01.01.2021:17:34", // с какого времени удалять данные, UTC
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC
    },
    "backup" : { // файлы бекапов
      // используется дата и время модификации файла
        "from" : "01.01.2021:17:34", // с какого времени удалять данные, UTC
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC
  },
    "file" : { // принятые файлы
      "what" : "all", // UIN-ы отправителей файлов, через запятую, либо "all". Не важно, в конференцию уходил файл или в приват, важен только отправитель
      // используется дата и время модификации файла
        "from" : "01.01.2021:17:34", // с какого времени удалять данные, UTC
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC
    },
  "log" : { // логи
        "from" : "01.01.2021:17:34", // с какого времени удалять данные, UTC
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC
    },
  "record" : { // записи звонков
        "from" : "01.01.2021:17:34", // с какого времени удалять данные, UTC
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC
    },
  "cache_img" : { // кеши картинок
        "from" : "01.01.2021:17:34", // с какого времени удалять данные, UTC
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC
    },
  "cache_worktime" : { // кеши истории рабочего времени
        "from" : "01.01.2021:17:34", // с какого времени удалять данные, UTC
        "to"   : "15.11.2021.16.33.55" // по какое время удалять данные, UTC
  }
}

8160 sc_media_conf (8.13+)
// работа с медиаконференциями, основные команды с большой буквы, дополнительные - с маленькой
{
  "CMD" : 0, // тип команды
  "UID" : 17 // номер конференции
}

8161 sc_tech_id (8.13+)
// текущий TechID пользователя для отложенных сообщений
{
  "TechID" : 17  // ID последнего технического сообщения, если есть. Если таких сообщений нет, то = 0
}

8162 sc_adm_custom_menu_created (8.14+)
// custom-меню для клиентских приложений создано успешно, ответка на 01DF cs_adm_custom_menu_create
{
  "ID"       : 17,          // уникальный идентификатор меню, число 
  "MenuName" : "mynewmenu", // название меню, всегда в lowercase
  "BodyJSON" : "...."       // содержимое меню, JSON-объект в текстовом поле 
}

8163 sc_adm_custom_menu_list (8.14+)
// полный список custom-меню для клиентских приложений, массив объектов, ответка на 01E0 cs_adm_get_custom_menu_list
[
  {
    "ID"         : 17,          // уникальный идентификатор меню, число 
    "MenuName"   : "MyNewMenu", // название меню
    "BodyJSON"   : "....",      // содержимое меню, JSON-объект в текстовом поле 
	"GroupsList" : "1,7,13"     // список групп пользователей, для которых наначено это меню
  },
  ...
]

8164 sc_custom_menu (8.14+)
// custom-menu пользователя
// ответ на 01E5 cs_get_custom_menu
{
  "BodyJSON"        : "....",   // содержимое меню, JSON-объект в текстовом поле   
  "CustomMenuCRC32" : 65413264  // контрольная сумма custom menu (CRC32)
}

8165 sc_get_fresh_logs (8.15+)
// получить свежие протоколы MyChat Client (\logs, протоколы установки и обновления, последний баг-репорт, JSON настроек)

8166 sc_media_conf_join (8.15+)
// подключиться к медиаконференции
{
  "UID"        : 17, // идентификатор текстовой конференции, к которой привязывается медиа-конференция
  "Type"       : 1,  // тип конференции, CONF_MEDIA_VOICE = 1, CONF_MEDIA_VIDEO = 2, CONF_MEDIA_WEBINAR = 3
  "TURNPort"   : 8888,                          // (8.16+) номер TCP порта TURN сервера MyChat
  "IPList"     : "192.168.10.1,213.130.24.149", // (8.16+) список IP адресов TURN сервера MyChat, через запятую
  "Credential" : ".....",                       // (8.16+) пароль на доступ к TURN серверу
  "UserName"   : "....."                        // (8.16+) имя пользователя для доступа к TURN серверу
}

8167 sc_media_conf_leave (8.15+)
// пользователь отключился от медиаконференции, команда отправляется всем онлайн-пользователям указанной конференции
{
  "UID" : 17  // идентификатор текстовой конференции, к которой привязывается медиа-конференция
  "UIN" : 29, // идентификатор пользователя
  "CID" : 113 // идентификатор соединения пользователя
}

8168 sc_adm_ad_users_photos (8.15+)
// отмашка в админку, что с запросами фоток мы закончили, можно начинать спрашивать, либо информация о наличии фоток (контрольные суммы, логины), массив объектов
[
  {
    "sAMAccountName" : "smith", // логин доменного пользователя
	"PhotoCRC32"     : 93847563 // контрольная сумма фотографии, если 0 - фотографии нету
  },
  ...
]

8169 sc_adm_ad_user_photo_thumb (8.15+)
// ответ от сервера, миниатюра фотографии пользователя
{
  "sAMAccountName" : "smith", // логин доменного пользователя
  "jpegPhoto"      : "weuiytwf" // base64 миниатюры фотографии пользователя
}

816A sc_conf_msg_types_count (8.15+)
// информация о количестве разных типов сообщений в конференции, ответ на запрос 01EC cs_get_conf_msg_types_count
{
  "UID"       : 17, // идентификатор конференции
  "File"      : 1,  // сколько файлов отправлено
  "Image"     : 84, // изображений
  "Barcode"   : 0,  // штрих-кодов
  "Excel"     : 11, // excel-таблиц
  "Source"    : 0,  // исходных кодов
  "LanLink"   : 0,  // внутрисетевых ссылок
  "AnyLink"   : 0,  // ссылок
  "Location"  : 0,  // геопозиций
  "Contact"   : 0,  // контактов (vCard) 
  "Audio"     : 0,  // голосовых сообщений
  "Video"     : 0,  // видеосообщений
  "Youtube"   : 0,  // youtube-ссылок
  "Formatted" : 0   // сообщений с форматированным текстом
}

816B sc_remove_my_acc (8.16+)
// удалить учётную запись, все данные и историю
{
  "UIN" : 81 // идентификатор пользователя, данные которого нужно удалить
}

816C sc_conf_status_change (8.16+)
// изменён статус конференции, начат или закончен звонок (State = 0)
{
  "UID"     : 17,  // идентификатор конференции
  "State"   : 0,   // статус, 0 - текстовая, 1 - аудио конференция, 2 - видеоконференция, 3 - вебинар
  "Invoker" : 3,   // инициатор смены статуса
  "CID"     : 174, // CID инициатора смены статуса
  "Params"  : ""   // JSON кастомные настройки конференции, необязательно
}

816D sc_adm_check_user_pwd_state (8.16+)
// ответ на запрос корректности пароля пользователя (cs_adm_check_user_pwd)
{
  "UIN"    : 17, // идентификатор пользователя
  "Result" : 0   // результат проверки, 0 - всё ок, иначе - код ошибки
}

816E sc_media_conf_user_list (8.16+)
// ответ на запрос списка пользователей медиа-конференции (cs_get_media_conf_user_list)
{
  "UID"   : 17, // идентификатор конференции
  "Users" : [ // массив объектов
    {
      "UIN"      : 17,        // идентификатор пользователя
	  "Video"    : false,     // опционально, включена или выключена видеокамера
	  "Audio"    : true,      // опционально, включен или выключен микрофон
      "CID"      : 84,        // идентификатор коннекта устройства пользователя
	  "AppType"  : "android", // тип приложения: win32, ios, android, web, linux...
	  "Creator"  : true       // опционально, если этот пользователь - создатель конференции
	},
    ...	
  ]
}

816F sc_media_conf_user_joined (8.15+)
// пользователь подключился к медиаконференции, команда отправляется всем онлайн-пользователям указанной конференции
{
  "UID"     : 17        // идентификатор текстовой конференции, к которой привязывается медиа-конференция
  "UIN"     : 29,       // идентификатор пользователя
  "CID"     : 113,      // идентификатор соединения пользователя
  "AppType" : "android" // тип приложения: win32, ios, android, web, linux...
}

8170 sc_media_conf_broadcast (8.16+)
// универсальная команда рассылки сообщения всем пользователям медиа конференции, кроме отправителя
{
  "cmd" : 0,  // тип команды
  "UID" : 17, // номер конференции
  "UIN" : 14, // идентификатор отправителя
  "CID" : 257 // ConnectionID отправителя
  ... // дополнительные команды, любые
}

8171 sc_conf_user_list (8.16+)
// список пользователей указанной конференции, ответ на cs_get_conf_user_list
{
  "UID"           : 17,               // идентификатор конференции
  "UserListCRC32" : 172635123,        // контрольная сумма списка юзеров
  "UINS"          : "1,7,8,14,89,100" // список UIN-ов пользователей через запятую
}

8172 sc_remove_users (8.16+)
// с сервера удалены или заблокированы указанные пользователи, нужно оперативно подчистить такие списки локально в памяти клиентского приложения:
// - приватные диалоги
// - списки людей во всех конференциях
// - личные контакты
// - общие контакты
// При следующем логине на сервер все правильные данные придут, эта команда нужна, чтобы снять одномоментную нагрузку с сервера
{
  "UINS" : "3,14,15,92,6" // список UIN-ов пользователей через запятую, в произвольном порядке
}

8173 sc_join_newbies_to_txt_conf (8.16+)
// уведомление, в конференцию добавлены один или несколько пользователей
{
  "UID"    : 17,             // идентификатор конференции
  "UINS"   : "20,45,17,3,1", // список пользователей, которые заходят в конференцию
  "Moders" : "45"            // список модераторов, через запятую, необязательный параметр 
}

8174 sc_important_notifiers (8.16+)
// важное уведомление с сервера, нужно сгенерировать локально
{
  "Type": 110, // уведомление о том, что подписка заканчивается через два месяца или меньше
}

8175 sc_adm_user_conf_list (2023.2+)
// список конференций, в которые входит пользователь, ответ на запрос cs_adm_get_user_conf_list, массив объектов
[
  {
    "UID"         : 17, // идентификатор конференции
    "ConfName"    : "Главная конференция",   // название конференции
    "ConfTopic"   : "Общение на любые темы", // тема конференции
    "ConfType"    : 1,                       // тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - невидимая
    "Owner"       : 17,                      // владелец конференции, её создатель. Если это UIN=0, то это автосоздаваемая конференция
    "DisplayName" : "Monica Bellucci", // отображаемое имя владельца конференции
    "CanKick"     : false              // true, если пользователя можно выгнать из конфы - он входит туда самостоятельно
	                               // если false - это значит, что он попадает в конфу согласно включаемых групп 
                                       // или в конфу входит группа с индексом 0 (режим "Включать всех")
  },
...  
]

8176 sc_conf_removed (2023.2+)
// текстовая конференция удалена, нужно удалить кеши и всю локальную историю
{
  "UID" : 21 // идентификатор конференции
}

8177 sc_badword_list_uploaded (2023.2+)
// список "плохих" слов для фильтра успешно добавлен
{
  "Total"    : 179, // всего слов в базе до импорта нового списка
  "New"      : 73,  // слов в списке, который мы пытались добавить
  "Imported" : 5    // всего слов, которые были добавлены в общий фильтр нецензурных выражений
}

8178 sc_kanban_last_comments_list
// список последних комментариев для тасков выбранных этапов, ответ на cs_kanban_get_last_comments_by_stages
[ 
  {
    "ID" : 18, // идентификатор задачи
    "IDComment"        : 987,                   // уникальный идентификатор комментария, число
    "UINOwner"         : 6,                     // идентификатор создателя задачи
    "CommentType"      : 0,                     // тип комментария, число
    "CommentText"      : "Bla-bla-bla",         // текст комментария
    "dtPosted"         : "17.05.2013.23.20.17", // дата и время создания комментария
    "DisplayNameOwner" : "Alexey",              // отображаемое имя создателя задачи
    "SexOwner"         : 1,                     // пол создателя задачи
    "AvatarOwner"      : 87,                    // аватар создателя задачи
    "Files":                                    // (8.1+) список файлов, набор вложенных объектов, может быть пустым
      {
        "file_name":                             // название файла
          {
            Hash: "df5df54gdf5g4df5g4df4gd5f64gdsf564g6df54g", // контрольная сумма файла
            Size: "654765858"                                  // размер файла в байтах
          },
         ...
      }
  },
  ...
]

8179 sc_mute_data
// информация про mute-настройки уведомлений в конференциях и приватах для пользователя
{
  "ChangeID" : 17,
  "Conf": { // уведомления в конференциях
    "17" : { // UID конференции, объект
      "Mute"    : true,
      "Expired" : "dd.mm.yyyy.hh.nn.ss", // дата, когда снять ограничение (UTC)
      "Sound"   : "default", // "-" - значит, без звука
    },
    ...
  },
  "Private": {
    "3" : { // UIN пользователя, объект
      "Mute"    : true,
      "Expired" : "dd.mm.yyyy.hh.nn.ss", // дата, когда снять ограничение (UTC)
      "Sound"   : "default", // "-" - значит, без звука
    },
    ...
  }
}

817A sc_kanban_script_list (2023.7+)
// список скриптов для канбан-тасков, ответ на команду cs_kanban_get_script_list. Названия через запятую, текстовая строка
{
  "List" : "First,Second,Last"
}

817B sc_kanban_task_script_list (2023.7+)
// список скриптов, "привязанных" к указанной задаче. Ответ на команду cs_kanban_get_task_script_list. Если скриптов нет - пустой массив
{
  "TaskID"  : 354, // идентификатор задачи  
  "Scripts" :     // список скриптов, "привязанных" к задаче, массив объектов
  [
    {
      "GroupID"    : 17,                      // идентификатор группы пользователей
      "GroupName"  : "MyKanbanGroup",         // название группы пользователей
      "ScriptName" : "CustomUpdateKanbanTask" // название скрипта, который будет срабатывать при изменении задачи, добавлии комментария или переносе задачи 
                                              // между этапами
    },
	....
  ]
}


!!!014A sc_personal_options_saved
// сохранить персональный набор настроек. JSON объект, любые поля
{
  "Notify" : 17 // ChangeID сохранённого блока настроек, который был отправлен в команде cs_save_personal_options
}
