Типовой задачей при автоматизации бизнеса малых предприятий является выбор технических средств для внутренних контактов и взаимодействия с клиентами. Часто компании выбирают надежное и относительно недорогое решение по телефонии на базе 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 телефонией.
Схема взаимодействия выглядит следующим образом:
Из схемы видно, что для конфигурации (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 приложение должно пользоваться абстрактными телефонами которые можно получить, используя соответствующий класс:
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 с ПК).