PearlPBX2
Можливості

Все, що потрібно для керування Asterisk PBX

Від SIP-транспортів до провіжну телефонів — кожен розділ нижче описує реальні можливості поточної версії PearlPBX2.

Ядро телефонії: SIP, транки, WebRTC

  • Транспорти UDP/TCP/TLS/WSS з урахуванням NAT.
  • SIP-користувачі з plaintext/MD5-автентифікацією та індивідуальними оверрайдами.
  • WebRTC-ендпоінти генеруються поряд зі звичайними SIP-користувачами.
  • Транки з двостороннім реєстраційним оновленням, списками IP (match=) та розпізнаванням за заголовком Contact: для шлюзів, де кілька ліній діляться однією IP-адресою.
  • TLS-сертифікати зберігаються в базі й записуються на диск при застосуванні.
  • Групи транків набираються через FastAGI-обробник dial-trunk-group з автоматичним переключенням і повтором усередині групи.
  • Таблиці маршрутизації за префіксом прив'язуються до SIP-користувачів і транків.

AEL-редактор dialplan та валідатор

  • Контексти, розширення, макроси й глобальні змінні у синтаксисі AEL.
  • Власний валідатор (core/validators.py, 1000+ рядків) розбирає структуру блоків if/else/while/for/switch, балансує дужки й лапки з урахуванням ${} і звіряє кожен виклик застосунку зі списком ~150 команд Asterisk — до того, як dialplan потрапить у систему.
  • Шаблони розширень перевіряються на коректний синтаксис Asterisk і відображаються відсортованими за специфічністю: точні збіги перед масками.
  • IVR-меню створюються прямо в цьому редакторі через Background, WaitExten і Goto.

Черги дзвінків

  • Стратегія розподілу дзвінків, рівень обслуговування, таймаути, вага, час обробки після дзвінка, автопауза — налаштовується в адмінці без ручного редагування queues.conf.
  • Повний блок оголошень — 11 налаштовуваних підказок, оголошення позиції в черзі й часу очікування.
  • Учасники черги, правила ескалації пріоритету за часом, глобальні налаштування (постійні учасники, спільний останній дзвінок).

Музика на утриманні, звуки, запис розмов

  • Класи Music on Hold на основі директорій або плейлистів — завантаження файлів або URL.
  • Бібліотека завантажених звукових підказок.
  • Запис розмов на основі правил: примусове увімкнення чи вимкнення за caller ID або напрямком, захоплення через MixMonitor.
  • Кожен запис індексується за джерелом, призначенням і CDR uniqueid.

Apply Changes та ролі доступу

  • Генерація кожного конфігураційного файлу, прев'ю перед записом, версіонування в базі.
  • М'яке перезавантаження або повний перезапуск Asterisk через AMI, автоматичні резервні копії перед перезаписом.
  • Вбудована група «Report Viewer» — звіти й керування списками (блок-лист, allow-лист, контакти) без доступу до Django admin.

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

  • /dashboard/live/ — п'ять вкладок: Огляд, Черги, PJSIP, Мости, Канали.
  • KPI-плитки, живий список активних дзвінків та черг, дії з інтерфейсу: завершити дзвінок, поставити чи зняти агента з паузи.
  • Стан агентів переживає перезапуск Asterisk — слухач відтворює CoreShowChannels після перепідключення й відновлює картину.
  • /dashboard/ulines/ — монітор слотів парковки дзвінків.
  • WebSocket-потік ws/asterisk/ приймає сесію Django або DRF API-токен, що дозволяє вбудувати дашборд у власний інтерфейс CRM.

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

  • 5 операційних звітів: CDR-фільтр із класифікатором напрямку, браузер записів розмов, активність черг (5 підрежимів, включно зі звітом «загублені та знайдені» — зіставлення покинутих дзвінків із наступним успішним контактом), звіт по колбеках, звіт по таблиці маршрутизації.
  • 8 аналітичних звітів на Chart.js: дзвінки по черзі, по номеру призначення, по оператору в черзі, вихідні дзвінки по оператору, пропущені дзвінки по черзі й по годинах, тривалість дзвінків по оператору, активність черги.
  • Кожен звіт експортується в CSV і окремо обмежується правами доступу.

Провіжн телефонів

  • TFTP-автопровіжн. Сьогодні підтримуються Grandstream GXP (8 моделей: GXP1200, GXP1610, GXP1620, GXP1625, GXP2130, GXP2135, GXP2160, GXP2170) та Cisco SPA (7 моделей: SPA112, SPA122, SPA232D, SPA504G, SPA508G, SPA514G, SPA525G2).
  • Архітектура генератора конфігурації розширювана — нові виробники додаються через той самий плагінний механізм.

Backend-сервіси

  • Слухач дашборда підписується на Asterisk AMI, обробляє ~20 типів подій, публікує в Redis для WebSocket-дашборда, доставляє вебхуки CRM, надсилає сповіщення в Slack про пропущені дзвінки в черзі.
  • FastAGI-сервер (Twisted/StarPy, порт 4573) — 8 обробників dialplan: перевірка списків, набір групи транків із перемиканням, запис розмови, постановка запиту на колбек, перевірка статусу черги, атомарне виділення слота парковки через Redis-Lua.
  • Демон колбеків опитує PostgreSQL із блокуванням на рівні рядків, ініціює дзвінки через AMI, підтримує багатопроцесну паралельність.
  • Класичні AGI-скрипти надсилають Slack-сповіщення про дзвінки на невідповідний DID і пропущені дзвінки.