↑↓ вибірEnter відкритиEsc закрити

    1. Elbuz
    2. Керівництво користувача Elbuz
    3. Клієнти
    4. Телефонія

    Як підключити Asterisk і FreePBX до Elbuz: AMI, діалплан і журнал дзвінків

    10 хв читанняОновлено

      Звʼязка 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:

      1. У секції [general] — enabled = yes; порт за замовчуванням 5038 (параметр port).
      2. Окрема секція користувача, наприклад [elbuz], з паролем secret.
      3. У write цього користувача має бути клас originate — без нього Asterisk не дасть поставити дзвінок.
      4. Перечитайте конфігурацію менеджера на сервері.

      Доступ до 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 ); порожньо — як вирішить діалплан
      «Канал співробітника»як набирати внутрішній номер; за замовчуванням Local/{ext}@from-internal, інші приклади з підказки — PJSIP/{ext}, SIP/{ext}
      «Контекст діалплану»контекст, з якого дозволені вихідні; за замовчуванням from-internal, як у FreePBX
      Картка «Підключення телефонії» у формі Asterisk / FreePBX
      1Посилання на інструкцію
      2Перемикач «Активність»
      3Поле «Адреса AMI (хост:порт)»
      4Поле «Користувач і секрет AMI»
      5Поле «Канал співробітника»
      6Поле «Контекст діалплану»
      7Поле «Номер лінії для вихідних»
      8Кнопка «Перевірити підключення»
      1. Посилання «Де саме — покроково в інструкції для вашого оператора» — веде на цю сторінку.
      2. Перемикач «Активність» — інтеграція ввімкнена.
      3. Поле «Адреса AMI (хост:порт)» — публічна адреса сервера; без порту береться 5038.
      4. Поле «Користувач і секрет AMI» — через двокрапку.
      5. Поле «Канал співробітника» — за замовчуванням Local/{ext}@from-internal.
      6. Поле «Контекст діалплану» — за замовчуванням from-internal.
      7. Поле «Номер лінії для вихідних» — стає Caller ID для клієнта.
      8. Кнопка «Перевірити підключення» — читальний запит до оператора, у кабінеті нічого не змінює.

      Форма зберігається сама приблизно через секунду після правки: унизу видно «Збереження...», потім «Збережено». Кнопки «Зберегти» немає.

      Наприкінці натисніть «Перевірити підключення». Elbuz лише входить у AMI, не виконуючи жодної дії. Список внутрішніх номерів з Asterisk не запитується, тож відповідь буде «Звʼязок з АТС встановлено. Співробітників в АТС: 0». Помилки порту й логіна — у розборі проблем.

      Крок другий: внутрішні номери

      Коли менеджер натискає «Подзвонити», Asterisk спершу телефонує на його внутрішній номер і лише після відповіді набирає клієнта. Той самий номер привʼязує дзвінки в журналі до менеджера.

      Де: картка співробітника («Користувачі (співробітники)») → поле «Телефон внутрішній».

      Номер Elbuz підставляє замість {ext} у «Канал співробітника». З каналом за замовчуванням номер 101 перетвориться на Local/101@from-internal. Під формою підключення картка «Внутрішні номери співробітників» показує, кому номер ще не вписали.

      Крок третій: фрагмент діалплану на сервері

      Замість адреси вебхука у формі картка «Файл налаштування для АТС» з кнопкою «Завантажити файл налаштування». Файл elbuz-asterisk.conf — готовий фрагмент діалплану з адресою Elbuz і секретним ключем усередині. Інструкція записана в ньому ж:

      1. Вставте блок у /etc/asterisk/extensions_custom.conf.
      2. У контексті вхідних перед Dial додайте same => n,Gosub(elbuz-lookup,s,1(${CALLERID(num)},in,<внутрішній номер, куди йде дзвінок>)), а в його h-розширенні — exten => h,1,Gosub(elbuz-report,s,1(${CALLERID(num)},in,)).
      3. У контексті вихідних перед 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)})).
      4. Перечитайте діалплан: asterisk -rx "dialplan reload".
      Картка «Файл налаштування для АТС» у формі Asterisk / FreePBX
      1Кнопка «Завантажити файл налаштування»
      1. Кнопка «Завантажити файл налаштування» — готовий файл з адресою й ключем усередині.

      У файлі зашита адреса Elbuz із ключем і хост, з якого ви відкрили форму. Змінили домен або створили сервіс у списку заново — завантажте файл ще раз і замініть блок на сервері.

      Якщо ви вставляли фрагмент раніше — замініть його новим із форми. У старому виклики були однакові для вхідних і вихідних: вхідні лягали без менеджера, вихідні — як вхідні, а час дзвінка був часом його завершення.

      Щоб Asterisk запрацював з Elbuz

      Що приходить у Elbuz

      Усе нижче звірено з модулем інтеграції Asterisk в Elbuz, написаним за документацією AMI.

      МожливістьЯк це працює з Asterisk
      Дзвінок з картки й журналу («Подзвонити»)так, через AMI Originate: Asterisk дзвонить на канал менеджера, після відповіді набирає клієнта; чекає 30 секунд
      Вхідні й вихідні в журналітак, лише з подій діалплану; кожен напрямок підключається своїми рядками з файла налаштування
      Імʼя клієнта на екрані телефонутак: діалплан питає імʼя в Elbuz і ставить його в CALLERID(name)
      Картка вхідного дзвінка в Elbuzтак: внутрішній номер співробітника передає третій аргумент виклику elbuz-lookup
      Запис розмовині: запис лежить файлом на вашому сервері; AI-розбору теж немає
      Щогодинна звірка журналуні: історії через в 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 сервера зміниться, змініть будь-яке поле розділу «Голос», щоб він зберігся заново. Порожнє поле — з будь-якої адреси.

      Для вихідних дзвінків AI у блоці «Вихідні дзвінки» потрібні «SIP-сервер» (адреса вашого Asterisk), «Логін лінії» і «Пароль лінії» — SIP-обліковий запис, на якому AI зареєструється як телефон. Його заводить адміністратор так само, як для звичайного SIP-телефона. Для «Іншого оператора» SIP-сервер обовʼязковий.

      Вихідні працюють тільки тоді, коли ввімкнено «Відповідати на дзвінки»: інакше пробний дзвінок відповість «Вихідні не налаштовані: вкажіть логін і пароль лінії та увімкніть відповідь на дзвінки». За замовчуванням AI дзвонить з 9 до 20 за часом акаунта — поле «Дзвонити в години».

      Сценарії

      Підключити FreePBX у типовій установці

      1. Адміністратор заводить користувача AMI з класом originate і відкриває порт 5038 ззовні (що потрібно).
      2. У формі — адреса, користувач:секрет; «Канал співробітника» і «Контекст діалплану» лишаються за замовчуванням.
      3. Фрагмент діалплану — в extensions_custom.conf, виклики Gosub — у контексти вхідних і вихідних (крок третій).
      4. Пробний дзвінок на номер компанії — і він у журналі.

      Дзвінок перевели на колегу

      Вхідний пішов на 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 чи без FreePBX візьміть варіант PJSIP або SIP з підказки під полем «Канал співробітника» (крок перший).

      Чому в журналі немає дзвінків за час, коли сервер був недоступний?

      Для Asterisk немає щогодинної звірки: історія дзвінків лежить у базі вашого сервера, і через API її не взяти. Журнал наповнюють тільки події з діалплану.

      Чи працює інтеграція, якщо Asterisk стоїть у закритій мережі офісу?

      Ні. AMI має бути доступний з інтернету за публічною адресою, а сервер — діставати до Elbuz по HTTPS (що потрібно).

      Чи можна прослухати запис розмови з Asterisk?

      Ні. Запис лежить файлом на вашому сервері, і посилання на нього Elbuz зібрати не може. Кнопки прослуховування й AI-розбору для Asterisk немає.

      Чи є готовий діалплан для голосового AI?

      Ні. Переадресацію номера на SIP-адресу AI налаштовує адміністратор сервера (голосовий AI).

      Суміжні теми

      Чи була стаття корисною?

      Зміст статті

      Спробувати безкоштовно