Інтеграція Бітрікс24 з Ростелеком Віртуальна АТС
Ростелеком ВАТС — продукт найбільшого російського телекомунікаційного оператора. Для компаній із державним або корпоративним ухилом, які за замовчуванням працюють з Ростелекомом, інтеграція віртуальної АТС з Бітрікс24 — стандартний запит при впровадженні CRM.
Особливості API Ростелеком ВАТС
Ростелеком надає ВАТС API з підтримкою webhooks. Особистий кабінет ВАТС Ростелеком розташований за адресою vats.rt.ru. Розділ для налаштування інтеграції: Налаштування → Інтеграції → Веб-хуки.
Авторизація запитів від Ростелекому: вхідні webhooks від Ростелекому підписуються X-Signature у заголовку. Ключ для перевірки підпису отримується в особистому кабінеті.
Перевірка підпису:
$expectedSig = hash_hmac('sha256', $rawBody, $webhookKey);
if (!hash_equals($expectedSig, $request->header('X-Signature'))) {
abort(403);
}
Структура події від Ростелеком ВАТС:
{
"event": "end",
"call_uuid": "rt-abc123def456",
"call_direction": "inbound",
"caller_id": "+74951234567",
"called_number": "+74997654321",
"extension": "103",
"call_start": "2024-01-15T10:30:00+03:00",
"call_answer": "2024-01-15T10:30:15+03:00",
"call_end": "2024-01-15T10:33:05+03:00",
"duration_full": 185,
"duration_talk": 170,
"record_id": "record-uuid-12345"
}
Різниця між duration_full і duration_talk
Це важливо для Бітрікс24: duration_full — від початку дзвінка до його завершення (включаючи час очікування в черзі/IVR). duration_talk — лише розмова. У telephony.externalcall.finish передається DURATION — для коректної аналітики в CRM передавайте duration_talk, а не duration_full.
Записи розмов через API
Ростелеком зберігає записи і надає API для їх отримання. За record_id з події end запитується файл:
GET https://api.vats.rt.ru/v2/records/{record_id}
Authorization: Bearer {access_token}
Відповідь — пряме посилання на аудіофайл або сам файл у тілі відповіді (залежить від версії API). Посилання діє обмежений час (зазвичай 1 година) — завантажувати потрібно одразу після отримання події.
Вихідні через API Ростелекому
Click-to-call через Ростелеком ВАТС API:
POST https://api.vats.rt.ru/v2/calls/originate
Authorization: Bearer {access_token}
{
"from_extension": "103",
"to_number": "+74951234567"
}
Ростелеком передзвонює на телефон співробітника, потім з'єднує з клієнтом. Відповідь API містить call_uuid для відстеження події дзвінка.
Робота з кількома співробітниками в одному дзвінку
Ростелеком ВАТС підтримує переведення дзвінків між співробітниками (attended і blind transfer). При переведенні надходить окрема подія transfer. Для Бітрікс24 це означає зміну USER_ID активного дзвінка.
Обробка переведення:
- Подія
transferмістить вихіднийcall_uuidі новийextensionспівробітника, який прийняв переведення. - Дістаємо
bitrix_call_idза вихіднимcall_uuid. - Викликаємо
telephony.externalcall.updateдля оновлення відповідального.
Якщо API Бітрікс24 не підтримує оновлення користувача в активному дзвінку, рішення — завершити вихідний дзвінок і зареєструвати новий. Це створює два записи в історії, що незручно. Альтернатива: використовувати кастомне поле «Переведений дзвінок» і фіксувати ланцюжок переведень.
Кейс: державна структура, 50 співробітників
Регіональна державна установа з номерами Ростелеком і вимогою зберігати записи всіх дзвінків. У Ростелеком ВАТС записи зберігаються 90 днів, потім видаляються. Вимога регулятора — 3 роки зберігання.
Рішення: при кожній події end із записом обробник завантажує файл і вивантажує його в корпоративне S3-сховище (MinIO). У Бітрікс24 прикріплюється не посилання на Ростелеком, а постійне посилання на внутрішнє сховище. Через 90 днів посилання на Ростелеком стає недійсним, але в Бітрікс24 запис залишається доступним через внутрішнє посилання.
Термін налаштування: 5–7 робочих днів.







