Infinity X: Обзор технологий интеграции
Infinity X – обзор технологий интеграции
Дополнительные материалы по интеграции по ссылке
1. Обмен информацией
Решаемые задачи:
- Идентификация клиента по номеру телефона при входящем вызове
- Маршрутизация вызова на персонального менеджера
- Отображение информации о клиенте на рабочем месте оператора
- Автоматическое сохранение информации о входящих и исходящих вызовах в истории взаимоотношений с клиентом
Средства и технологии. SQL-запросы в любые базы данных по технологиям ADO, ODBC на различных этапах обработки вызова: от главного сценария голосового меню IVR до служебного сценария завершения вызова. Сервер платформы Infinity осуществляет запросы в базы данных как для получения, так и для записи информации.
2. Управление рабочим местом оператора
Решаемые задачи:
- Совершение вызова из информационной системы «одним кликом»
- Управление активными вызовами: удержание, перевод, завершение и т.д.
- Управление статусом оператора (на месте, отошел, не доступен и т.д.)
- Получение информации о текущем вызове
Средства и технологии. Предполагается, что запущено рабочее место оператора Infinity. Модель интеграции – First-Party, т.е. все действия производятся от имени конкретного рабочего места оператора. Осуществляется поиск окна по определенным критериям, затем устанавливается канал обмена информацией путем отправки и получения сообщений с копированием данных SendMessage(WM_COPYDATA, …).
3. Встраивание визуальных инструментов рабочего места оператора в информационную систему
Решаемые задачи:
- Основные инструменты рабочего места оператора размещаются в виде панелей, вкладок или окон информационной системы
- Оператор получает единый инструмент, включающий в себя функциональные возможности информационной системы и контакт-центра
- Совершение вызова из информационной системы «одним кликом»
- Управление активными вызовами: удержание, перевод, завершение и т.д.
- Управление статусом оператора (на месте, отошел, не доступен и т.д.)
- Получение информации о текущем вызове
Средства и технологии. Интеграция осуществляется по технологии ActiveX. Для управления вызовами создается одна невидимая ActiveX-форма Core. Для размещения в информационной системе инструментов рабочего места оператора создается необходимое количество ActiveX-форм. Модель интеграции – First-Party, т.е. инструменты конкретного рабочего места оператора встраиваются в рабочее место информационной системы.
4. Централизованное управление всеми вызовами всех операторов
Решаемые задачи:
- Совершение вызова из информационной системы «одним кликом»
- Управление активными вызовами: удержание, перевод, завершение и т.д.
- Управление статусом оператора (на месте, отошел, не доступен и т.д.)
- Получение информации о текущем вызове
Средства и технологии. Модель интеграции – Third-Party, т.е. управление вызовами осуществляется от имени «третьего лица».
Infinity X: Описание модуля интеграции
Модуль интеграции Infinity X
Версия
1.15.10.Х
В данном документе описаны способы решения основных задач по интеграции с «Infinity X» в соответствии с моделями First-Party и Third-Party. Используемые технологии: COM/ActiveX и .NET.
Дополнительные материалы по интеграции https://www.inteltelecom.ru/ftp/demo/integration.zip
Содержание документа
Модели интеграции
Технологии интеграции
Принцип интеграции
Примеры решения типовых задач
Совершение исходящего вызова
Детальное описание основных интерфейсов и функций
Интерфейсы COM/ActiveX
Интерфейсы .NET
Модели интеграции
Модель интеграции First-Party подразумевает управление системой от первого лица, т.е. осуществлять все действия от имени конкретного оператора. Как правило, данная модель используется при интеграции рабочих мест различных информационных систем с Infinity X.
Модель Third-Party позволяет управлять системой от третьего лица, т.е. осуществлять операции от имени всех операторов. Как правило, данная модель используется при интеграции сервера информационных систем с Infinity X.
Важно отметить, что модель First-Party предполагает, что рабочее место оператора не запущено. Через модуль интеграции осуществляется авторизация на сервере, установка статуса оператора, управление звонками и т.д. Фактически, информационная система полностью заменяет рабочее место оператора. Если же рабочее место оператора уже запущено и необходимо управлять им из информационной системы, необходимо использовать модель Third-Party.
Использование визуальных форм ActiveX возможно только в модели First-Party.
Технологии интеграции
Обе модели интеграции предполагают использование одной из двух технологий: COM/ActiveX или .NET.
Технология COM позволяет при помощи любого языка программирования обращаться к объектам системы и управлять ими. Технология ActiveX позволяет встраивать визуальные инструменты Infinity X в информационную систему. В частности, данные технологии удобно применять при интеграции Infinity X с платформой 1С, Lotus Notes, Excel и т.д.
Пример встраивания интерфейсов Infinity в Excel методом ActiveX
Технология .NET подразумевает проведение интеграции с использованием средств разработки программного обеспечения, поддерживающих платформу .NET Framework. Как правило, это Microsoft Visual Studio (языки C#.NET, VB.NET, C++.NET), а также Embarcadero/Borland Delphi.
Принцип интеграции
Взаимодействие информационной системы с Infinity X состоит из следующих этапов:
1. Подготовительные операции
a. Инициализация модуля интеграции
b. Подключение к серверу Infinity X и авторизация
c. Получение необходимых для решения конкретных задач интерфейсов
2. Основная содержательная часть
a. Взаимодействие с интерфейсами (получение информации и осуществление операций)
3. Завершение работы
a. Отключение от сервера Infinity X
b. Освобождение ресурсов
Для использования технологии COM/ActiveX необходимо:
· Установить рабочее место Infinity X
· Зарегистрировать COM-объекты (запустить файл register.bat)
· Создать COM-объект "Cx.Integration.Core"
Для использования технологии .NET необходимо:
· Установить рабочее место Infinity X
· Создать проект на базе платформы .NET Framework 4.0
· Подключить к проекту следующие сборки:
o Cx.Integration.AgatInfinityConnectorFactory.dll
o Cx.Integration.AgatInfinityConnectorInterfaces.dll
· Создать экземпляр коннектора «Infinity X»
При необходимости подключения к серверу в режиме Third-Party необходимо создать пользователя, обладающего ролью «Интеграционное подключение Third-Party». Будем считать, что это пользователь «IntegrationUser» с паролем «1234», адрес сервера «192.168.200.101», порт 10010.
Примеры решения типовых задач: Скачать
Infinity X: Интеграция с базами данных
«Infinity Call-центр X» позволяет для обмена информации использовать внешние базы данных. Доступ к внешним базам данных обеспечивается из любого места, предполагающего подключение и получение данных – отчеты, сценарии, кампании.
Для того, чтобы обеспечить доступ к внешним базам данных, их надо зарегистрировать в «Infinity Call-центр X». Иными словами описать доступ к ним в терминах, понятных для «Infinity Call-центр X». Самый простой способ – реализовать доступ к внешней базе данных через ODBC соединение.
Рассмотрим реализацию на примере доступа из «Infinity Call-центр X» к MS SQL базе данных через ODBC источник за два шага.
Шаг 1. Создаем ODBC соединение к базе данных непосредственно с сервера, на котором установлен «Infinity Call-центр X». Через панель управления заходим в раздел "Администрирование" и "Источники данных (ODBC)", создаем новый системный DSN.
В данном примере используется ODBC подключение к базе MS SQL Express, в качестве драйвера для подключения используется SQL Native Client, который должен быть установлен на сервере перед созданием ODBC подключения.
Выбираем системный DSN, новый
Задаем Имя, Описание и указываем сервер
Выбираем метод авторизации от имени учетной записи (если выбирали от имени учетной записи, тогда той учетной записи от имени которой запускается служба «Infinity Call-центр X» должен быть предоставлен доступ на подключение к базе данных) или от имени учетной записи SQL сервера
Указываем базу данных по умолчанию
При необходимости задаем дополнительные параметры подключения
ODBC подключение создано
Шаг 2. В разделе "Базы данных" рабочего места администратора выбираем меню "Базы данных" и описываем подключение к созданному выше ODBC источнику. Жмем кнопку добавить
В качестве идентификатора пишем имя, которое мы будем использовать внутри «Infinity Call-центр X», в качестве драйвера указываем ODBC, строка подключения совпадает с названием имени ODBC источника, параметры авторизации указываем явно
После чего в разделе "Базы данных" рабочего места администратора появится зарегистрированная база данных
Внимание! Чтобы подключиться из 64-х разрядной ОС Windows по технологии ODBC к СУБД MS SQL, расположенной на 32-х разрядной ОС Windows, следует использовать приложение "C:\Windows\SysWOW64\odbcad32.exe"
Список методов и событий модуля интеграции (при использовании HTTP)
Ниже представлен список методов и событий Infinity, доступных для управления на текущий момент в модуле интеграции. Также любые произвольные HTTP-запросы можно выполнять из различных сценариев (IVR/диалога).
Users management methods:
Get user state:
http://host:port/user/getstate/?IDUser=XXX
Set user state:
http://host:port/user/setstate/?IDUser=XXX&IDUserState=XXX
User log on:
http://host:port/user/logon/?Login=XXX&Password=XXX&IDRole=XXX
or
http://host:port/user/logon/?IDUser=XXX&Password=XXX&IDRole=XXX
or
http://host:port/user/logon/?Login=XXX&Password=XXX&IDRole=XXX&HostHame=XXX
or
http://host:port/user/logon/?IDUser=XXX&Password=XXX&IDRole=XXX&HostHame=XXX
User log off:
http://host:port/user/logoff/?IDUser=XXX
Users management events:
On user state changed:
http://eventsURL/user/OnStateChanged/?IDUser=XXX&IDUserState=XXX
Calls management methods:
Make call:
http://host:port/call/make/?Extension=XXX&Number=XXX&Tag=XXX
or
http://host:port/call/make/?IDUser=XXX&Number=XXX&Tag=XXX
Drop call:
http://host:port/call/drop/?Extension=XXX&IDCall=XXX
or
http://host:port/call/drop/?IDUser=XXX&IDCall=XXX
Accept call:
http://host:port/call/accept/?Extension=XXX&IDCall=XXX
or
http://host:port/call/accept/?IDUser=XXX&IDCall=XXX
Hold call:
http://host:port/call/hold/?Extension=XXX&IDCall=XXX
or
http://host:port/call/hold/?IDUser=XXX&IDCall=XXX
UnHold call:
http://host:port/call/unhold/?Extension=XXX&IDCall=XXX
or
http://host:port/call/unhold/?IDUser=XXX&IDCall=XXX
Blind transfer call:
http://host:port/call/quicktransfer/?Extension=XXX&IDCall=XXX&Number=XXX
or
http://host:port/call/quicktransfer/?IDUser=XXX&IDCall=XXX&Number=XXX
Consult transfer call:
http://host:port/call/starttransfer/?Extension=XXX&IDCall=XXX&Number=XXX
or
http://host:port/call/starttransfer/?IDUser=XXX&IDCall=XXX&Number=XXX
Confirm transfer call:
http://host:port/call/finishtransfer/?Extension=XXX&IDCall=XXX
or
http://host:port/call/finishtransfer/?IDUser=XXX&IDCall=XXX
Send DTMF:
http://host:port/call/senddtmf/?Extension=XXX&IDCall=XXX&Number=XXX
or
http://host:port/call/senddtmf/?IDUser=XXX&IDCall=XXX&Number=XXX
Get CallInfo:
http://host:port/call/getcallinfo/?Extension=XXX&IDCall=XXX
or
http://host:port/call/getcallinfo/?IDUser=XXX&IDCall=XXX
Get ActiveCalls:
http://host:port/call/getactivecalls/?Extension=XXX
or
http://host:port/call/getactivecalls/?IDUser=XXX
Calls management events:
On call state changed:
http://eventsURL/call/OnStateChanged/?IDUser=XXX&Extension=XXX&IDCall=XXX&Number=XXX&State=XXX&Direction=XXX&IDSeance=XXX;
Campaigns management methods:
Set call result:
http://host:port/campaign/setcallresult/?IDUser=XXX&IDCampaign=XXX&IDLaunch=XXX&IDContragent=XXX&Result=XXX
or
http://host:port/campaign/setcallresult/?IDUser=XXX&IDCampaign=XXX&IDLaunch=XXX&IDContragent=XXX&Result=XXX&NumberResult=XXX&Number=XXX
Contragent card closed:
http://host:port/campaign/cardclosed/?IDUser=XXX&IDCampaign=XXX&IDLaunch=XXX&IDContragent=XXX&Cookie=XXX
Repeated contact:
http://host:port/campaign/setrepeatcall/?IDCampaign=XXX&IDLaunch=XXX&IDContragent=XXX&Number=XXX&Time=XXX
Start campaign:
http://host:port/campaign/startcampaign/?IDCampaign=XXX
Stop campaign:
http://host:port/campaign/stopcampaign/?IDCampaign=XXX
Campaigns management events:
On contragent card show
http://eventsURL/campaign/OnCardShow/?IDUser=XXX&IDCampaign=XXX&IDLaunch=XXX&IDContragent=XXX&IDCampaignCall=XXX&Number=XXX&Cookie=XXX&IDSeance=XXX
ACD management methods:
Enter ACD:
http://host:port/acd/enteracd/?IDUser=XXX&IDACD=XXX
Leave ACD:
http://host:port/acd/leaveacd/?IDUser=XXX&IDACD=XXX
Calls statistics methods:
Get connections by seance:
http://host:port/stat/connectionsbyseance/?IDSeance=XXX
http://host:port/stat/connectionsbyseance/?IDSeance=XXX&Recorded=1
http://host:port/stat/connectionsbyseance/?IDSeance=XXX&AllInfo=1
Get connections by call:
http://host:port/stat/connectionsbycall/?IDCall=XXX
http://host:port/stat/connectionsbycall/?IDCall=XXX&Recorded=1
http://host:port/stat/connectionsbycall/?IDCall=XXX&AllInfo=1
Get connections by campaign call:
http://host:port/stat/connectionsbycampaigncall/?IDCampaign=XXX&IDCampaignCall=XXX
http://host:port/stat/connectionsbycampaigncall/?IDCampaign=XXX&IDCampaignCall=XXX&Recorded=1
http://host:port/stat/connectionsbycampaigncall/?IDCampaign=XXX&IDCampaignCall=XXX&AllInfo=1
Get recorded file:
http://host:port/stat/getrecordedfile/?IDConnection=XXX&codec=gsm|pcm|mp3
http://host:port/stat/getrecordedfile/?IDSeance=XXX&codec=gsm|pcm|mp3
Data management methods:
Get data from provider:
http://host:port/data/getdata/?ProviderName=XXX&Param1=XXX&Param2=XXX&...
Launch HTTP-scenario:
http://host:port/data/scenario/?ScenarioName=XXX&Async=1/0&Param1=XXX&Param2=XXX&...
Dat
a management methods:
Get data from provider:
http://host:port/data/getdata/?ProviderName=XXX&Param1=XXX&Param2=XXX&...
Launch HTTP-scenario:
http://host:port/data/scenario/?ScenarioName=XXX&Async=1/0&Param1=XXX&Param2=XXX&...
Управление кампаниями через модуль интеграции
1. Список доступных кампаний
http://host:port/campaign/campaignslist
Возвращает дерево кампаний. Доступные поля:
· ID – идентификатор
· IDParent – идентификатор родительского узла
· NodeType: 1 – папка, 2 – кампания
· Name – наименование
· IDObjectType:
o 40901 Автоинформатор
o 40902 Кампания с подтверждением (preview)
o 40903 Кампания с резервированием (progressive)
o 40904 Кампания с прогнозированием (predictive)
o 40907 Входящая кампания
o 40908 Рассылка SMS
o 40909 Рассылка E-Mail
o 40911 Ручная исходящая кампания
o 40912 Кампания - Входящая почта
· State
o 1 Остановлена
o 2 Остановка…
o 3 Запуск…
o 4 Работает
o 5 Ошибка
2. Получение списка голосовых файлов
http://host:port/campaign/autoinformatorfileslist
Возвращает список голосовых файлов автоинформатора.
3. Запуск и остановка кампании
http://host:port/campaign/startcampaign?IDCampaign=XXXX
http://host:port/campaign/stopcampaign?IDCampaign=XXXX
4. Установка имени файла для автоинформатора
http://host:port/campaign/setautoinformatorfilename/?IDCampaign=XXX&FileName=XXX
Важно: для корректной работы функции для кампании должен быть выбран Универсальный сценарий автоинформатора. Файл должен быть одним из тех, который возвращает функция autoinformatorfileslist. Другими словами, файл должен находиться в папке «Глобальные/Автоинформатор» медиабиблиотеки.
5. Статистика работы кампаний
http://host:port/campaign/getmonitoringinfo
Возвращает информацию по всем запущенным кампаниям. Основные поля:
· IDCampaign – идентификатор кампании
· StartTime – время запуска
· State – состояние
· CACount – количество контрагентов
· CAStateXXX – количество контрагентов по состояниям
· CallStateXXX – количество звонков по состояниям
6. Прослушивание записанных разговоров
В событие показа карточки OnCardShow передается идентификатор сеанса IDSeance. По нему можно получить список соединений (разговоров), по которым велась запись, затем по идентификатору соединения получить звуковой файл:
http://host:port/stat/connectionsbyseance/?IDSeance=XXX&Recorded=1
http://host:port/stat/getrecordedfile/?IDConnection=XXX
Альтернативный вариант – вместо идентификатора сеанса использовать идентификаторы кампании и вызова кампании:
http://host:port/stat/connectionsbycampaigncall/?IDCampaign=XXX&IDCampaignCall=XXX&Recorded=1
http://host:port/stat/getrecordedfile/?IDConnection=XXX
HTTP-запросы для добавления/изменения информации в таблице кампании.
Адрес для выборки данных: http://IP:10080/data/getdata/?ProviderName=WorkProvider_Table_99999999
Выполняется GET-запросом
Адрес для удаления данных: http://IP:10080/data/deletearr/?ProviderName=WorkProvider_Table_99999999
Выполняется POST-запросом
Формат json {"result":{"data":[{"ID":"70"}]}}
Адрес для добавления данных: http://IP:10080/data/insertarr/?ProviderName=WorkProvider_Table_99999999
Выполняется POST-запросом
Формат json {"result":{"data":[{"Номер":"1112211","ID":"71","State":"","Дата":"03.08.2017","ФИО":"Иванов Иван Иванович ","Телефон":"79991234567","GMT":"3","Сумма":"10000"}]}}
Адрес для обновления данных: http://IP:10080/data/updatearr/?ProviderName=WorkProvider_Table_99999999
Выполняется POST-запросом
Формат json {"result":{"data":[{"Номер":"1112211","ID":"71","State":"","Дата":"03.08.2017","ФИО":"Иванов Иван Иванович ","Телефон":"79991234567","GMT":"3","Сумма":"10000"}]}}
IP – IP-адрес сервера Инфинити.
WorkProvider_Table_99999999 - провайдер созданной для кампании таблицы.
Интеграция с сервисом синтеза и распознавания Яндекс (SpeechKit Cloud)
Синтез речи позволяет генерировать любые голосовые сообщения из текста для использования в автоинформаторе и голосовом меню (IVR). Существует возможность выбора мужского или женского голоса, а также передаваемой эмоции (добрый, нейтральный, злой). Модуль распознавания речи позволит клиенту общаться с системой не тональным набором, а голосом. Клиенту достаточно произнести суть звонка, и система обработает его запрос или перенаправит звонок на нужного специалиста.
Модуль приобретается отдельно и проверить его доступность можно в лицензионной информации (Интеграция с Яндекс.Облаком)
Интеграция с CRM и IT-системами
Большая часть наших проектов предусматривает интеграцию call центра Infinity с информационными системами различных классов: 1С, CRM, Service Desk, Collecting и др
Именно поэтому в Infinity CallCenter есть возможность интеграции с продуктами:
1C LuxBase (Контакт) FreshOffice Cloud Битрикс24 Мегаплан Terrasoft (CRM 3.0 и bpm'online) amoCRM КлиК retailCRM Microsoft Excel Microsoft Outlook Класс365 Ramex Real Estate CRM U-ON.Travel МИС Инфоклиника 1С-Рарус:СофтФон RegionSoft CRM Aurus RichCall