“А-а в Африке реки вот такой ширины!
а-а в Африке горы вот такой вышины!”


Эти строки уносят нас в далекое детство и напоминают нам о приключениях Красной шапочки из одноименной сказки. Но поговорим мы сегодня не о художественной части этого произведения, а о том, как мы внедряли Битрикс24 в одну крупную компанию в Южно-Африканской Республике.

Начали мы с выявления потребностей заказчика — до нас, у них было 3 компаний, предоставляющие услуги интеграции CRM систем, но, как мы поняли, 1 компания — просто установила им коробочную версию на их сервер, 2 — что то там делала, но так и не доделала, а третья компания — просто не поняла, чего хочет заказчик.

Заказчик — крупная консалтинговая компания, работающая в сфере помощи при дебиторской задолженности населения. В их call центре работает 60 человек, а весь коллектив составляет порядка 150 человек. Компания, хоть и относительно небольшая, но они помогают обрести финансовую независимость сотням тысяч южноафриканцев.

В основном, компания работает на “холодных” звонках, и для этого раньше они использовали очень много различного софта. Начнем по порядку. Список лидов загружался в Битрикс24, звонки происходили из другого сервиса, и в итоге, менеджеру приходилось по несколько раз отправлять одни и те же списки туда — сюда. В итоге, менеджер call-центра в среднем тратил 3 минуты на добавление и изменение информации во всех системах только на одного лида, т.е., КПД менеджера было низкое.

Посмотрев на то, как устроен их Битрикс24, а именно на серверную часть, мы решили переустановить ее, предварительно сняв бэкап. Проводили мы это действие поздним вечером, из-за разницы в часовых поясах. Сняв резервную копию, мы начали свою работу.

Битрикс24 был установлен на сервере провайдера, а это значит, что заказчику приходилось бы постоянно обращаться к нему, для того, чтобы увеличить объем памяти и изменения других различных характеристик. Для решения этих вопросов, мы установили Битрикс24 на сервер внутри компании, и, как рекомендуют разработчики, установили его на платформу CentOS 7.

Развернули, посмотрели, проверили, протестировали и вуаля — никто и не заметил подмены!

Работоспособность системы была на хорошем уровне, поэтому мы приступили к делам насущным. Так как это крупный call-центр, то нужно было решать вопрос с телефонией. Увеличение КПД сотрудника — это важный аспект, который касается каждого руководителя любой организации. Для телефонии в Битрикс24, мы приняли решение об использовании Asterisk с панелью управления FreePBX.

Чтобы не ошибиться с нужной нам версией Asterisk, мы решили установить его из исходных кодов, версию выбрали тринадцатую, так как она была самой свежей из представленных на рынке на момент установки; а значит, для начала мы установили необходимые зависимости для сборки Asterisk.

Устанавливали мы на Centos 7, и вот

Инструкция по установке данного софта:


1 — Установить обновления системы.

Для корректной работы системы, нужно зайти от имени root и обновить систему. Делается это посредством следующей команды:

[root@centos-7 ~]# yum update

2 — Далее нужно установить требуемые пакеты.

После обновления системы, необходимо установить нужные пакеты и зависимости, посредством команды:

[root@centos-7 ~]# yum install gcc gcc-c++ php-xml php php-mysql php-pear php-mbstring mariadb-devel mariadb-server mariadb sqlite-devel lynx bison gmime-devel psmisc tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel uuid-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim

Установка пакетов

Нужно проверить пакеты, и, если это те, которые необходимы, нажимаем на ‘Y’, и продолжаем действие. В среднем, загрузка занимает порядка 125-130 мб, в зависимости от того, что было установлено ранее. Если все было сделано правильно — то далее появится список установленных пакетов, обновлений и зависимостей.

3 — Настроить MariaDB

MariaDB здесь нужна в обязательном порядке — без нее работа с базами данных будет усложнена в несколько раз.

Для ее установки, нужно запустить вот такую команду:

sudo yum install mariadb-server

Далее запускаем демона

sudo systemctl start mariadb

Настраиваем:

[root@centos-7 ~]# systemctl enable mariadb
[root@centos-7 ~]# systemctl start mariadb
[root@centos-7 ~]# systemctl status mariadb

После этого, нужно:

4 — Установить libjansson

Скачиваем:

[root@centos-7 ~]# wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz

Распаковываем:

[root@centos-7 ~]# tar -zxvf jansson-2.7.tar.gz

Конфигурируем:

[root@centos-7 ~]# cd jansson-2.7
[root@centos-7 ~]# ./configure --prefix=/usr

Конфигурируем

И компилируем настроенный пакет:

[root@centos-7 jansson-2.7]# make clean
[root@centos-7 jansson-2.7]# make & make install
[root@centos-7 jansson-2.7]# ldconfig

Далее мы установили Asterisk и настроили панель управления FreePBX.

