Несмотря на долгое молчание продолжаем работать с астериском в полную силу. Молчание наверное связано с тем, что работа затягивает сильнее, и желание поделиться своими знаниями погибает под грузом рутины. Однако буквально месяц назад мы столкнулись с просьбой заказчика, который осознал после установки Askozia, что ему необходима еще и CRM, интегрированная с телефонией. Мы выбрали AmoCRM — система проста, понятна и имеет уже возможность интеграции, реализованную компанией VoxLink. Однако инструкция имеет некоторое количество упущений, которые могут выпить у вас много крови, постараюсь собрать здесь дополнения инструкции, они под катом. Наши клиенты получают после интеграции с Asterisk еще и приятную скидку по промо-коду (её можно получить перейдя по ссылке), не стесняйтесь задавать вопросы здесь и по email igorg@iqtek.ru.

Ссылки по теме:

Общие сведения о работе интеграции AmoCRM:

Интеграция AmoCRM с Asterisk работает в двух направлениях: AmoCRM может считывать данные и инициировать вызовы в Asterisk'е. Из диалплана можно посредством CURL обращаться к AMOCRM чтобы узнать ответственного сотрудника, назначенного клиенту, а так же получить имя звонящего по его номеру.

  1. Со  стороны AmoCRM обращения идут к HTTPS ресурсу, указанному в настройках виджета, и бывают следующих видов:
    • Оригинация вызова. Отправляется из веб-браузера клиента (с IP адреса пользователя) при нажатии в разнообразных местах CRM на номер телефона
    • Проверка статуса линии. Отправляется из веб-браузера клиента (с IP адреса пользователя) раз в 5 секунд. Загружается список текущих разговоров.  Если по назначенному сотруднику телефону идет разговор — появляется всплывающее окно с именем звонящего.
    • Загрузка CDR. Происходит раз в 15 минут с серверов AmoCRM. Вызовы отображаются в разделе «События».
    • Доступ к записи разговора. Происходит переход веб-браузера клиента на скрипт, а затем браузер переадресуется на запись разговора.
    • Мини-Вывод: Доступ к скрипту интеграции нужно разрешить адресам, с которых возможен вход в CRM и IP адресам AmoCRM. Доступ к AMI/AJAM нужно разрешить только адресу с которого к астериску обращается скрипт интеграции.
  2. Со стороны Asterisk/диалплана можно обратиться к API AmoCRM используя CURL. Два вида URL описаны в оригинальной инструкции, возможно существуют какие-то еще виды запросов, они мне пока не известны.

Интеграция выполнена так, что её можно использовать чтобы интегрировать CRM не только с Asterisk и FreePBX, а так же с любым продуктом телефонии, основанным на OpenSource решениях (Askozia, решения использующие FreeSwitch и т.д.).

Корректировки к инструкции:

  1. Скрипт интеграции должен быть доступен по HTTPS протоколу и никак иначе. В инструкции везде указан https протокол, но особо на этом факте внимание не заострено. Иначе веб-браузер не даст JS коду на странице AmoCRM обратиться к вашему http серверу  из-за политики безопасности.
  2. Если на вашем сервере установлен самостоятельно подписанный сертификат, то вам придется вручную добавлять сертификат в браузеры (здесь описано как), где будут работать сотрудники, что проблематично, если сотрудники работают не только с рабочего места в офисе. Либо установите корректный сертификат на свой сервер, это+600р. в год к стоимости CRM в год.
  3. В manager.conf не нужно указывать весь список IP адресов, так как CRM фактически обращается только к скрипту по HTTPS, к самому Asterisk CRM никогда не обращается напрямую.
  4. Поиск имени по CallerID работает здорово, только современные версии Asterisk имеют проблему с функцией CURL (начиная с версии 1.8), которая не позволяет корректно получить строку, содержащую non-ASCII символы. Выходом служит обращение к amocrm из скрипта на своем сервере и добавлении к имени ASCII символа в конец строки. В dialplan asterisk'а этот символ можно в дальнейшем удалить и получить корректное имя. Так же такая надстройка позволяет использовать функцию cid lookup стандартным для FreePBX образом.

Коротко добавления сделанные нами:

  1. Записи разговоров скрыты из публичного доступа.
  2. При оригинации вызова звонящему на экране телефона мы отображаем имя и телефон, куда идет звонок, а не внутренний номер сотрудника и amocrm
  3. Для всех клиентов скрипты интеграции мы размещаем у себя на сервере с применением нашего SSL сертификата
  4. Для получения callerid написана прослойка, позволяющая астериску получить кириллическое имя в корректном формате
  5. Сделан донабор внутренних номеров используя DTMF

Ссылка на описание интеграции: http://iqtek.ru/amocrmpbx

Похожие сообщения:

автор igorg \\ теги: , , , , ,