Общее руководство по Web-интеграции — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
м
 
(не показано 15 промежуточных версии этого же участника)
Строка 1: Строка 1:
 +
[[Заглавная_страница|Наверх]]
 +
 
__TOC__
 
__TOC__
  
Строка 6: Строка 8:
  
 
'''Интеграция''' - процесс объединения одного приложения c другим с целью увеличения функциональности и уменьшения времени обработки запроса. Интеграцию проводят для облегчения работы операторам и автоматизации бизнес-процессов.  
 
'''Интеграция''' - процесс объединения одного приложения c другим с целью увеличения функциональности и уменьшения времени обработки запроса. Интеграцию проводят для облегчения работы операторам и автоматизации бизнес-процессов.  
 +
  
 
== Что мы имеем до интеграции? ==
 
== Что мы имеем до интеграции? ==
Строка 25: Строка 28:
 
* предоставление информации о KPI сотрудника, расчет их показателей эффективности
 
* предоставление информации о KPI сотрудника, расчет их показателей эффективности
 
* управление бизнес-процессами в компании
 
* управление бизнес-процессами в компании
 +
  
 
== Что мы должны получить после интеграции? ==
 
== Что мы должны получить после интеграции? ==
  
=== 1. Входящие звонки ===
+
=== Входящие звонки ===
  
 
При входящем звонке '''Oktell''' идентифицирует абонента по его номеру телефон ('''CallerId'''), телефону, который он набрал ('''CalledId'''), время поступившего звонка. Затем, происходит обращение к серверу '''WebCRM''', в котором сообщается полученная информация, по которой определяется тип клиента, ответственный менеджер, дополнительные данные. После получения необходимых данных, '''Oktell''' маршрутизирует звонок нужному сотруднику, а в браузере у этого сотрудника открывается карточка клиента.
 
При входящем звонке '''Oktell''' идентифицирует абонента по его номеру телефон ('''CallerId'''), телефону, который он набрал ('''CalledId'''), время поступившего звонка. Затем, происходит обращение к серверу '''WebCRM''', в котором сообщается полученная информация, по которой определяется тип клиента, ответственный менеджер, дополнительные данные. После получения необходимых данных, '''Oktell''' маршрутизирует звонок нужному сотруднику, а в браузере у этого сотрудника открывается карточка клиента.
  
=== 2. Исходящие звонки ===
+
 
 +
=== Исходящие звонки ===
  
 
Чтобы совершить звонок на номер клиента, менеджеру необходимо открыть карточку клиента в '''CRM-системе''' и нажать на кнопку "'''Позвонить'''". Выбор линий и направлений для совершения звонка настраивается в '''Oktell'''. В случае, если абонент не доступен или занят, менеджеру должна быть выведена соответствующая информация о статусе звонка.
 
Чтобы совершить звонок на номер клиента, менеджеру необходимо открыть карточку клиента в '''CRM-системе''' и нажать на кнопку "'''Позвонить'''". Выбор линий и направлений для совершения звонка настраивается в '''Oktell'''. В случае, если абонент не доступен или занят, менеджеру должна быть выведена соответствующая информация о статусе звонка.
  
=== 3. Внутренние звонки ===
+
 
 +
=== Внутренние звонки ===
  
 
Пользователь '''WebCRM-системы''' может в любой момент посмотреть внутренние номера сотрудников компании и при желании сразу совершить звонок коллегам. Помимо обычных звонков возможен сбор конференции.
 
Пользователь '''WebCRM-системы''' может в любой момент посмотреть внутренние номера сотрудников компании и при желании сразу совершить звонок коллегам. Помимо обычных звонков возможен сбор конференции.
Строка 42: Строка 48:
 
Также должны быть доступны статусы всех сотрудников. Статусы могут быть: свободен, занят (т.е. находится в разговоре), в перерыве или недоступен. Менеджер видит кто из коллег занят в данный момент и подождать, пока он освободится, для совершения звонка.  
 
Также должны быть доступны статусы всех сотрудников. Статусы могут быть: свободен, занят (т.е. находится в разговоре), в перерыве или недоступен. Менеджер видит кто из коллег занят в данный момент и подождать, пока он освободится, для совершения звонка.  
  
=== 4. Статистика / история звонков. ===
+
 
 +
=== Статистика / история звонков. ===
  
 
При любом входящем звонке от клиента (или исходящем к клиенту), '''Oktell''' отправляет запрос в '''WebCRM-систему''' на формирование “'''события'''” (“'''активности'''”). Данная “'''активность'''” привязывается к карточке клиента или заказа , таким образом формируя историю взаимодействия. “'''Активность'''” автоматически заполняется датой звонка, номером звонившего, именами участников разговора, а также дополняются комментариями ответственного менеджера. При таком подходе, ни одно взаимодействие с клиентом не будет упущено и менеджер может в любой момент оценить как продвигается сделка.
 
При любом входящем звонке от клиента (или исходящем к клиенту), '''Oktell''' отправляет запрос в '''WebCRM-систему''' на формирование “'''события'''” (“'''активности'''”). Данная “'''активность'''” привязывается к карточке клиента или заказа , таким образом формируя историю взаимодействия. “'''Активность'''” автоматически заполняется датой звонка, номером звонившего, именами участников разговора, а также дополняются комментариями ответственного менеджера. При таком подходе, ни одно взаимодействие с клиентом не будет упущено и менеджер может в любой момент оценить как продвигается сделка.
Строка 54: Строка 61:
  
 
'''Oktell''' позволяет работать одновременно с сервером '''WebCRM''' и с клиентскими (браузерными)  приложениями. Интеграция '''Oktell''' и '''WebCRM-системы''' проводится в два этапа:
 
'''Oktell''' позволяет работать одновременно с сервером '''WebCRM''' и с клиентскими (браузерными)  приложениями. Интеграция '''Oktell''' и '''WebCRM-системы''' проводится в два этапа:
1. '''Серверная интеграция''' — настройка канала обмена данными между '''WebCRM-системой''' и '''сервером Oktell'''.
 
2. '''Клиентская интеграция''' — организация интерфейса для передачи команд телефонии от браузерного приложения к серверу '''Oktell'''.
 
  
 +
'''1.''' '''Серверная интеграция''' — настройка канала обмена данными между '''WebCRM-системой''' и '''сервером Oktell'''.
 +
 +
'''2.''' '''Клиентская интеграция''' — организация интерфейса для передачи команд телефонии от браузерного приложения к серверу '''Oktell'''.
  
 
= Серверная интеграция =
 
= Серверная интеграция =
Строка 70: Строка 78:
 
* Второй динамический метод позволяет сохранить “активность/звонок” в CRM-системе. При завершении звонка, '''Oktell''' передает идентификатор клиента, имя менеджера, который совершал звонок, время и длительность разговора и ссылку на запись.  
 
* Второй динамический метод позволяет сохранить “активность/звонок” в CRM-системе. При завершении звонка, '''Oktell''' передает идентификатор клиента, имя менеджера, который совершал звонок, время и длительность разговора и ссылку на запись.  
  
