Интеграция Битрикс24 с МТТ
МТТ (Межрегиональный ТранзитТелеком) — российский оператор связи с сервисом виртуальной АТС для бизнеса. Компании выбирают МТТ часто из-за широкой географии номеров и конкурентных тарифов на исходящие звонки. Интеграция с Битрикс24 строится через REST API МТТ и webhooks.
API МТТ ВАТС: что доступно
МТТ предоставляет HTTP API для управления виртуальной АТС и получения событий о звонках. Документация доступна в личном кабинете МТТ (раздел «API»).
Ключевые события для интеграции с Битрикс24:
| Событие МТТ | Описание | Действие в Битрикс24 |
|---|---|---|
incoming_call |
Входящий звонок | telephony.externalcall.register |
answer_call |
Оператор ответил | Обновление статуса звонка |
end_call |
Звонок завершён | telephony.externalcall.finish |
miss_call |
Пропущенный | telephony.externalcall.finish (STATUS_CODE=304) |
МТТ отправляет уведомления на настроенный URL в формате POST JSON. Настройка в личном кабинете МТТ: Настройки АТС → Интеграции → HTTP-уведомления.
Схема обработчика
Обработчик для МТТ работает аналогично другим ВАТС-интеграциям с важной особенностью: МТТ передаёт события в режиме реального времени без гарантий доставки. Нужно предусмотреть идемпотентность — повторная обработка одного события не должна создавать дублей в Битрикс24.
Идемпотентность через кеш с TTL:
$cacheKey = 'mtt_call_' . $event['call_id'] . '_' . $event['type'];
if ($cache->exists($cacheKey)) {
// Уже обрабатывали это событие
http_response_code(200);
exit;
}
$cache->set($cacheKey, 1, 3600); // TTL 1 час
// Обрабатываем событие
Маппинг внутренних номеров
МТТ ВАТС идентифицирует сотрудников по внутренним номерам (extension). В Битрикс24 — по USER_ID. Таблица соответствий хранится в конфиге обработчика или в БД.
Отдельный сценарий — групповой звонок, когда МТТ рассылает вызов нескольким операторам одновременно. В событии answer_call МТТ указывает, кто именно ответил. Важно использовать этот номер для USER_ID в Битрикс24, а не тот, кому изначально поступил звонок.
Запись звонков: скачивание через API
МТТ хранит записи на своих серверах. Доступ через API:
GET https://api.mtt.ru/v1/records/{call_id}
Authorization: Bearer {api_key}
Ответ содержит URL для скачивания файла. Файл доступен в течение 90 дней по умолчанию (настраивается в тарифе).
После получения файла — стандартная загрузка в Битрикс24 через telephony.externalCall.attachRecord.
Настройка нескольких номеров МТТ
Компании с несколькими городскими номерами на МТТ могут направить все номера на один набор операторов или разделить по отделам. В интеграции с Битрикс24 это важно для правильного определения LINE_NUMBER — по нему Битрикс24 понимает, к какой линии привязан звонок.
МТТ передаёт в событии поле to_number — номер, на который позвонили. По этому полю обработчик определяет LINE_NUMBER:
$lineMap = [
'+74991234567' => '100', // Линия отдела продаж
'+74997654321' => '101', // Линия поддержки
];
$lineNumber = $lineMap[$event['to_number']] ?? '100';
Кейс: компания автоматизации торговли
Компания с 15 менеджерами и двумя группами: входящие продажи и техподдержка. МТТ использовался как основной оператор с двумя городскими номерами. Требование к интеграции: звонок на номер продаж — к менеджерам продаж, на номер поддержки — к техническим специалистам. Пропущенные звонки — автоматический перезвон через роботов Битрикс24.
Сложность: у МТТ пропущенный звонок фиксировался событием miss_call, но только если никто из операторов не ответил. Если оператор поднял трубку и сразу положил (менее 3 секунд) — событие приходило как end_call с duration < 3. Обработчик проверял длительность: если duration < 3 — помечал как пропущенный в Битрикс24.
Для автоперезвона на пропущенные настроили робота в Битрикс24: создание нового лида и запуск цепочки с задачей на перезвон через 10 минут.
Срок настройки: 4-6 рабочих дней.







