Остановить таймер звонка со стороны приложения CallCardStopTimer
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
placement— регистрация точки встраивания,telephony— регистрация звонка, поднимающего карточкуКто может выполнять команду: любой пользователь
Команда CallCardStopTimer останавливает отсчет времени разговора в карточке звонка.
Команда работает в контексте приложения, открытого в точке встраивания PAGE_BACKGROUND_WORKER. Это команда js-интерфейса, а не метод REST: вызвать ее запросом к /rest/ нельзя.
Команда нужна, когда приложение показывает в карточке собственное время разговора или удерживает звонок.
Часть состояний интерфейса останавливает таймер сама: incoming, transferIncoming, outgoing, connectingIncoming, connectingOutgoing, error, moneyError и redial. А вот при переводе звонка — состояния transferring, transferFailed и transferConnected — отсчет продолжается, и остановить его можно только этой командой. Состояния описаны на странице CallCardSetUiState.
Как вызвать команду
Команду вызывают из виджета методом BX24.placement.call. Третий аргумент — функция обратного вызова, в нее приходит результат команды.
BX24.placement.call('CallCardStopTimer', {}, function (result) {
// в браузере при успехе функция обратного вызова не срабатывает
console.log(result);
});
Параметры команды
Команда не принимает параметров. Вторым аргументом передайте пустой объект {}.
Примеры кода
Как использовать примеры в документации
Рекомендуется вызывать команду после события BackgroundCallCard::initialized
BX24.ready(function () {
BX24.init(function () {
BX24.placement.call('CallCardStopTimer', {}, function (result) {
console.log(result);
});
});
});
// $b24 — инициализированный экземпляр SDK, см. руководство по началу работы
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// в браузере промис не резолвится при успехе — не ожидайте результат
$b24.placement.call('CallCardStopTimer')
<!-- Загрузка 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()
// в браузере промис не резолвится при успехе — не ожидайте результат
$b24.placement.call('CallCardStopTimer')
})
</script>
Результат команды
В браузере успешный вызов ничего не возвращает: функция обратного вызова не срабатывает, отсчет в карточке останавливается.
Сам таймер при этом не скрывается — в карточке остается последнее значение. Он исчезнет, когда карточка перейдет в состояние, отличное от connected. Повторный вызов на уже остановленном таймере безопасен: команда ничего не делает и об этом не сообщает.
В десктоп-приложении Битрикс24 после успешного вызова приходит пустой массив.
[]
Ошибки
Ошибка команды приходит в ту же функцию обратного вызова: вместо обычного результата в нее передается массив с объектом, у которого result равен error.
[
{
"result": "error",
"errorCode": "Call card is undefined"
}
]
Значения errorCode
|
Код |
Описание |
Значение |
|
|
Карточка звонка недоступна |
Нет активной карточки звонка, которой можно управлять. Тот же код приходит, когда карточка есть, но звонок не внешний: интерфейс работает только с карточкой, поднятой методом telephony.externalCall.register |
Если команда вызвана в другой точке встраивания, функция обратного вызова не будет вызвана вовсе: неизвестную команду интерфейс точки встраивания игнорирует. Проверить, что команда CallCardStopTimer доступна, можно методом BX24.placement.getInterface.