Вы хотите принимать звонки прямо в Telegram? Это удобно — клиент звонит на обычный номер, а вы отвечаете в мессенджере. Расскажу, как это настроить без лишней теории и что учесть.
- Что даёт подключение SIP-номера к Telegram
- Что понадобится для подключения
- Шаг 1: Создание и настройка Telegram-бота
- Шаг 2: Выбор программного шлюза между SIP и Telegram
- Шаг 3: Установка и базовая настройка шлюза
- Шаг 4: Настройка отправки звонка в Telegram
- Шаг 5: Тестирование и проверка
- Частые ошибки и как их избежать
- Что выбрать в зависимости от вашей ситуации
- Как лучше сделать: практические советы
- Итог
Что даёт подключение SIP-номера к Telegram
После настройки входящие звонки на SIP-номер будут приходить в Telegram — к вам или вашему боту. Вы сможете:
- отвечать на звонки через интернет, где бы вы ни находились;
- записывать разговоры и хранить историю;
- переводить звонки на сотрудников;
- автоматически обрабатывать вызовы через бота (голосовые меню, маршрутизация).
Это особенно полезно для малого бизнеса, колл-центров и тех, кто работает удалённо — не нужен стационарный телефон или офисная АТС.
Что понадобится для подключения
Перед стартом убедитесь, что у вас есть:
- Действующий SIP-номер — купленный у провайдера VoIP-услуг.
- Данные для регистрации SIP-аккаунта: адрес сервера (SIP proxy), логин, пароль, порт (обычно 5060).
- Telegram-бот — созданный через @BotFather с токеном.
- Сервер или VPS — на нём будет работать связующее программное обеспечение (софтфон или шлюз).
- Доступ к настройкам маршрутизации звонков у вашего SIP-провайдера.
Шаг 1: Создание и настройка Telegram-бота
Если у вас ещё нет бота, создайте его:
- Найдите в Telegram @BotFather и начните диалог.
- Отправьте команду
/newbot. - Придумайте имя и username бота (username должен заканчиваться на «bot»).
- Скопируйте полученный API-токен — он понадобится для интеграции.
Пока не настраивайте аватарки и описание — это позже. Главное зафиксируйте токен и не передавайте его посторонним.
Шаг 2: Выбор программного шлюза между SIP и Telegram
Telegram не поддерживает SIP напрямую. Нужна прослойка — программа, которая принимает SIP-вызов и отправляет его в Telegram Bot API.
Основные варианты:
| Решение | Сложность настройки | Гибкость | Подходит для |
|---|---|---|---|
| Asterisk + скрипт для Telegram | Высокая | Максимальная | Технических специалистов, сложных сценариев |
| FreeSWITCH + модуль | Высокая | Высокая | Нагруженных проектов, маршрутизации |
| Готовые облачные шлюзы (например, на базе решений с открытым кодом) | Низкая | Средняя | Быстрого запуска без глубоких технических знаний |
| Собственный скрипт (Python + библиотеки) | Средняя | Зависит от разработчика | Нестандартных задач, интеграций с CRM |
Если у вас нет системного администратора, проще начать с готового облачного решения или обратиться к интегратору. Если есть опыт с Asterisk — этот путь даст максимальный контроль.
Шаг 3: Установка и базовая настройка шлюза
Рассмотрим общую логику на примере Asterisk — как самый прозрачный вариант.
- Установите Asterisk на сервер (Linux, Debian/Ubuntu — самый простой путь).
- Настройте SIP-транк в файле
sip.confилиpjsip.conf— пропишите данные вашего провайдера: хост, логин, пароль, порт. - Создайте внутренний номер (extension), на который будет приходить входящий вызов.
- Напишите скрипт обработки вызова — он принимает входящий SIP-вызов, определяет получателя и через Telegram Bot API отправляет сообщение или инициирует звонок в Telegram.
- Проверьте регистрацию на SIP-сервере провайдера через команду
asterisk -rx "sip show registry"(илиpjsip show registrations).
Скрипт можно написать на Python или использовать AGI (Asterisk Gateway Interface). Главное — корректно обработать событие входящего вызова и вызвать Telegram Bot API.
Шаг 4: Настройка отправки звонка в Telegram
Когда поступает входящий вызов на SIP-номер, шлюз должен:
- Определить, кому адресован вызов (по номеру, DID или внутреннему правилу).
- Отправить запрос в Telegram Bot API — например, уведомление о входящем звонке с данными звонящего.
- При необходимости — соединить звонящего с голосовым ботом или перевести на сотрудника.
Для простого уведомления достаточно отправки сообщения в чат:
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. Если всё работает — наращивайте функционал: запись, маршрутизация, голосовое меню. И обязательно тестируйте до того, как дадите номер клиентам.
