Elastix: гибридное решение для быстрого и простого развертывания voip-телефонии

Elastix and VoIP

If you are looking for a phone system based on open standards, but characterized by ease of use and, moreover, running on all major operating systems (Windows, Linux, MacOS), then Elastix is the perfect Asterisk alternative. It is powered by 3CX and by using the open standard SIP keeps users in control of their IP-enabled devices such as phones, gateways and trunks and not be forced into same vendor devices, same provider or proprietary models.

You can obtain an easy-to-use intuitive phone system that fits perfectly into your existing IT structure due to the fact that it can be deployed On-Premise or Cloud, Linux or Windows, virtualized or as a PBX Appliance. Elastix also has numerous features such as integration with existing CRM systems, WebRTC based conferencing, desktop clients, smartphone apps and unified communications. The combination of all these features in a user friendly environment will free up a lot of resources in your company.

  • No specific Asterisk / telecommunications training required
  • Installation both on Windows or Linux
  • Deployed anywhere: in the cloud or on-premise (MiniPC or Virtualized)
  • 100% software-based – easy to set up and manage
  • Hotel features and PMS integration
  • SIP standard: Use any IP Phones, Gateways and Trunks SIP based
  • Smartphone apps included for free: Android and iOS
  • CRM integration
  • Free and commercial licences
  • Desktop clients: web, Windows and Mac
  • Unified Communications ready: chat, presence, voicemail and fax to email, web conferincing
  • Superior Call Center features and Call Flow Designer
  • Zero Admin

Asterisk Disadvantages

Just imagine you want to build a house: you order all building materials to compose them exactly as you want it. The advantage is certainly that you have a free hand in deciding where to place which stone and determined to learn stuff on the go. Asterisk makes exactly that. It provides you with the stones, cement and bricks, leaving you with the building itself, as anyone who has ever built anything, knows it is not unusual coming across unforeseen obstacles. Sometimes the own skills are not as mature as it had been assumed or the occurrence of a special case delayed the progress of the project. It is often time-consuming and expensive to fix these problems. Suddenly, the programming and maintenance of the telephone system binds key resources in the company.

Elastix как платформа VoIP коммуникаций

