Как подключить виртуальный номер к боту Telegram — пошаговое руководство

Как подключить виртуальный номер к боту Telegram — пошаговое руководство

Ты хочешь, чтобы твой бот в Telegram принимал звонки и SMS с реальных номеров — не с твоего личного, не с какого-то случайного. Нужно, чтобы клиенты звонили, писали, а ты получал всё это через бота, не раскрывая свои данные. Это не фантастика — это стандарт для бизнеса, который масштабируется. Но как это сделать без ошибок, чтобы не потратить время и деньги впустую? Я расскажу, как это работает на практике — от выбора номера до того, как бот начинает отвечать на звонки.

Зачем это вообще нужно?

Представь: ты запустил бота для поддержки клиентов. Он отвечает на вопросы, отправляет ссылки, напоминает о заказах. Но клиенты хотят поговорить. Или отправить фото паспорта. Или уточнить детали по звонку. Ты не можешь давать им свой номер — это не безопасно, не масштабируемо и не профессионально. Виртуальный номер решает это: он работает как посредник. Звонят — бот получает вызов, записывает, отвечает, перенаправляет. SMS приходят — бот их читает, анализирует, реагирует. И всё это без твоего реального телефона.

Это особенно важно, если:

  • Ты ведёшь бизнес из дома, но не хочешь, чтобы клиенты знали твой адрес или номер;
  • У тебя несколько проектов — хочешь разделять каналы связи;
  • Ты работаешь с международными клиентами — нужен номер из другой страны;
  • Ты не хочешь, чтобы бот отвечал на звонки с номеров, которые потом блокируют или спамят.

Шаг 1: Выбери сервис виртуальных номеров

Не все сервисы одинаковы. Некоторые дают номера только для SMS, другие — только для звонков. Некоторые работают с Telegram API, другие — нет. Ты должен выбрать тот, который поддерживает оба: входящие звонки и SMS, и имеет интеграцию с Telegram через вебхуки или API.

Вот что реально работает:

Сервис Поддержка звонков Поддержка SMS Интеграция с Telegram Цена за номер (в месяц) Страны
Twilio Да Да Через вебхуки $1–2 50+
Vonage (ex Nexmo) Да Да Через вебхуки $1–2 70+
SMSService Нет Да Через API ₽100–200 РФ, СНГ
2Captcha (для SMS) Нет Да Через API ₽10–30 за SMS РФ, Украина, Казахстан
TextNow (для США/Канады) Да Да Нет (только приложение) Бесплатно США, Канада

Сервисы вроде SMSService и 2Captcha — хороши, если тебе нужен только SMS. Но если хочешь звонки — выбирай Twilio или Vonage. TextNow выглядит как бесплатный вариант, но он не даёт доступа к API — только через приложение, а это не подходит для бота. Не трать время на них.

Шаг 2: Зарегистрируй номер и настрой его

Допустим, ты выбрал Twilio. Зарегистрируйся, подтверди почту, добавь способ оплаты (карта или PayPal). Далее:

  1. Перейди в раздел Phone NumbersBuy a Number.
  2. Выбери страну — например, Россия, США или Германия. Лучше брать номер той страны, где твои клиенты.
  3. Выбери тип: Voice & SMS — именно так, не только SMS.
  4. Купи номер. Обычно стоит $1 в месяц.
  5. После покупки ты увидишь номер и его Account SID и Auth Token. Запиши их — они понадобятся позже.

Теперь настрой входящие звонки:

  • В настройках номера найди Voice & Fax.
  • Выбери Webhook в поле When a call comes in.
  • Вставь URL своего сервера: например, https://твой-домен.ru/telegram-call-handler.

Для SMS:

  • В том же разделе найди Messaging.
  • Выбери Webhook в поле When a message is received.
  • Вставь тот же URL, что и для звонков.

Ты только что настроил номер так, что все звонки и SMS будут приходить на твой сервер. Теперь нужно, чтобы сервер передавал это боту в Telegram.

Шаг 3: Создай бота в Telegram и получи токен

