Як підключити телефонію на базі Asterisk (PBX)

Розповідаємо, як інтегрувати власну телефонію на базі Asterisk для здійснення дзвінків в KeyCRM.
Написано Юлія Бакум
Оновлено 5 місяців тому

Asterisk (PBX) (Private Branch Exchange) - відкрита комунікаційна платформа, яка використовується для впровадження програмних АТС, систем голосового зв'язку, VoIP-шлюзів, IVR-систем (інтерактивне голосове меню), голосової пошти, телефонних конференцій і call-центрів.

На основі цієї технології працює багато телефоній, які ви можете приєднати до KeyCRM, щоб: 

  • здійснювати дзвінки з CRM та обробляти вхідні;
  • бачити, хто вам дзвонить, якщо покупець вже є в системі;
  • створювати покупців, замовлення чи заявки прямо з картки дзвінка;
  • бачити всю історію дзвінків із записами розмов.
Зверніть увагу! Інструкція призначена для ваших програмістів, які реалізують передачу даних на стороні телефонії в KeyCRM.

Крок 1. Створюємо канал телефонії у KeyCRM

Перейдіть до «Налаштування» «Комунікації» → вкладка «Телефонія» та натисніть кнопку «Додати нову службу».

У вікні, що з'явилося, на вкладці «Загальні»:

  1. Назва — ведіть назву телефонії;
  2. Сервіс телефонії  виберіть «Other».
  3. Посилання для ініціалізації дзвінкаURL створюється на стороні телефонії. Після початку дзвінка менеджером з CRM, на нього буде відправлено POST запит у форматі json
  4. Посилання для завершення дзвінка(не обов'язкове) — URL створюється на стороні телефонії. На нього буде відправлено POST запит у форматі json, коли менеджер завершить дзвінок з картки дзвінка в CRM. 
    Якщо не вказати, то в картці дзвінка НЕ буде кнопки для завершення дзвінка і його потрібно завершувати напряму через IP телефон, софтфон тощо;
  5. Посилання на Webhook — посилання на яке телефонія має відправляти запити з інформацією по дзвінкам в CRM. Скопіюйте його для подальших налаштувань на стороні телефонії; 
  6. Використовувати deep link —  активуйте, тільки якщо ви використовуєте софтфон, який підтримує цю технологію;
  7. Зв'язок з воронками —  активуйте та оберіть значення:
    • Ні — картки НЕ будуть створюватись з дзвінків автоматично;
    • Одноразовий — картки будуть створені тільки один раз за умови, що ще не має картки з цим номером;
    • Повторюваний — картки будуть створюватись завжди при повторних дзвінках за умови, що в номера не має картки в робочих статусах (усі статуси крім успішного і відхилених).  
  8. Тип дзвінка  оберіть тип дзвінків з яких будуть створюватись картки: тільки вхідні, тільки вихідні або усі — вхідні та вихідні;
  9. Воронка — вкажіть воронку для створення карток. Якщо у вас тільки одна воронка — вона обирається автоматично, а самого поля з вибором не буде;
  10. Джерело — оберіть джерело з яким буде створюватись картка. Якщо не вибрати — картка створиться з пустим значенням в полі джерела.

Як працює функція deep link

Deep link - функція, яка відразу виконує дзвінок в програмі за замовчуванням на пристрої.

Особливості роботи:

  • Якщо у вас на пристрої програма за замовчуванням для дзвінків софтфон, він активний і в налаштуваннях телефонії активована функція deep link: коли ви натискаєте «Подзвонити» в CRM - відкривається відразу ця програма для здійснення дзвінка клієнту.
  • Використання deep link потрібно активувати лише якщо ви використовуєте софтфон, який підтримує цю технологію (наприклад, MicroSIP або платний Zoiper).  Якщо не впевнені, можете протестувати. Спочатку активуйте, якщо вихідні дзвінки з CRM не працюватимуть, то деактивуйте.
  • Якщо вимкнути deep link - виклик відбуватиметься через саму телефонію. Спочатку CRM відправить до телефонії запит на початок дзвінка, телефонія отримавши його здійснить виклик на софтфон або IP телефон менеджеру, менеджер підіймає слухавку і починається з'єднання з клієнтом.
  • IP телефони функцію deep link не підтримують, тому при роботі з ними вона повинна бути вимкнена.
Зверніть увагу! Якщо ви в налаштуваннях телефонії вмикали чи вимикали функцію deep link, то обов'язково після збереження змін оновіть сторінку, щоб зміни застосувались. 

Крок 2. Підключення номерів

У вікні налаштувань перейдіть на вкладку «Номера користувачів» та заповніть дані:

  • Внутрішній номер — номер внутрішньої лінії телефонії;
  • Менеджер — користувач у CRM, який відповідає цьому номеру.

У списку для вибору будуть користувачі, яким надано доступ до телефонії.

Після внесеної інформації обов'язково збережіть канал і переходьте до наступного кроку.

Крок 3. Налаштування на стороні телефонії

KeyCRM приймає інформацію про дзвінки з телефонії та відображає її всередині системи. Тому потрібно реалізувати передачу даних з телефонії в CRM.

Усі запити потрібно передавати методом POST в json форматі, опис параметрів:

Параметр Тип даних Обов'язково Опис
action string так
  • «call» - запит з інформацією по дзвінку;
  • «route» - запит на отримання інформації про покупця.
call objects так об'єкт з детальною інформацією по дзвінку, включає параметри:
id string так унікальний ідентифікатор дзвінка, який генерується на стороні телефонії
direction string так

напрям дзвінка:

  • outgoing - вихідний; 
  • incoming - вхідний.
destination_number string так завжди номер телефона клієнта
caller string так завжди номер внутрішньої лінії менеджера з телефонії
state string так

статус дзвінка:

  • started - початок; 
  • pending - режим очікування; 
  • answered - підняття слухавки; 
  • canceled - скасування дзвінка менеджером; 
  • busy - скасування дзвінка клієнтом; 
  • completed - завершення дзвінка; 
  • transferred - переведення дзвінка на інший номер.
duration int ні тривалість дзвінка в секундах, потрібно передавати тільки після завершення дзвінка
audio_url string ні посилання на аудіозапис дзвінка в телефонії, потрібно передавати тільки після завершення дзвінка

Приклад запиту для зберігання дзвінка:

{
  "action": "call",
   "call": {
      "id": "1233123",  
      "direction": "outgoing", 
      "destination_number": "380730000001",
      "caller": "301",
      "state": "started", 
      "duration": 5666, 
      "audio_url": "https://google.mp3" 
   }
}

Приклади сценаріїв роботи інтеграції

1. Вихідний дзвінок при вимкненому deep link

  • Менеджер натискає на «Подзвонити» в CRM;
  • CRM відправляє POST запит у форматі json на посилання вказане у налаштуваннях телефонії «Посилання для ініціалізації дзвінка»:
{
  "caller": "333", // номер внутрішньої лінії менеджера, який ініціював дзвінок
  "destination_number": "380730000001"  // номер телефона клієнта
}
  • Телефонія приймає запит та ініціює дзвінок на своїй стороні. І відправляє запит початка дзвінка в CRM на Webhook, вказаний у налаштуваннях телефонії:
{
  "action": "call",
   "call": {
      "id": "1233123",  
      "direction": "outgoing", 
      "destination_number": "380730000001",
      "caller": "333",
      "state": "started"
   }
}
  • Після підняття слухавки телефонія відправляє в CRM такий самий запит, але зі статусом дзвінка answered.
  • Після завершення телефонія відправляє в CRM такий самий запит, але зі статусом дзвінка completed, і додатковими параметрами: duration та audio_url.

2. Вхідний дзвінок

  • Коли надходить вхідний дзвінок, телефонія відправляє відразу в CRM POST запит початку вхідного дзвінка у форматі json на Webhook, вказаний у налаштуваннях телефонії:
{
  "action": "call",
   "call": {
      "id": "1233123",  
      "direction": "incoming", 
      "destination_number": "380730000001",
      "caller": "333",
      "state": "started"
   }
}
  • Далі телефонія відправляє запити відповідно до змін статусу дзвінка. 

3. Збереження аудіозапису дзвінка в історію дзвінків CRM

Ви можете відправити тривалість дзвінка та аудіозапис відразу з передачею запита зі статусом завершення дзвінка completed.

Або, якщо отримуєте ці дані пізніше, то в будь-який момент можете передати їх вказавши обов'язково ідентифікатор цього дзвінка(id): 

{
  "action": "call",
   "call": {
      "id": "1233123",  
      "direction": "incoming", 
      "destination_number": "380730000001",
      "caller": "333",
      "state": "completed", 
      "duration": 5666, 
      "audio_url": "https://google.mp3" 
   }
}

4. Приклад отримання інформації про покупця

  • Щоб отримати дані покупця з бази CRM, потрібно з телефонії відправити POST запит у форматі json на Webhook. В параметрі «action» для цього запита завжди значення «route», а в параметрі «route» - номер телефону покупця:
{
  "action": "route",
  "route": "380730000001"
}
  • У відповіді ви отримаєте :
{
    "client": {
        "id": 47820,    // ідентифікатор покупця в CRM
        "profile_url": "https://demo.keycrm.app/app/clients?id=47820",     // посилання на картку покупця в CRM
        "name": "Пономар Владислав",    // повне ім'я покупця
        "manager": {
            "id": 81,     // ідентифікатор відповідального менеджера покупця в CRM
            "name": "Владислав Пономарь",  // ім'я відповідального менеджера покупця в CRM
            "number": null      //номер телефону відповідального менеджера покупця, вказаний в його профілі в CRM
        }
    }
}

Тепер ви можете працювати з телефонією в KeyCRM!

Теги: телефонія, Asterisk, Asterik, астеріск, астерікс, астерикс, астериск, інша телефонія, програмна ATC, шлюз
Чи була наша стаття корисною?