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

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

Версия 13:52, 25 марта 2013

Наверх


Связь с web-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-библиотека OktellJS. Канал между серверами точно также постоянно поддерживается и восстанавливается при разрыве, каналы между клиентами и сервером точно также поддерживаются сервером но управляются клиентами. При этом один клиент может быть залогинен в нескольких подключениях (поддержка нескольких вкладок в браузере).

Поддерживается работа только с одной 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.