Если ты ещё не создал бота — сделай это сейчас.

  1. Открой Telegram, найди бота @BotFather.
  2. Отправь команду /newbot.
  3. Дай ему имя (например, Клиентский помощник).
  4. Придумай имя пользователя — оно должно быть в формате @ИмяБота_bot.
  5. BotFather пришлёт тебе токен. Скопируй его — это ключ к твоему боту. Храни его в секрете.

Теперь у тебя есть два ключа:

  • Токен бота Telegram — чтобы отправлять сообщения;
  • Account SID и Auth Token Twilio — чтобы получать звонки и SMS.

Шаг 4: Напиши обработчик на сервере

Ты не можешь просто вставить номер в Telegram — нужно, чтобы сервер принимал данные от Twilio и передавал их боту. Это можно сделать на Python, Node.js, PHP — что удобнее.

Пример на Python (Flask):

from flask import Flask, request
import requests
import os

app = Flask(__name__)

TELEGRAM_TOKEN = "твой_токен_бота"
TELEGRAM_CHAT_ID = "id_чата_или_пользователя"  # Получи его через @userinfobot

@app.route('/telegram-call-handler', methods=['POST'])
def handle_call_or_sms():
    data = request.form
    from_number = data.get('From')  # Номер звонящего
    message = data.get('Body')      # Текст SMS (если есть)
    call_status = data.get('CallStatus')  # Статус звонка

    if message:
        # Это SMS
        text = f"📩 SMS от {from_number}: {message}"
        send_telegram_message(text)
    elif call_status == "ringing":
        # Звонок начался
        text = f"📞 Звонок от {from_number}"
        send_telegram_message(text)
    elif call_status == "completed":
        # Звонок завершён
        text = f"📞 Звонок от {from_number} завершён"
        send_telegram_message(text)

    return "OK", 200

def send_telegram_message(text):
    url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
    requests.post(url, data={
        "chat_id": TELEGRAM_CHAT_ID,
        "text": text
    })

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Этот код:

  • Принимает данные от Twilio (номер, текст SMS, статус звонка);
  • Отправляет это в Telegram как сообщение;
  • Не требует сложных библиотек — только flask и requests.

Теперь тебе нужен сервер. Это может быть:

  • Виртуальный сервер на DigitalOcean ($4/мес);
  • Heroku (бесплатно, но с ограничениями);
  • Российский хостинг, если твои клиенты в СНГ — например, Beget или Timeweb.

Важно: сервер должен быть доступен из интернета. Если ты запускаешь его на локальной машине — не будет работать. Twilio не может подключиться к твоему домашнему компьютеру.

Шаг 5: Настрой обратную связь — как бот отвечает

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

  • Отправить пользователю сообщение в Telegram: «Спасибо за звонок. Мы ответим в течение 2 часов»;
  • Сохранить номер и текст в базу данных;
  • Отправить уведомление менеджеру в Telegram;
  • Автоматически ответить SMS: «Ваш запрос принят. Номер заказа: #123».

Для этого нужно расширить код. Например, если человек написал «заказ» — бот может отправить ему ссылку на форму. Если звонок длился больше 10 секунд — отправить уведомление менеджеру.

Пример: если в SMS есть слово «заказ» — отправить ссылку:

if "заказ" in message.lower():
    send_telegram_message("Ваш запрос на заказ принят. Заполните форму: https://ссылка.рф/form")

Это не требует сложного ИИ. Достаточно простых ключевых слов.

Что выбрать: Twilio или Vonage?

Оба сервиса работают одинаково. Но есть нюансы:

  • Twilio — лучше документация, больше примеров, проще начать. Подходит для новичков.
  • Vonage — чуть дешевле при больших объёмах. Если ты планируешь 1000+ звонков в месяц — выгоднее.
  • SMSService — если нужен только SMS и ты работаешь с русскоязычными клиентами — дешевле и проще. Но без звонков.

Если ты только начинаешь — выбирай Twilio. У него есть бесплатный тариф на 30 дней. Ты можешь всё протестировать, не платя ни цента.

Частые ошибки

