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

Рассказываем, как интегрировать свою телефонию на базе Asterisk для совершения звонков в KeyCRM.
Автор Юлія Бакум
Обновлено 3 недели назад

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

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

Или, если получаете эти данные позже, то в любой момент можете передать их, указав обязательно идентификатор этого звонка(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, шлюз
Оцените эту статью