Интеграция Битрикс24 с Мегафон Виртуальная АТС
Мегафон Виртуальная АТС — облачная телефония от одного из крупнейших российских операторов. Для компаний, у которых корпоративные номера уже на Мегафоне, это естественный выбор виртуальной АТС. Интеграция с Битрикс24 строится через API Мегафона, который предоставляет webhooks на события звонков.
Как Мегафон передаёт события
Мегафон ВАТС работает с push-уведомлениями (webhooks). В личном кабинете настраивается URL для уведомлений об одном или нескольких типах событий:
| Событие | Когда происходит |
|---|---|
start |
Звонок поступил на ВАТС |
answer |
Абонент ответил |
end |
Звонок завершён |
record |
Запись готова к скачиванию |
Особенность Мегафона: все события для одного звонка объединены через единый call_id. Это удобно — не нужно генерировать собственный идентификатор для связки событий.
Пример уведомления от Мегафона при завершении звонка:
{
"type": "end",
"call_id": "meg_0123456789abcdef",
"start_time": "2024-01-15 10:30:00",
"end_time": "2024-01-15 10:33:05",
"duration": 185,
"from_number": "+74951234567",
"to_number": "+74992345678",
"internal_number": "102",
"state": "answered",
"direction": "in"
}
Настройка обработчика
Обработчик принимает POST-запросы от Мегафона и транслирует события в Битрикс24.
При событии answer (оператор поднял трубку):
- Определяем
USER_IDв Битрикс24 поinternal_number - Вызываем
telephony.externalcall.register - Сохраняем пару
{meg_call_id → bitrix_call_id}в хранилище
При событии end:
- Достаём
bitrix_call_idпоmeg_call_id - Определяем
STATUS_CODEиз поляstate:-
answered→200 -
not_answered→304(пропущенный) -
busy→486
-
- Вызываем
telephony.externalcall.finish
При событии record (приходит через несколько минут после end):
- По
call_idдостаёмbitrix_call_id - Скачиваем запись по ссылке из события
- Загружаем через
telephony.externalCall.attachRecord
Мегафон предоставляет ссылку на запись в формате:
{
"type": "record",
"call_id": "meg_0123456789abcdef",
"url": "https://ватс.мегафон.рф/records/...",
"duration": 185
}
Исходящие звонки через Мегафон ВАТС
Мегафон поддерживает API для инициации исходящих звонков (click-to-call). Менеджер кликает на номер в Битрикс24, Битрикс24 передаёт событие обработчику, обработчик вызывает Мегафон API:
POST https://ватс.мегафон.рф/v1/click2call
{
"from": "102", // внутренний номер сотрудника
"to": "+74951234567", // номер клиента
"line_id": "000001" // ID линии
}
Мегафон сначала звонит на телефон сотрудника, затем соединяет с клиентом. В этот момент обработчик должен зарегистрировать исходящий звонок в Битрикс24 через telephony.externalcall.register с TYPE=2 (исходящий).
Настройка в личном кабинете Мегафон ВАТС
В разделе Интеграции → Уведомления:
- URL для событий — адрес вашего обработчика
- Формат — JSON
- Секретный ключ (HMAC-подпись запросов) — для верификации запросов от Мегафона
Верификация подписи обязательна, иначе обработчик будет принимать любые POST-запросы от кого угодно:
$signature = hash_hmac('sha256', $rawBody, $secretKey);
if ($signature !== $_SERVER['HTTP_X_MEGAFON_SIGNATURE']) {
http_response_code(403);
exit;
}
Кейс: медицинская клиника, 8 администраторов
Клиника использовала Мегафон ВАТС с 8 внутренними номерами и IVR на две специализации. Проблема: звонок мог проходить через IVR и очередь, прежде чем попасть к администратору. Нужно было фиксировать в Битрикс24 именно тот внутренний номер, с которого ответил сотрудник, а не первоначальный номер распределения.
Мегафон в поле internal_number передаёт номер последнего ответившего абонента — это именно то, что нужно. Дополнительно: если клиент положил трубку в IVR (до попадания в очередь), событие end приходит с state=not_answered и пустым internal_number. В этом случае создаётся пропущенный звонок без ответственного — он виден в общем списке на администраторе ресепшн.
Срок настройки: 4-5 рабочих дней.