Установили мы его из исходных кодов, а именно:

[root@centos-7 ~]# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13.5.0.tar.gz

Установка из исходных кодов

После распаковки архива, нужно сконфигурировать перед сборкой, перейдя в соответствующую папку:

[root@centos-7 ~]# tar -zxvf asterisk-13.5.0.tar.gz
[root@centos-7 ~]# cd asterisk-13.5.0
[root@centos-7 asterisk-13.5.0]# ./configure --libdir=/usr/lib64

image

При правильном выполнении данной операции, мы увидим логотип Asterisk в стиле ASCII Art:
логотип Asterisk в стиле ASCII Art

Далее очень важный момент: сам Asterisk может работать, и работает вполне неплохо, но он неудобен в плане управления, поэтому мы подключили несколько модулей.

1 — Меню настроек

Чтобы в него попасть, нужно выполнить следующую команду:

[root@centos-7 asterisk-13.5.0]# make menuselect

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

Далее нужно было настроить IVR для нашего заказчика. Надо сказать, что заказчик подошел к этому вопросу очень серьезно — прописал текста для каждого пункта меню сам, арендовал студию звукозаписи, и попросил их сделать качественные треки, в общем, заморочился, и молодец!

Вот как мы подключили модуль поддержки .mp3. Чтобы это сделать, необходимо выбрать "format_mp3"
Вот как мы подключили модуль поддержки .mp3

Затем переходим в секцию Core Sound Packages и отмечаем аудио-пакеты, необходимые нам.

Настроили голосовое управление мы хорошо, и, от результата остались в сладком восторге.

После этого мы установили FreePBX.

Для этого нужно немного модифицировать Apache

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
systemctl restart httpd.service

Загружаем и запускаем

cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
tar xfz freepbx-13.0-latest.tgz
rm -f freepbx-13.0-latest.tgz
cd freepbx
./start_asterisk start
./install -n

И готово!

Впрочем, для опытных сисадминов — это не сложная работа.

По идее, практически все мы выполнили, но теперь остался один из главных вопросов — подключение оператора. Было предоставлено 2 провайдера телефонии, и обоих нужно было подключить. Название решили не озвучивать, чтобы не делать скрытую рекламу. Подключили оператора телефонии через SIP и настроили взаимодействие Asterisk и Битрикс24.

Подключить 2 SIP транка кажется не очень сложным заданием, но порой встречаются проблемы — сейчас расскажу, как это делается. При подключении, в веб-интерфейсе, в разделе Trunks во FreePBX, добавляются операторы с данными, которые они предоставили. Обычно это: логин, пароль и адрес сервера. Добавляете эти данные и у вас становится 2, 3, или даже 10 транков в вашей АТС.

Кстати, для быстрого обмена информацией и хорошей коммуникации, рекомендуем вам установить Битрикс24 и Asterisk на одном сервере — в любом случае — это надежнее и быстрее.

А если Вы, так-же как и мы, решите подключить SIP, то не забудьте, что для работы телефонии в Битрикс24, необходимо купить лицензию на SIP коннектор, а это, в свою очередь, ежемесячная оплата.

Как всегда, в бочке мёда всегда должна быть ложка дёгтя. А ложек было 3.

И вот первая — для полноценной работы виджета телефонии в Битрикс24 в отдельных браузерах (например Chrome), необходимо использование протокола HTTPS на портале Битрикс24, иначе браузер не даст разрешение использовать микрофон и наушники. Как следствие звонки не будут работать.

Задача есть — есть решение. Да многие могут сейчас сказать, что Битрикс24 всегда работает в HTTPS, а вот и нет — для коробочной версии нужно устанавливать SSL-сертификат, что мы и сделали. Перепроверили, и все заработало!

Все начало работать, процесс пошел и мы заметили очень интересную особенность — время на работу с карточкой CRM уменьшилось в разы, так как менеджеру более не приходилось переключаться между различными программами. Порой, оно не тратилось вообще, компенсируя временем разговора с лидом. Ну, можем сказать что КПД менеджера вырос в разы!

Но не все так гладко. И вот она — вторая ложка дегтя.

Работа шла хорошо, но модуль SIP-коннектор (с помощью которого осуществляется интеграция телефонии) работал без покупки лицензии, и, впоследствии, телефония перестала работать. Мы предупреждали, что нужно было заранее покупать лицензию. Так вот еще один наш совет:

— необходимо приобрести лицензию сразу после тестирования, иначе может понадобиться время для поиска проблемы с неработающей телефонией.

Время шло, проект заработал хорошо и ничего не предвещало беды. Все радовались (по крайней мере заказчик) жаркому солнцу Африки и крикам слонов в сафари-парке. Но это было затишье перед бурей.