Платформа Elastix программно не ограничивает число абонентов, и на недорогом сервере (Intel Core i3 3.2GHz/4Gb) может обеспечить около 500 одновременных разговоров, что при офисной нагрузке означает 1000-5000 абонентов (http://habrahabr.ru/post/145620/). Увеличить число абонентов можно либо выбором более производительного сервера, либо разделением абонентов между несколькими серверами.

Elastix использует в своей основе телекоммуникационный сервер Asterisk. Asterisk — самый распространенный и функциональный бесплатный VoIP-сервер. Основное удобство выбора Elastix простоте установки и использования. Все компоненты платформы интегрированы, «из коробки» пользователь получает готовую платформу, поддерживающую унифицированные коммуникации (Unified Communications). В комплект Elastix 2.5 (при обновлении до текущей версии) входят:

  • IP-АТС Asterisk v11.13
  • web-интерфейс Elastix 2.5
  • встроенный доступ к магазину платных и бесплатных приложений для Elastix
  • web-интерфейс FreePBX 2.11.0-19
  • биллинговый модуль A2Billing
  • Факс-сервер HylaFax 4.3.11
  • Jabber чат-сервер OpenFire 3.7.1
  • CRM-системы vTiger CRM 5.2.1, Sugar CRM 5.2
  • Мультидоменный сервер электронной почты Postfix с web-интерфейсом RoundCube и антиспам-модулем SpamAssassin
  • web-сервер Apache 2.2.3
  • сервер баз данных mySQL 5.0

How to Get Support for Open Source PBX Installations?

Perhaps one of the greatest benefits of choosing an open source software solution is that there is typically a large community that is always there to help. So before you purchase some paid support hours, try getting help from the Elastix or FreePBX communities. These are effectively forums with thousands of posts and typically have hundreds of users online at any point in time. So if your question has not already been answered in the community (do a quick search), then you will likely be pleasantly surprised at how quickly someone (who is likely extremely knowledgable) will post a response.

The support communities can be found at the following locations:

Articles, WiKi’s and videos are also a great source of information.

История проекта

Elastix создан и поддерживается PaloSanto Solutions из Эквадора. Проект был обнародован впервые в марте . Это был не полный дистрибутив, а веб-интерфейс для CDR-отчётности

И он был таковым до конца декабря 2006 года, когда Elastix был выпущен в качестве Linux-дистрибутива, включавшего Asterisk и Zaptel, а также ряд других пакетов, которые легко управляются через простой веб-интерфейс, что привлекло внимание сообщества. По статистике sourceforge.net дистрибутив скачан более миллиона раз

В новых версиях дистрибутива был добавлен модуль Колл-центра, который позволяет обмениваться данными с агентом через собственный протокол ECCP (Elastix Call Center Protocol). Протокол также реализован на открытом исходном коде, и позволяет обеспечивать связь с дополнительным программным обеспечением, написанным другими разработчиками под Elastix.

Одним из важных событий в жизни Elasitx стал запуск сервиса дополнений addons.elastix.org — сертифицированные дополнения для Elastix от сторонних разработчиков. Это решение позволяет без труда устанавливать различные дополнения через WEB-интерфейс администратора. Каждый модуль проверяется на совместимость и стабильную работу командой PaloSanto Solutions.

Elastix распространяется в виде готовых ISO дистрибутивов для архитектуры X86 и X64. Базировался на операционной системе CentOS, которая имеет бинарную совместимость с Red Hat Enterprise Linux и доступен для скачивания с серверов sourceforge.net

Популярность дистрибутива Elastix растёт с момента его первого выпуска, и до сих пор. Проект был номинирован два года подряд (в 2007 и 2008), как финалист SourceForge Community Choice Awards, и в 2012 как проект месяца SF.net

Hardware and Software System Requirements for Elastix and FreePBX

Both of these software packages specify similar hardware and software requirements for the server, the operating system and the Asterisk version. While you can get away with a somewhat low end system, it is always worth considering what you will need to scale as your requirements grow.

Switch Requirement Elastix FreePBX
Processor Dual Core i5 Class (Quad core Xeon or greater preferred)
RAM 2GB 2GB (4GB + preferred)
Storage 10GB 100GB (250GB + preferred)
Operating System Linux based, 32 or 64 bit Linux based, 32 or 64 bit
Asterisk Version Asterisk 11 Asterisk 11 or 13

Table 1: System Requirements

Немного о безопасности

То, что на мой взгляд обязательно надо сделать на сервере с установленной телефонией:

первое и самое лучшее решение — не пользоваться web интерфейсом и заниматься настройкой телефонии напрямую в конфигурационных файлах asterisk и сервера.

Да, такой вариант намного более сложный для новичков, но убрав GUI мы убираем и сразу множество возможных лазеек в безопасности. Еще одним бонусом данного решения является возможность использовать самую последнюю версию asterisk и сервера, так как многие готовые сборки поставляются с довольно старым ПО.

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

включение на сервере Auth basic аутентификации

Использование простейшей аутентификации позволит сильно повысить безопасность web интерфейсов так как перед любым обращением к серверу злоумышленнику необходимо будет преодолеть дополнительную ступень защиты. Однако, данный метод защиты хорошо обходится брутфорсом, поэтому обязательно следует выбирать сложный многосимвольный пароль состоящий как из букв так и цифр.

Именно благодаря установки пароля на свой сервер мне удалось перекрыть доступ злоумышленнику. Но узнал я об это только неделю спустя.

Установить пароль очень просто, для начала нам надо создать файл с набором логинов и паролей. Для этого служит команда:

htpasswd -nbm myName myPassword >> /etc/httpd.passwd

Далее необходимо включить auth basic аутентификацию для нашего веб интерфейса, а в качестве файла паролей подключить наш созданный файл.

<Directory "/var/www/html">
 # Redirect administration interface to https
 RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

 AuthType Basic
 AuthName "Access denied"
 AuthUserFile /etc/httpd.passwd
 require valid-user
</Directory>

Из данного примера видно, что наш web сервер Elastix настроен на папку /var/www/html

После этих манипуляций перезагружаем web сервер и при попытке входа видим дополнительное окно для логина.

настройка модуля fail2ban на сервере

Данный модуль достаточно популярен и позволяет блокировать через фаервол соединения на основе данных из логов. В нашем случае при нескольких неправильных попытках подключения к серверу asterisk или sshd. Этот пункт указан не первым, но сделать это следует в первую очередь, причем правила лучше выбрать более строгие. Например, блокировку на сутки при 4-5 попытках входа.

Отслеживать активность подключений можно анализируя лог asterisk:

tail -f /var/log/asterisk/full

Опция f позволяет вести онлайн мониторинг

Еще одним вариантом защиты является перенос web интерфейса с домена по умолчанию на неизвестный другим пользователям

Например, если ваш сервер имеет хост sip.asterisk.hack, то по этому адресу есть смысл отдавать заглушку или вообще ничего, а web интерфейс перенести на адрес secure.asterisk.hack. Продвинутый злоумышленник все равно найдет и этот адрес, но дополнительные трудности ему это создаст. Так же мы можем таким образом обрезать некоторые боты.

отключение не используемых модулей

В моем случае взлом по видимому был произведен через модуль recordings. Далее злоумышленник много игрался с модулем a2billing, однако, я им не пользовался и удалив его мог бы повысить безопасность системы.

разрешить подключение к серверу только с доверительных ip 

Если мы точно знаем ip адреса (или хотябы подсети) которые будут пользоваться нашим сервером, то их точно стоит включить в белый список нашего фаервола, а остальных банить на подходе.

Comparison of Elastix and FreePBX Products and Services

Besides free open source PBX software, both of these companies offer a number of fee based products and services.

Elastix Products and Services

  • IP PBX Servers — Elastix offers a choice of 3 different custom servers that vary in features depending on your calling and connectivity needs. The microUCS supports up to 15 extensions and up to 4 concurrent calls. The miniUCS supports up to 50 extensions and up to 32 concurrent calls in addition to supporting up to 8 internal analog ports and 1 E1/T1 port. The highest end server is the NLX4000 which supports up to 300 extensions and up to 120 concurrent calls in addition to supporting up to 48 internal analog ports and up to 4 E1/T1 ports.
  • IP Phones — 3 different phone models are available from Elastix. These are the 1 line LXP150, the 2 line LXP180 and the 3 line LXP250.
  • GSM Gateways — The EGW200 GSM gateway allows you to connect your PBX network to the cellular GSM network. A good solution if there is no other way to connect to the Internet.
  • SIP Firewall — SIP packet inspection for up to 50 concurrent calls.
  • Monitoring Services — Designed specifically for Elastix servers, the monitoring service comes in 3 flavors at 3 different price points for varying levels of features. The Basic plan costs $9.99 per month (or $99 per year), the Premium plan costs $19.99 per month (or $199 per year) and the Enterprise plan costs $119.99 per month (or $1,200 per year).
  • Training — Basic, Intermediate, Professional and Expert level courses are available which also allow participants to gain different levels of certification. These classes are also available online and prices range from $300 to $700 per class.
  • Paid Support — This is available either on-demand or on a subscription basis. The on-demand paid support comes in bundles of either 1, 5 or 10 hours at costs of $140, $663 and $1,256 so the larger the bundle, the smaller the effective hourly cost. These rates are for 24×7 support and there is also an option to purchase slightly cheaper bundles that only provide 8×5 support. Annual support subscriptions come in either Standard ($1,165 per year) or Advanced ($2,329 per year).
  • Custom Development — If you need help customizing your installation, setup or configuration, development hours are available for purchase at $60 per hour.
  • Rebranding — Hardware, Software and support rebrands are available at a cost of $3,000 per version or $6,000 annually if you want to continue to update. This is an important (yet expensive) option if you need a branded GUI for admin and users.

FreePBX Products and Services

  • FreePBX Appliances — These are servers that are custom built to run FreePBX software. They are simply called FreePBX Phone System 10, 60, 100, 300, 500 and 1000 where the model number refers to the maximum number of users that each device can support. Prices range from $495 for the 10 to $5,995 for the 1000.
  • Sangoma Phones — 3 IP phone models are available from Sangoma which are custom designed to work with FreePBX. These are the 2 line, 10/100 Ethernet S300, the 4 line 10/100/1000 Ethernet, color screen S500 and the 6 line, 10/100/1000 Ethernet, color screen S700.
  • SIP Station SIP Trunks — This is simply an unlimited SIP trunk that costs $24.99 per month for each trunk. Note that one trunk can handle one call at a time.
  • Hosted FreePBX — If you prefer to run your PBX in the cloud, then this may be a good option. Three plans are available that offer varying levels of functionality starting at $34.99 per month for the Aluminum plan, $39.99 per month for the Iron plan and $44.99 per month for the Steel plan.
  • Training — Beginner and advanced training classes are available at varying times during the year.
  • Paid Support — Current rates are $395 for 2 hours, $695 for 5 hours, $1,350 for 10 hours or you can contact sales for pricing if you have a custom job.
  • Custom OEM Program — For a one time setup fee and an ongoing annual fee, you can customize your GUI skin and headers.
  • FaxStation — Replaces an ATA to connect directly to your fax machine and provide reliable T.38 faxing. Complete fax service that comes with a DID for a low monthly fee.

IP-АТС на основе Asterisk или 3CX

  • Запись телефонных разговоров
  • Конференц-комнаты с использованием виртуальных номеров
  • Голосовая почта и пересылка на e-mail
  • Поддержка протоколов SIP, IAX2, H.323, MGCP, Skinny
  • Инструменты разработчика для создания расширений, предоставляющие новые услуги
  • Поддержка кодеков: ADPCM, G.711 (A-Law и μ-Law), G.722, G.723.1, G.726, G.728, G.729, GSM, ILBC, Speex.
  • Виртуальный секретарь — IVR
  • Поддержка аналоговых интерфейсов FXS / FXO
  • Голосовой синтез речи
  • Поддержка цифровых интерфейсов (E1/T1/J1) и протоколов PRI/BRI/R2/SS7
  • Автоконфигурация IP-телефонов
  • АОН определитель номера
  • Программное эхоподавление
  • Работа с несколькими операторами связи
  • Маршрутизация входящих и исходящих вызовов по различным правилам
  • Поддержка Видеотелефонов
  • Интерфейс обнаружения телефонного оборудования
  • Поддержка групповой переадресации вызовов
  • DHCP сервер для распределения динамических IP адресов
  • Панель оператора. Оператор может видеть всю телефонную деятельность в виде графиков и выполнять простые операции по управлению телефонными звонками
  • Поддержка протокола пейджинга (intercom) и домофонов
  • Веб-панель управления
  • Поддержка временных условий
  • Парковка и перехват звонка
  • Запрет вызова по PIN коду
  • Call Detail Record (CDR) отчеты
  • Прямой доступ в систему (DISA)
  • Биллинг, отчеты, статистика, анализ по использованию
  • Поддержка обратного звонка
  • Поддержка динамических очередей

Final Thoughts

This has been a somewhat eye opening comparison of FreePBX versus Elastix open source PBX software. While the core packages are certainly free to download, there are a lot of potentially expensive items to consider prior to using one of these solutions for your business.

If your business just needs basic features then open source is definitely a good option. If your business needs more advanced features then one of these open source PBX solutions can still be a good option, but you should perform a cost estimation that includes items such as training, support, licenses and equipment. Once you have completed the cost estimate it would also be prudent to do a comparison with other calling solutions such as hosted VoIP. The results may surprise you but will ultimately help you make the right decision for your business.

Доступ к FreePBX

Войдите в web интерфейс Elastix.
Перейдите в раздел «Security»

Разрешите доступ к интерфейсу FreePBX:

После этого FreePBX интерфейс будет доступен по адресу

http:///admin

<IP_ADRESS> — IP адрес АТС

Загрузка дополнительных модулей

  1. Модуль pt1c предназначен для настройка интерфейса на стороне АТС для связи с 1С.
  2. Модуль pt1c_fax — дработанный модуль . Добавлен механизм заполнения информации об имени файла факса, в таблице истории звонков.
  3. Модуль pt1c_core — доработанный модуль . Добавлен механизм оповещения по AMI о входящем вызове. Механизм необходим для перехвата звонка на ответственного менеджера.

Панель телефонии 1.4.26.26+ и 1.2.24.18+

Установка дополнительных модулей

На примере модуля Asterisk AJAM Settings (PT1C).

Перед началом интеграции настоятельно рекомендуем делать РЕЗЕРВНУЮ КОПИЮ вашей конфигурации!!!

Войдите в веб-интерфейс FreePBX под учетной записью администратора.

Переходим на вкладку Module Admin (Администрирование модулей)

  • Для загрузки модуля на сервер используйте действие Upload module (Закачать модули).
  • Укажите расположение модуля.
  • Используйте действие Upload (Загрузить).

Теперь в управлении модулями устанавливаем модуль Asterisk AJAM Settings (PT1C).

  • Для этого в списке действий выбираем Install (Установить).
  • Выполните действие Progress (Запустить процесс).

  • Подтверждаем установку,и через пару секунд плагин будет установлен.
  • Теперь необходимо нажать оранжевую кнопку  Apply Configuration Changes (Применить изменения в конфигурации).

Необходимо внимательно отнестись к этому вопросу. Не следует разрешать AJAM на интерфейсе с реальным IP.

Учетная запись менеджера Asterisk (Elastix)

Теперь добавим менеджера, под которым будет работать панель телефонии.
Необходимо перейти в интерфейс модуля Manager API

Указать имя / пароль менеджера, указать разрешенные / запрещенные сети:

Обратите внимание на поля Запрещены и Разрешены. Запретить следует все адреса, а разрешить только адрес сервера, на котором будет работать панель телефонии

В примере параметр Разрешены установлен в значение 0.0.0.0/0.0.0.0 (разрешено подключаться под всеми сетевыми адресами)

Установить значения привилегий:

Не устанавливайте полные права для учетной записи! Больше — не всегда лучше!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *