Web-интеграция с CRM
Связь с CRM позволяет:
- Использовать динамический функционал и данные CRM в сценариях Oktell;
- Предоставлять серверу CRM доступ к сервисным функциям Oktell;
- Снабжать CRM и ее пользователей информацией о событиях, а также функционалом, аналогичным клиентскому приложению Oktell;
- Инициировать открытие и закрытие форм у пользователей CRM, связанных с различными событиями (например поступление звонка).
Связь Oktell с CRM может осуществляться по транспортному протоколу websocket (подключение может осуществляться в любом направлении) и по протоколу http/https (подключение осуществляется от Oktell к CRM).
Все взаимодействие между серверами Oktell и CRM описывается «интеграционным протоколом Web-Socket».
В случае связи по HTTP/HTTPS передаваемые данные упаковываются в base64 и передаются в качестве значения переменной data POST-запросом; ожидается, что ответ CRM содержит неупакованные данные в том же формате. Подключения и обмен http-запросом и ответом осуществляются время от времени по необходимости.
В случае связи по WebSocket в соответствии с интеграционным протоколом Web-Socket CRM может быть подключена
- Способом 1 - по единому серверному каналу, обслуживающему и межсерверное взаимодействие, и клиент-серверное взаимодействие. За связь с клиентами отвечает сама CRM, выступая туннелем. Канал постоянно поддерживается, при разрыве восстанавливается.
- Комбинацией способа 1 и способа 2 - связь между серверами по одному каналу, а связь клиентов CRM с сервером Oktell непосредственно по websocket-каналу, минуя сервер CRM. При этом в качестве клиентского модуля связи может использоваться javascript-библиотека Oktell.js. Канал между серверами точно также постоянно поддерживается и восстанавливается при разрыве, каналы между клиентами и сервером точно также поддерживаются сервером но управляются клиентами. При этом один клиент может быть залогинен в нескольких подключениях (поддержка нескольких вкладок в браузере).
Поддерживается работа только с одной web-crm системой одновременно в соответствии с настройками, описанными в текущем разделе.
Способ соединения с сервером CRM
Позволяет выбрать направление подключения, транспортный протокол и уровень защиты.
- Oktell к CRM (HTTP). Oktell подсоединяется к серверу CRM по незащищенному каналу всякий раз по необходимости. Обменивается с CRM служебными сведениями (представляется, ждет представления, выясняет поддерживаемые динамические методы и формы), исполняет ориентированные к серверу динамические методы.
- Oktell к CRM (HTTPS). То же самое по защищенному каналу (TLS).
- Oktell к CRM (WebSocket). Oktell подсоединяется к CRM по незащищенному каналу используя транспортный протокол websocket; веб-сервер CRM должен ожидать подключения и websocket-рукопожатия согласно выбранной ниже в настройках версии протокола.
- Oktell к CRM (WebSocketSecure). То же самое по защищенному каналу (TLS).
- CRM к Oktell (WebSocket). Oktell ждет подключения на указанном порте-слушателе незащищенных соединений, ожидает инициации websocket-рукопожатия от CRM.
- CRM к Oktell (WebSocketSecure). То же самое по защищенному каналу (TLS). В этом случае системе необходим серверный сертификат X.509 с private ключом для организации TLS канала.
В случае использования постоянного websocket соединения ожидается, что в случае потери связи между серверами восстановлением канала занимается именно инициатор.
URL CRM-сервера
Доступно только при настройке способа соединения Oktell к серверу CRM по протоколу HTTP или HTTPS.
Полный URL для организации HTTP или HTTPS подключений к серверу CRM. При необходимости следует указать порт. Данные передаются POST-запросом на указанный URL в переменной data.
Адрес:порт CRM-сервера
Доступно только при настройке способа соединения Oktell к серверу CRM по протоколу WebSocket (защищенный или незащищенный канал).
По указанному адресу осуществляется подключение, которое переводится в WebSocket и настраивается на работу по интеграционному протоколу. Данные передаются независимыми сообщениями в выбранном ниже формате.
Версия протокола WebSocket
Доступно для выбранного режима подключения из Oktell к CRM по WebSocket.
Предоставляет на выбор версию транспортного протокола WebSocket. По умолчанию v13 (RFC 6455).
Порт WebSocket Oktell для CRM
Доступно для выбранного режима подключения из CRM к Oktell. Определяет порт слушателя подключения от CRM. Соответственно CRM должна производить подключение именно на указанный здесь порт. Должен быть отличным от других портов, используемых системой, и не занятым другими приложениями и службами.
Авторизация
Доступно для выбранного режима подключения из CRM к Oktell.
Способ прохождения авторизации (нет, базовый или дайджест).
Здесь следует отметить, что на текущий момент документация по протоколу WebSocket не определяет для сервера возможность в рамках рукопожатия отвечать отличным от "101 Switching Protocols" способом, несмотря на HTTP формат. Поэтому, если в CRM для организации WebSocket транспорта используется сторонние библиотеки, авторизация в Oktell должна быть отключена.
Логин:пароль для базовой авторизации
Использует значения для прохождения базовой авторизации на CRM, или требования прохождения авторизации от CRM.
Формат обмена данными
Доступно для выбранного режима подключения из Oktell к CRM.
JSON/XML. Способ упаковки пересылаемых данных в текстовый вид.
В рамках подключения ожидается, что в названии протокола (заголовок в запросе на рукопожатие WebSocket) будет содержаться слово json или xml. В противном случае сервер отказывает в обработке всех сообщений, поступающих по установившемуся каналу. При подключении от Oktell к CRM по HTTP формат указывается в переменной POST-запроса format.