События CTI-интеграции (ctievents)
Описание
Уровень абстракции над событиями телефонии для внешних CTI-систем (Computer Telephony Integration) в терминах устройств и вызовов: доставка, ответ, удержание, перевод, завершение. События строятся плагином cti из событий callevents всех доменов сайта и отправляются подписчикам мастер-домена. Пример потребителя — адаптер системы записи разговоров SmartLogger (ЦРТ), подключаемый по gRPC (опция роли mware cti_servers). Помимо событий звонков адаптер передаёт своему клиенту состав операторов и устройств доменов и его изменения (по событиям $system).
Класс |
|
Тип домена |
|
Типы назначения |
|
Логическая роль источник |
|
Логическая роль обработчик |
Подписка и доставка
-
Подписка в мастер-домене:
"events": ["ctievents.*"]или списокctievents.<type>,"objects": "any"; через Token-API (websocket) или веб-хуки (не рекомендуются: события всех звонков сайта). В Kafka — при настроенном в мастер-домене kafka_mustache и только пока события формируются (см. ниже): Kafka подписчиком не считается и формирование не включает. -
Каждый сайт формирует события звонков своего сайта: подписчик получает события тех сайтов, на которых он подписан (адаптер SmartLogger — только своего сайта).
-
События звонков формируются, пока на сайте у какого-либо экземпляра mware задана опция cti_servers — тогда с запуска mware, включая уже идущие звонки, независимо от подключения потребителя. Без неё — пока у класса есть подписчики, получающие события этого сайта: обработка включается в течение минуты после появления первого подписчика (звонки, начатые раньше, приходят с середины) и выключается через 10 минут после ухода последнего. События
$systemи внешние события формируются всегда. -
Выключение: значение
"cti"в спискеeventsнастройки мастер-домена disabled_plugins.
Формат уведомления:
["notify", {"sid": "...", "class": "ctievents", "type": "call_delivered", "eventts": 1792170171426, "data": {...}}]
События
| Тип | Когда |
|---|---|
Вызов доставлен на устройство |
|
Разговор установлен |
|
Разговор поставлен на удержание |
|
Разговор снят с удержания |
|
Вызов переведён |
|
Вызов или разговор завершён |
|
Изменились пользователи или SIP-пользователи домена |
|
Отправлены внешней системой методом |
Внешние события (cti_event)
Событие класса может сгенерировать внешняя система (продуктовый слой) рабочего домена запросом cti_event Token-API ccs:
["cti_event", {"qid": 1, "type": "agent", "params": {"agent_id": "operator1@pbx.era-platform.ru", "agent_name": "Operator 1", "agent_state": "ready", "device_id": "13@pbx.era-platform.ru"}}]
-
type— тип события,params— объектdata; вdataдобавляетсяdomain— домен канала интеграции. -
Ответа на запрос нет.
-
Тип и состав
paramsне проверяются; потребитель понимает свои типы. Адаптер SmartLogger, помимо событий выше, принимаетdevice,agent,group,agentgroup,call_conference,call_queued,call_dequeued.
["notify", {"sid": "my_subscr", "class": "ctievents", "type": "agent", "eventts": 1792170212400,
"data": {"agent_id": "operator1@pbx.era-platform.ru", "agent_name": "Operator 1", "agent_state": "ready",
"device_id": "13@pbx.era-platform.ru", "domain": "pbx.era-platform.ru"}}]