Внедрение Asterisk-коннектора для интеграции IP-телефонии и Битрикс24

Интегрируем IP-телефонию Asterisk и Битрикс24 без использования сторонних сервисов. Asterisk-коннектор работает на собственном сервере компании и не требует дополнительных компонентов. Написан на Java, открытый продукт.

Решения

Что такое Asterisk-коннектор (SIP-коннектор)

Asterisk-коннектор — это отдельное ПО, которое передает в Битрикс24 информацию о входящих звонках и направляет исходящие и переадресованные звонки из Битрикс24 в SIP АТС.

Входящие звонки

Передача в Битрикс24 информации о входящих звонках из Asterisk, получение информации о контакте и открытие окна звонка.

Исходящие звонки из Битрикс24

Возможность звонить из Битрикс24 в браузере, десктоп-приложения, мобильного приложения.

Записи разговоров

Передача в Битрикс24 записей разговоров для сохранения в истории сделок и карточках контактов.

Детализация звонков

Передача в Битрикс24 полной информации о входящих звонках: номеров абонентов, статусов, времени, длительности.

Создание лидов и дел

Автоматическое создание лида при поступлении нового звонка или добавление информации в существующую сделку.

Поиск ответственных

Определение ответственного на основе найденной информации в компаниях, контактах, лидах и компаний или назначение ответственного по умолчанию.

Индивидуальные настройки лидогенерации

Персональные настройки для каждого сотрудника, исключения, VIP-списки.

Асинхронная работа с Asterisk

Работа с Asterisk без потери вызовов и задержки соединений.

Решения

Внедряем системы IP-телефонии на базе IP-АТС Asterisk для малого бизнеса и больших компаний. Вместе со многими клиентами 10+ лет, с основания до занятия лидирующих позиций на рынке.

… и другие решения. Обычно отраслевой опыт позволяет нам предложить шаги по интеграции IP-телефонии, соответствующие как конкретным задачам, так и долгосрочным целям.

Решения

Использование

Asterisk-коннектор размещается на собственном сервере компании, доступ сторонних сервисов к IP-телефонии компании отсутствует. Коннектор асинхронно взаимодействует с Asterisk через AMI и непрерывно получает события, содержащие все данные об изменениях при обработке звонков. В зависимости от полученных событий происходит получение ответственного из Битрикс24 для подачи звонка нужному сотруднику и отправка нужных данных в Битрикс24 для учета в CRM. Взаимодействие с Битрикс24 осуществляется через REST API (с 1 января 2021 года возможно только на коммерческих тарифах).

Пример настройки

# --- INCOMING CALL VIA QUEUE, SUCCESS ---
- events:
    - name: "Newchannel"
    - name: "UserEvent"
      constraints:
        UserEvent: IncomingCall
    - name: "QueueCallerJoin"
    - name: "AgentCalled"
    - name: "AgentConnect"
    - name: "Hangup"
    action:
        - method: telephony.externalcall.finish
          params:
            USER_ID: $(REST("user.get", "USER_ID", "UF_PHONE_INNER", ${AgentComplete(ConnectedLineNum)} | ${AgentComplete(DestCallerIDNum)} | ${AgentConnect(ConnectedLineNum)} | ${AgentConnect(DestCallerIDNum)}, "ACTIVE", "true")) | $(Responsible(${QueueCallerJoin(CallerIDNum)},ASSIGNED_BY_ID,company,contact,lead)) | ${UserEvent[UserEvent=IncomingCall](B24ResponsibleId)} | 108
            DURATION: $(Duration(${AgentConnect}))
            STATUS_CODE: 200
        - method: crm.lead.update
          fields:
            ASSIGNED_BY_ID: $(Responsible(${QueueCallerJoin(CallerIDNum)},ASSIGNED_BY_ID,company,contact,lead))
        - method: telephony.externalcall.attachrecord
          params:
            FILENAME: ${UserEvent[UserEvent=MonitorFile](Filename)}.mp3
            FILE_CONTENT: $(FileContents(/home/monitor/records/${UserEvent[UserEvent=MonitorFile](Index)}/${UserEvent[UserEvent=MonitorFile](Filename)}.mp3))

Фрагмент конфигурационного файла описывает обработку успешного входящего звонка.

Коннектор ожидает получения заданной последовательности событий events. Другие события, которые могут встретиться между ними, игнорируются. При этом событие UserEvent должно иметь значение атрибута IncomingCall. После получения заверщающего события Hangup коннектор запускает выполнение последовательности action, включающей REST-методы для взаимодействия с Битрикс24 и AMI-запросы для Asterisk.

После завершения звонка в Битрикс24 с помощью метода telephony.externalcall.finish у пользователя скрывается карточка звонка, звонок завершается, фиксируется в статистике. Метод crm.lead.update обновляет существующий лид, чтобы назначить ответственного за него сотрудника. Метод telephony.externalcall.attachrecord прикрепляет запись разговора к завершенному звонку и к делу звонка.

Примеры событий

${Event[attrCheck=value](attribute)}
# ${UserEvent[UserEvent=IncomingCall](B24ResponsibleId)}
# ${UserEvent[UserEvent=MonitorFile](Index)}
# ${UserEvent[UserEvent=MonitorFile](Filename)}.mp3

Поиск события Event с проверкой значения его параметра attrCheck и возврат значения attribute. Возвращаемое значение записывается в виде макроса ${…}.

Примеры функций

$(Channel(channel, expression))

Вычисление выражения expression в контексте определенного канала channel.

$(Duration(event1, event2))

Вычисление времени в секундах между событием event1 и событием event2.

$(FileContents(filename))

Ожидание появления файла по определенному пути filename, чтение и преобразование в base64.

$(Responsible(phone))

Поиск сущностей в Битрикс24 (компании, контакты, лиды), относящихся к определенному номеру телефона phone, и получение связанного с ними идентификатора ответственного.

$(REST(method, field[, attr, value]...))

Вызов REST-метода method и получение значения определенного поля field.

Следующие шаги

Обслуживание системы виртуализации, интеграция Битрикс24 с IP-телефонией с помощью Asterisk-коннектора и настройка сквозной аналитики в CRM.

Виртуализация

Внедряем системы виртуализации на базе гипервизора Xen. Оптимально распределяем серверные ресурсы и обеспечиваем масштабирование. Правильно организуем мониторинг и резервное копирование серверов виртуализации для высокой отказоустойчивости. Снижаем расходы на покупку серверного оборудования.

Сквозная аналитика в CRM

Подключаем источники трафика и контролируем путь пользователя от рекламных кликов до продаж. Определяем, какие каналы продаж приносят результат. Оцениваем эффективность расходов на рекламу.

Свяжитесь с нами

По общим вопросам, пожалуйста, позвоните в офис по телефону +7 (4852) 67-96-06 или напишите на info@ntechs.ru.

Напрямую

Дмитрий Шадринов

Взаимодействие с новыми клиентами.

Александр Гопоненко

Технические вопросы по администрированию.

Илья Тропин

Корпоративные поставки оборудования и расходников.

Отправьте информацию о новом проекте

Ответим на заявку в ближайшие 24 часа.

Спасибо 😊

Мы ответим на заявку в ближайшие 24 часа. Свяжемся с вами по телефону или электронной почте.