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