Сценарий встройки WebRTC
Если вы разрабатываете интеграции для Битрикс24 с помощью AI-инструментов (Codex, Claude Code, Cursor), подключите MCP-сервер, чтобы ассистент использовал официальную REST-документацию.
Регистрация встройки
Регистрация встройки для «клиента» на каждой странице.
Имеется специальное место встройки, которое в виде невидимого фрейма формируется на каждой странице Битрикс24. Регистрация делается так:
'placement.bind',
[
'PLACEMENT' => 'PAGE_BACKGROUND_WORKER',
'HANDLER' => 'http://example.com/placement/?ty=1',
'OPTIONS' => [
'errorHandlerUrl' => 'http://example.com/logg.php?ty=1',
],
'LANG_ALL' => [
'ru' => [
'TITLE' => 'test',
]
]
]
Важное отличие от обычной встройки – параметр Options[errorHandlerUrl]. В этот обработчик передается сигнал, что мы отключаем встройку на конкретном портале Битрикс24, в случае, если обработчик, указанный в Handler, отвечает слишком медленно. Поскольку встройка формируется на каждой странице, важно, чтобы обработчик встройки вызывался быстро (сейчас считаем, что «не быстро» - это когда обработчик вызывался дольше 5 сек три раза). В случае отключения нужно будет заново зарегистрировать обработчик в этом Битрикс24.
Сценарий использования
Работа с телефонией остается той же, что и была. Регистрация звонка осуществляется методом telephony.externalcall.register. Этот же метод «поднимает» карточку звонка. Очевидно, что это должно происходить, если WebRTC-клиент во встройке, описанной выше, начал обработку звонка.
Далее, встройка может взаимодействовать с открытой карточкой звонка, управляя кнопками и событиями нажатия на кнопки. Для работы с карточкой звонка через плейсмент PAGE_BACKGROUND_WORKER было добавлено 9 методов для получения и изменения данных карточки и 17 событий для обработки пользовательской деятельности.
Ключевым является событие BackgroundCallCard::initialized. Оно выбрасывается при создании карточки звонка и после него становится возможным управлять данной карточкой. Поэтому настоятельно рекомендуется все вызовы методов со стороны приложения производить именно в функции-обработчике данного события.