Яндекс.Метрика

RealTime в Asterisk: архитектура и конфигурация

RealTime в Asterisk: архитектура и конфигурация с 9 февраля по 13 февраля

Количество
свободных мест

5 Записаться

Курсы по Mikrotik MTCIPv6E

Курсы по Mikrotik MTCIPv6E с 8 июня по 12 июня

Количество
свободных мест

8 Записаться

Курс по Zabbix

Zabbix: мониторинг Asterisk и VoIP с 2 марта по 6 марта

Количество
свободных мест

8 Записаться
Интеграция звонков Telegram в VoIP решения на основе протоколов SIP
16
Доклад
Андрей Егоров
Интеграция звонков Telegram в VoIP решения на основе протоколов SIP

Интеграция звонков Telegram в VoIP решения на основе протоколов SIP

Проект sip.tg родился как попытка соединить два мира: классические SIP-решения и экосистему Telegram. Идея заключалась в том, чтобы дать пользователям и компаниям возможность работать с IP-телефонией напрямую из мессенджера — без отдельных софтфонов, сложных настроек и лишнего программного обеспечения.
Со временем проект вырос из эксперимента в полноценный SIP-шлюз и клиент, способный решать как пользовательские, так и бизнес-задачи, оставаясь при этом достаточно гибким и расширяемым.

Как появилась идея и к чему стремился проект

Отправной точкой стал опыт использования проекта ruweb.net — бесплатной виртуальной АТС, которую поддерживает энтузиаст из Иваново. Первая реализация интеграции SIP с Telegram появилась именно там, по запросу пользователей, и позволяла принимать звонки и обрабатывать их по простым правилам.
Эта идея показалась перспективной, но требовала более удобной и масштабируемой реализации. Целью стало выжать максимум возможного из Telegram в контексте голосовой связи — как для частных пользователей, так и для бизнеса.
Для пользователей это означало создание аналога SIP-клиента прямо внутри Telegram.
Для компаний — возможность интегрировать Telegram в существующую IP-инфраструктуру и принимать звонки не только по номеру телефона, но и через Telegram-аккаунт.

Telegram как SIP-клиент: возможности и ограничения

Telegram накладывает определённые ограничения, поэтому реализация SIP-клиента потребовала нестандартных решений. В итоге была построена схема, совмещающая клиентский API Telegram и ботов.

Со стороны пользователя доступны следующие возможности:

  • Исходящие звонки через SIP. Они возможны, но менее удобны, чем в классических звонилках: Telegram не даёт прямого доступа к адресной книге, поэтому номер нужно либо передать контактом, либо ввести вручную.
  • Приём входящих звонков. Из-за ограничений Telegram невозможно получить доступ к локальной адресной книге пользователя, поэтому информация о звонящем передаётся из SIP-заголовков и отображается отдельным сообщением.
  • Несколько SIP-аккаунтов с выбором маршрута в зависимости от правил набора, префиксов или регулярных выражений.
  • DTMF во время разговора, что позволяет взаимодействовать с голосовыми меню и колл-центрами.
  • Быстрый перезвон: после завершения разговора появляется сообщение с деталями вызова и кнопкой повторного звонка.
  • Передача SIP-настроек другим пользователям — фактически готовый аккаунт можно «расшарить» через сообщение, избавив от ручной настройки.

Все эти функции реализованы с учётом ограничений платформы и не пытаются «ломать» Telegram, а аккуратно встраиваются в его механику.

Использование sip.tg в бизнес-сценариях

Для компаний sip.tg работает как полноценный SIP-шлюз между Telegram и виртуальной АТС. Пользователь может позвонить в компанию через Telegram, а оператор увидит:

  • номер телефона, если он доступен;
  • username пользователя;
  • либо внутренний Telegram ID, если пользователь анонимен.

Обратный звонок также возможен, но только в рамках установленного соединения: произвольно позвонить пользователю в Telegram без его действия нельзя — это ограничение платформы.

Дополнительно поддерживаются:

  • DTMF-команды во время разговора;
  • перезвон на внутренний номер оператора;
  • сценарии, при которых пользователь возвращается к тому же сотруднику.

В результате Telegram становится дополнительным каналом связи, который легко встраивается в существующую SIP-инфраструктуру и снижает стоимость коммуникаций.

Архитектура проекта и отказоустойчивость

Со временем проект ушёл от монолитной архитектуры и был разделён на несколько компонентов:

  • Менеджер, отвечающий за логику, управление сессиями и взаимодействие с Telegram API.
  • Воркеры, которые занимаются обработкой голосовых потоков
  • Вспомогательные сервисы (боты для настройки, обработки сообщений и управления аккаунтами).
  • База данных для хранения состояния и конфигураций.

Такое разделение дало несколько важных преимуществ: независимые обновления компонентов, снижение задержек, улучшение качества звука и возможность масштабирования.
Особое внимание уделено отказоустойчивости. Используется несколько воркеров и менеджеров. При падении воркера новые регистрации и вызовы перераспределяются на другие узлы. Активные разговоры восстановить нельзя, но система продолжает работать. Менеджеры резервируют друг друга и при сбое автоматически подхватывают управление сессиями.
Дополнительно появилась возможность разворачивать собственный воркер у себя — рядом с SIP-оборудованием компании. Это даёт минимальную задержку, полный контроль над производительностью и повышенную конфиденциальность. Воркеры поставляются в виде Docker-образа и требуют минимальной настройки.

Выбор технологий и особенности Telegram API

В качестве SIP-ядра был выбран Asterisk, в первую очередь из-за необходимости полного контроля над состоянием вызовов, регистрациями и сигнализацией. Для реализации гибкой логики используется Yate с его системой внешних модулей и обмена сообщениями, что позволяет перехватывать и модифицировать call-flow на любом этапе.
Telegram, в свою очередь, предоставляет два принципиально разных API:

  • Client API (MTProto) — используется для звонков и работы с голосом.
  • Bot API (HTTPS) — удобен для кнопок, интерфейса и взаимодействия с пользователем.

Ограничения Telegram напрямую влияют на архитектуру: боты не умеют звонить, caller ID нельзя передать напрямую, а для работы с пользователями требуется учитывать access hash и жёсткие антифлуд-ограничения. Поэтому важной частью реализации стало локальное кэширование данных и аккуратная работа с API, чтобы избежать блокировок.

Заключение

Проект sip.tg показал, что Telegram можно использовать не только как мессенджер, но и как полноценный интерфейс для SIP-телефонии. Для пользователей это означает отсутствие лишних приложений, стабильную работу и экономию батареи. Для бизнеса — дополнительный канал связи, снижение стоимости звонков и простую интеграцию в существующую инфраструктуру.

Ежегодная конференция по Asterisk 2025!

Билеты уже в продаже!

Остались вопросы?

Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

Наши
клиенты

Посмотреть все