Web-интеграция с CRM — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
 
(не показано 10 промежуточных версии 2 участников)
Строка 1: Строка 1:
Подробно c механизмом интеграции по web-socket протоколу с web-системами и интерфейсами протокола можно ознакомиться в статье
+
<code>[[Техническая документация]] / [[Администрирование]] / [[Общие Настройки]] / [[Системные настройки]] / [[Web-интеграция с CRM]]</code>
[[Описание интеграционного протокола Oktell web-soсket protocol|«Интеграции. Web-Socket»]].
+
 
 +
 
 +
Связь с CRM позволяет:
 +
* Использовать динамический функционал и данные CRM в сценариях Oktell;
 +
* Предоставлять серверу CRM доступ к сервисным функциям Oktell;
 +
* Снабжать CRM и ее пользователей информацией о событиях, а также функционалом, аналогичным клиентскому приложению Oktell;
 +
* Инициировать открытие и закрытие форм у пользователей CRM, связанных с различными событиями (например поступление звонка).
 +
 
 +
 
 +
Связь Oktell с CRM может осуществляться по транспортному протоколу websocket (подключение может осуществляться в любом направлении) и по протоколу http/https (подключение осуществляется от Oktell к CRM).
 +
 
 +
Все взаимодействие между серверами Oktell и CRM описывается [[Oktell Web-Socket Protocol|«интеграционным протоколом Web-Socket»]].
 +
 
 +
В случае связи по HTTP/HTTPS передаваемые данные упаковываются в base64 и передаются в качестве значения переменной ''data'' POST-запросом; ожидается, что ответ CRM содержит неупакованные данные в том же формате. Подключения и обмен http-запросом и ответом осуществляются время от времени по необходимости.
 +
 
 +
В случае связи по WebSocket в соответствии с [[Oktell Web-Socket Protocol|интеграционным протоколом Web-Socket]] CRM может быть подключена
 +
