MyChat 2023.1 — beta аудио конференций, новая схема версий

  1. Новая схема нумерации версий
  2. Изменение схемы лицензирования, снижение цен
  3. Голосовые конференции в Android, Linux и macOS
  4. Полные списки людей в конференциях
  5. Перехват событий управления проектами Kanban в скриптах
  6. QR-коды в админке для быстрого входа в чат на мобильных устройствах
  7. Как запретить подключение к серверу чата из Android или iOS?
  8. Сервер стал быстрее, уменьшен расход трафика
  9. Разные полезности
  10. Все изменения общим списком + история разработки
  11. Как обновиться на последнюю версию?

1. Новая схема нумерации версий


Решение назревало долго, общая схема похожа на ту, что использует компания JetBrains. Простой пример, как было, как стало, и почему стало лучше :)

Было: версия 8.15.1.14. Мажорная версия 8, минорная — 15, релиз номер 1, сборка 14. О чём это говорит обычному человеку? Наверное, эта версия лучше, чем 7.14, потому что это же аж целая 8-я версия. И лучше, чем 8.14, потому что туда что-то разработчики накрутили, но не сильно много, потому что первая цифра не изменилась.

Стало: 2023.1.0.17. Слева-направо:

  • 1 число — год выпуска;
  • 2 число — номер версии в пределах этого года;
  • 3 число — номер минорной версии, например, технический баг-фикс;
  • 4 число — номер сборки, всегда увеличивается, после Нового Года обнуляется.

Как минимум, понятности стало больше, порядка — тоже.


2. Изменение схемы лицензирования, снижение цен


В MyChat уже больше десяти лет есть система подписки на обновления и техническую поддержку (с версии 4.15, выпущенной в 2012 году). Это полезная и нужная вещь, которую ценят и используют наши клиенты.

Начиная с 2023 года, все устаревшие серверы, владельцы которых по тем или иным причинам не хотят или не могут их обновлять — поддерживаться не будут. Также для них будут отключены PUSH-сообщения в Android/iOS приложениях.

Если на сервере нет актуальной подписки на обновления — он не перестанет работать, но переключится в режим "read-only", без возможности отправки новых сообщений. История и настройки сохранятся.

Если в вашей компании просрочена подписка на обновления MyChat — не беда, вы можете продлить её за половину стоимости до весны, в течение января и февраля 2023 года.

Не затягивайте, проконсультируйтесь с нашей службой поддержки.


3. Голосовые конференции в Android, Linux и macOS


Мы запускаем аудио-конференции в бета-режиме, пока что они доступны для Android, Linux и macOS-клиентов.

Начать групповой звонок можно из контекстного меню конференции (для десктопных клиентов):

Начало группового звонка в MyChat

Или из выпадающего меню списка пользователей в мобильном клиенте:

Меню MyChat для Android

Сразу после начала звонка появится панель управления, из которой можно завершить групповой звонок или просто отключиться от разговора. Групповой звонок завершается автоматически, когда из него выходит последний участник.

Групповой звонок MyChat

В чате есть уведомление про то, что групповой звонок начинается или закончен:

Возможности группового звонка MyChat

На Android во время разговора можно видеть список всех участников группового звонка, включен ли у них микрофон и кто разговаривает в данный момент:

Групповой звонок MyChat, список участников

Чтобы настроить, кому можно создавать, подключаться и заканчивать звонки — перейдите в админку сервера, в раздел управления группами прав. По умолчанию права на конференц-звонки есть у всех пользователей MyChat.


4. Полные списки людей в конференциях


Это решение назревало уже несколько лет. Многие наши клиенты удивлялись, почему в конференциях видно только онлайн-пользователей. Ведь там есть и другие сотрудники, которые включаются туда автоматически или заходят сами, но сейчас не в сети.

Было бы правильно видеть их там, даже если эти пользователи сейчас офлайн. Ведь они увидят все сообщения, когда подключатся.

Причин, почему этого не было раньше, две: особенности дизайна, что идёт ещё от IRC-систем и технические сложности, связанные с большой нагрузкой на сервер, если конференций много, а людей, подключенных к серверу — от нескольких сотен и больше. Всё-таки MyChat — это система реального времени.

Теперь списки людей в конференциях выглядят так (Ctrl + /):

Списки людей в конференциях MyChat

В нижней части — офлайн-пользователи, сортировка по алфавиту, с серым статусом. В верхней — онлайн-пользователи, сортировка тоже по алфавиту, на первой позиции — всегда вы. Список людей автоматически корректируется, когда меняются статусы (офлайн/в сети/не беспокоить/нет на месте).

Мы уже пару месяцев пользуемся — стало лучше :)


5. Перехват событий управления проектами Kanban в скриптах


