Открытый протокол обмена данными MyChat Официальное описание Copyright (c) 2012-2024 by Alexey Pikurov / Network Software Solutions https://nsoft-s.com Редакция #158 от 2024-04-01 22:04:02 Версия протокола 2.68 --------------------------------- Все команды разделены на два типа: "клиент - сервер" и "сервер - клиент". Команды первого типа начинаются с префикса "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, // идентификатор конференции "Last" : 20, // получить последние N сообщений "All" : true // необязательный параметр. Если его нет, то в список не включаются // удалённые сообщения и "сообщения-удаляторы". // Если же All=true, то в списке будут все типы сообщений } 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 "PanicPINEnable" : false, // (2024.3+) включить специальный panic PIN code, при вводе которого клиент удалит локальные данные, заблокирует // свою учётную запись, все его "инкарнации" будут выгружены из памяти и сервер отправит уведомление для администраторов // в приватный чат "PanicPIN" : "123456" // содержимое panic PIN code, только цифры, от 4 до 8 символов длиной } 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" : "", // на что менять найденное плохое слово "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+) // получить логи разговоров в привате (синхронизация), ответная команда - sc_sync_private_history { "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", // наборы диапазонов индексов, через запятую. Можно указывать одинарные индексы, // можно диапазоны, очерёдность не важна "What" : "render-last-messages" // (2024.1+) контекст, что делать после получения недостающих сообщений с сервера } 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, // либо стандартные теги и <meta name="description"... // Сразу после этого сервер отправит клиенту сниппет для указанного URL-а // Если получить сниппет не удалось (нет интернета, болшой таймаут, несуществующий домен...), никакого ответа не будет { "URL" : "https://ogp.me/", // ссылка, которую нужно проверить и получить в ответ snippet "Context" : "uin-17" // контекст, где нужно будет отображать полученный сниппет } 0201 cs_get_private_dialogs_history (2024.1+) // получить список всех приватных диалогов, которые когда-либо были у пользователя // (UIN, ID, timestamp), отсортированные по активности в обратном порядке, // "свежие" - в начале. Ответка - sc_private_dialogs_history { "Days" : 35, // опциональный параметр, за сколько дней нужна история диалогов. // Если не указать ничего или указать 0, то будет выбрано всё, что есть "Type" : 0, // опциональный параметр, типы диалогов // 0 или без параметра - все типы диалогов, и активные, и закрытые // 1 - только активные (незакрытые) // 2 - только закрытые "Context" : "bla-bla-bla" // необязательный параметр, текстовая строка для контекста обработки запроса } 0202 cs_get_history_msg_summary (2024.2+) // получить количество сообщений в приватах и конференциях для полной синхронизации, в ответ придут только суммарные цифры, // все параметры необязательные. Если их не указать, будут запрошены все данные. Ответ на команду - sc_history_msg_summary { "Privates" : true, // запросить количество сообщений в приватах "Confs" : true, // запросить количество сообщений в конференциях (во всех, даже в закрытых и тех, из которых // пользователь был исключён. Синхронизируются сообщения до момента исключения пользователя из // конференции "Context" : "OpenHistory" // контекст, необязательный параметр } 0203 cs_get_conf_dialogs_history (2024.2+) // получить список всех диалогов в конференциях, которые когда-либо были у пользователя // (актуальных и тех, в которых он когда-то находился до определённого момента). Ответка - sc_conf_dialogs_history { "Context" : "bla-bla-bla" // необязательный параметр, текстовая строка для контекста обработки запроса } 0204 cs_add_history_autoclear (2024.3+) // установить автоматическое удаление истории для привата или конференции { "Type" : 1, // private: 1, conference: 2 "ID" : 17, // UIN или UID "Period" : 14, // через сколько дней очищать историю "Style" : 0 // 0 - история удаляется на сервере и на устройствах всех собеседников // 1 - история удаляется на устройствах собеседников, на сервере остаётся // 2 - история удаляется только на устройствах автора правила } 0205 cs_del_history_autoclear (2024.3+) // удалить режим автоматического удаления истории, список ID через запятую { "ID" : "1,17,94" } 0206 cs_get_history_autoclear_data (2023.3+) // получить список настроек для очистки истории в конференциях и приватах, ответ - sc_history_autoclear_list 0207 cs_remove_private_history (2023.3+) // полностью удалить историю сообщений с пользователем, на всех своих устройствах, на устройствах собеседника, а также в серверной базе данных. // В диалоге появляется отметка, что вся история удалена, тип сообщения - MSG_TYPE_HISTORY_REMOVED { "UIN" : 17 // идентификатор собеседника } 0208 cs_remove_conf_history (2023.3+) // полностью удалить историю сообщений в конференции, на всех устройтвах пользователей-членов конференции, а также в серверной базе данных. // В диалоге появляется отметка, что вся история удалена, тип сообщения - MSG_TYPE_HISTORY_REMOVED { "UID" : 3 // идентификатор конференции } 0209 cs_panic (2023.3+) // пользователь, возможно, подвёргся насильственным действиям третьих лиц { "Type" : 0, // тип события: // 0 - пользователь ввёл секретный PIN-код, история и настройки удалены на локальном устройстве, оно отключено от сервера, // учётную запись необходимо заблокировать на сервере // Example: https://maps.google.com/?q=50.08006205562636,29.931609258055687 "Latitude" : "50.08006205562636", // опционально, если есть доступ "Longitude" : "29.931609258055687", // опционально, если есть доступ "Reason" : "Any comment" } 020A cs_make_forward (2023.3+) // сделать редирект одного или нескольких сообщений из конференции/привата в одну или несколько конференций/приватов { "Place" : 1, // 1 - приват, 2 - конференция "ID" : 17, // UIN либо UID "IDList" : "1,7,8,9,14", // список сообщений для редиректа "To" : [ // массив объектов, куда делать редирект { "Place" : 2, // 1 - приват, 2 - конференция "ID" : 3 // UIN либо UID } ... ], "Comment" : "Bla-bla-bla" // опциональный текстовый комментарий } ==================================================================================================================================================== ===================================================================================================================================================== ===================================================================================================================================================== Команды от сервера к клиенту ------------------------------------------------------------------------------------------------------------------------------------------------------- 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 сервер "PanicPINCRC32" : 1234567 // (2024.3+) глобальный PIN-код безопасности, CRC32 от реального PIN-кода + соль, если отключен - то // параметра не будет } // 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 минут "PINLength" : 6, // (2024.3+) длина пин-кода, которым можно защитить программу. Если параметра нет - то 4 цифры "PanicPINCRC32" : 234234234 // (2024.3+) необязательный параметр, глобальный PIN-код безопасности, // после ввода которого пользовательская учётная запись блокируется на сервере, а на клиентском устройстве полностью // удаляются все данные. CRC32 от пароля с "солью" } 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, // идентификатор текстовой конференции "Data" : [ // список сообщений, array of objects { "UIN" : 17, // идентификатор отправителя сообщения "Msg" : "Tro-lo-lo", // текст сообщения "MsgType" : 0, // тип сообщения "dtUTC" : "dd.mm.yyyy.hh.nn.ss", // дата и время сообщения (UTC) "Idx" : 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 "PanicPINEnable" : false, // (2024.3+) включить специальный panic PIN code, при вводе которого клиент удалит локальные данные, заблокирует // свою учётную запись, все его "инкарнации" будут выгружены из памяти и сервер отправит уведомление для администраторов // в приватный чат "PanicPIN" : "123456", // содержимое panic PIN code, только цифры, от 4 до 8 символов длиной "PINLength" : 6 // (2024.3+) длина пин-кода, которым можно защитить MyChat Client } 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) "What" : "bla-bla-bla", // (2024.1+) необязательный параметр, контекст, если нужно передать его с клиента и потом получить обратно "Data" : [ { "UIN" : 98, // кто отправил сообщение "dtUTC" : "2015.09.01.17.18.35" // когда (UTC) "MsgType" : 1, // тип сообщения "Idx" : 75, // уникальный индекс сообщения "Msg" : "Hello!", // тело сообщения "SenderType" : 0, // (2024.1+) необязательный параметр, тип приложения отправителя, 0 - win32 "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) }, ... ] // deprecated 2024.1+ "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 "PanicPINCRC32" : 1234567, // (2024.3+) установка либо снятие (если = 0) глобального PIN-кода безопасности, // CRC32 от реального PIN-кода + соль "PINLength" : 6 // (2024.3+) длина пин-кода, которым можно защитить программу. Если параметра нет - то 4 цифры } 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 - личных контактов нет "TechID" : 2, // (2024.1+) ID последнего технического сообщения, если есть. Если таких сообщений нет, то переменной не будет // клиент может запросить разницу командой cs_get_delayed_commands "PINLength" : 6, // (2024.3+) длина пин-кода, которым можно защитить программу. Если параметра нет - то 4 цифры "PanicPINCRC32" : 1234567 // (2024.3+) глобальный PIN-код безопасности, CRC32 от реального PIN-кода + соль, если отключен - то // параметра не будет } // 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-17-core", // location, кто это сделал, UIN исполнителя (может быть 0), тип приложения (server, win32, android, ios, win32next, linux, macos, web) // location: msl - скрипт, iapi - Integration API, console - консоль (серверная или клиентская) "context" : "dbfix", // (2024.3+) опциональный контекст, зачем выполняется эта команда, например "dbfix 1" // если объекта нет в JSON, значит, приваты не трогаем, точно так же и для всех остальных корневых объектов "private" : { "what" : "all" // все приваты, либо конкретные, через запятую, тогда вместо "all" будет, например "17,0,3" // дата и время в UTC, часы, минуты и секунды можно не указывать, если они 00 "from" : "01.01.2000", // с какого времени удалять данные, UTC. Если "from" нет в объекте - валим "с начала времён" "to" : "15.11.2021.16.33.55" // по какое время удалять данные, UTC. Если "to" нет в объекте - валим всё "по сейчас" и старше // лучше поставить конечную дату что-то типа 3000 года, чтобы гарантировано перекрыть время, // если локальное время и время сервера не синхронизировано }, "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" // название скрипта, который будет срабатывать при изменении задачи, добавлии комментария или переносе задачи // между этапами }, .... ] } 817C sc_private_dialogs_history (2024.1+) // список приватных диалогов за период времени, которые были у пользователя // (UIN, ID, timestamp), отсортированные по активности в обратном порядке, // "свежие" - в начале JSON array Data. // Days - за сколько дней нужна история диалогов (если 0 - то всё, что есть). // Type: 0 - все типы диалогов, и активные, и закрытые; 1 - только активные (незакрытые); 2 - только закрытые // Ответ на запрос cs_get_private_dialogs_history { "Days" : 0, "Type" : 0, "Context": "bla-bla-bla", "Data" : [ { "UIN" : 35, // число, идентификатор собеседника "ID" : 4567, // ID последнего отправленного сообщения, по сути, это количество сообщений в диалоге, потому что // нумерация идёт по порядку, с единицы "dt" : "26.11.2023.09.18.31" // дата и время последнего сообщения в UTC в формате dd.mm.yyyy.hh.nn.ss.zzz }, ... ] } 817D sc_history_msg_summary (2024.2+) // количество сообщений в приватах и конференциях для полной синхронизации, параметры необязательны. // Ответ на команду - cs_get_history_msg_summary { "Privates" : 174587, // суммарное количество приватных сообщений, что есть для указанного пользователя "Confs" : 784, // суммарное количество сообщений в конференциях, что доступны для пользователя. // Учитываются авктивные конференции и те, в которых он присутствовал до момента закрытия или выхода "Context" : "OpenHistory" // контекст, если он был указан в исходном запросе } 817E sc_conf_dialogs_history (2024.2+) // список конференций за всё времяп, которые были у пользователя // (UID, ID, timestamp, название), отсортированные по активности в обратном порядке, // "свежие" - в начале JSON array Data. // Ответ на команду cs_get_conf_dialogs_history { "Context": "bla-bla-bla", "Data" : [ { "UID" : 35, // число, идентификатор конференции "ID" :17943, // ID последнего отправленного сообщения, которое доступно пользователю, // нумерация идёт по порядку, с единицы "ConfName" : "conf name", // название конференции "dt" : "26.11.2023.09.18.31" // дата и время последнего доступного сообщения в UTC в формате dd.mm.yyyy.hh.nn.ss.zzz }, ... ] } 817F sc_history_autoclear_list (2024.3+) // список конференций/приватов для автоматической чистки, JSON array of objects, ответ на команду cs_get_history_autoclear_data [ { "ID" : 17, // уникальный идентификатор записи "PlaceType" : 2, // 1 - приват, 2 - конференция "PlaceID" : 3, // UIN собеседника либо UID конференции "StartID" : 18745, // ID сообщения, после которого следует начать удаление истории "Period" : 14, // период, после которого следует удалять историю, в днях "TimeStamp" : "26.02.2024.09.18.31" // дата и время последней очистки в UTC в формате dd.mm.yyyy.hh.nn.ss.zzz, серверное время "Style" : 1 // 0 - история удаляется на сервере и на устройствах всех собеседников // 1 - история удаляется на устройствах собеседников, на сервере остаётся // 2 - история удаляется только на устройствах автора правила } ... ] !!!014A sc_personal_options_saved // сохранить персональный набор настроек. JSON объект, любые поля { "Notify" : 17 // ChangeID сохранённого блока настроек, который был отправлен в команде cs_save_personal_options }