Интеграция Битрикс24 с 3CX

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция Битрикс24 с 3CX
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1230
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    843
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    580
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    749
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    980

Интеграция Битрикс24 с 3CX

3CX — коммерческая IP-АТС с продуманным веб-интерфейсом и собственной экосистемой клиентских приложений. В отличие от Asterisk, 3CX предоставляет структурированный API для интеграций — что упрощает задачу, но и накладывает ограничения на архитектурные решения.

Два официальных способа интеграции

Встроенная CRM-интеграция 3CX. 3CX имеет раздел Settings → CRM Integration, где можно настроить передачу событий звонков во внешние CRM. Битрикс24 не входит в список предустановленных CRM в 3CX по умолчанию, но поддерживается через Custom CRM — механизм шаблонов HTTP-запросов.

3CX Call Flow Designer (CFD) + Webhooks. CFD — визуальный дизайнер call-flow в 3CX, позволяющий при определённых событиях звонка делать HTTP-запросы. Гибче, чем CRM-интеграция, и подходит для нестандартных сценариев.

Настройка через Custom CRM Integration

В консоли 3CX Management Console → CRM Integration → Custom CRM:

URL звонка (Call Answered):

https://ваш_портал.bitrix24.ru/rest/КЛЮЧ/telephony.externalcall.register/

Параметры запроса передаются в теле POST:

{
  "USER_PHONE_INNER": "%Ext%",
  "PHONE_NUMBER": "%CallerNumber%",
  "CALL_START_DATE": "%CallStarted%",
  "CRM_CREATE": "Y",
  "TYPE": "%Direction%"
}

3CX поддерживает переменные-плейсхолдеры: %Ext% — внутренний номер, %CallerNumber% — номер звонящего, %Direction% — направление (1=входящий, 2=исходящий). Полный список переменных в документации 3CX.

URL завершения звонка (Call Ended):

https://ваш_портал.bitrix24.ru/rest/КЛЮЧ/telephony.externalcall.finish/

Параметры:

{
  "CALL_ID": "%call_id_saved%",
  "DURATION": "%TalkDuration%",
  "STATUS_CODE": "200"
}

Проблема: Custom CRM Integration в 3CX не предоставляет механизма хранения состояния (нельзя сохранить CALL_ID из ответа Битрикс24 и передать при завершении). Это ключевое ограничение — для полноценной интеграции с сохранением CALL_ID нужен промежуточный сервер.

Промежуточный сервер: решение проблемы CALL_ID

Архитектура с промежуточным обработчиком:

3CX → webhook → PHP/Node.js обработчик
                     ↓
              Битрикс24 REST API → получаем CALL_ID
                     ↓
              Сохраняем CALL_ID в Redis/БД с ключом = UNIQUEID звонка
                     ↓
3CX → webhook завершения → обработчик
                     ↓
              Достаём CALL_ID из Redis
                     ↓
              telephony.externalcall.finish
                     ↓
              Прикрепляем запись

Это добавляет компонент инфраструктуры, но даёт полный контроль над интеграцией.

Запись звонков в 3CX

3CX сохраняет записи в директории сервера или в облачном хранилище (зависит от версии и настроек). Доступ к файлам через 3CX Recording Storage API или напрямую к файловой системе.

Для передачи в Битрикс24 — скрипт после завершения звонка обращается к 3CX API, получает ссылку на запись и загружает её через telephony.externalCall.attachRecord.

3CX возвращает ссылку на запись через API звонков:

GET /api/recordings?callId={callId}

Авторизация через JWT-токен (3CX версии 18+): Authorization: Bearer <token>.

3CX SBC и проблема NAT

3CX часто разворачивается с SBC (Session Border Controller) для NAT-traversal. При интеграции с Битрикс24 через SIP-транк нужно убедиться, что внешний IP SBC прописан в настройках SIP-транка Битрикс24. Иначе — одностороннее аудио при звонках от Битрикс24 к 3CX.

Кейс: распределённая команда, 3CX в облаке

IT-компания с офисами в двух городах использовала 3CX Hosted (облачная версия). Требование: когда клиент звонит на московский номер и попадает к питерскому менеджеру, в Битрикс24 звонок должен создаваться у питерского менеджера с привязкой к московскому входящему номеру.

3CX Custom CRM Integration не поддерживает маппинг внутренних номеров на пользователей Битрикс24. Решили через промежуточный обработчик с таблицей соответствий: внутренний номер 3CX → ID пользователя Битрикс24. При регистрации звонка обработчик смотрит в таблицу и подставляет USER_ID нужного пользователя.

Срок настройки: 5-7 рабочих дней.