Теперь можно "отлавливать" события на канбан-досках и добавлять туда свою логику или просто подавлять их, если нужно.

Скрипты Kanban на MyChat Server

Например, отправлять уведомления в свою CRM-систему, формировать email, писать дополнительные протоколы и так далее.

Описание событий и примеров использования есть в официальной справке.


6. QR-коды в админке для быстрого входа в чат на мобильных устройствах


К нам обратились несколько клиентов с похожими просьбами. Суть такая: администратор заводит на сервере пользователей, они затем входят в систему и меняют свои пароли, согласно корпоративной политике безопасности. Посмотреть их пароли администратор не может (они хранятся в базе в виде хеш-функций). А настроить мобильные приложения надо.

Заставлять сотрудников качать приложения из маркетов, вводить адрес/порт сервера, свою учётку и пароль, конечно, можно. Или научить их сканировать QR-код в Windows-приложении. Но это не всегда возможно.

А вот зайти браузером в WEB-админку MyChat, раздел управления пользователями, и кликнуть мышкой по кнопке QR-кода для сотрудника можно всегда:

QR код в профиле пользователя на MyChat Server

Он сам возьмёт в руки свой смартфон и всё сделает в пару движений. Адреса сервера (основной и резервный), порты, логин, пароль, пароль на подключение к серверу — всё пропишется автоматически.

Экономия времени и нервов людей — налицо.


7. Как запретить подключение к серверу чата из Android или iOS?


Поскольку по умолчанию вход на чат-сервер открыт для всех типов приложений, то пользователи могут сами установить приложение на свой смартфон и войти в чат, отсканировав QR-код в MyChat Client для Windows, например. Это удобно, но может создавать проблему исчерпания лицензий.

Чтобы дать администраторам больше контроля, мы сделали в правах групп пользователей на сервере дополнительный раздел, в котором можно ограничить подключения к чат-серверу из разных операционных систем:

Ограничения прав пользователей на MyChat Server

Это легче и быстрее, чем ограничения с помощью скриптов, как делали некоторые наши клиенты в предыдущих версиях MyChat. Хотя скриптами можно сделать более гибкие решения, вроде ограничения по времени и тому подобную сложную логику.


8. Сервер стал быстрее, уменьшен расход трафика


Часто многие изменения не видны "сверху", но от них зависит стабильность и скорость работы системы в целом. Поэтому мы почти 6 месяцев занимались внутренними оптимизациями сервера. Итог — более чем в 10 раз уменьшился исходящий трафик сервера, особенно это заметно при большом количестве онлайн-пользователей и многопользовательских конференций.

Эти технические решения также значительно ускорили процесс первичного логина пользователей, особенно это заметно после перезапуска сервера в рабочее время, когда все сотрудники онлайн. Нагрузка на сервер в этих ситуациях снижена в несколько раз.

Также внедрено адаптивное время для переподключения MyChat Client после разрыва соединения:

Переподключение MyChat

  • сначала время реконнекта — 15 секунд, последующие неудачные попытки будут делаться больше на 10-15 секунд, чтобы снять нагрузку с сервера, если соединение не получилось именно по этой причине;
  • если кликнуть на сообщении — коннект происходит мгновенно (как в консольной команде connect), а таймаут выставляется в 15 секунд, как в самом начале, если всё прошло нормально и связь восстановилась;
  • настройка таймаута убрана из клиента, а также из шаблонов настроек на сервере и ini-файлов настроек клиента для экспорта/импорта.

Множество команд для обмена данными между сервером и клиентом оптимизированы, чтобы уменьшить их физический размер ради экономии трафика.


9. Разные полезности


В MyChat Client для iOS сделали отображение статусов пользователей ("в сети", "офлайн", "не беспокоить" и "нет на месте").

В MyChat для Windows теперь можно отключать видимость встроенного робота Elisa в автосоздаваемых конференциях. Физически робот всё равно там есть, но некоторых людей он раздражает :) Так что, если надо — то можно:

Настройки MyChat Client

В админке переделали рендеринг консольных команд и добавили кое-что полезное:

Консоль MyChat Server

В Android-версии теперь можно отправлять файлы и фотографии через системное меню "Поделиться".


10. Все изменения общим списком + история разработки


История разработки версии с комментариями разработчиков

MyChat Client

[+] (iOS) в списке чатов добавлено отображение статусов пользователей;
[+] (win32) настройка для отключения рендеринга встроенного робота (Elisa, uin=0) в списках пользователей автосоздаваемых конференций чата;
[+] (win32) теперь в конференциях показывается полный список людей, которые входят в неё, а не только онлайн-пользователи;
[+] (win32) фильтр пользователей в конференциях;
[+] (win32) типы сортировок пользователей в конференциях;
[+] (win32) ключ командной строки mcclient.exe /minimize — свернуть окно MyChat Client на панель задач сразу после запуска;
[+] новая схема нумерации версий;
[+] (Android) в контекстном меню файла добавлен пункт сохранения файла в папку "Загрузки";
[+] (iOS) добавлена возможность удаления аккаунта, если у пользователя для этого есть права.