Подробнее про динамические методы вы узнаете по этой [http://wiki.oktell.ru/Oktell_Web-Socket_Protocol#.D0.94.D0.B8.D0.BD.D0.B0.D0.BC.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B5_.D0.B2.D0.B7.D0.B0.D0.B8.D0.BC.D0.BE.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D0.B5 ссылке].  
+
Подробнее про динамические методы вы узнаете по этой [//wiki.oktell.ru/Oktell_Web-Socket_Protocol#.D0.94.D0.B8.D0.BD.D0.B0.D0.BC.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B5_.D0.B2.D0.B7.D0.B0.D0.B8.D0.BC.D0.BE.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D0.B5 ссылке].  
  
 
'''Web-сервер''' по данному соединению может обратиться к серверу '''Oktell''' за получением данных по звонку (время ожидания, длительность разговора, время звонка), получения записи разговора (как самого файла, так и ссылки на этот файл). Также, '''WebCRM''' может запускать служебные сценарии в '''Oktell'''. Сценарии совершают необходимые действия, например, производят рассылку электронных писем.  
 
'''Web-сервер''' по данному соединению может обратиться к серверу '''Oktell''' за получением данных по звонку (время ожидания, длительность разговора, время звонка), получения записи разговора (как самого файла, так и ссылки на этот файл). Также, '''WebCRM''' может запускать служебные сценарии в '''Oktell'''. Сценарии совершают необходимые действия, например, производят рассылку электронных писем.  
  
  
[[Файл:интеграция-001n.png | center | 600 px ]]
+
[[Файл:интеграция-001n.png | center | 500 px ]]
  
  
 
== Методы реализации ==  
 
== Методы реализации ==  
  
Задача серверной интеграции - организовать канал связи между WebCRM и сервером Oktell для выполнения различных запросов. При этом запросы могут идти, как от Oktell к WebCRM, так и наоборот. Для каждой технологии ниже приведено краткое описание, преимущества и недостатки использования.
+
Задача серверной интеграции - организовать канал связи между '''WebCRM''' и сервером '''Oktell''' для выполнения различных запросов. При этом запросы могут идти, как от '''Oktell''' к '''WebCRM''', так и наоборот. Для каждой технологии ниже приведено краткое описание, преимущества и недостатки использования.
  
Соединение по протоколу WebSocket
 
WebSocket - название интеграционного протокола в Oktell, который описывает взаимодействие двух серверов. Взаимодействие происходит путем обмена сообщениями по постоянному установившемуся TCP-каналу. Часть сообщений носят вид событий, часть - вид запросов (команд), часть - вид ответов на запросы. Каждое сообщение описывает данные в виде структуры JSON (возможен вариант XML). В качестве кодировки используется UTF-8.
 
Преимущество использования WebSocket в создании постоянного канала, возможности двухстороннего обмена данными и, таким образом, оптимизации нагрузки на сетевую подсистему.
 
Чтобы использовать соединение по WebSocket в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите Oktell к СRM (WebSocket) или Oktell к СRM (WebSocketSecure).
 
Для передачи запросов от WebCRM к Oktell используется тот же TCP-канал, поэтому этот канал называется двунаправленным. WebCRM может выполнять предустановленные методы (получать номерной план, запускать задачи и др.), выполнять служебные сценарии и получать от них результат. Протокол также позволяет выполнять хранимые процедуры в базе данных Oktell и получать результат выполнения.
 
Полное описание протокола вы можете прочитать по ссылке Oktell Web-Socket Protocol.
 
  
Соединение через HTTP-запросы
+
===Соединение по протоколу WebSocket===
Серверная интеграция в Oktell реализована также с помощью HTTP-запросов. HTTP запросы могут выполняться от Oktell к CRM через динамические методы, от CRM к Oktell через серверный HTTP интерфейс.
+
В отличии от протокола WebSocket, сервера Oktell и WebCRM не имеют соединения друг с другом. Это  означает, что если CRM-система будет недоступна, Oktell ничего не будет знать об этом. Таким образом, некоторые запросы могут не выполниться и необходимо предусматривать защиту от подобных случаев. Также недостатком данного соединения является односторонняя направленность канала (только от Oktell к CRM). Способ соединения с сервером CRM - по WebSocket или по HTTP определяется возможностями WebCRM-сервера.
+
Чтобы использовать серверную интеграцию через HTTP запросы в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите Oktell к СRM (HTTP) или Oktell к СRM (HTTPS).
+
Для передачи запросов от WebCRM к Oktell следует использовать серверный HTTP интерфейс. Он позволяет исполнять команды, поступившие на сервер Oktell (по умолчанию, порт 4055). С помощью запросов WebСRM осуществляет запуск служебного сценария, определяет состояние конкретного пользователя, получает информацию обо всех очередях в текущий момент времени. Несколько команд HTTP-интерфейса позволяют совершать звонки от имени конкретного рабочего места или пользователя. Для этого необходимо дополнительно указывать идентификатор пользователя, линии или рабочего места (имя компьютера).
+
Для каждого запроса требуется базовая авторизация под учетной записью пользователя, имеющего привилегии исполнять методы Web-API. Удобнее всего, создать отдельного пользователя и выполнять от его имени все web-запросы.
+
Полное описание вы можете прочитать по ссылке Серверный HTTP интерфейс
+
  
Интеграция через базы данных
+
'''WebSocket''' - название интеграционного протокола в '''Oktell''', который описывает взаимодействие двух серверов. Взаимодействие происходит путем обмена сообщениями по постоянному установившемуся '''TCP'''-каналу. Часть сообщений носят вид событий, часть - вид запросов (команд), часть - вид ответов на запросы. Каждое сообщение описывает данные в виде структуры '''JSON''' (возможен вариант '''XML'''). В качестве кодировки используется '''UTF-8'''.  
Интеграция посредством баз данных использует СУБД для записи и считывания значений из общих таблиц. В процессе работы Oktell и WebCRM записывают/изменяют значения ячеек, которые используются в работе. Со стороны Oktell работа происходит с помощью компонента SQL-запрос.  
+
Например, во время входящего звонка, Oktell обращается в базу данных WebCRM, получает информацию о клиенте и маршрутизирует звонок в соответствии с полученной информацией. В свою очередь WebCRM может получить через базу данных Oktell сведения о последнем звонке клиенту и определить как давно не было активности с ним.
+
В отличие от WebSocket и HTTP соединение происходит опосредованно через СУБД.
+
Подробнее вы можете прочитать по ссылке: Запрос SQL в БД
+
  
Клиентская интеграция
+
Преимущество использования '''WebSocket''' в создании постоянного канала, возможности двухстороннего обмена данными и, таким образом, оптимизации нагрузки на сетевую подсистему.  
Схема работы
+
Сервер Oktell взаимодействует с телефонами и с браузерными приложениями с помощью клиент-серверного интерфейса. Между Oktell и каждым браузерным приложением организовывается свой независимый канал для двустороннего обмена командами управления и событиями.
+
  
Фактически, веб-приложение получает возможность взаимодействовать напрямую с сервером Oktell. Интерфейс позволяет
+
Чтобы использовать соединение по '''WebSocket''' в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите '''Oktell к СRM (WebSocket)''' или '''Oktell к СRM (WebSocketSecure)'''.  
Принимать / совершать / переводить звонки
+
Создавать / управлять конференциями
+
Видеть номерной план / очередь звонков
+
Рекомендуется использовать одинаковые логины и пароли в WebCRM и в Oktell для упрощения процесса авторизации. При входе в WebCRM, пользователь автоматически авторизуется в Oktell с идентичными авторизационными данными.
+
ВНИМАНИЕ: Канал клиентского интерфейса не следует использовать для фиксации событий в базе WebCRM, таких как сохранение информации о входящих и пропущенных звонках. Если браузерное приложение будет отвечать за запись подобной информации, то в случае его недоступности, информация будет утеряна. Для учета подобных событий используйте только методы серверной интеграции.
+
  
 +
Для передачи запросов от '''WebCRM к Oktell''' используется тот же '''TCP'''-канал, поэтому этот канал называется двунаправленным. '''WebCRM''' может выполнять предустановленные методы (получать номерной план, запускать задачи и др.), выполнять служебные сценарии и получать от них результат. Протокол также позволяет выполнять хранимые процедуры в базе данных '''Oktell''' и получать результат выполнения.
  
Методы реализации
+
Полное описание протокола вы можете прочитать по ссылке [//wiki.oktell.ru/Oktell_Web-Socket_Protocol#.D0.A1.D0.BF.D0.B8.D1.81.D0.BE.D0.BA_.D0.BC.D0.B5.D1.82.D0.BE.D0.B4.D0.BE.D0.B2_.D0.BE.D0.B1.D1.89.D0.B5.D0.B3.D0.BE_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D0.B0 Oktell Web-Socket Protocol].  
Задача клиентской интеграции — передача команд телефонии в браузерное приложение. Подключение  происходит с помощью специально разработанных Javascript-библиотек. Соединение с Oktell устанавливается при загрузке Web-страницы. Следует отметить, что во время разговора  Web-страницу нельзя перезагружать или закрывать, так как соединение будет потеряно, а значит и разговор будет тут же разорван. Для корректной работы используйте только одностраничные сайты.
+
  
Oktell.js
 
Oktell.js — Javascript-библиотека для встраивания функционала управления звонками в CRM-систему. Oktell.js использует WebSocket-протокол для соединения с сервером Oktell. Преимущество этого протокола заключается в создании постоянного соединения с сервером, которое позволяет без задержек получать события с сервера Oktell и выполнять определенные команды. Однако, WebSocket-протокол достаточно сложен для реализации и его методы не очень просты. Библиотека Oktell.js оборачивает внутри себя методы WebSocket-протокола, предоставляя простой функционал для управления.
 
Oktell.js позволяет управлять звонками, управлять конференцией, получать события из Oktell, получать доступ к данным. Работа с гарнитурой производится с помощью библиотеки Oktell-voice.js.
 
Полное описание вы можете прочитать по ссылке http://js.oktell.ru
 
Инструкция по первоначальной настройке Oktell.js
 
  
Oktell-panel.js
+
[[Файл:интеграция-006.png | center | 500 px ]]
Oktell-panel.js — представляет собой закреплённый в браузере интерфейс, в котором отображается список контактов, статусы сотрудников, а также оптимальный набор инструментов, позволяющих управлять вызовами и конференциями.   
+
 
В отличие от Oktell.js является полностью готовым решением для управления звонками. Веб-панель позволяет также использовать гарнитуру с помощью библиотеки Oktell-voice.js.
+
 
Полное описание вы можете прочитать по ссылке http://js.oktell.ru/webpanel/
+
===Соединение через HTTP-запросы===
Инструкция по первоначальной настройке Oktell-panel.js
+
Серверная интеграция в '''Oktell''' реализована также с помощью '''HTTP-запросов'''. '''HTTP-запросы''' могут выполняться от '''Oktell''' к '''CRM''' через динамические методы, от '''CRM''' к '''Oktell''' через серверный '''HTTP''' интерфейс.
 +
 
 +
В отличии от протокола '''WebSocket''', сервера '''Oktell''' и '''WebCRM''' не имеют соединения друг с другом. Это  означает, что если '''CRM-система''' будет недоступна, '''Oktell''' ничего не будет знать об этом. Таким образом, некоторые запросы могут не выполниться и необходимо предусматривать защиту от подобных случаев. Также недостатком данного соединения является односторонняя направленность канала (только от '''Oktell''' к '''CRM'''). Способ соединения с сервером '''CRM''' - по '''WebSocket''' или по '''HTTP''' определяется возможностями '''WebCRM'''-сервера.
 +
 
 +
Чтобы использовать серверную интеграцию через '''HTTP''' запросы в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите '''Oktell к СRM (HTTP)''' или '''Oktell к СRM (HTTPS)'''.
 +
 
 +
Для передачи запросов от '''WebCRM''' к '''Oktell''' следует использовать серверный '''HTTP''' интерфейс. Он позволяет исполнять команды, поступившие на сервер '''Oktell''' (по умолчанию, порт 4055). С помощью запросов '''WebСRM''' осуществляет запуск служебного сценария, определяет состояние конкретного пользователя, получает информацию обо всех очередях в текущий момент времени. Несколько команд '''HTTP'''-интерфейса позволяют совершать звонки от имени конкретного рабочего места или пользователя. Для этого необходимо дополнительно указывать идентификатор пользователя, линии или рабочего места (имя компьютера).
 +
 
 +
Для каждого запроса требуется базовая авторизация под учетной записью пользователя, имеющего привилегии исполнять методы '''Web-API'''. Удобнее всего, создать отдельного пользователя и выполнять от его имени все '''web-запросы'''.
 +
 
 +
Полное описание вы можете прочитать по ссылке [//wiki.oktell.ru/Серверный_HTTP_интерфейс Серверный HTTP интерфейс]
 +
 
 +
 
 +
[[Файл:интеграция-008.png | center | 500 px ]]
 +
 
 +
 
 +
===Интеграция через базы данных===
 +
 
 +
Интеграция посредством баз данных использует '''СУБД''' для записи и считывания значений из общих таблиц. В процессе работы '''Oktell''' и '''WebCRM''' записывают/изменяют значения ячеек, которые используются в работе. Со стороны '''Oktell''' работа происходит с помощью компонента '''SQL-запрос'''.
 +
 
 +
Например, во время входящего звонка, '''Oktell''' обращается в базу данных '''WebCRM''', получает информацию о клиенте и маршрутизирует звонок в соответствии с полученной информацией. В свою очередь '''WebCRM''' может получить через базу данных '''Oktell''' сведения о последнем звонке клиенту и определить как давно не было активности с ним. 
 +
 
 +
В отличие от '''WebSocket''' и '''HTTP''' соединение происходит опосредованно через '''СУБД'''.
 +
 
 +
Подробнее вы можете прочитать по ссылке: [//wiki.oktell.ru/Общие_компоненты_сценариев#SQL Запрос SQL в БД]
 +
 
 +
 
 +
[[Файл:интеграция-010.png | center | 500 px ]]
 +
 
 +
 
 +
=Клиентская интеграция=
 +
 
 +
==Схема работы==
 +
 
 +
Сервер '''Oktell''' взаимодействует с телефонами и с '''браузерными приложениями''' с помощью клиент-серверного интерфейса. Между '''Oktell''' и каждым '''браузерным приложением''' организовывается свой независимый канал для двустороннего обмена командами управления и событиями.
 +
 
 +
 
 +
[[Файл:интеграция-003n.png | center | 500 px ]]
 +
 
 +
 
 +
Фактически, '''веб-приложение''' получает возможность взаимодействовать напрямую с сервером '''Oktell'''. Интерфейс позволяет
 +
* Принимать / совершать / переводить звонки
 +
* Создавать / управлять конференциями
 +
* Видеть номерной план / очередь звонков
 +
 
 +
Рекомендуется использовать одинаковые логины и пароли в '''WebCRM''' и в '''Oktell''' для упрощения процесса авторизации. При входе в '''WebCRM''', пользователь автоматически авторизуется в '''Oktell''' с идентичными авторизационными данными.
 +
 
 +
<span style="color:red;">ВНИМАНИЕ:</span> Канал '''клиентского интерфейса''' не следует использовать для фиксации событий в базе '''WebCRM''', таких как сохранение информации о входящих и пропущенных звонках. Если '''браузерное приложение''' будет отвечать за запись подобной информации, то в случае его недоступности, информация будет утеряна. Для учета подобных событий используйте только '''методы серверной интеграции'''.
 +
 
 +
 
 +
==Методы реализации==
 +
 
 +
Задача клиентской интеграции — передача команд телефонии в браузерное приложение. Подключение  происходит с помощью специально разработанных Javascript-библиотек. Соединение с '''Oktell''' устанавливается при загрузке '''Web-страницы'''. Следует отметить, что во время разговора  Web-страницу нельзя перезагружать или закрывать, так как соединение будет потеряно, а значит и разговор будет тут же разорван. Для корректной работы используйте только одностраничные сайты.
 +
 
 +
 
 +
===Oktell.js===
 +
 
 +
'''Oktell.js''' — Javascript-библиотека для встраивания функционала управления звонками в '''CRM-систему'''. '''Oktell.js''' использует '''WebSocket'''-протокол для соединения с сервером '''Oktell'''. Преимущество этого протокола заключается в создании постоянного соединения с сервером, которое позволяет без задержек получать события с сервера '''Oktell''' и выполнять определенные команды. Однако, '''WebSocket'''-протокол достаточно сложен для реализации и его методы не очень просты. Библиотека '''Oktell.js''' оборачивает внутри себя методы '''WebSocket'''-протокола, предоставляя простой функционал для управления.
 +
 
 +
'''Oktell.js''' позволяет управлять звонками, управлять конференцией, получать события из Oktell, получать доступ к данным. Работа с гарнитурой производится с помощью библиотеки '''Oktell-voice.js'''.
 +
 
 +
Полное описание вы можете прочитать по ссылке [http://js.oktell.ru http://js.oktell.ru]
 +
 
 +
Инструкция по первоначальной настройке по ссылке [[Oktell.js]]
 +
 
 +
 
 +
[[Файл:интеграция-007.png | center | 500 px ]]
 +
 
 +
 
 +
===Oktell-panel.js===
 +
 
 +
'''Oktell-panel.js''' — представляет собой закреплённый в браузере интерфейс, в котором отображается список контактов, статусы сотрудников, а также оптимальный набор инструментов, позволяющих управлять вызовами и конференциями.   
 +
 
 +
В отличие от '''Oktell.js''' является полностью готовым решением для управления звонками. Веб-панель позволяет также использовать гарнитуру с помощью библиотеки '''Oktell-voice.js'''.
 +
 
 +
Полное описание вы можете прочитать по ссылке [http://js.oktell.ru/webpanel/ http://js.oktell.ru/webpanel/]
 +
 
 +
Инструкция по первоначальной настройке по ссылке [[Oktell-panel.js]]
 +
 
 +
 
 +
[[Файл:интеграция-012.png | center |500 px ]]
 +
 
 +
 
 +
== Использование телефона ==
 +
 
 +
Во время работы в браузере менеджер для совершения звонков может использовать как стационарный '''IP-телефон''', так и '''софтфон''' или '''гарнитуру'''. В данной части рассматривается подключение данных устройств.
 +
 
 +
 
 +
===Гарнитура===
 +
 
 +
Для подключения гарнитуры в браузере используется библиотека '''Oktell-voice.js''', которая выполняет функцию '''софтфона''', работающего на веб-странице. При работе используется технология передачи голоса '''WebRTC'''. Технология пока поддерживается только в браузерах '''Google Chrome'''.
 +
 
 +
Регистрация '''софтфона''' происходит при загрузке веб-страницы. Если параллельно открыть новую вкладку с тем же самым веб-приложением, '''Oktell''' зарегистрирует еще '''софтфон''' для пользователя по технологии '''SIP Forking''' (множественное подключение устройств под одной учетной записью). При закрытии вкладки происходит разрегистрация линии. Следует отметить, что если пользователь закрыл вкладку во время разговора, то соединение будет потеряно, а значит и разговор будет тут же разорван.
 +
 
 +
Если для навигации внутри '''CRM-системы''' используется полная перезагрузка страницы или открытие окон в новых вкладках, то в '''Oktell''' постоянно будет происходить регистрация/разрегистрация устройств, что повысит нагрузку на сервер в целом, так как это трудоемкая операция. При работе десяти пользователей, количество регистраций линий может превышать 800-1000 раз в день.
  
Использование телефона
 
Во время работы в браузере менеджер для совершения звонков может использовать как стационарный IP-телефон, так и софтфон или гарнитуру. В данной части рассматривается подключение данных устройств.
 
  
Гарнитура
 
Для подключения гарнитуры в браузере используется библиотека Oktell-voice.js, которая выполняет функцию софтфона, работающего на веб-странице. При работе используется технология передачи голоса WebRTC. Технология пока поддерживается только в браузерах Google Chrome.
 
Регистрация софтфона происходит при загрузке веб-страницы. Если параллельно открыть новую вкладку с тем же самым веб-приложением, Oktell зарегистрирует еще софтфон для пользователя по технологии SIP Forking (множественное подключение устройств под одной учетной записью). При закрытии вкладки происходит разрегистрация линии. Следует отметить, что если пользователь закрыл вкладку во время разговора, то соединение будет потеряно, а значит и разговор будет тут же разорван.
 
Если для навигации внутри CRM-системы используется полная перезагрузка страницы или открытие окон в новых вкладках, то в Oktell постоянно будет происходить регистрация/разрегистрация устройств, что повысит нагрузку на сервер в целом, так как это трудоемкая операция. При работе десяти пользователей, количество регистраций линий может превышать 800-1000 раз в день.
 
 
Решением является использование одностраничных сайтов. При переходе между вкладками, страница не должна перезагружаться. Предлагаем следующие решения:
 
Решением является использование одностраничных сайтов. При переходе между вкладками, страница не должна перезагружаться. Предлагаем следующие решения:
Решение 1. На веб-странице используется фрейм, растянутый на 100% высоты и 100% ширины страницы. Внутри фрейма происходит переход по ссылкам, внешние веб-страницы полностью подгружаются на текущую. Таким образом переход между ссылками не перезагружает текущую страницу.
 
Решение 2. Сервер WebCRM присылает все необходимые данные, которые динамически отрисовываются веб-страницей. При переходе с одного раздела на другой, веб-страница запрашивает данные для отрисовки, которые при получении отображает в браузере. Перезагрузки самой веб-страницы не происходит. Примером такого решения является Oktell Web-Оператор.
 
Подробнее вы можете прочитать в статье http://wiki.oktell.ru/Oktell_Web_Оператор.
 
  
IP-телефон
+
'''Решение 1.''' На веб-странице используется фрейм, растянутый на 100% высоты и 100% ширины страницы. Внутри фрейма происходит переход по ссылкам, внешние веб-страницы полностью подгружаются на текущую. Таким образом переход между ссылками не перезагружает текущую страницу.  
Чтобы использовать IP-телефон при работе в CRM-системе, необходимо в карте сети создать телефон с тем же логином, как и у сотрудника. Тогда при входе сотрудника, за ним автоматически будет закрепляться его устройство. Данный функционал доступен, начиная с версии Oktell 2.9.
+
Если телефоны имеют отличные логины от пользователей, то необходимо вручную закрепить устройство за сотрудником. Зайдите в Администрирование -> Карта сети -> Настройки телефона. Выберите сотрудника в поле Пользователь WebCRM.
+
  
После авторизации менеджера в браузерном приложении, телефон автоматически закрепляется за сотрудником, и при звонке будет использоваться именно это устройство.  
+
'''Решение 2.''' Сервер WebCRM присылает все необходимые данные, которые динамически отрисовываются веб-страницей. При переходе с одного раздела на другой, веб-страница запрашивает данные для отрисовки, которые при получении отображает в браузере. Перезагрузки самой веб-страницы не происходит. Примером такого решения является веб-приложение '''Okapp'''.  
  
Софтфон
+
Подробнее вы можете прочитать в статье [[Okapp]].
Также вы можете использовать любые другие приложения, выполняющие роль софтфона. Софтфон — приложение, которое устанавливается на компьютер и позволяет совершать/принимать звонки с использованием гарнитуры. Подключение софтфона производится аналогично настройке IP-телефона.
+
Рекомендуется использовать софтфон Oktell Miniphone. Данный софтфон имеет функционал автоподнятия трубки и представляет собой голосовой канал для оператора контакт-центра. Miniphone позволяет принимать звонки, однако совершить исходящий звонок c помощью интерфейса не получится. Такую возможность можно реализовать в браузерном приложении, например, с помощью oktell-panel.js.
+
Подробнее прочитать про Oktell Miniphone можно по ссылке http://oktell.ru/utilites/miniphone/
+
  
  
+
===IP-телефон===
Пример интеграционного решения
+
 
 +
Чтобы использовать '''IP-телефон''' при работе в '''CRM-системе''', необходимо в карте сети создать телефон с тем же логином, как и у сотрудника. Тогда при входе сотрудника, за ним автоматически будет закрепляться его устройство. Данный функционал доступен, <span style="color:red;"> начиная с версии Oktell 2.9. </span>
 +
 
 +
Если телефоны имеют отличные логины от пользователей, то необходимо вручную закрепить устройство за сотрудником. Зайдите в '''Администрирование''' -> '''Карта сети''' -> '''Настройки телефона'''. Выберите сотрудника в поле '''Пользователь WebCRM'''.
 +
 
 +
 
 +
[[Файл:Oktelljs-004.png | center |500px]]
 +
 
 +
 
 +
После авторизации менеджера в браузерном приложении, телефон автоматически закрепляется за сотрудником, и при звонке будет использоваться именно это устройство.
 +
 
 +
 
 +
===Софтфон===
 +
 
 +
Также вы можете использовать любые другие приложения, выполняющие роль '''софтфона'''. '''Софтфон''' — приложение, которое устанавливается на компьютер и позволяет совершать/принимать звонки с использованием гарнитуры. Подключение '''софтфона''' производится аналогично настройке '''IP-телефона'''.
 +
 
 +
<br/>
 +
 
 +
=Пример интеграционного решения=
 +
 
 
Приведенный ниже пример не является готовым решением, а предоставлен как демонстрационный материал. Обратите внимание на взаимосвязанность процессов, зоны ответственности серверной и клиентской интеграции.  
 
Приведенный ниже пример не является готовым решением, а предоставлен как демонстрационный материал. Обратите внимание на взаимосвязанность процессов, зоны ответственности серверной и клиентской интеграции.  
Входящий звонок
 
1. При входящем звонке Oktell обращается к Web-серверу с целью получения информации об абоненте, ответственном операторе и маршрутизирует звонок в соответствии с полученной информацией. Используется динамический метод “Получить информацию об абоненте по номеру телефона”.
 
2. Oktell маршрутизирует звонок, следуя логике сценариев. Как только сотрудник отвечает на звонок, сервер Oktell сообщает об успешной коммутации Web-серверу. Используется динамический метод “Занести информацию о звонке в WebCRM”. Если на входящий звонок никто не ответил, абоненту предлагается оставить голосовую почту, в базу WebCRM заносится информация о пропущенном звонке.
 
3. Oktell отправляет запрос на открытие карточки клиента в браузерное приложение. Используется динамический метод “Открыть карточку у пользователя”. Передаваемым параметром является идентификатор клиента. Заметим, что на этом этапе Oktell не может предоставить информации о клиенте, она хранится на сервере WebCRM.
 
4. Браузерное приложение, получив событие на открытие карточки, запрашивает информацию у WebCRM-сервера. Получив информацию, в браузере отображается карточка клиента.
 
5. По окончанию разговора, Oktell может снова обратиться к CRM-серверу с целью обновления информации о звонке. Заносится длительность разговора и ссылка на запись разговора.
 
  
Исходящий звонок
+
 
1. Пользователь открывает карточку клиента в браузерном приложении, нажимает кнопку “Позвонить”. Браузерное приложение отправляет на сервер Oktell запрос на совершение звонка по данному номеру телефона.  
+
==Входящий звонок==
2. Oktell маршрутизирует звонок, следуя логике настроенных сценариев. После установления связи, Oktell отправляет на сервер WebCRM информацию о звонке — имя оператора, идентификатор клиента, было ли установлено соединение. Используется динамический метод “Занести информацию о звонке в WebCRM”. В свою очередь, WebCRM привязывает этот звонок к истории взаимодействия с клиентом.
+
 
3. По окончанию разговора, Oktell может снова обратиться к CRM-серверу с целью обновления информации о звонке. Заносится длительность разговора и ссылку на запись разговора. Также можно предусмотреть открытие карточки формирования новой активности в WebCRM.
+
'''1.''' При входящем звонке '''Oktell''' обращается к '''Web-серверу''' с целью получения информации об абоненте, ответственном операторе и маршрутизирует звонок в соответствии с полученной информацией. Используется динамический метод “''Получить информацию об абоненте по номеру телефона''”.
 +
 
 +
'''2.''' '''Oktell''' маршрутизирует звонок, следуя логике сценариев. Как только сотрудник отвечает на звонок, сервер '''Oktell''' сообщает об успешной коммутации '''Web-серверу'''. Используется динамический метод “''Занести информацию о звонке в WebCRM''”. Если на входящий звонок никто не ответил, абоненту предлагается оставить голосовую почту, в базу '''WebCRM''' заносится информация о пропущенном звонке.
 +
 
 +
'''3.''' '''Oktell''' отправляет запрос на открытие карточки клиента в '''браузерное приложение'''. Используется динамический метод “''Открыть карточку у пользователя''”. Передаваемым параметром является идентификатор клиента. Заметим, что на этом этапе '''Oktell''' не может предоставить информации о клиенте, она хранится на сервере '''WebCRM'''.
 +
 
 +
'''4.''' '''Браузерное приложение''', получив событие на открытие карточки, запрашивает информацию у '''WebCRM-сервера'''. Получив информацию, в браузере отображается карточка клиента.
 +
 
 +
'''5.''' По окончанию разговора, '''Oktell''' может снова обратиться к '''CRM-серверу''' с целью обновления информации о звонке. Заносится длительность разговора и ссылка на запись разговора.
 +
 
 +
 
 +
[[Файл:интеграция-013.png |500px | center]]
 +
 
 +
 
 +
==Исходящий звонок==
 +
 
 +
'''1.''' Пользователь открывает карточку клиента в '''браузерном приложении''', нажимает кнопку “''Позвонить''”. '''Браузерное приложение''' отправляет на сервер '''Oktell''' запрос на совершение звонка по данному номеру телефона.  
 +
 
 +
'''2.''' '''Oktell''' маршрутизирует звонок, следуя логике настроенных сценариев. После установления связи, '''Oktell''' отправляет на сервер '''WebCRM''' информацию о звонке — имя оператора, идентификатор клиента, было ли установлено соединение. Используется динамический метод “''Занести информацию о звонке в WebCRM''”. В свою очередь, '''WebCRM''' привязывает этот звонок к истории взаимодействия с клиентом.
 +
 
 +
'''3.''' По окончанию разговора, '''Oktell''' может снова обратиться к '''CRM-серверу''' с целью обновления информации о звонке. Заносится длительность разговора и ссылку на запись разговора. Также можно предусмотреть открытие карточки формирования новой активности в '''WebCRM'''.
 +
 
 +
 
 +
[[Файл:интеграция-014.png |500px | center]]

Текущая версия на 08:46, 31 августа 2022

Наверх

Определение и задачи интеграции

Что такое интеграция?

Интеграция - процесс объединения одного приложения c другим с целью увеличения функциональности и уменьшения времени обработки запроса. Интеграцию проводят для облегчения работы операторам и автоматизации бизнес-процессов.


Что мы имеем до интеграции?

Имеется сервер Oktell и некоторый web-сервер, на котором установлена WebCRM-система.

Пользователи Oktell могут заходить в свое рабочее место через клиентское приложение. Стандартный функционал Oktell предоставляет пользователям:

  • доступ к управлению телефонами (позвонить, переключить, отклонить звонок, организовать конференцию, пригласить других участников в конференцию, подключиться к разговору в режиме прослушивания, помощи и т.д.).
  • информацию о текущем состоянии телефонов, внутренних номеров и пользователей
  • информацию о поступающем звонке, абоненте, доступ к информации об ожидающей очереди абонентов в реальном времени, к контентам сессий и линий.
  • доступ к статистике разговоров и к записям разговоров (по правам).
  • возможность запуска служебных сценариев.

Пользователи WebCRM могут заходить в свое рабочее место через браузер. Как правило, WebCRM предоставляет следующий функционал:

  • доступ к клиентской базе, истории взаимоотношений с клиентом
  • управление текущими задачами и проектами компании
  • управление заявками, счетами
  • предоставление информации о KPI сотрудника, расчет их показателей эффективности
  • управление бизнес-процессами в компании


Что мы должны получить после интеграции?

Входящие звонки

При входящем звонке Oktell идентифицирует абонента по его номеру телефон (CallerId), телефону, который он набрал (CalledId), время поступившего звонка. Затем, происходит обращение к серверу WebCRM, в котором сообщается полученная информация, по которой определяется тип клиента, ответственный менеджер, дополнительные данные. После получения необходимых данных, Oktell маршрутизирует звонок нужному сотруднику, а в браузере у этого сотрудника открывается карточка клиента.


Исходящие звонки

Чтобы совершить звонок на номер клиента, менеджеру необходимо открыть карточку клиента в CRM-системе и нажать на кнопку "Позвонить". Выбор линий и направлений для совершения звонка настраивается в Oktell. В случае, если абонент не доступен или занят, менеджеру должна быть выведена соответствующая информация о статусе звонка.


Внутренние звонки

Пользователь WebCRM-системы может в любой момент посмотреть внутренние номера сотрудников компании и при желании сразу совершить звонок коллегам. Помимо обычных звонков возможен сбор конференции.

Также должны быть доступны статусы всех сотрудников. Статусы могут быть: свободен, занят (т.е. находится в разговоре), в перерыве или недоступен. Менеджер видит кто из коллег занят в данный момент и подождать, пока он освободится, для совершения звонка.


Статистика / история звонков.

При любом входящем звонке от клиента (или исходящем к клиенту), Oktell отправляет запрос в WebCRM-систему на формирование “события” (“активности”). Данная “активность” привязывается к карточке клиента или заказа , таким образом формируя историю взаимодействия. “Активность” автоматически заполняется датой звонка, номером звонившего, именами участников разговора, а также дополняются комментариями ответственного менеджера. При таком подходе, ни одно взаимодействие с клиентом не будет упущено и менеджер может в любой момент оценить как продвигается сделка.

Каждый пользователь при наличии прав может посмотреть историю звонков, прослушать записи разговоров и добавить свои комментарии. Возможен вариант просмотра детализации разговоров у подчиненных сотрудников. Статистика разговоров, при этом, может вестись как самой CRM-системой, так и подгружаться с сервера Oktell. Полученные данные можно группировать по сотрудникам, внешним номерам и по времени.

В WebCRM-системе пользователям может быть доступна история пропущенных звонков, голосовая почта, заказы на встречный звонок, сообщения от других пользователей, системные уведомления.


Схема интеграции

Oktell позволяет работать одновременно с сервером WebCRM и с клиентскими (браузерными) приложениями. Интеграция Oktell и WebCRM-системы проводится в два этапа:

1. Серверная интеграция — настройка канала обмена данными между WebCRM-системой и сервером Oktell.

2. Клиентская интеграция — организация интерфейса для передачи команд телефонии от браузерного приложения к серверу Oktell.

Серверная интеграция

Схема работы

Между серверами организовывается канал для двустороннего обмена сообщениями. Установка соединения производится от сервера Oktell к WebCRM-системе. После установки соединения системы Oktell запрашивает информацию от сервера WebCRM о всех методах CRM-системы, доступных для исполнения. Эти методы называются динамическими и после получения информации появляются в компоненте сценариев “CRM-действие”.

Например, Oktell соединяется с CRM-системой и получает от нее два динамических метода:

  • Первый динамический метод позволяет получить информацию о клиенте по номеру телефона. В методе описано, что необходимо передать номер телефона на сервер WebCRM. При входящем/исходящем звонке, Oktell с помощью компонента “CRM-действие” вызывает данный метод и передает в него номер телефона клиента. В ответ он получает всю необходимую информацию.
  • Второй динамический метод позволяет сохранить “активность/звонок” в CRM-системе. При завершении звонка, Oktell передает идентификатор клиента, имя менеджера, который совершал звонок, время и длительность разговора и ссылку на запись.

Подробнее про динамические методы вы узнаете по этой ссылке.

Web-сервер по данному соединению может обратиться к серверу Oktell за получением данных по звонку (время ожидания, длительность разговора, время звонка), получения записи разговора (как самого файла, так и ссылки на этот файл). Также, WebCRM может запускать служебные сценарии в Oktell. Сценарии совершают необходимые действия, например, производят рассылку электронных писем.


Интеграция-001n.png


Методы реализации

Задача серверной интеграции - организовать канал связи между WebCRM и сервером Oktell для выполнения различных запросов. При этом запросы могут идти, как от Oktell к WebCRM, так и наоборот. Для каждой технологии ниже приведено краткое описание, преимущества и недостатки использования.


Соединение по протоколу WebSocket

WebSocket - название интеграционного протокола в Oktell, который описывает взаимодействие двух серверов. Взаимодействие происходит путем обмена сообщениями по постоянному установившемуся TCP-каналу. Часть сообщений носят вид событий, часть - вид запросов (команд), часть - вид ответов на запросы. Каждое сообщение описывает данные в виде структуры JSON (возможен вариант XML). В качестве кодировки используется UTF-8.

Преимущество использования WebSocket в создании постоянного канала, возможности двухстороннего обмена данными и, таким образом, оптимизации нагрузки на сетевую подсистему.

Чтобы использовать соединение по WebSocket в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите Oktell к СRM (WebSocket) или Oktell к СRM (WebSocketSecure).

Для передачи запросов от WebCRM к Oktell используется тот же TCP-канал, поэтому этот канал называется двунаправленным. WebCRM может выполнять предустановленные методы (получать номерной план, запускать задачи и др.), выполнять служебные сценарии и получать от них результат. Протокол также позволяет выполнять хранимые процедуры в базе данных Oktell и получать результат выполнения.

Полное описание протокола вы можете прочитать по ссылке Oktell Web-Socket Protocol.


Интеграция-006.png


Соединение через HTTP-запросы

Серверная интеграция в Oktell реализована также с помощью HTTP-запросов. HTTP-запросы могут выполняться от Oktell к CRM через динамические методы, от CRM к Oktell через серверный HTTP интерфейс.

В отличии от протокола WebSocket, сервера Oktell и WebCRM не имеют соединения друг с другом. Это означает, что если CRM-система будет недоступна, Oktell ничего не будет знать об этом. Таким образом, некоторые запросы могут не выполниться и необходимо предусматривать защиту от подобных случаев. Также недостатком данного соединения является односторонняя направленность канала (только от Oktell к CRM). Способ соединения с сервером CRM - по WebSocket или по HTTP определяется возможностями WebCRM-сервера.

Чтобы использовать серверную интеграцию через HTTP запросы в настройках соединения (Администрирование - Общие настройки - Web-интеграция с CRM) выберите Oktell к СRM (HTTP) или Oktell к СRM (HTTPS).

Для передачи запросов от WebCRM к Oktell следует использовать серверный HTTP интерфейс. Он позволяет исполнять команды, поступившие на сервер Oktell (по умолчанию, порт 4055). С помощью запросов WebСRM осуществляет запуск служебного сценария, определяет состояние конкретного пользователя, получает информацию обо всех очередях в текущий момент времени. Несколько команд HTTP-интерфейса позволяют совершать звонки от имени конкретного рабочего места или пользователя. Для этого необходимо дополнительно указывать идентификатор пользователя, линии или рабочего места (имя компьютера).

Для каждого запроса требуется базовая авторизация под учетной записью пользователя, имеющего привилегии исполнять методы Web-API. Удобнее всего, создать отдельного пользователя и выполнять от его имени все web-запросы.

Полное описание вы можете прочитать по ссылке Серверный HTTP интерфейс


Интеграция-008.png


Интеграция через базы данных

Интеграция посредством баз данных использует СУБД для записи и считывания значений из общих таблиц. В процессе работы Oktell и WebCRM записывают/изменяют значения ячеек, которые используются в работе. Со стороны Oktell работа происходит с помощью компонента SQL-запрос.

Например, во время входящего звонка, Oktell обращается в базу данных WebCRM, получает информацию о клиенте и маршрутизирует звонок в соответствии с полученной информацией. В свою очередь WebCRM может получить через базу данных Oktell сведения о последнем звонке клиенту и определить как давно не было активности с ним.

В отличие от WebSocket и HTTP соединение происходит опосредованно через СУБД.

Подробнее вы можете прочитать по ссылке: Запрос SQL в БД


Интеграция-010.png


Клиентская интеграция

Схема работы

Сервер Oktell взаимодействует с телефонами и с браузерными приложениями с помощью клиент-серверного интерфейса. Между Oktell и каждым браузерным приложением организовывается свой независимый канал для двустороннего обмена командами управления и событиями.


Интеграция-003n.png


Фактически, веб-приложение получает возможность взаимодействовать напрямую с сервером Oktell. Интерфейс позволяет

  • Принимать / совершать / переводить звонки
  • Создавать / управлять конференциями
  • Видеть номерной план / очередь звонков

Рекомендуется использовать одинаковые логины и пароли в WebCRM и в Oktell для упрощения процесса авторизации. При входе в WebCRM, пользователь автоматически авторизуется в Oktell с идентичными авторизационными данными.

ВНИМАНИЕ: Канал клиентского интерфейса не следует использовать для фиксации событий в базе WebCRM, таких как сохранение информации о входящих и пропущенных звонках. Если браузерное приложение будет отвечать за запись подобной информации, то в случае его недоступности, информация будет утеряна. Для учета подобных событий используйте только методы серверной интеграции.


Методы реализации

Задача клиентской интеграции — передача команд телефонии в браузерное приложение. Подключение происходит с помощью специально разработанных Javascript-библиотек. Соединение с Oktell устанавливается при загрузке Web-страницы. Следует отметить, что во время разговора Web-страницу нельзя перезагружать или закрывать, так как соединение будет потеряно, а значит и разговор будет тут же разорван. Для корректной работы используйте только одностраничные сайты.


Oktell.js

Oktell.js — Javascript-библиотека для встраивания функционала управления звонками в CRM-систему. Oktell.js использует WebSocket-протокол для соединения с сервером Oktell. Преимущество этого протокола заключается в создании постоянного соединения с сервером, которое позволяет без задержек получать события с сервера Oktell и выполнять определенные команды. Однако, WebSocket-протокол достаточно сложен для реализации и его методы не очень просты. Библиотека Oktell.js оборачивает внутри себя методы WebSocket-протокола, предоставляя простой функционал для управления.

Oktell.js позволяет управлять звонками, управлять конференцией, получать события из Oktell, получать доступ к данным. Работа с гарнитурой производится с помощью библиотеки Oktell-voice.js.

Полное описание вы можете прочитать по ссылке http://js.oktell.ru

Инструкция по первоначальной настройке по ссылке Oktell.js


Интеграция-007.png


Oktell-panel.js

Oktell-panel.js — представляет собой закреплённый в браузере интерфейс, в котором отображается список контактов, статусы сотрудников, а также оптимальный набор инструментов, позволяющих управлять вызовами и конференциями.

В отличие от Oktell.js является полностью готовым решением для управления звонками. Веб-панель позволяет также использовать гарнитуру с помощью библиотеки Oktell-voice.js.

Полное описание вы можете прочитать по ссылке http://js.oktell.ru/webpanel/

Инструкция по первоначальной настройке по ссылке Oktell-panel.js


Интеграция-012.png


Использование телефона

Во время работы в браузере менеджер для совершения звонков может использовать как стационарный IP-телефон, так и софтфон или гарнитуру. В данной части рассматривается подключение данных устройств.


Гарнитура

Для подключения гарнитуры в браузере используется библиотека Oktell-voice.js, которая выполняет функцию софтфона, работающего на веб-странице. При работе используется технология передачи голоса WebRTC. Технология пока поддерживается только в браузерах Google Chrome.

Регистрация софтфона происходит при загрузке веб-страницы. Если параллельно открыть новую вкладку с тем же самым веб-приложением, Oktell зарегистрирует еще софтфон для пользователя по технологии SIP Forking (множественное подключение устройств под одной учетной записью). При закрытии вкладки происходит разрегистрация линии. Следует отметить, что если пользователь закрыл вкладку во время разговора, то соединение будет потеряно, а значит и разговор будет тут же разорван.

Если для навигации внутри CRM-системы используется полная перезагрузка страницы или открытие окон в новых вкладках, то в Oktell постоянно будет происходить регистрация/разрегистрация устройств, что повысит нагрузку на сервер в целом, так как это трудоемкая операция. При работе десяти пользователей, количество регистраций линий может превышать 800-1000 раз в день.


Решением является использование одностраничных сайтов. При переходе между вкладками, страница не должна перезагружаться. Предлагаем следующие решения:

Решение 1. На веб-странице используется фрейм, растянутый на 100% высоты и 100% ширины страницы. Внутри фрейма происходит переход по ссылкам, внешние веб-страницы полностью подгружаются на текущую. Таким образом переход между ссылками не перезагружает текущую страницу.

Решение 2. Сервер WebCRM присылает все необходимые данные, которые динамически отрисовываются веб-страницей. При переходе с одного раздела на другой, веб-страница запрашивает данные для отрисовки, которые при получении отображает в браузере. Перезагрузки самой веб-страницы не происходит. Примером такого решения является веб-приложение Okapp.

Подробнее вы можете прочитать в статье Okapp.


IP-телефон

Чтобы использовать IP-телефон при работе в CRM-системе, необходимо в карте сети создать телефон с тем же логином, как и у сотрудника. Тогда при входе сотрудника, за ним автоматически будет закрепляться его устройство. Данный функционал доступен, начиная с версии Oktell 2.9.

Если телефоны имеют отличные логины от пользователей, то необходимо вручную закрепить устройство за сотрудником. Зайдите в Администрирование -> Карта сети -> Настройки телефона. Выберите сотрудника в поле Пользователь WebCRM.


Oktelljs-004.png


После авторизации менеджера в браузерном приложении, телефон автоматически закрепляется за сотрудником, и при звонке будет использоваться именно это устройство.


Софтфон

Также вы можете использовать любые другие приложения, выполняющие роль софтфона. Софтфон — приложение, которое устанавливается на компьютер и позволяет совершать/принимать звонки с использованием гарнитуры. Подключение софтфона производится аналогично настройке IP-телефона.


Пример интеграционного решения

Приведенный ниже пример не является готовым решением, а предоставлен как демонстрационный материал. Обратите внимание на взаимосвязанность процессов, зоны ответственности серверной и клиентской интеграции.


Входящий звонок

1. При входящем звонке Oktell обращается к Web-серверу с целью получения информации об абоненте, ответственном операторе и маршрутизирует звонок в соответствии с полученной информацией. Используется динамический метод “Получить информацию об абоненте по номеру телефона”.

2. Oktell маршрутизирует звонок, следуя логике сценариев. Как только сотрудник отвечает на звонок, сервер Oktell сообщает об успешной коммутации Web-серверу. Используется динамический метод “Занести информацию о звонке в WebCRM”. Если на входящий звонок никто не ответил, абоненту предлагается оставить голосовую почту, в базу WebCRM заносится информация о пропущенном звонке.

3. Oktell отправляет запрос на открытие карточки клиента в браузерное приложение. Используется динамический метод “Открыть карточку у пользователя”. Передаваемым параметром является идентификатор клиента. Заметим, что на этом этапе Oktell не может предоставить информации о клиенте, она хранится на сервере WebCRM.

4. Браузерное приложение, получив событие на открытие карточки, запрашивает информацию у WebCRM-сервера. Получив информацию, в браузере отображается карточка клиента.

5. По окончанию разговора, Oktell может снова обратиться к CRM-серверу с целью обновления информации о звонке. Заносится длительность разговора и ссылка на запись разговора.


Интеграция-013.png


Исходящий звонок

1. Пользователь открывает карточку клиента в браузерном приложении, нажимает кнопку “Позвонить”. Браузерное приложение отправляет на сервер Oktell запрос на совершение звонка по данному номеру телефона.

2. Oktell маршрутизирует звонок, следуя логике настроенных сценариев. После установления связи, Oktell отправляет на сервер WebCRM информацию о звонке — имя оператора, идентификатор клиента, было ли установлено соединение. Используется динамический метод “Занести информацию о звонке в WebCRM”. В свою очередь, WebCRM привязывает этот звонок к истории взаимодействия с клиентом.

3. По окончанию разговора, Oktell может снова обратиться к CRM-серверу с целью обновления информации о звонке. Заносится длительность разговора и ссылку на запись разговора. Также можно предусмотреть открытие карточки формирования новой активности в WebCRM.


Интеграция-014.png