Заказчик решил сам сменить провайдера, ничего нам при этом не сказав. Клиент всегда прав, но не в этом случае. Тут посыпался шквал криков о помощи! Не работает!!!

Стали искать причину. Грешили на Битрикс24, потом на Asterisk, позже на сам сервер — провели полную диагностику оборудования. Но, ничего не помогло. Знаете, люблю я своеобразных сисадминов в самих компаниях — мы не хотим пролить и каплю тени на качество их знаний и опыт работы, но, если Вы хотите что-то поменять в системе — то об этом должны знать все, кто ее настраивал, “допиливал” и работал над ней. О смене провайдера нам не сообщили. Причем, сбой произошел через день после инцидента — естественно, что возник конфликт параметров. На поиск причины и ее выяснение ушло приличное количество рабочих часов наших сотрудников. Причем заказчик до последнего был Зоей Космодемьянской и не хотел нам говорить о истинных причин проблемы.

Так вот, выяснилось, что некоторые провайдеры SIP телефонии используют привязку к ip-адресу подключения. Поэтому, при переносе сервера телефонии на другой сервер, может возникнуть проблема в отсутствии регистрации SIP транка. И вот еще один наш совет — уточняйте информацию о таком ограничении заранее у оператора связи.

Теперь, что касается самой платформы Битрикс24.


И вот вам еще один бонус использования Битрикс24. Всем известно, что Битрикс24 это большой набор инструментов для ведения бизнеса. В самом начале, пользователи работали только с модулями CRM, задачами, проектами и группами. Но, по истечении некоторого времени, пользователей становилось все больше и больше, и из рабочего пространства Битрикс24 превратился в действующую корпоративную внутреннюю социальную сеть!

Недавно участились запросы, касаемые скорости работы Битрикс24. Использовали они raid-массив Dell PowerEdge T20 со стандартными конфигурациями. Мы проверили работоспособность — в принципе, скорость обработки данных входила в минимальные требования для этого программного обеспечения, но это только цифры. По факту, скорость работы всей системы снизилась. Начали искать решение.

Посмотрев на то, как они начали использовать Битрикс24, мы, откровенно говоря, немного удивились — если посмотреть на Живую ленту, то можно заметить, что она превратилась в ленту Facebook — стало много интересных картинок, смешных историй, постов и так далее. Чат, как общий, так и личный, стал напоминать Telegram, WhatsApp или Facebook Messenger — очень много сообщений на абсолютно разные темы. То же касается и звонков внутри Битрикс24 — люди стали звонить друг другу не прибегаю к услугам обычного мобильного или стационарного телефона.

Все это, конечно, отразилось на скорости обработки данных, так как здесь использовалась коробочная версия продукта Битрикс24 — Энтерпрайз. При просмотре данных о работоспособности и аналитики сайта, мы заметили, что количество запросов SQL выросло на 70%, скорость записи данных SQL осталось той же. Они использовали 2 HDD по 1 Тб на 7200 об, 16 Гб ОЗУ и Xeon 3.0. Т.к. процессор используется хороший, мы не стали его трогать. Битрикс24 требует 8Гб ОЗУ, а Asterisk — 2, и поэтому, увеличивать оперативную память в принципе не требовалось. Тем более, что хромал только один параметр — скорость записи базы данных.

Посмотрев кучу различного видео о работе серверов, пришли к выводу, что надо добавить 1 SSD на 250 Гб в тестовом режиме. Этот SSD хранил в себе систему, Битрикс24 и Asterisk, а все файлы, которые были загружены пользователями, и файлы Asterisk мы оставили на HDD. Результат — скорость записи увеличилась, соответственно, все системы начали работать еще лучше. По этой причине рекомендуем — системные файлы сразу устанавливать на SSD — да, это будет дороже, но Ваши нервы, как мне кажется, намного важнее просиженных без дела часов ожидания работы системы. И это касается не только Битрикс24, или Asterisk — это касается любого софта, который может быть установлен на сервер.

Во время переноса информации, мы провели небольшое тестирование HDD и SSD, и вот таблица с результатами:

Таблица с результатами тестирования SSD и HDD

Данные были обнадеживающими, и мы заменили все. И действительно — система заработала как часы! Сейчас же, наши южноафриканские друзья не испытывают каких-либо проблем с Битрикс24 и Asterisk

А теперь главный совет — не надо бояться ходить в Африку гулять — крокодилы не настолько страшны, как их описывают.

