Звʼязка Asterisk CRM з Elbuz працює на вашому сервері: Elbuz ставить дзвінки з картки клієнта через AMI, а готовий фрагмент діалплану сам передає в Elbuz кожен дзвінок. Підходить для Asterisk, FreePBX та Issabel.
Коли це знадобиться:
- Менеджер не знає, хто дзвонить — діалплан бере імʼя клієнта з Elbuz і показує його на телефоні.
- Номер доводиться набирати вручну — кнопка «Подзвонити» в картці: Asterisk зʼєднує спершу менеджера, потім клієнта.
- Пропущені дзвінки губляться — пропущений стає задачею «Перетелефонувати» в «Пульсі».
- Менеджери зайняті — адміністратор спрямовує номер на голосового AI-співробітника.
З чого почати: попросіть адміністратора сервера завести користувача AMI (що саме).
Що вміє Elbuz з Asterisk
- Імʼя клієнта на телефоні — діалплан питає його в Elbuz за номером (що приходить).
- Дзвінок з картки клієнта одною кнопкою — через AMI, з вибраного номера (як іде дзвінок).
- Журнал дзвінків — вхідні й вихідні з діалплану, з менеджером, який справді говорив (як визначається менеджер).
- Картка вхідного і пропущеного дзвінка — місто клієнта, останні замовлення, задача «Перетелефонувати» (картка дзвінка).
- AI-співробітник на номері — переадресацію налаштовує адміністратор сервера (голосовий AI).
Де це і хто має доступ
Підключення Asterisk живе серед інших інтеграцій, а не в журналі дзвінків. Вікно з рядка оператора називається «Налаштування доступу до API зовнішніх сервісів».
- Меню
- Кабінет → Налаштування системи → «Інші налаштування» → «Зовнішні сервіси та інтеграції» → «Телефонія» → «Asterisk / FreePBX»
- Інші входи
- «Журнал дзвінків» → меню-бургер → «Підключення телефонії»
- Право доступу
- налаштування системи і вікно «Журнал дзвінків»; щоб дзвонити, права не потрібні
- Підготувати
- публічну адресу Asterisk, користувача AMI, доступ адміністратора до діалплану
Без права на «Журнал дзвінків» не працюють «Перевірити підключення» і файл налаштування.
Що потрібно від Asterisk
Користувача AMI заводить адміністратор сервера. За документацією Asterisk AMI налаштовується у файлі manager.conf:
- У секції
[general]—enabled = yes; порт за замовчуванням5038(параметрport). - Окрема секція користувача, наприклад
[elbuz], з паролемsecret. - У
writeцього користувача має бути класoriginate— без нього Asterisk не дасть поставити дзвінок. - Перечитайте конфігурацію менеджера на сервері.
Доступ до AMI обмежують параметрами permit / deny; документація Asterisk радить не відкривати AMI в інтернет без захисту. Адрес серверів Elbuz для такого списку в документації Elbuz немає — уточніть їх у підтримки Elbuz.
У FreePBX користувачів AMI зазвичай заводять через веб-інтерфейс; точний пункт меню у вашій версії уточніть у документації FreePBX.
Сервер має бути доступний з інтернету: на адреси локальної мережі Elbuz не ходить, адресу AMI програма перевіряє й службові діапазони відкидає. А сам Asterisk має діставати до адреси Elbuz по HTTPS — інакше CURL() у діалплані повертатиме порожньо.
Джерела — офіційна документація Asterisk:
Як підключити Asterisk до Elbuz
Три кроки по черзі: ключі, внутрішні номери і фрагмент діалплану. Без внутрішніх номерів не працює кнопка «Подзвонити». Без фрагмента журнал лишиться порожнім: щогодинної звірки для Asterisk немає.
Крок перший: ключі Asterisk
Відкрийте рядок «Asterisk / FreePBX» у групі «Телефонія». Перемикач «Активність» уже ввімкнено. Поля, які вписуєте:
| Поле у формі | Що вписати |
|---|---|
| «Адреса AMI (хост:порт)» | публічна адреса сервера і порт, наприклад pbx.company.com:5038; без порту береться 5038 |
| «Користувач і секрет AMI» | через двокрапку: elbuz:секрет |
| «Номер лінії для вихідних» | номер, який побачить клієнт (Caller ID); порожньо — як вирішить діалплан |
| «Канал співробітника» | як набирати внутрішній номер; за замовчуванням Local/{ext}@from-internal, інші приклади з підказки — PJSIP/{ext}, SIP/{ext} |
| «Контекст діалплану» | контекст, з якого дозволені вихідні; за замовчуванням from-internal, як у FreePBX |
1
Посилання на інструкцію2
Перемикач «Активність»3
Поле «Адреса AMI (хост:порт)»4
Поле «Користувач і секрет AMI»5
Поле «Канал співробітника»6
Поле «Контекст діалплану»7
Поле «Номер лінії для вихідних»8
Кнопка «Перевірити підключення»- Посилання «Де саме — покроково в інструкції для вашого оператора» — веде на цю сторінку.
- Перемикач «Активність» — інтеграція ввімкнена.
- Поле «Адреса AMI (хост:порт)» — публічна адреса сервера; без порту береться 5038.
- Поле «Користувач і секрет AMI» — через двокрапку.
- Поле «Канал співробітника» — за замовчуванням
Local/{ext}@from-internal. - Поле «Контекст діалплану» — за замовчуванням from-internal.
- Поле «Номер лінії для вихідних» — стає Caller ID для клієнта.
- Кнопка «Перевірити підключення» — читальний запит до оператора, у кабінеті нічого не змінює.
Форма зберігається сама приблизно через секунду після правки: унизу видно «Збереження...», потім «Збережено». Кнопки «Зберегти» немає.
Наприкінці натисніть «Перевірити підключення». Elbuz лише входить у AMI, не виконуючи жодної дії. Список внутрішніх номерів з Asterisk не запитується, тож відповідь буде «Звʼязок з АТС встановлено. Співробітників в АТС: 0». Помилки порту й логіна — у розборі проблем.
Крок другий: внутрішні номери
Коли менеджер натискає «Подзвонити», Asterisk спершу телефонує на його внутрішній номер і лише після відповіді набирає клієнта. Той самий номер привʼязує дзвінки в журналі до менеджера.
Де: картка співробітника («Користувачі (співробітники)») → поле «Телефон внутрішній».
Номер Elbuz підставляє замість {ext} у «Канал співробітника». З каналом за замовчуванням номер 101 перетвориться на Local/101@from-internal. Під формою підключення картка «Внутрішні номери співробітників» показує, кому номер ще не вписали.
Крок третій: фрагмент діалплану на сервері
Замість адреси вебхука у формі картка «Файл налаштування для АТС» з кнопкою «Завантажити файл налаштування». Файл elbuz-asterisk.conf — готовий фрагмент діалплану з адресою Elbuz і секретним ключем усередині. Інструкція записана в ньому ж:
- Вставте блок у
/etc/asterisk/extensions_custom.conf. - У контексті вхідних перед Dial додайте
same => n,Gosub(elbuz-lookup,s,1(${CALLERID(num)},in,<внутрішній номер, куди йде дзвінок>)), а в його h-розширенні —exten => h,1,Gosub(elbuz-report,s,1(${CALLERID(num)},in,)). - У контексті вихідних перед Dial —
same => n,Gosub(elbuz-lookup,s,1(${EXTEN},out,${CALLERID(num)})), у h-розширенні —exten => h,1,Gosub(elbuz-report,s,1(${CDR(dst)},out,${CALLERID(num)})). - Перечитайте діалплан:
asterisk -rx "dialplan reload".
1
Кнопка «Завантажити файл налаштування»- Кнопка «Завантажити файл налаштування» — готовий файл з адресою й ключем усередині.
У файлі зашита адреса Elbuz із ключем і хост, з якого ви відкрили форму. Змінили домен або створили сервіс у списку заново — завантажте файл ще раз і замініть блок на сервері.
Якщо ви вставляли фрагмент раніше — замініть його новим із форми. У старому виклики були однакові для вхідних і вихідних: вхідні лягали без менеджера, вихідні — як вхідні, а час дзвінка був часом його завершення.
Щоб Asterisk запрацював з Elbuz
Що приходить у Elbuz
Усе нижче звірено з модулем інтеграції Asterisk в Elbuz, написаним за документацією AMI.
| Можливість | Як це працює з Asterisk |
|---|---|
| Дзвінок з картки й журналу («Подзвонити») | так, через AMI Originate: Asterisk дзвонить на канал менеджера, після відповіді набирає клієнта; чекає 30 секунд |
| Вхідні й вихідні в журналі | так, лише з подій діалплану; кожен напрямок підключається своїми рядками з файла налаштування |
| Імʼя клієнта на екрані телефону | так: діалплан питає імʼя в Elbuz і ставить його в CALLERID(name) |
| Картка вхідного дзвінка в Elbuz | так: внутрішній номер співробітника передає третій аргумент виклику elbuz-lookup |
| Запис розмови | ні: запис лежить файлом на вашому сервері; AI-розбору теж немає |
| Щогодинна звірка журналу | ні: історії через API в Asterisk немає (журнал без звірки) |
| Номер для клієнта | так: «Номер лінії для вихідних» стає Caller ID |
| Голосовий AI-співробітник | налаштовує адміністратор сервера (нижче) |
| Скинути дзвінок з картки вхідного | ні: кнопки «Скинути» для Asterisk у картці немає |
Фрагмент діалплану робить два виклики. Аргументи в них однакові: перший — номер клієнта, другий — напрямок (in чи out), третій — внутрішній номер співробітника.
- elbuz-lookup перед Dial питає в Elbuz, хто телефонує: імʼя потрапляє в CALLERID(name) на телефон, а в Elbuz у співробітника спливає картка клієнта.
- elbuz-report після завершення передає в журнал номер, напрямок, статус, тривалість розмови, час очікування (загальна тривалість мінус розмова), час початку дзвінка й ідентифікатор.
Фрагмент використовує функцію CURL() зі стандартної збірки Asterisk.
Особливості Asterisk
Журнал без звірки
У хмарних операторів пропущену подію добирає щогодинна звірка. В Asterisk історія дзвінків (CDR) лежить у базі на вашому сервері, і через API її не взяти, тому звірка до Asterisk не ходить. Якщо діалплан не викликав Elbuz — дзвінка в журналі не буде ніколи. Повтор того самого звіту дубля не створить: дзвінок розпізнається за його ідентифікатором.
Як визначається менеджер
Внутрішній номер співробітника фрагмент передає третім аргументом. У вхідному дзвінку перед Dial ви самі вказуєте, на який внутрішній номер іде дзвінок, — за ним у співробітника спливає картка. Після розмови, у h-розширенні, номер береться з каналу, який відповів: якщо дзвінок перевели, у журнал потрапить той, хто справді говорив.
У вихідному внутрішній номер — це ${CALLERID(num)} співробітника, а номер клієнта — ${EXTEN} до набору і ${CDR(dst)} після.
Результат дзвінка
Статус береться з DIALSTATUS Asterisk. Невідомий статус визначається за тривалістю розмови.
| DIALSTATUS | «Результат» у журналі Elbuz |
|---|---|
| ANSWER | «Відбувся» |
| BUSY | «Зайнято» |
| NOANSWER | «Не відповіли» |
| CANCEL | «Скасований» |
| CONGESTION, CHANUNAVAIL | «Збій звʼязку» |
Як іде дзвінок з кнопки
Elbuz відкриває коротку сесію AMI, віддає Originate з каналом співробітника, контекстом і номером клієнта та одразу виходить, не чекаючи відповіді. Якщо Asterisk відхилив команду, ви побачите його причину з поля Message.
Голосовий AI-співробітник на номері Asterisk
AI-співробітник Elbuz уміє сам відповідати на дзвінки і сам телефонувати клієнтам. Розмову веде не ваша АТС, а голосова платформа Elbuz, і номер треба на неї спрямувати. Налаштування розділу «Голос по телефону» — у статті Голосовий AI-співробітник.
Спрямувати номер на AI налаштовує адміністратор вашого Asterisk. У розділі «Голос по телефону» вкажіть номер, оберіть оператора «Інший оператор» і скопіюйте адресу виду <номер>@<SIP-домен>. Документація Asterisk дозволяє набрати довільну SIP-адресу через наявний PJSIP-ендпойнт: Dial(PJSIP/<ендпойнт>/sip:<номер>@<SIP-домен>). Готового фрагмента діалплану для голосу Elbuz не дає.
У поле «Адреси оператора» впишіть публічну IP-адресу або домен свого сервера — тоді Elbuz прийматиме дзвінки на SIP-адресу тільки з нього. Домен Elbuz перетворює на IP під час збереження розділу; якщо IP сервера зміниться, змініть будь-яке поле розділу «Голос», щоб він зберігся заново. Порожнє поле — з будь-якої адреси.
Для вихідних дзвінків AI у блоці «Вихідні дзвінки» потрібні «SIP-сервер» (адреса вашого Asterisk), «Логін лінії» і «Пароль лінії» — SIP-обліковий запис, на якому AI зареєструється як телефон. Його заводить адміністратор так само, як для звичайного SIP-телефона. Для «Іншого оператора» SIP-сервер обовʼязковий.
Вихідні працюють тільки тоді, коли ввімкнено «Відповідати на дзвінки»: інакше пробний дзвінок відповість «Вихідні не налаштовані: вкажіть логін і пароль лінії та увімкніть відповідь на дзвінки». За замовчуванням AI дзвонить з 9 до 20 за часом акаунта — поле «Дзвонити в години».
Сценарії
Підключити FreePBX у типовій установці
- Адміністратор заводить користувача AMI з класом originate і відкриває порт 5038 ззовні (що потрібно).
- У формі — адреса,
користувач:секрет; «Канал співробітника» і «Контекст діалплану» лишаються за замовчуванням. - Фрагмент діалплану — в extensions_custom.conf, виклики Gosub — у контексти вхідних і вихідних (крок третій).
- Пробний дзвінок на номер компанії — і він у журналі.
Дзвінок перевели на колегу
Вхідний пішов на 101, менеджер перевів його на 102. Картка спливає у співробітника з номером 101, а в журнал дзвінок лягає з менеджером 102 — номер береться з каналу, який відповів (як визначається менеджер).
Пропущений дзвінок не губиться
Менеджер не взяв слухавку — спливає картка «Пропущений дзвінок», а в «Пульсі» зʼявляється задача «Перетелефонувати». У журналі такі дзвінки відбирає «Тільки пропущені». Детальніше: пропущені дзвінки.
Що робити, коли Asterisk не працює з Elbuz
Загальні проблеми телефонії — немає кнопки дзвінка, порожній журнал — розібрано в статті Телефонія в Elbuz. Тут — те, що стосується Asterisk.
| Що ви бачите | Чому так | Що зробити |
|---|---|---|
| Кнопки «Подзвонити» немає ні в списку контактів, ні в картці | Ключі не вписані або перемикач «Активність» вимкнено — кнопки дзвінка тоді не малюються зовсім | Перевірте поля й перемикач у формі підключення (крок перший) |
| «У вашій картці співробітника не вказано внутрішній номер телефону» | Порожнє поле «Телефон внутрішній» у вашій картці: АТС нікуди дзвонити першим кроком | Впишіть номер у картку співробітника (крок другий) |
| «АТС відхилила запит: not an Asterisk AMI port» | За вказаними хостом і портом відповідає не AMI | Перевірте порт AMI (за замовчуванням 5038) і що він відкритий ззовні |
| «АТС відхилила запит: AMI login rejected (check user and secret)» | Невірний користувач або секрет AMI, чи вони записані не через двокрапку | Перевірте пару користувач:секрет у конфігурації AMI |
| «АТС відхилила запит: PBX address must be a public host» | Адреса AMI веде в локальну мережу або не розвʼязується в публічну | Вкажіть публічну адресу сервера |
| Журнал порожній, хоча дзвінки йдуть | Фрагмент діалплану не вставлено, не додано виклики Gosub або діалплан не перечитано | Пройдіть три кроки з файла налаштування й перевірте, що сервер дістає до адреси Elbuz по HTTPS |
Часті запитання
З якими АТС на базі Asterisk працює інтеграція?
З Asterisk, FreePBX та Issabel: важливі лише доступ до AMI і можливість вставити фрагмент діалплану.
Що вписати в «Канал співробітника» і «Контекст діалплану»?
У більшості установок FreePBX — значення, що стоять у полях за замовчуванням. Для PJSIP чи SIP без FreePBX візьміть варіант PJSIP або SIP з підказки під полем «Канал співробітника» (крок перший).
Чому в журналі немає дзвінків за час, коли сервер був недоступний?
Для Asterisk немає щогодинної звірки: історія дзвінків лежить у базі вашого сервера, і через API її не взяти. Журнал наповнюють тільки події з діалплану.
Чи працює інтеграція, якщо Asterisk стоїть у закритій мережі офісу?
Ні. AMI має бути доступний з інтернету за публічною адресою, а сервер — діставати до Elbuz по HTTPS (що потрібно).
Чи можна прослухати запис розмови з Asterisk?
Ні. Запис лежить файлом на вашому сервері, і посилання на нього Elbuz зібрати не може. Кнопки прослуховування й AI-розбору для Asterisk немає.
Чи є готовий діалплан для голосового AI?
Ні. Переадресацію номера на SIP-адресу AI налаштовує адміністратор сервера (голосовий AI).
Суміжні теми
- Якщо потрібна загальна картина телефонії й порівняння операторів — Телефонія в Elbuz.
- Якщо дзвінок уже в журналі й треба зрозуміти колонки чи «Результат» — Журнал дзвінків.
- Якщо хочете, щоб AI сам відповідав і телефонував клієнтам, — Голосовий AI-співробітник.
- Якщо дзвінки не привʼязуються до менеджера — Користувачі (співробітники), поле «Телефон внутрішній».
- Якщо треба знайти розмову в історії клієнта — Картка контрагента.

