Блог Горошко Андрея Bitrix24 Карточка звонка

Карточка звонка

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Карточка звонка». Вы узнаете экспертные методики работы с карточка звонка и научитесь избегать типичных ошибок начинающих разработчиков.

Карточка звонка

Для управления карточкой звонка желательно ознакомиться со сценариями.

Общее описание

Рассмотрим карточку звонка:

!sip_app1

Чтобы изменить титульник карточки (область 1), требуется вызвать метод CallCardSetCardTitle и передать объект со свойством title.

BX24.placement.call('CallCardSetCardTitle', {title: 'Card Title'}, () => { //some code });

Чтобы изменить текст в области 2, требуется вызвать метод CallCardSetStatusText и передать объект со свойством statusText.

BX24.placement.call('CallCardSetStatusText', {statusText: 'Status Text'}, () => { //some code });

Всего у карточки звонка 12 состояний интерфейса. Получить их можно с помощью вызова метода CallCardGetListUiStates. В функцию обратного вызова будет передан массив с доступными состояния карточки звонка.

BX24.placement.call('CallCardGetListUiStates', (data) => { console.log(data); });

Переход на другое состояние карточки осуществляется вызовом метода CallCardSetUiState с передачей туда объекта со свойством uiState.

BX24.placement.call('CallCardSetUiState', { uiState: 'connected'}, () => { //some code });

Чтобы обрабатывать нажатия оператором кнопок в карточке звонка, требуется подписаться на соответствующие события.

Состояния карточки

СостояниеОписаниеОбрабатывается нажатие кнопок
incomingДля принятия входящих звонков— Ответить — BackgroundCallCard::answerButtonClick
— Пропустить — BackgroundCallCard::skipButtonClick
transferIncomingДля принятия перенаправленного входящего вызова— Ответить — BackgroundCallCard::answerButtonClick
— Пропустить — BackgroundCallCard::skipButtonClick
outgoingДля показа карточки исходящего звонка— Позвонить — BackgroundCallCard::makeCallButtonClick
connectingIncomingДля показа карточки в момент подключения к входящему звонку— Завершить — BackgroundCallCard::hangupButtonClick
connectingOutgoingДля показа карточки в момент подключения к исходящему звонку— Завершить — BackgroundCallCard::hangupButtonClick
connectedДля показа после подключения к звонку— Завершить — BackgroundCallCard::hangupButtonClick
— Поставить на удержание — BackgroundCallCard::holdButtonClick
— Выключить микрофон — BackgroundCallCard::muteButtonClick
— Перенаправить на другого оператора — BackgroundCallCard::transferButtonClick
— Нажатие на кнопки цифровой клавиатуры — BackgroundCallCard::dialpadButtonClick
— Оценить качество связи — BackgroundCallCard::qualityMeterClick
transferringДля подтверждения перенаправления звонка на другого оператора— Перенаправить — BackgroundCallCard::completeTransferButtonClick
— Вернуться к звонку — BackgroundCallCard::cancelTransferButtonClick
transferFailedЕсли перенаправить звонок не получилось— Вернуться к звонку — BackgroundCallCard::cancelTransferButtonClick
transferConnectedЕсли перенаправление завершилось успешно и требуется выйти из карточки звонка— Завершить — BackgroundCallCard::hangupButtonClick
errorЕсли произошла некоторая ошибка— Закрыть — BackgroundCallCard::closeButtonClick
moneyErrorЕсли на счету закончились деньги и требуется проиформировать об этом администратора портала— Уведомить администратора — BackgroundCallCard::notifyAdminButtonClick
— Закрыть — BackgroundCallCard::closeButtonClick
redialЕсли абонент занят, дать возможность оператору повторно позвонить на этот номер, не скрывая карточку звонка— Перезвонить — BackgroundCallCard::makeCallButtonClick
Таймер в карточке звонкаПо умолчанию, при переходе на состояние connected автоматически включается таймер звонка. Данное поведение можно отключить, передав помимо uiState: 'connected' еще свойство disableAutoStartTimer со значением true. При переходе же на другие состояния таймер будет останавливаться.

[incoming]: !incoming

[transferIncoming]: !transferIncoming

[outgoing]: !outgoing

[connectingIncoming]: !connectingIncoming

[connectingOutgoing]: !connectingOutgoing

[connected]: !connected

[transferring]: !transferring

[transferFailed]: !transferFailed

[transferConnected]: !transferConnected

[error]: !error

[moneyError]: !moneyError

[redial]: !redial

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Карточка звонка»:

Использование современных стандартов D7 при работе с карточка звонка позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Получить список полей дела crm.activity.fieldsПолучить список полей дела crm.activity.fields

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить список полей дела crm.activity.fields». Вы узнаете экспертные методики работы с crm.activity.fields и

Создать поле универсального списка lists.field.addСоздать поле универсального списка lists.field.add

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Создать поле универсального списка lists.field.add», проанализируем лучшие практики

Получить поля наценки catalog.extra.getFieldsПолучить поля наценки catalog.extra.getFields

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить поля наценки catalog.extra.getFields». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции. Получить