Модулі Worker і Storage
На платформі SIP.TG передбачена можливість запускати власні серверні модулі:
- Worker — відповідає за обробку/перетворення голосових даних (SIP ↔ Telegram).
- Сховище сесій (Storage) — зберігає ключі та дані доступу до акаунтів Telegram.
Ці модулі можна розмістити на власному сервері в Docker-контейнері з виділеним IP-адресом і гарантованою доступністю. Нижче описано, як це влаштовано та які кроки потрібні для налаштування.
Worker-сервери
Worker обробляє та конвертує аудіопотоки з SIP у формат Telegram і назад у реальному часі.
Для чого потрібні Worker-сервери
- Гарантія продуктивності: ви самі обираєте обладнання, масштабуєте під потрібне навантаження.
- Мінімальна затримка: Worker можна розмістити якомога ближче до вашої АТС, щоб зменшити RTT.
- Конфіденційність: голосові потоки не передаються на публічні сервери SIP.TG — ви самостійно обробляєте аудіодані.
- Доступ до приватних мереж: за бажанням Worker може працювати в локальній (обмеженій) мережі та отримувати SIP-трафік напряму від АТС.
Системні вимоги (Worker)
- Docker CE і Docker Compose на Linux-сервері (наприклад, Ubuntu 22.04).
- Виділений IP-адрес (або проброс TCP-порту) для з’єднання від SIP.TG.
- Орієнтовна продуктивність: 1 дзвінок ≈ 2.5% CPU на одному ядрі AMD Ryzen 5 1400, ~1 МБ ОЗУ при використанні G.711 (A-law).
Налаштування власного Worker
Отримання сертифікатів
- У боті @siptg_bot виконайте команду
/workers
і натисніть “Новий”. - Вам буде надіслано 2 файли: приватний ключ і сертифікат для безпечного з’єднання з платформою SIP.TG.
- Збережіть їх і не передавайте третім особам.
Підготовка сервера
- Встановіть оновлення ОС (за потреби).
- Встановіть Docker і Docker Compose.
- Склонуйте або завантажте шаблон конфігурації Worker (див. GitHub).
- Скопіюйте отримані від бота сертифікати на сервер і вкажіть шляхи до них у налаштуваннях Docker/Worker.
- За потреби відредагуйте параметри в
docker-compose.yml
або відповідних конфігураціях (порт SIP, діапазон RTP тощо).
Запуск Worker
-
Запустіть сервіс Docker:
-
Переконайтеся, що контейнер Worker успішно запустився та слухає вказані порти.
-
Перевірте логи контейнера (команда
docker-compose logs
) у разі виникнення помилок.
Підключення до Worker
- У боті @siptg_bot поверніться до
/workers
, оберіть створений Worker і натисніть “Адреса”. - Введіть зовнішню адресу та порт, за якими доступний ваш сервер.
- Натисніть “Увімкнути”, щоб SIP.TG перевірив з’єднання. Якщо все гаразд, Worker перейде в статус “Онлайн”.
Публічний або особистий режим
Після ввімкнення Worker можна вказати:
- Особистий (іконка “🔑”) — тільки власник і адміністровані сесії Шлюзу можуть використовувати Worker.
- Публічний (іконка “🌐”) — Worker буде доступний усім користувачам SIP.TG.
Обмеження для користувацьких Worker
- З’єднання типу АТС→SIP.TG на користувацькому Worker за замовчуванням заборонені.
- У разі відмови/недоступності Worker більше 30 хвилин платформа може відключити пов’язані SIP-акаунти.
Сховище сесій Telegram
Сховище (Storage) — сервер, на якому зберігаються ключі та дані для входу в Telegram-акаунти. Без нього сесії Telegram зберігаються в “хмарі” SIP.TG, але за бажанням ви можете зберігати все у себе.
Що дає власне Сховище
- Повний контроль: конфіденційність доступу до акаунтів Telegram, усі ключі зберігаються на вашому сервері.
- Необмежена кількість акаунтів (з урахуванням вашої підписки) в одному сховищі.
- Гнучке налаштування: обмеження на команди та події.
Системні вимоги
- Docker CE / Docker Compose (Linux).
- Виділений IP-адрес (або проброс TCP-порту) для з’єднання від SIP.TG.
- Модуль використовує бібліотеку TDLib, тому достатньо 1–2 ГБ RAM (але залежить від кількості акаунтів Telegram).
Налаштування власного Сховища
Отримання сертифікатів
- У боті @siptg_bot виконайте команду
/storage
і натисніть “Новий”. - Бот надішле приватний ключ і сертифікат. Збережіть їх на сервер.
Підготовка сервера
- Встановіть і налаштуйте Docker / Docker Compose.
- Склонуйте шаблон конфігурації сховища (див. GitHub).
- Помістіть сертифікати в відповідні директорії (як вказано в
docker-compose.yml
). - За потреби відредагуйте конфігураційні файли (порт для TCP, база даних тощо).
Запуск Сховища
-
Виконайте в папці з конфігурацією:
-
Перевірте логи контейнера (
docker-compose logs
) на наявність помилок. -
Переконайтеся, що вказаний TCP-порт доступний ззовні.
Підключення до Сховища
- Поверніться в боті @siptg_bot до
/storage
, оберіть своє сховище і натисніть “Адреса”. - Вкажіть зовнішню адресу та порт, за якими платформа SIP.TG зможе підключитися.
- Натисніть “Увімкнути”, щоб перевірити доступність. Якщо все гаразд, сховище буде Online.
Використання сховища
- Створюючи нову сесію Telegram (у режимі
/gateway
), обирайте ваше Сховище. - Перенести вже створену сесію в інше сховище неможливо, але можна перестворити сесію без видалення SIP-підключень.
Поширені запитання (FAQ)
Що буде, якщо мій Worker (або Сховище) раптом стане недоступним?
Що буде, якщо мій Worker (або Сховище) раптом стане недоступним?
Платформа SIP.TG періодично перевіряє з’єднання. Якщо сервер не відповідає більше 30 хвилин, Worker/Сховище перейде в статус “Відключено”. Усі SIP-акаунти, що працюють через цей Worker, стануть неактивними. Сховище — припинить обробляти запити. Відновити роботу можна, відновивши доступність сервера та повторно ввімкнувши модуль у боті.
Чи можна використовувати лише Worker без власного Сховища (або навпаки)?
Чи можна використовувати лише Worker без власного Сховища (або навпаки)?
Наскільки трудомістко обслуговувати ці модулі?
Наскільки трудомістко обслуговувати ці модулі?
Основне завдання — підтримувати Docker-контейнери в робочому стані, оновлювати ПЗ (образ Worker/Сховища) у міру виходу нових версій, стежити за доступністю мережі. Якщо у вас немає власного DevOps-фахівця, простіше використовувати публічні ресурси SIP.TG.
Як щодо безпеки та ліцензування?
Як щодо безпеки та ліцензування?
- Усі з’єднання між платформою SIP.TG і вашими модулями шифруються за допомогою сертифікатів.
- За замовчуванням використовуються образи Docker на базі Ubuntu. Усі додаткові залежності попередньо встановлені.
- Ліцензію та умови використання дивіться в репозиторіях GitHub.
Як надати іншим користувачам доступ до мого Worker?
Як надати іншим користувачам доступ до мого Worker?
Змініть режим Worker на “Публічний”. Тоді будь-який користувач SIP.TG зможе призначити собі ваш Worker. Ви також можете залишити Worker “Особистий”, але вручну дозволяти доступ конкретним SIP-акаунтам у боті @siptg_bot.
Для повноцінної роботи Worker і Сховища потрібне стабільне з’єднання з платформою SIP.TG (менеджером). Переконайтеся, що ваш сервер може звертатися до інтернету без блокувань і що порти не фільтруються брандмауером.