* [[Oktell Web-Socket Protocol#Arch1|Способом 1]] - по единому серверному каналу, обслуживающему и межсерверное взаимодействие, и клиент-серверное взаимодействие. За связь с клиентами отвечает сама CRM, выступая туннелем. Канал постоянно поддерживается, при разрыве восстанавливается.
 +
* Комбинацией [[Oktell Web-Socket Protocol#Arch1|способа 1]] и [[Oktell Web-Socket Protocol#Arch2|способа 2]] - связь между серверами по одному каналу, а связь клиентов CRM с сервером Oktell непосредственно по websocket-каналу, минуя сервер CRM. При этом в качестве клиентского модуля связи может использоваться javascript-библиотека [http://js.oktell.ru Oktell.js]. Канал между серверами точно также постоянно поддерживается и восстанавливается при разрыве, каналы между клиентами и сервером точно также поддерживаются сервером но управляются клиентами. При этом один клиент может быть залогинен в нескольких подключениях (поддержка нескольких вкладок в браузере).
 +
 
 
Поддерживается работа только с одной web-crm системой одновременно в соответствии с настройками, описанными в текущем разделе.
 
Поддерживается работа только с одной web-crm системой одновременно в соответствии с настройками, описанными в текущем разделе.
  
  
  
'''Способ соединения с Web-Socket CRM.'''
+
'''Способ соединения с сервером CRM'''
  
Позволяет выбрать направление подключения. Если Oktell подсоединяется к CRM, то веб-сервер CRM должен ожидать подключения и websock-рукопожатия согласно протоколу, если наоборот, то Oktell ждет подключения на указанном порте, ожидает инициации рукопожатия от CRM. Ожидается, что в случае потери связи между серверами восстановлением канала занимается именно инициатор.
+
Позволяет выбрать направление подключения, транспортный протокол и уровень защиты.
При организации подключения из Oktell позволяет выбрать один из протоколов WebSocket, включая определенную RFC6455 версию 13.
+
* Oktell к CRM (HTTP). Oktell подсоединяется к серверу CRM по незащищенному каналу всякий раз по необходимости. Обменивается с CRM служебными сведениями ([[Oktell Web-Socket Protocol#whoareyou|представляется, ждет представления]], выясняет поддерживаемые [[Oktell Web-Socket Protocol#Dynamic|динамические методы и формы]]), исполняет ориентированные к серверу [[Oktell Web-Socket Protocol#Dynamic|динамические методы]].
Также здесь возможно активировать режим клиентских подключений к серверу Oktell по протоколу web-socket. В этом случае сервер позволяет одновременно существовать нескольким подключениям, причем каждое из них представляет отдельного пользователя и несколько разных подключений могут представлять одного и того же пользователя (разные вкладки браузера).
+
* 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 соединения ожидается, что в случае потери связи между серверами восстановлением канала занимается именно инициатор.
  
'''Адрес web-socket сервера'''
 
'''Порт web-socket сервера'''
 
  
В случае, если Oktell является инициатором подключения, задают адрес и порт слушателя web-socket подключений со стороны CRM. Если настройка меняется в ходе работы, производится разрыв текущего соединения и организация нового.
+
'''URL CRM-сервера'''
При наладке глобальных серверов CRM, способных обслуживать несколько различных серверов Oktell, следует иметь в виду, что каждому серверу Oktell нужен независимый web-socket-сервер на стороне CRM, чтобы не пересекались потоки данных. Для этого следует настраивать разные серверы или разные экземпляры служб, слушающих разные порты. Различий на этапе самого подключения между разными октеллами нет, хотя после стандартного websock-рукопожатия серверы обмениваются данными друг о друге.
+
  
 +
Доступно только при настройке способа соединения Oktell к серверу CRM по протоколу HTTP или HTTPS.
  
'''URL web-сервера'''
+
Полный URL для организации HTTP или HTTPS подключений к серверу CRM. При необходимости следует указать порт.
 +
Данные передаются POST-запросом на указанный URL в переменной ''data''.
  
Устанавливает адрес веб-сервера CRM, способного заниматься обработкой части запросов. В рамках интерфейса взаимодействия с WebCRM между системами происходит обмен данными о поддерживаемых динамических методах (подробно в [[Описание интеграционного протокола Oktell web-soсket protocol|«Интеграции. Web-Socket»]]). В рамках описания динамического метода CRM-система может декларировать вызов не по web-socket каналу, а отдельным подключением и http-запросом. Как правило это делается для методов, возвращающих большой объем данных и вызываемых не слишком часто. Вызов таких методов настраивается в сценариях с помощью компонента «Действие/карточка в Plugin или WebCRM»%%% и производится на указанный здесь URL.
 
  
 +
'''Адрес:порт CRM-сервера'''
  
'''Порт слушателя подключений'''
+
Доступно только при настройке способа соединения Oktell к серверу CRM по протоколу WebSocket (защищенный или незащищенный канал).
Для случая, когда CRM является инициатором web-socket подключения, она должна производить подключение к серверу Oktell на указанный здесь порт.
+
  
 +
По указанному адресу осуществляется подключение, которое переводится в WebSocket и настраивается на работу по интеграционному протоколу.
 +
Данные передаются независимыми сообщениями в выбранном ниже формате.
  
'''Название протокола'''
+
 
Для предварительной фильтрации и некой строгости возможно указание (или строгое ожидание) в websock-рукопожатии четкого названия протокола. К названию протокола также добавляется формат (json/xml) и версия протокола.
+
'''Версия протокола 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. Способ упаковки пересылаемых данных в текстовый вид.
 
JSON/XML. Способ упаковки пересылаемых данных в текстовый вид.
 +
 +
В рамках подключения ожидается, что в названии протокола (заголовок в запросе на рукопожатие WebSocket) будет содержаться слово json или xml. В противном случае сервер отказывает в обработке всех сообщений, поступающих по установившемуся каналу.
 +
При подключении от Oktell к CRM по HTTP формат указывается в переменной POST-запроса ''format''.

Текущая версия на 09:24, 19 декабря 2014

Техническая документация / Администрирование / Общие Настройки / Системные настройки / 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.