Типовой задачей при автоматизации бизнеса малых предприятий является выбор технических средств для внутренних контактов и взаимодействия с клиентами. Часто компании выбирают надежное и относительно недорогое решение по телефонии на базе Cisco CME, как базу для организации коммуникаций. Как известно, интеграция систем телефонии и систем CRM (Customer Relationship Management) дает синергический эффект, поэтому для повышения качества обслуживания клиентов наша компания предлагает решение по интеграции Cisco CME и SugarCRM.

Мы стремимся оправдать и превзойти ожидания наших клиентов. Именно поэтому было решено создать продукт интеграции Cisco CME и SuagrCRM, как недорогого, но достаточно мощного инструмента для автоматизации бизнес процессов.

Для решения данной задачи необходимо было связать API (Application Programming Interface) Cisco CME и SugarCRM. На сайте наших партнеров Cisco Systems предлагается для этой цели использовать UC Express Services Interface. Этот интерфейс позволяет организовать CTI (Computer Telephony Integration) интеграцию со сторонними приложениями для мониторинга событий и управления CME телефонией.

Схема взаимодействия выглядит следующим образом:

UCSXI

Из схемы видно, что для конфигурации (Provisioning) используется протокол HTTP/S, а для CTI CSTA протокол SIP. В руководстве по SDK сказано, что SDK применяет CSTA/TR87 в имплементации CTI промышленного стандарта ECMA269 основанного на SIP протоколе. Суть этого стандарта состоит в реализации CTI на базе XML вложенного в SIP сообщения (SIP INFO messages).

SDK представляет из себя набор Java классов и анонсирует следующий функционал CTI:

• Совершение вызова

• Ответ вызова

• Отбой

• Удержание вызова

• Снятие с удержания

• Отклонение вызова

• Перевод вызова за один шаг ("Слепой перевод")

• Перевод вызова в два шага (Поговорить с человеком прежде чем перевести на него вызов)

• Парковка вызова

• Подхват вызова

• Установка/снятие "Не беспокоить"

• Мониторинг статусов состояния трубки поднята/опущена для ephone-dn

• XSI туннелирование (Отправка на Cisco IP Phone XML объектов)

По большому счету это большая часть стандартного функционала любой АТС. Что же мы можем получить при реализации данных функций в CRM?

• Всплывающая карточка клиента с номером телефона и информацией о нем

• Управление телефоном с компьютера (прием, отбой, перевод, подхват вызова)

• Реализация кампаний по исходящему обзвону

• и др. (ограничено фантазией заказчика)

Теперь, когда мы определились с задачей и целями, можно приступать к развертыванию SDK. Для этого нам потребуется Java Platform, Standard Edition, version 6 или новее и сам SDK который можно скачать на сайте Cisco. Нами в частности был использован пакет UCXSI SDK 1.0.1.

Так как управление и мониторинг происходи по протоколу SIP, то приложение взаимодействует с CME по схеме:CME SDK SIP REGISTER

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

CMEAbstractAddress myAddress = provider.createAddress(“1001”,CMEAbstractAddress.Type.USER);

Забегая вперед, в конфигурации Cisco он выглядит следующим образом:

!

ephone-dn 1

number 1001

cti watch

!

Параметр cti watch как раз говорит о том, что dn участвует в CTI взаимодействии.

 

Для работы интерфейса необходимо создать конфигурацию на роутере:

! Defining XML Transport Parameters

ip http server

ixi transport http

   response size 64

   no shutdown

   request outstanding 1

  request timeout 60

! ! Defining XML Application Parameters

ixi application cme

  no shutdown

! Defining Authentication for XML Access

telephony-service

  xml user cisco password cisco 15

Таким образом, запустив приложение пример UCXSISampleApp.java из SDK мы сразу можем протестировать CTI для CME.

После успешных тестов, приступаем непосредственно к программированию интеграции.

Получив событие от SDK (к примеру поступивший вызов), мы можем записать его в БД (Базу Данных) SugarCRM. Далее обработчик событий SugarCRM получивший это событие просматривает БД клиентов, привязывает найденную информацию к вызову и выводит  на экран оператора в виде всплывающего окна. Также в интерфейсе оператора SugarCRM можно разместить кнопки управления телефонией (поднять/положить трубку, сделать звонок, перевести вызов и прочее).

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

sugar-in