PearlPBX2
PearlPBX2 2.7.2 · Django 5.2 · Asterisk 22+

Керуйте Asterisk PBX через веб-інтерфейс, а не конфігураційні файли

PearlPBX2 генерує pjsip.conf, extensions.ael і queues.conf з бази даних, показує дзвінки та черги в реальному часі й підключається до вашої CRM через підписані вебхуки.

Ілюстрація панелі керування PearlPBX2

Зміни в конфігурацію Asterisk вносять вручну, в консолі, без історії правок.

PearlPBX2 генерує конфіги з моделей бази даних, показує прев'ю перед записом і версіонує кожну зміну.

Оператори не бачать, що відбувається в чергах, доки хтось не гляне в CLI Asterisk.

Дашборд у реальному часі показує дзвінки, черги й статус PJSIP просто в браузері.

Дзвінки й CRM живуть кожен своїм життям, і про них доводиться дізнаватись вручну.

Підписані вебхуки доставляють у вашу CRM кожну подію дзвінка — від дзвінка до запису розмови.

Можливості

PJSIP, транки й WebRTC

Транспорти UDP/TCP/TLS/WSS з урахуванням NAT, SIP-користувачі з WebRTC-ендпоінтами, транки з двостороннім реєстраційним оновленням і розпізнаванням за заголовком Contact для мультипортових GSM-шлюзів на одній IP.

AEL-редактор з власним валідатором

Контексти, макроси й змінні в синтаксисі AEL. Валідатор перевіряє структуру блоків, дужки й лапки та звіряє кожен виклик застосунку зі списком ~150 команд Asterisk — ще до того, як dialplan потрапить у систему.

Дашборд у реальному часі

П'ять вкладок — Огляд, Черги, PJSIP, Мости, Канали. Живий список дзвінків і черг, завершення дзвінка та пауза агента прямо з інтерфейсу. Стан агентів переживає перезапуск Asterisk: після перепідключення слухач відтворює CoreShowChannels і відновлює картину сам.

Apply Changes із прев'ю

Перед тим як переписати pjsip.conf, extensions.ael чи queues.conf, система показує прев'ю кожного файлу, версіонує конфігурацію в базі й лише потім м'яко перезавантажує або перезапускає Asterisk через AMI.

Rollback за журналом розгортань

Команда rollback.sh за журналом розгортань відкочує код, міграції бази й сервіси до попереднього стану на потрібну кількість кроків — не лише конфігурацію Asterisk, а весь стек PearlPBX2.

Роль Report Viewer

Вбудована група доступу дає супервізорам звіти й керування списками (блок-лист, allow-лист, контакти) без жодного доступу до Django admin.

Дашборд у реальному часі

П'ять вкладок — Огляд, Черги, PJSIP, Мости, Канали. KPI-плитки, живий список активних дзвінків і черг, пауза/зняття з паузи агента одним кліком. Стан агентів переживає перезапуск Asterisk: після перепідключення слухач відтворює CoreShowChannels і відновлює картину без ручного втручання.

ОглядЧергиPJSIPМостиКанали
18
Активні канали
6
Мости
4
Черги онлайн
3
Очікують
Активні дзвінки
+380 67 123 4567 → Оператор Петренко04:12
+380 50 987 6543 → Оператор Коваль01:47
Транк · GSM-2 → Черга «Продажі»00:38
Черги
Продажіочікує 2агенти 3/5
Підтримкаочікує 1агенти 2/4
Виставлення рахунківочікує 0агенти 1/2

Вебхуки для будь-якої CRM

Два незалежних ланцюжки подій — вхідний і вихідний дзвінок. Контракт відкритий і документований: будь-який HTTP-ендпоінт, що приймає JSON POST, підключається без готового конектора під конкретну CRM.

Вхідний дзвінок
call.incomingcall.answeredcall.missedcall.ended
Вихідний дзвінок
call.outgoingcall.outgoing_answeredcall.outgoing_ended
  • Кожен payload підписаний HMAC-SHA256 у заголовку X-PearlPBX-Signature.
  • Мультисегментні дзвінки (трансфери, конференції) корелюються через linkedid.
  • Доставка — best-effort із повтором через 2 секунди; call.ended дедуплікується через Redis.
POST /your-crm/webhook · call.ended
{
  "event": "call.ended",
  "uniqueid": "1753000000.42",
  "linkedid": "1753000000.42",
  "channel": "PJSIP/trunk1-0000001a",
  "caller_id_num": "380501234567",
  "caller_id_name": "Customer",
  "exten": "s",
  "context": "incoming",
  "direction": "inbound",
  "answered": true,
  "duration": 42,
  "cause": "16",
  "cause_txt": "Normal Clearing",
  "billsec": "38",
  "answered_by_member": "Operator Petrenko",
  "recorded": true,
  "recording_url": "https://pbx.example.com/api/v1/recordings/1753000000.42/",
  "channel_vars": { "ULINE": "42" }
}

Звітність та аналітика

5 операційних звітів і 8 аналітичних дашбордів на Chart.js. Кожен звіт експортується в CSV і окремо обмежується правами доступу.

