При выборе оператора для перевода звонка BackgroundCallCard::transferButtonClick

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: placement — регистрация точки встраивания, telephony — регистрация звонка, поднимающего карточку

Кто может подписаться: любой пользователь

Событие BackgroundCallCard::transferButtonClick возникает, когда оператор нажимает кнопку перевода в карточке звонка и выбирает сотрудника, на которого переводит звонок.

Кнопка перевода есть только в состоянии connected, которое приложение включает командой CallCardSetUiState. В режиме обзвона и в карточке звонка, который сам пришел переводом, кнопки нет.

Это первый шаг сценария перевода. Битрикс24 звонок приложения сам не переводит. Приложение получает адресата, соединяет его и переключает карточку в состояние transferring той же командой — в нем оператор видит кнопки «Перенаправить» и «Вернуться к звонку». Нажатия этих кнопок приходят событиями completeTransferButtonClick и cancelTransferButtonClick.

Событие работает в контексте приложения, открытого в точке встраивания PAGE_BACKGROUND_WORKER. Это событие js-интерфейса, а не событие REST: подписаться на него запросом к /rest/ нельзя.

Что получает обработчик

Данные передаются в функцию обратного вызова метода BX24.placement.bindEvent

callback({
    "phoneNumber": "+79001234567",
    "target": 12
});

Параметры обработчика события

Обязательные параметры отмечены *

Параметр
тип

Описание

phoneNumber
string

Номер телефона собеседника

target
integer или string

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

Значение зависит от пункта, который выбрал оператор:

  • идентификатор сотрудника числом, например 12, — если в профиле сотрудника нет телефонов и меню выбора не показывается
  • идентификатор сотрудника строкой, например "12", — если оператор выбрал в меню пункт «Внутренний звонок»
  • номер телефона строкой, например "+79007654321", — мобильный, личный или рабочий из профиля сотрудника, если оператор выбрал его в меню

Тип перевода — на сотрудника или на телефон — в обработчик не передается. Приложение определяет его по значению: идентификатор сотрудника совпадает с ID из user.get, номер телефона — с полями PERSONAL_MOBILE, PERSONAL_PHONE или WORK_PHONE сотрудника.

Если оператор выбрал подразделение, а не сотрудника, событие не возникает

Параметры подписки

Обработчик регистрируют из виджета методом BX24.placement.bindEvent.

Обязательные параметры отмечены *

Название
тип

Описание

event*
string

Имя события интерфейса.

Для данного события — BackgroundCallCard::transferButtonClick

callback*
callable

Функция, которую Битрикс24 вызывает при наступлении события. Аргументы обработчика описаны выше

Примеры кода

Как использовать примеры в документации

BX24.ready(function () {
    BX24.init(function () {
        BX24.placement.bindEvent('BackgroundCallCard::transferButtonClick', function (eventData) {
            console.log(eventData);
        });
    });
});
// $b24 — инициализированный экземпляр SDK, см. руководство по началу работы
import type { B24Frame } from '@bitrix24/b24jssdk'

declare const $b24: B24Frame

await $b24.placement.bindEvent('BackgroundCallCard::transferButtonClick', (eventData: { phoneNumber: string; target: number | string }) => {
  console.log(eventData.target)
})
<!-- Загрузка SDK в UMD-сборке, глобальный объект B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
  document.addEventListener('DOMContentLoaded', async () => {
    const $b24 = await B24Js.initializeB24Frame()

    await $b24.placement.bindEvent('BackgroundCallCard::transferButtonClick', (eventData) => {
      console.log(eventData)
    })
  })
</script>

Ошибки

Проверьте условия.

  • Виджет открыт в точке встраивания PAGE_BACKGROUND_WORKER. В других точках встраивания события BackgroundCallCard::* не зарегистрированы, и подписка молча не сработает
  • Имя события передано без опечаток и с учетом регистра. Список событий, доступных в текущей точке встраивания, возвращает BX24.placement.getInterface
  • Звонок поднят приложением методом telephony.externalCall.register. Для звонков самого Битрикс24 события BackgroundCallCard::* не эмитятся вовсе

Продолжите изучение