Використання Worker-серверів

Навіщо потрібні Worker-сервери

Worker в рамках платформи SIP.TG — це сервер, який відповідає за обробку та перетворення голосових даних із формату SIP у формат Telegram і назад.

Це завдання, що працює в режимі реального часу, вимагає великих обчислювальних ресурсів та ефективність її виконання безпосередньо впливає на якість голосу під час розмови.

Зважаючи на велику обчислювальну складність, у рамках платформи передбачено наявність необмеженого числа Worker-серверів для масштабованості системи та розподілу навантаження. Крім того, розміщення Worker-серверів у різних географічних зонах дозволяє покращити ще один показник якості з'єднання – зменшити затримку у проходженні сигналу.

Хмарна інфраструктура SIP.TG

Інфраструктура Worker-серверів SIP.TG надійно захищена, сервери за потреби швидко масштабуються, розташовані у різних географічних зонах.

Сьогодні наші Worker-сервери працюють у дата-центрах Москви, Франкфурта, Амстердама, Лондона, Вашингтона, Мінська.

Сервера, що обслуговують користувачів на платних тарифах, більш продуктивні та надійні.

Переваги власних Worker-серверів

У доповненні до офіційних Worker-серверів, передбачено також наявність користувацьких Worker.

Підключаючи свій власний Worker до платформи SIP.TG, ви отримуєте такі додаткові можливості:

  • самостійно вибирати обладнання, виходячи з очікуваного навантаження;
  • розміщуючи Worker у дата-центрі поруч із віртуальною АТС, досягти мінімальної затримки голосу під час розмови;
  • забезпечити повну конфіденційність вмісту розмови, т.к. голосові потоки не передаються навіть на платформу SIP.TG;
  • отримати доступ ззовні до SIP-серверів, які розташовані в локальних або обмежених мережах;
  • забезпечити додаткову конфіденційність SIP-акаунтів (за бажанням);
  • ділитися своїми обчислювальними ресурсами з іншими користувачами SIP.TG (за бажанням).

Системні вимоги для Worker-серверів

Виконуване середовище Worker побудовано на базі платформи віртуалізації Docker на основі ОС Ubuntu 18.04. Основний образ підготовлений для платформи amd64, однак є і для інших платформ.

З метою уникнення програмної емуляції середовища виконання ми не рекомендуємо використовувати як основну операційну систему, відмінну від Linux (наприклад Mac OS або Windows).

Всі додаткові програмні залежності вже містяться в образі Worker, що поширюється, на основній ОС необхідна наявність тільки Докер CE и Docker Compose.

Сервер повинен мати виділену IP-адресу і бути доступний із зовнішньої мережі, або у Вас має бути можливість «прокинути» один довільний TCP-порт на зовнішню IP-адресу.

Виходячи з наших тестів продуктивності, кожен дзвінок споживає близько 2.5% ресурсів одного ядра процесора AMD Ryzen 5 1400 та близько 1 Мб ОЗУ при використанні кодеку A-law.

Налаштування власних Worker

Отримання сертифікатів

Сертифікати шифрування дозволяють встановити захищене з'єднання між платформою SIP.TG та сервером, на якому запущено Worker. У налаштуваннях бота @siptg_bot виконайте команду /workers та натисніть кнопку Новий.

В результаті бот надішле 2 файли: приватний ключ і сертифікат, необхідні для безпечного з'єднання. Збережіть їх, потім вони будуть потрібні для запису на сервер Worker.
Підготовка сервера

Найдокладніша та найактуальніша інформація щодо налаштування сервера розташована на сторінці проекту на GitHub. Порядок дій включає:

  • оновлення встановленого ПЗ (за потреби);
  • встановлення ПЗ Docker;
  • одержання шаблонів конфігураційних файлів;
  • збереження файлів сертифікатів із бота на сервері;
  • внесення змін до конфігураційних файлів (при необхідності);
  • запуск Worker на сервері.
Підключення до Worker

Останній крок у налаштуванні – це налаштування параметрів підключення до Worker через бота, а саме – вказівка ​​адреси підключення. Натисніть кнопку Адреса та введіть зовнішню адресу та порт сервера, на якому запущено Worker. Далі натисніть кнопку Увімкнути, щоб спробувати з'єднання з сервером Worker. Якщо параметри підключення неправильні, Ви отримаєте повідомлення про помилку і Worker буде вимкнено.
Права використання

Через бот можна встановити один із 2 режимів, який впливає на права використання Worker іншими користувачами SIP.TG:

  • (ключ) Особистий — режим, за якого використовувати Worker може лише його власник та користувачі, яким явно надано доступ;
  • (глобус) Публічний – режим, що дозволяє будь-якому користувачеві SIP.TG використовувати ваш Worker.
Обмеження користувача Worker

Свій Worker можна використовувати в режимі Софтфон, так і Шлюз. Однак останній може містити SIP-акаунти 2 типів: з вхідним підключенням і вихідним. Обмеження полягає в тому, що SIP-акаунти з вхідним типом підключення можна використовувати тільки з Офіційними Worker. Це обмеження пов'язане з особливістю внутрішнього пристрою платформи SIP.TG.

Друге обмеження полягає у відмовостійкості. У разі недоступності користувача Worker, навантаження переноситься на інший Worker того ж власника. Якщо це єдиний Worker користувача, навантаження не переноситься. Навантаження не переноситься на Worker інших користувачів (а також на офіційні), оскільки Worker може бути настроєний інакше, що може призвести до невиправданого відключення SIP-акаунтів (наприклад, якщо SIP-сервер, забороняє підключення ззовні, або якщо Ваш Worker змінює паролі від SIP-акаунтів - див. нижче).

У випадку, якщо Worker недоступний більше 30 хвилин, він повністю відключається, при цьому @siptg_bot відправляє повідомлення як власнику, так і користувачам, які налаштували SIP акаунти на використання Worker, що відключається.
Конфіденційність SIP-акаунтів

Ядром підсистеми SIP є платформа IP-телефонії Yate. Гнучкість платформи дозволяє "на льоту" змінювати будь-які дані про SIP-акаунті (наприклад, паролі), що надходять від платформи SIP.TG. Таким чином, платформа SIP.TG може містити фейкові паролі, але в момент підключення до SIP сервера через ваш Worker, пароль замінюватиметься на реальний. Ця поведінка досягається за рахунок використання зовнішнього модуляприклад якого представлений на GitHub.

Зверніть увагу


Способи оплати шлюзу SIP.TG для перекидання дзвінків між Telegram та SIP-телефонією

Часті проблеми та рішення при налаштуванні шлюзу для дзвінків між Telegram та SIP-телефонією

Налаштування кодеків для SIP-акаунтів при налаштуванні шлюзу SIP.TG для голосових дзвінків у Telegram

Налаштування та використання DTMF-клавіатури при Telegram-дзвінках

Налаштування правил конвертації номерів для SIP-акаунтів

Коди помилок та їх розшифровка, які можуть виникнути при налаштуванні шлюзу для дзвінків з Telegram

Способи передачі керування тарифом іншому користувачеві, передача права адміністрування тарифом, а також передача права власності на тариф

Запит керування акаунтом SIP.TG для допомоги користувачам, категорії користувачів яким доступна функція

Оператори IP-телефонії для різних географічних зон, перевірені нашою командою

Сценарії інтеграції з продуктами та інфраструктурою операторів зв'язку та великих компаній

Призначення, переваги, порядок встановлення та налаштування власного Сховища сесій Telegram для SIP.TG

Суть проблеми з бібліотекою tg2sip (libtgvoip) Telegram-клієнтами під Android та пропоноване рішення від SIP.TG