Дзвінки по годинах
CSV
00:0012:0023:00
5 операційних звітів
  • CDR-фільтр із класифікатором напрямку
  • Записи розмов
  • Активність черг (5 підрежимів, «Loss & Found»)
  • Звіт по колбеках
  • Звіт по таблиці маршрутизації
8 аналітичних звітів
  • Дзвінки по черзі
  • Дзвінки по номеру призначення
  • Дзвінки по оператору в черзі
  • Вихідні дзвінки по оператору
  • Пропущені дзвінки по черзі
  • Пропущені дзвінки по годинах
  • Тривалість дзвінків по оператору
  • Активність черги (по годинах/днях)

Для інженерів

Власний валідатор AEL на 1000+ рядків, header-based identify для мультипортових шлюзів, Ansible-роли з журналом розгортань для rollback, REST API з живою OpenAPI-схемою та Swagger UI.

Технічна документація →

Розгортання

Встановлення
./install.sh
Оновлення
./update.sh
Відкат
./rollback.sh -n 1

Ansible компілює Asterisk 22 з вихідного коду, генерує секрети, налаштовує firewall і потрібні для роботи cron-завдання. Автоматичний інсталятор розрахований на Debian або Ubuntu; для оцінки та розробки є Docker Compose-стек, що не прив'язаний до дистрибутива. rollback.sh -n <кроків> відкочує код, міграції й сервіси за журналом розгортань.

Ліцензія та бізнес-модель

PearlPBX2 розповсюджується за PolyForm Shield License 1.0.0 — джерело коду доступне для перегляду й модифікації, але це не OSI-відкрита ліцензія.

«Ви можете використовувати, змінювати й розповсюджувати PearlPBX2 для будь-якої мети — включно з веденням власного комерційного телефонного бізнесу — за винятком надання продукту чи сервісу, що конкурує з PearlPBX2 або з будь-яким продуктом, який правовласник надає з використанням цього програмного забезпечення.»

Підтримка

Community
Спільнота на GitHub, без гарантованого часу відповіді
  • Повний доступ до коду за PolyForm Shield License
  • Оновлення через реліз-нотатки та CHANGELOG
  • Документація українською та API-довідник англійською
Почати з GitHub
Business
Email-підтримка в робочі години
  • Все з Community
  • Допомога з оновленнями та Apply Changes
  • Консультації з налаштування черг, вебхуків і провіжну
Обговорити умови
Enterprise
Виділений канал зв'язку, узгоджений SLA
  • Все з Business
  • Впровадження, міграція з іншої АТС
  • Індивідуальна розробка й інтеграції під ключ
Зв'язатися з нами

Питання, які запитують найчастіше

PearlPBX2 — це open source?+

Джерело коду відкрите для перегляду й модифікації, але ліцензія PolyForm Shield 1.0.0 не є OSI-відкритою: використовувати, змінювати й розгортати PearlPBX2 можна для будь-яких цілей, включно з комерційним телефонним провайдингом, — крім продажу продукту чи сервісу, що конкурує з PearlPBX2. Для конкурентного використання потрібна окрема письмова угода з правовласником.

Які версії Asterisk підтримуються?+

Asterisk 22 і новіші, зібраний з модулями res_pjsip, res_agi та cdr_pgsql. Ansible-інсталятор компілює Asterisk 22 з вихідного коду автоматично.

Яка операційна система потрібна для встановлення?+

Автоматичний Ansible-інсталятор розрахований лише на Debian або Ubuntu. Docker Compose-стек для оцінки, розробки та CI не прив'язаний до дистрибутива.

Чи є візуальний конструктор IVR?+

IVR-меню створюються в AEL-редакторі dialplan за допомогою Background, WaitExten і Goto — це редактор dialplan, а не drag-and-drop конструктор.

Чи інтегрується PearlPBX2 з моєю CRM?+

PearlPBX2 не прив'язаний до конкретної CRM. Вебхуки з HMAC-підписаним JSON-payload підключаються до будь-якого HTTP-ендпоінту, а документований словник із 33 змінних покриває весь шлях дзвінка — від надходження до посилання на запис розмови.

Що станеться, якщо застосована конфігурація виявиться помилковою?+

Apply Changes показує прев'ю кожного файлу перед записом і створює резервну копію автоматично. Якщо проблема виявилась пізніше, команда rollback.sh за журналом розгортань відкочує код, міграції бази й сервіси на потрібну кількість кроків назад.

Яка ліцензія і чи можна використовувати PearlPBX2 комерційно?+

PolyForm Shield License 1.0.0. Власний комерційний телефонний бізнес на базі PearlPBX2 — дозволений і не потребує окремої угоди. Угода потрібна лише тим, хто хоче продавати продукт або сервіс, що конкурує з PearlPBX2.

Які телефони підтримує автопровіжн?+

Сьогодні — 8 моделей Grandstream GXP та 7 моделей Cisco SPA через розширювану архітектуру генераторів конфігурації. Підтримку нових виробників додають через той самий плагінний механізм.

Готові спробувати PearlPBX2?

Розкажіть, яку задачу вирішуєте, — ми відповімо і запропонуємо демо чи консультацію.

Запросити демо