Событие смены статуса звонка CallCard::CallStateChanged

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

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

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

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

Событие CallCard::CallStateChanged возникает при смене состояния текущего звонка.

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

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

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

callback(
    "idle",
    {
        "failedCode": "486"
    }
);

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

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

Параметр
тип

Описание

callState*
string

Текущее состояние звонка.

Возможные значения:

  • idle — соединение отсутствует
  • connecting — выполняется установка соединения
  • connected — соединение установлено

additionalParams
object

Дополнительные данные (подробное описание).

Аргумент приходит всегда: если дополнительных данных нет, это пустой объект. Звездочкой отмечены обязательные параметры подписки, а не аргументы обработчика

Параметр additionalParams

Параметр
тип

Описание

failedCode
string

Код завершения звонка. Передается только при неуспешном завершении, когда callState = idle.

Значение — код протокола SIP. Например, 486 — абонент занят, 480 — абонент недоступен

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

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

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

Название
тип

Описание

event*
string

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

Для данного события — CallCard::CallStateChanged

callback*
callable

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

Примеры кода

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

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

declare const $b24: B24Frame

await $b24.placement.bindEvent('CallCard::CallStateChanged', (callState: string, additionalParams: { failedCode?: string }) => {
  console.log(callState, additionalParams.failedCode)
})
<!-- Загрузка 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('CallCard::CallStateChanged', (callState, additionalParams) => {
      console.log(callState)
    })
  })
</script>

Ошибки

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

  • Виджет открыт в точке встраивания CALL_CARD. В других точках встраивания события CallCard::* не зарегистрированы, и подписка молча не сработает
  • Состояние звонка действительно изменилось. Повторная установка того же значения callState события не вызывает
  • Имя события передано без опечаток и с учетом регистра. Список событий, доступных в текущей точке встраивания, возвращает BX24.placement.getInterface

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