Комментарии (17)


  1. ilyaplot
    03.11.2017 11:49

    Если убрать гео составляющую из поста, получится инструкция по установке софта. Полезна ли она на хабре? Нет.


    1. IT-Sputnik Автор
      03.11.2017 13:35
      -1

      3 наших сотрудника потратили 2 дня на поиск готового решения в интернете, все было близко, но не то — для многих моментов нам приходилось искать другой подход, так что, я думаю, что статья полезна для тех кто не хочет тратить время в пустую и изобретать велосипед


      1. maxru
        03.11.2017 13:43
        +2

        Плохие сотрудники, увольняйте.


        1. IT-Sputnik Автор
          03.11.2017 14:27

          Спасибо за совет.


      1. ilyaplot
        03.11.2017 14:02

        Такая инструкция и даром не нужна, извините, конечно.
        Я имел опыт работы с FreePBX.
        asterisk-13.5.0 Date: 2015-08-07
        При чем, в более новой версии ПО были огромные дыры, позволяющие совершать злоумышленникам множество автоматических звонков Чад и Конго…
        Про отношение WEB разработчиков к Битриксу я вообще молчу.

        P.S. Проблемы с безопасностью были в FreePBX, но у вас свежая версия, мои аргументы а данной ситуации несправедливы.


        1. IT-Sputnik Автор
          07.11.2017 11:11

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

          Мы хотели показать что это не так уж и сложно если есть хоть какой то опыт с Линуксом


  1. ildarz
    03.11.2017 12:28

    Посмотрев кучу различного видео о работе серверов, пришли к выводу, что надо добавить 1 SSD

    А без кучи видео, просто на основе общеизвестных знаний о соответствующих технологиях, тут никак? :)


    По этой причине рекомендуем — системные файлы сразу устанавливать на SSD — да, это будет дороже, но Ваши нервы, как мне кажется, намного важнее просиженных без дела часов ожидания работы системы. И это касается не только Битрикс24, или Asterisk — это касается любого софта, который может быть установлен на сервер.

    А вот это абсолютно дурацкая рекомендация. Именно СИСТЕМНЫЕ файлы на SSD имеет смысл держать на пользовательском компе, где пользователю для комфорта важен быстрый старт системы и приложений и быстрый отклик интерфейса. На сервере же, как правило, не столь важно, будут ли ОС и сервисы стартовать 10 сек или минуту — один раз стартовали, месяцами работаем. А SSD надо ставить в первую очередь под "горячие" данные, к которым идут наиболее частные обращения в режиме случайного чтения и случайной записи (и это никак не системные файлы).


    1. ilyaplot
      03.11.2017 14:06

      Очень интересно, а бэкапы есть? Что будет, когда SSD умрет?
      Или Африка слишком далеко, что бы ответственно подойти к вопросу?


      1. IT-Sputnik Автор
        07.11.2017 11:22

        Сервер зеркальный. Если вдруг (не дай Бог) что-то произойдет, то автоматически запустится зеркало.


    1. IT-Sputnik Автор
      07.11.2017 11:47

      Дело в том, что мы установили все это на SSD для следующего:

      1 — система: для быстрого первоначального запуска и (в случаях крайней необходимости) при перезагрузке — быстрого старта системы и приложений.

      2 — БД — в принципе, итак понятно, что скорость записи/чтения на SSD намного выше чем на HDD.


  1. aszhitarev
    03.11.2017 14:32

    А при чём тут Африка? Будете ставить клон решения в Австралии будет ещё один пост?


    1. IT-Sputnik Автор
      07.11.2017 11:36

      Дело в том, что в Африке возникали трудности. При работе с Австралией, у нас их не возникло, поэтому, поста об этом не будет


      1. IT-Sputnik Автор
        07.11.2017 11:59

        Проблема с Африкой была в том, что почему-то Битрикс там нельзя было синтегрировать с Астериск, телефония не работала и никто не знал почему. Потом оказалось что это из-за того что местные провайдеры блокировали любые IP не из Южной Африки, а при звонках Битрикс ссылался на Россию, провайдеры интернетта блокировал эту ссылку и из-за этого телефония не работала! Клиент поменял провайдера и телефония заработала. В Австралии были другие проблемы и своя специфика.


  1. Mirdin
    03.11.2017 14:41

    На сколько надёжна ваша система? У вас нет ни какого резервирования сервера. А базу данных вы убрали с raid массива (надеюсь там зеркало) на одиночный диск.
    Из статьи выходит что это основной рабочий инструмент компании на котором завязаны ключевые бизнес-процессы.


  1. rule
    04.11.2017 10:14

    Слушайте, ваши шутки про крокодилов, слонов и жаркое солнце ужасны. Перестаньте пожалуйста.

    Ну и главный вопрос — эксперимент то где?


    1. IT-Sputnik Автор
      07.11.2017 11:41

      Дело в том, что в Африке Битрикс24 не представлен практически никак. Там используют другие CRM, но, из-за дешевизны Битрикс24, даже при условии разработки дополнительного функционала, которого нет в Б24, люди постепенно переходят на него. Мы, практически, первые, кто открыл Африке Б24.


  1. calgary
    07.11.2017 11:39

    Заказчик — крупная консалтинговая компания, работающая в сфере помощи при дебиторской задолженности населения