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

Интеграция телефонии на базе Asterisk и CRM-системы "amoCRM" 
amoCRM
amoCRM - SaaS веб-сервис для контроля ваших продаж и сбора подробной статистики результативности менеджеров.  Продукт достаточно молодой, но уже имеет огромную армию корпоративных пользователей. 
Система уникальна и ориентирована как на российских, так и зарубежных пользователей.
По статистике, вы теряете почти половину своих возможностей продаж, если не используете CRM систему. amoCRM - это простой и интуитивно понятный web-интерфейс, который сам напомнит о том, чтобы позвонить пользователю и завершить сделку
AmoCRM обладает огромным потенциалом синхронизации с внешними системами и продуктами третьих лиц. Разработчикам доступен REST API, либо PHP /JS. Более того, множество виджетов на самые популярные сервисы уже предустановлены. 

Например, такие как: Интеграция с 1С, MailChimp, Dropbox, телефонными станциями Oktell, Sipuni и Asterisk

Компания “АТС Дизайн” имеет огромный опыт в интеграции телефонии с различными ERP и CRM системами. Мы просто не могли обойти стороной такое качественное и успешное решение как amoCRM.
Виджет для взаимодействия с Asterisk был написан на PHP непосредственно разработчиками CRM системы. 
После того, как вы получили доступ в amoCRM - системному администратору необходимо в меню “Настройки-Интеграции” активировать виджет Asterisk.

Архив со скриптом и инструкцией доступен по ссылке - https://developers.amocrm.ru/download/asterisk.zip . Скрипт необходимо сохранить на сервере с Asterisk и сделать его доступным с вашего локального компьютера. Например по адресу https://mydomain.ru/amocrm.php (HTTPS подключение крайне желательно, но не обязательно.
В самом веб-интерфейсе системы также необходимо прописать соответствие внутренних номеров на Asterisk к корпоративным пользователям amoCRM, затем указать корректный путь и логин / пароль к AJAM подключению.
Технические требования для функционирования PHP скрипта:
●  Asterisk с поддержкой технологии AJAM2 или AMI;
●  веб-сервер;
●  PHP с поддержкой json_encode (5.2+ или 5.1+PECL_json);
●  PHP с расширением PDO с модулем соответствующего бэкэнда CDR3;
●  Asterisk, собранный с модулем Curl4 . 
Таблица №1: Описание настроек скрипта коммуникации

Параметр

Значение

Примечания

AC_HOST

IP/hostname сервера AMI/AJAM


AC_PORT

Порт сервера AMI/AJAM


AC_PREFIX

Префикс при использовании AJAM

Если не объявлен, используется AMI

AC_DB_CS

Настройки подключения к БД

Примеры приведены в табл.2

AC_DB_UNAME, AC_DB_UPASS

логин и пароль для БД

см. табл. 2

AC_TIMEOUT


[сек] Таймаут при использовании AMI


AC_RECORD_PATH

Путь к файлам записей разговоров

Если не определён или пуст, записи разговоров не отдаются. символ # заменяется на имя файла

Таблица №2: Краткое описание настроек PDO

Драйвер

L/P

Примеры Connection string

PDO_ODBC

Нет

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=X;PORT=X;DATABASE=X;PROTOCOL=TCPIP;UID=X;PWD=X; odbc:DRIVER=FreeTDS;SERVERNAME=X;DATABASE=X;APP=X;UID=X;

PDO_PGSQL

Нет

pgsql:host=localhost;port=5432;dbname=testdb;user=uname;password=mypass

PDO_SQLITE

Да

sqlite:/opt/databases/mydb.sq3 sqlite2:/opt/databases/mydb.sq2

PDO_MYSQL

Да

mysql:host=localhost;port=3307;dbname=testdb mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

PDO_DBLIB

Нет

mssql:host=localhost;dbname=testdb sybase:host=localhost;dbname=testdb dblib:host=localhost;dbname=testdb

Скопируйте скрипт на сервер в доступную по HTTP папку и задайте параметры AC_HOST AC_PORT AC_PREFIX
Пример: Для AJAM6 (рекомендовано) localhost 8088 /asterisk/
Для AMI: localhost 5038
Задайте параметры подключения к БД. AC_DB_CS и (если необходимо)
Предположим скрипт доступен по адресу http://sip.loc/amocrm.php
Откройте в браузере (или консольных клиентах ссылки вида): http://sip.loc/amocrm.php?_login=<login>&_secret=<pwd>&_action=status http://sip.loc/amocrm.php?_login=<login>&_secret=<pwd>&_action=test_cdr
где <login> и <pwd> логин и пароль пользователя ajam или другого теxнического пользователя Убедитесь, что по указанным ссылкам вы не получаете ошибок авторизации или подключения к БД, иначе проверьте параметры подключения. 
Модификация диалплана
! Данная модификация должна проводится специалистами по Asterisk, приведенные модификации не учитывают индивидуальных особенностей вашей конкретной АТС.
; пример трнсфера в направлении “умной переадресацйии” ; 151 ­­ виртуальный добавочный
; DEFEXT ­­ добавочный по­умолчанию.
; <login> ­­ логин в amocrm
; <hash> ­­ API ключ amocrm
; <account> ­­ ваш аккаунт в amocrm
[amocrmtransfer]
exten => 151,1,Set(DEFEXT=101);
exten => 151,n,Set(TOEXT=${CURL(https://<account>.amocrm.ru:443/private/acceptors/asterisk_new/?redirect=Y&number= ${CALLERID(number)}&USER_LOGIN=<login>&USER_HASH=<hash>)})
exten => 151,n,GotoIf($[${TOEXT}]?from­internal,${TOEXT},1:from­trunk,${DEFEXT},1)
; пример установки callerID, полученного от amocrm ; avtogenerated freepbx
[cidlookup]
include => cidlookup­custom
exten => cidlookup_2,1,Set(CURLOPT(httptimeout)=7)
exten => cidlookup_2,n,Set(CALLERID(name)=${CURL(https://<account>.amocrm.ru/private/acceptors/asterisk_new/?numbe r=${CALLERID(number)}&USER_LOGIN=<login>&USER_HASH=<hash>)})
exten => cidlookup_2,n,Return()
exten => cidlookup_return,1,ExecIf($["${DB(cidname/${CALLERID(num)})}" != ""]?Set(CALLERID(name)=${DB(cidname/${CALLERID(num)})}))
exten => cidlookup_return,n,Return() 

На этом все, подключение amoCRM к Asterisk завершено, и теперь вы можете видеть карточку входящих звонков в браузере, либо осуществлять звонки мышкой непосредственно из системы.
По вопросам подключения CRM вы можете обратиться к нашим специалистам по телефону 8 (495) 23-23-956, либо оставить заявку на info@pbxware.ru