Использование 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, на основной ОС необходимо наличие только Docker 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