Web-интеграция с CRM — различия между версиями
Peter (обсуждение | вклад) |
Peter (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
− | + | Связь с web-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 OktellJS]. Канал между серверами точно также постоянно поддерживается и восстанавливается при разрыве, каналы между клиентами и сервером точно также поддерживаются сервером но управляются клиентами. При этом один клиент может быть залогинен в нескольких подключениях (поддержка нескольких вкладок в браузере). | ||
− | + | Поддерживается работа только с одной web-crm системой одновременно в соответствии с настройками, описанными в текущем разделе. | |
− | |||
− | ''' | + | '''Способ соединения с сервером 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 канала. | ||
− | В | + | В случае использования постоянного 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. Способ упаковки пересылаемых данных в текстовый вид. | 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.