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

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