Pull to refresh

Интеграция Asterisk и SugarCRM

Reading time 3 min
Views 56K

Попробуем это все объединить и сделать себе удобный call-центр.


Изначально стояла задача установить CRM для работы в связке с Asterisk чтобы вести базу клиентов и отслеживать поступающие звонки. Под описание потребностей и по заявленному наличию возможности объединения подходили vTigerCRM и SugarCRM. С vTiger у нас дружба не сложилась — их модуль, что идет в комплекте с движком, весьма небрежно относился к своим обязанностям: пропускал звонки или показывал их с задержкой. В SugarCRM напротив, модуль под названием YAAI KINAMU/abcona Open Asterisk Connector работает как часы. Он не идет в комплекте, его мы установим отдельно. Принцип работы и функционал этих CRM схож, так что мы остановили свой выбор на SugarCRM Community Edition. Есть к этой системе отличный модуль русификации — RUSSIAN RAPIRA LANGUAGE PACK. Но я буду показывать настройку пока без него.

Не буду рассказывать как устанавливать SugarCRM — об этом есть много информации в сети. Сразу перейду к способу интеграции с телефонией.

Качаем модуль YAAI отсюда. Не распаковываем. Устанавливаем через админку CRM: Admin -> Module Loader. Закачиваем, жмем 'Install'. Снова заходим в админку, ищем в самом низу наш модуль, заходим в конфигуратор. Здесь нам понадобятся данные из файла /etc/asterisk/manager.conf нашего сервера Asterisk. Вы можете отредактировать manager.conf и создать нового пользователя AMI или использовать учетную запись admin, сменив пароль по умолчанию (если вы не сделали это еще при установке Asterisk то ваша система подвергается риску). Здесь же можно задать, с какого хоста разрешено подключаться AMI-менеджеру. У меня это 127.0.0.1 так как у нас CRM на этой же машине. Берем эти данные и копируем в настройки модуля YAAI: host, login, port, secret. Осталось вбить SOAP пользователя. Пусть это будет любой пользователь CRM со своим паролем. Остальные настройки можно не трогать вообще.

Так как последняя версия модуля сама не добавляет в профиль пользователя поле для внесения внутреннего телефона, нам придется поработать над интерфейсом самим. Идем в Admin -> Studio. Ищем папочку User, раскрываем список, находим Layouts, Edit View. Открывается редактор формы правки пользователя. Перетаскиваем сперва слева-на-право New Panel и New Row. На них сверху накладываем Asterisk Extensinon, Magic Dial Buttons, Call notification. Сохраняем вид: Save & Deploy.



Надеюсь у вас уже есть пользователь CRM у которого есть свой SIP телефон. Закрепим за его учетной записью его номер. Заходим в Admin -> User Management. Выбираем пользователя, жмем Edit. Сверху видим панель, которую мы создали. В Asterisk Extension вводим внутренний номер пользователя и ставим обе галочки: Magic Dial — для быстрого отзвона по клику иконки возле сохраненного номера (звонит сперва наш аппарат — берем трубку — идет набор исходящего номера) и Call Notification — всплывающее окошко с номером и другими данными звонящего.



Теперь необходимо запустить PHP скрипт, который будет взаимодействовать с Asterisk. Переходим в папка_с_SugarCRM/custom/modules/Asterisk и запускаем:

php asteriskLogger.php


Если все в порядке, то мы увидим сообщение «Waiting for events». Если выдаются ошибки, значит нужно проверить настройки астериск-менеджера и SOAP.

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

1. Качаем файлик asterisk_logger:

wget https://raw.github.com/blak3r/yaai/master/misc/asterisk_logger 


или извлекаем его из zip-архива модуля YAAI в misc/asterisk_logger.
2. Копируем его в /etc/init.d/
3. Выставляем атрибуты:

chmod 755 /etc/init.d/asterisk_logger


4. Открываем его для правки в редакторе.
-редактируем путь где лежит asteriskLogger (обычно это /var/www/html/sugarcrm/custom/modules/Asterisk/asteriskLogger.php)
-выставляем пользователя от которого запущен веб-сервер (обычно это asterisk)
5. Инсталлируем скрипт:
-для Centos, Red Hat, Fedora Core, Suse, и т.д.:

chkconfig --add asterisk_logger


для Debian, Ubuntu и подобных:

update-rc.d -f asterisk_logger start 80 2 3 4 5 . stop 30 0 1 6 .


Проверяем запустив

/etc/init.d/asterisk_logger start


Если он запустился значит всё сделали правильно. Если сыпятся ошибки, то смотрим далее. Вполне вероятно, что в asterisk_logger придется удалить символы переноса строки ^M. Можно сделать это в редакторе встроенном в mc. Также, если у вас CentOS 6.X то придется изменить в нем и строчку с
. /lib/lsb/init-functions 

на
/etc/init.d/functions

На этом всё. Можно звонить и проверять как появляются всплывающие окошки с номерами в CRM. Правда, если номер будет меньше четырех цифр, то он будет отсеян. Настраивается это поведение в модуле YAAI в CRM.



Pls, подкиньте кармы если кому-то пригодилась статья.
Tags:
Hubs:
+16
Comments 36
Comments Comments 36

Articles