Інтеграція Бітрікс24 з FreePBX
FreePBX — це графічний інтерфейс управління поверх Asterisk. Більшість компаній, у яких «стоїть Asterisk», насправді використовують FreePBX: він спрощує налаштування через веб-панель, управляє розширеннями, чергами, IVR без ручного редагування конфігів. Технічно інтеграція з Бітрікс24 будується так само, як з Asterisk, але FreePBX додає свій інструментарій — модулі, AGI-інтеграції та API FreePBX.
FreePBX API і модуль Asterisk-CRM інтеграції
FreePBX має власний REST API (FreePBX RESTAPI), доступний з версії 14+. Це дозволяє управляти розширеннями, чергами та конфігурацією через HTTP-запити, що зручно для автоматизації. Однак для інтеграції з Бітрікс24 важливіший AMI Asterisk — той самий інтерфейс, що і в чистому Asterisk.
На FreePBX можна використовувати три підходи:
1. AGI-скрипт. У діалплан FreePBX додається виклик AGI-скрипту в потрібних контекстах. Скрипт отримує змінні дзвінка та передає дані в Бітрікс24.
2. AMI-демон. Окремий процес слухає AMI і обробляє події — аналогічно інтеграції з чистим Asterisk.
3. Модуль Bitrix24 для FreePBX — комерційний або open-source модуль, встановлюється через адміністративну панель FreePBX (Admin → Module Admin). Деякі модулі доступні в репозиторії FreePBX, інші постачаються окремо.
Налаштування AGI-інтеграції
AGI (Asterisk Gateway Interface) — протокол взаємодії діалплану Asterisk із зовнішніми скриптами. У FreePBX діалплан управляється через веб-інтерфейс, і додавання AGI-виклику робиться через кастомний контекст.
В Admin → Config Edit (або через файл /etc/asterisk/extensions_custom.conf) додати в потрібний контекст:
[from-internal-custom]
exten => _.,1,AGI(bitriks24.php,${EXTEN},${CALLERID(num)},${UNIQUEID})
exten => _.,n,Return()
Скрипт /var/lib/asterisk/agi-bin/bitriks24.php отримує три аргументи: номер призначення, номер того, хто телефонує, унікальний ID. Всередині скрипту — виклик Бітрікс24 REST API для реєстрації дзвінка.
Для вхідних дзвінків контекст буде from-trunk-custom або аналогічний залежно від налаштування FreePBX.
Черги в FreePBX і маппінг на відділи Бітрікс24
FreePBX має розвинений модуль черг. Типова схема: вхідний дзвінок потрапляє в IVR, клієнт вибирає відділ — дзвінок іде у відповідну чергу.
При інтеграції з Бітрікс24 потрібно знати, в яку чергу FreePBX потрапив дзвінок, щоб прив'язати його до правильного відділу в CRM. В AMI-подіях це видно через змінну каналу QUEUE_NAME. Передається в Бітрікс24 через параметр LINE_NUMBER при реєстрації дзвінка — це дозволяє Бітрікс24 маршрутизувати дзвінок до потрібних відповідальних.
| Черга FreePBX | Параметр у Бітрікс24 | Відповідальні в CRM |
|---|---|---|
sales |
LINE_NUMBER=200 |
Відділ продажів |
support |
LINE_NUMBER=201 |
Технічна підтримка |
billing |
LINE_NUMBER=202 |
Фінансовий відділ |
Запис розмов: налаштування в FreePBX
FreePBX управляє записом через модуль Call Recording. У налаштуваннях розширення або черги вмикається запис (Record Calls: Always). Файли зберігаються в /var/spool/asterisk/monitor/ з іменем формату YYYYMMDD-HHMMSS-CALLERID-EXTEN-UNIQUEID.wav.
Після обробки дзвінка AMI-демон або AGI-скрипт шукає файл за UNIQUEID і передає його в Бітрікс24. Критично — дочекатися закінчення конвертації запису (FreePBX автоматично конвертує .wav у .mp3, якщо налаштовано через cron). Час конвертації залежить від тривалості розмови.
Кейс: юридична компанія з багаторівневим IVR
Компанія використовувала FreePBX 15 з IVR на 6 відділів, кожен зі своєю чергою. Вимога: у Бітрікс24 дзвінок має створюватися не в момент початку IVR, а лише коли клієнт вибрав відділ і його поставили в чергу. Інакше фіксувалися короткі «технічні» дзвінки від клієнтів, які поклали слухавку при прослуховуванні меню.
Рішення: AGI-скрипт запускається в контексті черг (після вибору IVR), а не в контексті вхідного транку. telephony.externalcall.register викликається тільки при реальному потраплянні в чергу. Додатково: якщо клієнт поклав слухавку в черзі, не дочекавшись відповіді, — створюється пропущений дзвінок і лід з позначкою «Не дочекався черги», що тригерить автоперетелефонування через роботів Бітрікс24.
Строк налаштування: 4–6 робочих днів.







