Как подключить SIP-номер к Telegram через бот-интеграцию: пошаговая инструкция

Вы хотите принимать звонки прямо в Telegram? Это удобно — клиент звонит на обычный номер, а вы отвечаете в мессенджере. Расскажу, как это настроить без лишней теории и что учесть.

Что даёт подключение SIP-номера к Telegram

После настройки входящие звонки на SIP-номер будут приходить в Telegram — к вам или вашему боту. Вы сможете:

  • отвечать на звонки через интернет, где бы вы ни находились;
  • записывать разговоры и хранить историю;
  • переводить звонки на сотрудников;
  • автоматически обрабатывать вызовы через бота (голосовые меню, маршрутизация).

Это особенно полезно для малого бизнеса, колл-центров и тех, кто работает удалённо — не нужен стационарный телефон или офисная АТС.

Что понадобится для подключения

Перед стартом убедитесь, что у вас есть:

  1. Действующий SIP-номер — купленный у провайдера VoIP-услуг.
  2. Данные для регистрации SIP-аккаунта: адрес сервера (SIP proxy), логин, пароль, порт (обычно 5060).
  3. Telegram-бот — созданный через @BotFather с токеном.
  4. Сервер или VPS — на нём будет работать связующее программное обеспечение (софтфон или шлюз).
  5. Доступ к настройкам маршрутизации звонков у вашего SIP-провайдера.

Шаг 1: Создание и настройка Telegram-бота

Если у вас ещё нет бота, создайте его:

  1. Найдите в Telegram @BotFather и начните диалог.
  2. Отправьте команду /newbot.
  3. Придумайте имя и username бота (username должен заканчиваться на «bot»).
  4. Скопируйте полученный API-токен — он понадобится для интеграции.

Пока не настраивайте аватарки и описание — это позже. Главное зафиксируйте токен и не передавайте его посторонним.

Шаг 2: Выбор программного шлюза между SIP и Telegram

Telegram не поддерживает SIP напрямую. Нужна прослойка — программа, которая принимает SIP-вызов и отправляет его в Telegram Bot API.

Основные варианты:

Решение Сложность настройки Гибкость Подходит для
Asterisk + скрипт для Telegram Высокая Максимальная Технических специалистов, сложных сценариев
FreeSWITCH + модуль Высокая Высокая Нагруженных проектов, маршрутизации
Готовые облачные шлюзы (например, на базе решений с открытым кодом) Низкая Средняя Быстрого запуска без глубоких технических знаний
Собственный скрипт (Python + библиотеки) Средняя Зависит от разработчика Нестандартных задач, интеграций с CRM

Если у вас нет системного администратора, проще начать с готового облачного решения или обратиться к интегратору. Если есть опыт с Asterisk — этот путь даст максимальный контроль.

Шаг 3: Установка и базовая настройка шлюза

Рассмотрим общую логику на примере Asterisk — как самый прозрачный вариант.

  1. Установите Asterisk на сервер (Linux, Debian/Ubuntu — самый простой путь).
  2. Настройте SIP-транк в файле sip.conf или pjsip.conf — пропишите данные вашего провайдера: хост, логин, пароль, порт.
  3. Создайте внутренний номер (extension), на который будет приходить входящий вызов.
  4. Напишите скрипт обработки вызова — он принимает входящий SIP-вызов, определяет получателя и через Telegram Bot API отправляет сообщение или инициирует звонок в Telegram.
  5. Проверьте регистрацию на SIP-сервере провайдера через команду asterisk -rx "sip show registry" (или pjsip show registrations).

Скрипт можно написать на Python или использовать AGI (Asterisk Gateway Interface). Главное — корректно обработать событие входящего вызова и вызвать Telegram Bot API.

Шаг 4: Настройка отправки звонка в Telegram

Когда поступает входящий вызов на SIP-номер, шлюз должен:

  1. Определить, кому адресован вызов (по номеру, DID или внутреннему правилу).
  2. Отправить запрос в Telegram Bot API — например, уведомление о входящем звонке с данными звонящего.
  3. При необходимости — соединить звонящего с голосовым ботом или перевести на сотрудника.

Для простого уведомления достаточно отправки сообщения в чат:

POST https://api.telegram.org/bot<ТОКЕН>/sendMessage
{
  "chat_id": 123456789,
  "text": "Входящий звонок от +7 (XXX) XXX-XX-XX"
}

Если нужно именно голосовое соединение через Telegram — задача сложнее: потребуется трансляция медиапотока между SIP и Telegram. Это выходит за рамки простой интеграции и требует отдельного сервера обработки медиа.

Шаг 5: Тестирование и проверка

Перед тем как давать номер клиентам, всё протестируйте:

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

Частые ошибки и как их избежать

  • Неправильные SIP-данные — опечатка в логине, пароле или хосте. Проверяйте строго по данным провайдера.
  • Блокировка портов — порт 5060 (SIP) и 5061 (SIP TLS) должен быть открыт на сервере и у провайдера.
  • Отсутствие интернета или высокие задержки — приводят к обрывам звонков. Используйте сервер с качественным каналом.
  • Утечка токена бота — если токен попадёт к посторонним, они получат управление ботом. Храните его в закрытом конфиге.
  • Нет резервного канала — если сервер упадёт, звонки перестанут приходить. Заранее продумайте переадресацию на обычный телефон.

Что выбрать в зависимости от вашей ситуации

Если вы один, и нужен простой приём звонков в Telegram: возьмите готовый облачный шлюз или минимальный Asterisk с простым скриптом уведомлений. Не усложняйте.

Если у вас команда и нужно распределять звонки: настройте голосовое меню (IVR) на Asterisk и перевод на сотрудников через Telegram-бота.

Если нужна запись разговоров и аналитика: добавьте модуль записи в Asterisk и отправку файлов в Telegram-чат.

Если нет технического специалиста: обратитесь к интегратору — самостоятельная настройка Asterisk с нуля может занять несколько дней.

Как лучше сделать: практические советы

  • Начните с простого уведомления о звонке — это уже даёт быстрый результат.
  • Используйте отдельного бота для звонков, не смешивайте с основным ботом поддержки.
  • Настройте логирование всех вызовов — потом скажете себе спасибо при отладке.
  • Пропишите в договоре с SIP-провайдером условия на случай проблем — есть ли резервный канал, как быстро реагируют.
  • Если звонки идут за рубеж — уточните стоимость исходящих вызовов через SIP-провайдера.

Итог

Подключение SIP-номера к Telegram через бот-интеграцию — это реальная задача, которую можно решить самостоятельно при наличии технического опыта или с помощью интегратора. Главное — чётко понимать схему: SIP-провайдер → шлюз (Asterisk/FreeSWITCH/скрипт) → Telegram Bot API.

Начните с малого: настройте простое уведомление о входящем звонке в Telegram. Если всё работает — наращивайте функционал: запись, маршрутизация, голосовое меню. И обязательно тестируйте до того, как дадите номер клиентам.

Virtual-Sim.ru