Модули 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
- Подключения типа PBX→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 сможет подключиться.
- Нажмите «Включить», чтобы проверить доступность. Если всё OK, хранилище будет Online.
Использование хранилища
- Создавая новую сессию Telegram (в режиме
/gateway
), выбирайте свой Storage. - Перенести уже созданную сессию в другое хранилище невозможно, однако можно пересоздать сессию без удаления SIP-подключений.
Частые вопросы (FAQ)
Что если мой Worker (или Storage) вдруг станет недоступен?
Что если мой Worker (или Storage) вдруг станет недоступен?
Платформа SIP.TG периодически проверяет соединение. Если сервер не отвечает более 30 минут, Worker/Storage переключится в статус «Отключено». Все SIP-аккаунты, работающие через этот Worker, станут неактивны. Хранилище — перестанет обслуживать обращения. Возобновить работу можно, восстановив доступность сервера и вновь включив модуль в боте.
Можно ли использовать только Worker без собственного Storage (или наоборот)?
Можно ли использовать только Worker без собственного Storage (или наоборот)?
Да. Эти модули независимы. Вы можете хранить сессии Telegram в облаке SIP.TG, но обрабатывать SIP-потоки на своём Worker. Или наоборот: использовать публичные Worker-серверы, но хранить сессии у себя.
Насколько трудоёмко обслуживать эти модули?
Насколько трудоёмко обслуживать эти модули?
Основная задача — поддерживать Docker-контейнеры в рабочем состоянии, обновлять ПО (образ Worker/Storage) по мере выхода новых версий, следить за доступностью сети. Если у вас нет собственного DevOps-специалиста, проще использовать публичные ресурсы SIP.TG.
Как насчёт безопасности и лицензирования?
Как насчёт безопасности и лицензирования?
- Все соединения между платформой SIP.TG и вашими модулями шифруются с помощью сертификатов.
- По умолчанию используются образы Docker на базе Ubuntu. Все дополнительные зависимости предустановлены.
- Лицензия и условия использования см. в репозиториях GitHub.
Как предоставить другим пользователям доступ к моему Worker?
Как предоставить другим пользователям доступ к моему Worker?
Измените режим Worker на «Публичный». Тогда любой пользователь SIP.TG сможет назначить себе ваш Worker. Вы также можете оставлять Worker «Личным», но вручную разрешать доступ конкретным SIP-аккаунтам в боте @siptg_bot.
Для полноценной работы Worker и Storage требуется стабильное соединение с платформой SIP.TG (менеджером). Убедитесь, что ваш сервер может обращаться к интернету без блокировок и что порты не фильтруются брандмауэром.