[*] (win32) переделана схема автоматического переподключения к серверу при разрыве соединения;
[*] (win32) переделан формат параметров в командной строке MyChat Client;
[*] (Android)полностью переработана система работы с файлами в приложении, теперь поддерживается передача любых файлов на новых операционных системах (Android 10+), выбор файлов и изображений теперь осуществляется через системный файловый менеджер, с предпросмотром содержимого, сортировками и навигацией по папкам;
[*] (iOS) добавлен рендеринг некоторых типов сообщений;
[*] (iOS) расширено логгирование пуш-уведомлений для отладки;

[-] (win32) исправлены утечки памяти в процессе работы программы, которые иногда приводят к ошибкам после завершения работы приложения;
[-] (win32) если выбрать через главное меню "Справка" пункт про установку приложения для Android/iOS, то в важных уведомлениях (Ctrl+4) пункт не подсвечивался. Исправлено;
[-] (win32) глюк с двойным кликом на диалогах (приваты/конференции), фокус снимается и переходит куда-то в другое место, если в настройках отключено автоматическое закрытие диалогов по double click. Исправлено;
[-] (Android) исправлена отправка изображений через меню "Поделиться" из других приложений, также добавлена возможность отправлять таким образом файлы любого типа;
[-] (win32) если открыть приват с пользователем, в настройках отключено хранение сообщений в локальной базе данных, полностью удалить приватную историю командой с сервера, а затем снова открыть приват с этим же человеком — сообщения оставались в памяти, индексы сбивались, ситуация исправлялась после реконнекта или перезапуска программы. Исправлено;
[-] (Android) не открывался диалог с Elisa из списка пользователей конференции. Исправлено;
[-] (Android) исправлена загрузка файлов, в названии которых есть пробелы;
[-] (Android) при заливке файла на сервер, в конференции не отображался процесс загрузки и расчета контрольной суммы. Исправлено;
[-] (Android) не работала настройка "Запускать MyChat после перезагрузки", если отключены PUSH-сообщения. Исправлено;
[-] (iOS) неправильно работало удаление сообщений. Исправлено;
[-] (iOS) некорректно отправлялись символы "«" и "»". Исправлено;
[-] (iOS) иногда индикатор новых событий на панели навигации показывал неправильное количество. Исправлено;
[-] исправлены утечки памяти при работе со структурами данных;
[-] (Android) на некоторых версиях Android не происходил тест портов TURN-сервера, из-за чего звонок не начинался. Исправлено;

MyChat Server

[+] (Core) автоматический перезапуск сервера через 30 секунд после возникновения любой фатальной ошибки, с сохранением протоколов;
[+] (Admin) консольная команда "list" для получения полного списка всех доступных консольных команд с короткими текстовыми описаниями;
[+] (Admin) в управлении пользователями, в профиле пользователя и в списке онлайн-юзеров можно получить QR-код для быстрого подключения к серверу с помощью Android или iOS-приложения MyChat;
[+] функции MSL для обработки канбан-событий;
[+] возможность заблокировать подключение к серверу из разных операционных систем по группам прав;

[*] (Core) оптимизации сервера для ускорения работы с конференциями, особенно если их много и с большим количеством пользователей;
[*] (Admin) автоматические отступы в текстовом поле для вывода консольных команд для лучшей читаемости;

[-] ошибка при изменении типа авторизации пользователя, если тип учётной записи — не доменная, исправлено;
[-] (Admin) если не нужно менять размер изображения, при загрузке фотографии в профиле пользователя, не вызывалась отправка фото на сервер. Исправлено;
[-] исправлены утечки памяти при работе со структурами данных;
[-] если удалять сообщения в конференции в админке под пользователем, который не находится в указанной конференции, то сообщения удалялись на сервере, а на клиенты команда удаления не отправлялась, что приводило к рассинхронизации данных. Исправлено;
[-] исправлена ошибка импорта и обновления пользователей из домена;
[-] если попытаться пригласить пользователя в конференцию, в которой вы сами не находитесь, сервер отправлял не то сообщение об ошибке. Исправлено.


11. Как обновиться на последнюю версию?


И коммерческая, и бесплатная версии обновляются одинаково. Сначала обновляется сервер, затем — клиенты. В основном, в автоматическом режиме.

Инструкция по обновлению MyChat

Служба поддержки