Сценарий встройки WebRTC
Регистрация встройки
Регистрация встройки для «клиента» на каждой странице.
Имеется специальное место встройки, которое в виде невидимого фрейма формируется на каждой странице Битрикс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. Оно выбрасывается при создании карточки звонка и после него становится возможным управлять данной карточкой. Поэтому настоятельно рекомендуется все вызовы методов со стороны приложения производить именно в функции-обработчике данного события.