Підключіть PearlPBX2 до вашої CRM
Відкритий, документований контракт замість закритого набору готових конекторів під конкретні системи.
Вебхуки
Два незалежних ланцюжки подій для вхідного й вихідного дзвінка. Кожен payload підписаний HMAC-SHA256, а шаблон JSON редагується прямо в адмінці зі синтаксисом ${placeholder} — зміни застосовуються без перезапуску сервісу, бо конфігурація вебхука одразу публікується в Redis. Фільтрація за контекстом dialplan, таблицею маршрутизації чи чергою дозволяє надсилати вебхук лише для потрібних дзвінків, а кореляція через linkedid об'єднує всі етапи багатосегментного дзвінка (трансфери, конференції). Доставка — best-effort, з налаштовуваним таймаутом і повтором через 2 секунди на спробу; call.ended дедуплікується через Redis, тож CRM варто додатково дедуплікувати заuniqueid.
- Кожен payload підписаний HMAC-SHA256 у заголовку
X-PearlPBX-Signature. - Мультисегментні дзвінки (трансфери, конференції) корелюються через
linkedid. - Доставка — best-effort із повтором через 2 секунди;
call.endedдедуплікується через Redis.
{
"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" }
}Словник із 33 змінних
Шаблон payload перевіряється проти фіксованого словника змінних — довільний текст поза цим списком відхиляється ще у формі редагування вебхука.
eventuniqueidlinkedidchannelchannel_varscaller_id_numcaller_id_nameextencontextqueuetimestampdurationcausecause_txtanswered_timebillsecrecordedrecording_expectedrecording_urlrecording_filemissedwait_timemember_namemember_interfacemember_numberringtimeholdtimeanswered_by_memberanswered_by_interfacedirectiondest_channeldial_statusansweredТипові сценарії
- Screen pop у CRM одразу на call.incoming.
- Показ інформації про оператора на call.answered.
- Закриття картки дзвінка з тривалістю й посиланням на запис на call.ended.
- Задача на зворотний дзвінок при call.missed.
- Клік-ту-колл із картки клієнта через REST API.
REST API
Токен-автентифікація і жива OpenAPI 3.0-схема зі Swagger UI та ReDoc. Технічні деталі архітектури — на сторінці для інженерів.
/api/v1/calls/originate/Клік-ту-колл без розкриття AMI-секрету CRM./api/v1/calls/conference/Ad-hoc конференція на 2+ учасників./api/v1/queues/members/Статус агентів черги та керування паузою./api/v1/recordings/<uniqueid>/Завантаження запису з підтримкою Range.WebSocket-потік дашборда
ws/asterisk/ приймає або сесію Django, або DRF API-токен — це дозволяє вбудувати живий дашборд PearlPBX2 просто у власний інтерфейс вашої CRM, а не лише дивитись на нього окремо.