Можливості
Все, що потрібно для керування 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 і пропущені дзвінки.