Работа с CTI сервером
CTI или Computer telephony integration означает интеграцию компьютера и телефона посредством подключения к единому серверу.
CTI сервер служит для обеспечения обмена сообщениями между устройствами, подключенными к Voximplant Kit. Такое взаимодействие обеспечивает возможность создания единого центра обработки, передачи и хранения информации. Примеры приложений, чаще всего интегрируемых с телефонией Voximplant Kit, – различные CRM и программы техподдержки.
Как это работает?
CTI открывает websocket endpoint для подключения и объединяет подключенные устройства (клиенты) в виртуальные комнаты для последующего обмена сообщениями.
На каждый аккаунт создается одна общая виртуальная комната. Все соединения должны быть авторизованы посредством access_token (как его получить, см. ниже).
Устройства, подключенные к общей комнате, получают все сообщения от устройств АККАУНТА.
Как подключиться к CTI серверу?
Для подключения можно использовать любой websocket, например Postman.
URL для подключения - wss://{host}/{domain_name}-{md5(token_id)}?access_token={token}.
host – Хост, на котором запущен CTI сервер. Скопируйте имя хоста, нажав кнопку Данные доступа к API в разделе Управление > Безопасность > API токены.
domain_name - Имя аккаунта. Скопируйте имя аккаунта, нажав кнопку Данные доступа к API в разделе Управление > Безопасность > API токены.
token - API токен. Создайте API токен в разделе Управление > Безопасность > API токены.
token_id – ID токена. Скопируйте ID созданного токена в разделе Управление > Безопасность > API токены.
Протокол взаимодействия CTI и websocket
Событие: connection_accepted
Событие, которое сервис отправляет обратно при удачном подключении нового клиента. Клиент получает Sender_id, который необходимо передавать в каждом сообщении в CTI.
Событие: connected
Событие, которое отправляет каждый клиент после соединения с сервисом.
Событие: outgoing_call
Событие при старте исходящего звонка.
Событие: call_connected
Событие при подключении звонка.
Событие: call_failed
Событие при неответе вызываемым абонентом на звонок.
Событие: data_updated
Событие при обновлении данных звонка.
Событие: incoming_call
Событие при старте входящего звонка.
Событие: status_changed
Событие при изменении статуса пользователя.
Событие: call_disconnected
Событие при окончании звонка.
Команда: make_call
Команда пользователю позвонить на номер телефона.
Команда: set_variables
Команда пользователю на проставление переменных к звонку.
Команда: logout
Команда пользователю на выход из системы.