Вот что ломает интеграцию чаще всего:

  • Сервер не доступен из интернета. Если ты запустил Flask на localhost — Twilio не может к нему подключиться. Нужен публичный IP и порт 443 или 80.
  • Неправильный URL в вебхуке. Должен быть https://, а не http://. Без HTTPS Twilio не отправляет данные.
  • Токен бота выложен в GitHub. Если ты загрузил код с токеном в публичный репозиторий — бота заблокируют. Используй .env файлы.
  • Ожидаешь голосовой ответ. Ты можешь получать звонок как событие, но не можешь проиграть аудио через Telegram. Если нужен голосовой ответ — используй Twilio Voice, но не через Telegram, а через отдельный звонок.
  • Пытаешься использовать бесплатные номера вроде TextNow. Они не работают с API. Это только приложение.
  • Не тестируешь в реальных условиях. Звонок из реального телефона, а не из симулятора. Проверяй, как бот реагирует на реальных клиентов.

Как лучше сделать — практические рекомендации

  • Начни с тестового номера. Купи номер на 1 месяц, протестируй всё. Не вкладывайся сразу в годовой тариф.
  • Используй логирование. Записывай все входящие данные в файл или базу. Потом сможешь посмотреть, что приходило, и отладить ошибки.
  • Не делай бота слишком умным. Если ты не разработчик — не пытайся встроить ИИ. Достаточно ключевых слов и шаблонных ответов.
  • Сделай резервный канал. Если бот не отвечает — пусть приходит уведомление на твой Telegram. Ты всегда можешь вмешаться.
  • Проверяй статусы звонков. Не все звонки — это реальные клиенты. Много «номеров-спамеров». Фильтруй по региону и по длительности.

Что делать в разных ситуациях

Ты не один. У всех разные задачи. Вот как поступать в разных сценариях:

  • Ситуация: ты в России, клиенты — русскоязычные, нужен только SMS.
    Выбирай SMSService. Платишь 100–200₽ в месяц за номер. Получаешь SMS — бот отвечает шаблоном. Просто, дешево, работает.
  • Ситуация: ты продаёшь за границу, клиенты из США, нужен звонок и SMS.
    Бери Twilio с номером США. Настрой вебхук. Отправляй уведомления в Telegram. Добавь автоматический ответ: «Спасибо за звонок. Мы свяжемся с вами в течение 24 часов».
  • Ситуация: ты запускаешь тестовый проект, бюджет — 0 рублей.
    Используй бесплатный тариф Twilio (30 дней). Создай бота. Подключи его к временному серверу на Heroku. Протестируй. Если работает — инвестируй в платный хостинг и номер.
  • Ситуация: ты не умеешь писать код.
    Используй платформы вроде Zapier или Make (ранее Integromat). Подключи Twilio → Telegram. Там есть готовые шаблоны. Не так гибко, но работает без программирования.

Итог: что делать прямо сейчас

Если ты дошёл до этого места — ты уже понимаешь, как это работает. Теперь сделай так:

  1. Зарегистрируйся на Twilio.
  2. Купи номер с поддержкой звонков и SMS (выбери страну, где твои клиенты).
  3. Создай бота в Telegram через @BotFather — запомни токен.
  4. Зарегистрируй бесплатный сервер на DigitalOcean ($4/мес).
  5. Загрузи простой код на сервер (как в примере выше).
  6. Настрой вебхуки в Twilio на этот сервер.
  7. Позвони с мобильного на свой виртуальный номер — убедись, что бот получил уведомление.

Это займёт у тебя 2–3 часа. Если всё получилось — ты теперь можешь масштабировать: добавить ещё номера, настроить автоматические ответы, интегрировать с CRM. Если не получилось — перечитай шаги, проверь URL, убедись, что сервер доступен по HTTPS. Это не магия — это технология, которая работает, если делать шаг за шагом.

Не пытайся всё сделать сразу. Начни с одного номера, одного типа сообщения — SMS или звонка. Потом добавляй остальное. Главное — не откладывай. Сделай хотя бы первый шаг сегодня.

Информация в статье носит ознакомительный характер. При выборе сервисов и настройке систем рекомендуется проконсультироваться с техническим специалистом, чтобы избежать рисков, связанных с безопасностью данных и соблюдением законодательства.

Virtual-Sim.ru