freepbx что это такое
FreePBX
FreePBX – это полнофункциональный графический интерфейс кодом, который используется для управления Asterisk, являющегося одним из наиболее распространенных решений для офисной телефонии. Уже в базовой конфигурации этот дистрибутив с открытым кодом дает возможность пользоваться функциями, которые подойдут практически любой компаниям.
FreePBX как основа офисной АТС
В общих чертах FreePBX очень похож на обычную аналоговую АТС с набором входящих и исходящих линий. Это один из наиболее доступных и проверенных дистрибутивов для Asterisk. В базовом варианте пользователям доступны бесплатные внутренние разговоры и звонки на внешние линии. Есть возможность записи разговоров, настройки голосового меню и почты, а также отправка сообщений на E-mail.
Все эти функции можно использовать, подключив программную АТС провайдера, но такие решения имеют ряд ограничений по сравнению с FreePBX. Этот дистрибутив оптимально подойдет для компаний с количеством сотрудников от 10 до 100 человек.
Использовать именно FreePBX стоит по нескольким причинам. Во-первых, он содержит в себе все необходимое для организации полноценной офисной IP-АТС. Во-вторых, FreePBX постоянно обновляется и поддерживается в актуальном состоянии.
В-третьих, FreePBX безопасен, так как в нем нет предустановленных паролей. Кроме того, вместе с дистрибутивом устанавливается защитная программа Fail2Ban, которая не позволяет сторонним пользователям подобрать пароли и получать доступ к системе. И, наконец, благодаря простому интерфейсу, установка FreePBX не требует специальных навыков.
Установка FreePBX
Есть два варианта установки FreePBX: непосредственно на сервер в качестве автономного ПО либо как части предварительно установленного дистрибутива FreePBX Distro, в который входят ОС Linux, Asterisk и сам интерфейс FreePBX. Установка и первичная настройка FreePBX происходят достаточно просто, в несколько кликов, так как это полностью автоматизированный процесс:
Интерфейс дистрибутива достаточно простой и функциональный. Экран разделен на вкладки и на нем есть кнопка, позволяющая быстро добавлять пользователей. Благодаря тому, что интерфейс по ширине автоматически подстраивается под экран устройства, настраивать и администрировать АТС можно не только с помощью ПК, но и используя смартфон или планшет.
Возможности IP-АТС FreePBX
Пользователям FreePBX доступен весь набор функций, которые предлагает виртуальная АТС:
АТС на базе FreePBX легко масштабируются, позволяя увеличивать количество абонентов или внешних линий. Для этого достаточно установить дополнительный шлюз или подключить программные телефоны, возможна интеграция с аналоговыми телефонными линиями. Также можно настроить переадресацию на городские и мобильные номера.
Сделайте свой бизнес эффективнее, переходите на сторону IP-телефонии от New-Tel. Стабильная и надежная связь по выгодным тарифам, возможность подключить любое количество городских номеров и номеров 8800, интеграция с популярными CRM-сервисами, сквозная аналитика, возможность хранить запись телефонных разговоров и многое другое.
FreePBX 13. Уже не бета
Что такое FreePBX? Это один из вариантов управления двигателем современной IP телефонии — Asterisk. Как бы не любили интеграторы эту «надстройку», безусловно именно она является лидером инсталляций IP АТС.
Да, местами дырявый, не всегда понятный, с кривой русификацией, но бесплатный. FreePBX позволяет поднять телефонный сервер в организации практически любому эникею за считанные часы, и уже в дефолтной конфигурации предоставляет возможности, которые подойдут практически всем компаниям. Другое дело, если вам вдруг не хватает функционала веб-интерфейса, и вы решаете добавить какую-то уникальную фишку…
Костыли, невозможность нормального дебага — здесь FreePBX предстанет во всей своей красе.
Тем не менее, еще в марте у вас была возможность потестировать Alpha версию, бету в июне, а сегодня я хотел бы бегло осмотреть финальный и стабильный FreePBX 13.
Компания shmooze еще на протяжении 2012 — 2013 года уверенно двигала свой продукт к коммерциализации. Бесплатные модули вдруг становились платными (end point manager, например), в свой дистрибутив добавлялось все больше коммерческих модулей, и после покупки компанией Sangoma подход не изменился, а стал еще жестче.
А что гласит логунг на главной странице проекта? «Free means Freedom» Не бесплатно, а свободно 😉
В какой-то момент руководство решило делиться FreePBX только в рамках своего FreePBX Distro, но в последствии умерили свой пыл. Сегодня вы можете собрать Linux OC + Asterisk + FreePBX самостоятельно, либо установить готовый ISO образ системы непосредственно на сервер.
Итак, что включено в последний на данный момент, доступный образ 10.13.66-6:
FreePBX 13
SHMZ OS 6.6 (CentOS)
Asterisk 11 или 13 (другие версии не поддерживаются)
DAHDI 2.10
По окончании установки пакетов при подключении к сети FreePBX автоматически обновит свои пакеты на последние версии из репозиториев Sangoma.
После установки, адрес присваивается автоматически (если в сети поднят DHCP сервер, разумеется). Смотрим его в консоли или лизах DHCP.
Попадаем на сервер, устанавливаем логин / пароль администратора и видим новый, резиновый интерфейс системы.
И вот первое новшество, которое нас встречает — это закрытие доступа в раздел Admin — System Admin до регистрации системы на портале Sangoma. Ни сменить IP адрес, ни просмотреть список попавших в Fail2Ban, сменить TimeZone. DNS и прочее.
Впрочем, регистрация достаточно короткая, и вы можете заранее получить логин и пароль тут — portal.schmoozecom.com
Как бонус, вы можете активировать платные модули Extension Routes и Sysadmin Pro бесплатно.
Русификация
Интерфейса системы: Settings — Advanced settings — Show language — YES
Голосовых фраз в АТС, команды выпоонять в консоли:
В интерфейсе FreePBX переходим в Admin — Sound Languages — Custom languages. Нажимаем кнопку Add.
Language Code = ru
Description = Русский
Submit.
Теперь, в Global language будет выбран по умолчанию Русский. (по крайней мере так у меня произошло на тестовой машине, впрочем вы можете выбрать русский и кликнуть Submit дополнительно)
Интерфейс FreePBX 13
Веб интерфейс системы был немного переработан, нельзя сказать что это революционное изменение, скорее действительно полезные перемены.
Например, экран пользователей разбит на вкладки (по типу подключения), а также добавлена кнопка быстрого добавления юзеров.
И да теперь вы можете настраивать офисную АТС с помощью планшета или смартфона, меню и ширина автоматически подстроятся под ваш экран.
Команды fwconsole
В Free PBX 13 добавлена возможность управление АТС через командную строку Linux с помощью fwconsole
Amportal будет «убит» окончательно во FreePBX 14
Список команд вы можете увидеть ниже (либо вбить на сервере fwconsole list)
Микс настроек через веб-интерфейс и консольных Linux команд. Впрочем, может быть полезно, если вы забыли пароль для веб-администрирования или желаете перечитать конфиги.
Система обновления платных модулей
Очередная ложка дегтя для пользователей FreePBX.
Большинство продаваемых модулей системы были доступны по схеме: покупка лицензии на 25 лет и 1 год бесплатного апдейта версий, то есть заплаток и обновлений функционала. Вы пользуетесь год, а потом доплачиваете разработчикам какую-то сумму, поддерживая дальнейшее развитие модуля. Либо не платите и работаете с той версией, что у вас уже есть.
Вроде все понятно и красиво, если бы не одно но, в FreePBX не было механизма продления, и поэтому они все это время предоставляли апдейты бесплатно. Теперь есть, и вы можете продлить модули непосредственно из GUI.
Firewall
Новый модуль Sangoma Smart Firewall, уже включен в состав нового FreePBX. Чтобы его активировать — следует перейти в Connectivity — Firewall и нажать Enable. Разумеется, гуру iptables могут творить чудеса, но разве это целевая аудитория FreePBX?
Вы можете пройти простейший автоконфигуратор, и настроить дефолтную защиту, но можете и копнуть чуть поглубже и настроить firewall более корректно.
Четыре подменю: About. Services, Status, Zones.
About — показывает информацию об открытых портах, статусе запуска
Services — позволяет открыть / закрыть службу для ранее созданной сетевой зоны
Status — список попавших в черный список, а также список зарегистрированных SIP устройств.
Zone — сетевые зоны, которым можно доверять. Указываются с маской.
Заключение
FreePBX 13 — продукт достаточно свежий, не удивлюсь, если ближайшие полгода мы увидим большое количество допилов и доработок.
Буквально сегодня я столкнулся с проблемой неработающей платы Digium и понадобилось обновление прошивки.
В консоли выдавалось следующее:
wcaxx 0000:03:00.0: Existing firmware file dahdi-fw-a4b.bin is version b0019, but we require d001e.
Как нужно «ремонтировать»?
отсюда тянуть прошивку которая ей нужна downloads.digium.com/pub/telephony/firmware/releases\
распаковать допустим в /tmp, распакуется файл 1 файл dahdi-fw-a4b.bin
потом идем в /lib/firmware делаем старому файлу mv dahdi-fw-a4b.bin dahdi-fw-a4b.bin_back
потом Ранее скачанный файл В моем случае downloads.digium.com/pub/telephony/firmware/releases/dahdi-fw-a4b-d001e.tar.gz
копируем из /tmp в /lib/firmware сервак после этого в ребут
как запустится смотреть в dmesg, чтобы все было ок.
FreePBX 12 + Asterisk 11 +chansip. Что может быть лучше?
Разбираемся с FreePBX и интегрируем его с Битрикс24 и не только
Изучаем логику работы
В упрощенном виде диалплан занимается только первым пакетом, иногда также в процессе разговора совершается перевод звонков, нажатия кнопок (DTMF), разные интересности типа FollowMe, RingGroup, IVR и прочего.
Что внутри Invite пакета
Вся логика работы FreePBX построена на включении друг в друга разных контекстов через include и вызов через Gosub, Macro и обработчики Handler. Рассмотрим контекст входящих вызовов FreePBX
Вызов проходит по всем контекстам сверху вниз по очереди, в кажом контексте могут быть вызовы других контекстов как макросов (Macro), функций(Gosub) или просто переходы (Goto), поэтому реальное дерево того, что вызывается можно отследить только в логах.
Где в этом алгоритме звонка мы должны поставлять информацию о начале звонка в CRM, где начинать запись, где оканчивать запись и отсылать ее вместе с информацией о звонке на CRM?
Интеграция с внешними системами
Что такое интеграция АТС и CRM? Это настройки и программы, которые конвертируют данные и события между двумя этими платформами и пересылают друг другу. Самым распространенным способом взаимодействия независимых систем является API, а самым популярным способом доступа к API является HTTP REST. Но только не для asterisk.
Внутри Asterisk есть:
Event: Newchannel Privilege: call,all Channel: PJSIP/VMS_pjsip-0000078b ChannelState: 4 ChannelStateDesc: Ring CallerIDNum: 111222 CallerIDName: 111222 ConnectedLineNum: ConnectedLineName: Language: en AccountCode: Context: from-pstn Exten: s Priority: 1 Uniqueid: 1599589046.5244 Linkedid: 1599589046.5244
Пример вывода ARI при инициации звонка
Удобство или неудобство, возможность или невозможность работы с тем или иным API определяются задачами, которые необходимо решить. Задачи для интеграции с CRM следующие:
Отследить начало вызова, куда его перевели, вытащить CallerID, DID, времена начала и конца, может быть данные из директории (для поиска связи телефона и пользователя CRM)
Начать и окончить запись звонка, сохранить в нужном формате, сообщить по окончании записи где лежит файл
Инициировать звонок по внешнему событию (из программы), позвонить внутреннему номеру, внешнему и соединить их
Опционально: интегрировать с CRM, группами дозвона и FollowME для автоматического перевода звонков при отсутствии на месте(по информации CRM)
Придумываем интеграцию заново
FreePBX: первые шаги по граблям
Начиная знакомство с FreePBX, даже опытные системные администраторы зачастую допускают одни и те же ошибки, которые способны серьезно испортить настроение и отбить всякое желание продолжать освоение этой системы.
В первую очередь, безусловно, это ошибки, связанные с безопасностью станции. Помните, что подключаясь к оператору телефонии вы несете полную финансовую ответственность за звонки, даже если на самом деле вы их не совершали! Давайте посмотрим, что нужно сделать в первую очередь, а чего делать категорически нельзя.
Сразу же после установки системы необходимо отключить возможность приема гостевых и анонимных звонков, если, конечно, вы не собираетесь их использовать. В противном случае, вы фактически предоставляете возможность любому человеку осуществлять звонки через вашу станцию, что может привести к значительным финансовым потерям.
Настройки → Установки Asterisk для SIP → Общие настройки SIP
Настройки → Установки Asterisk для SIP → Установки канала SIP
Несмотря на то, что FreePBX постоянно обновляется, и разработчики прикладывают большие усилия к обеспечению безопасности системы, периодически обнаруживаются уязвимости в коде, используя которые злоумышленники могут получить, например, параметры доступа к вашим операторам связи. Несмотря на то, что в таком случае звонки будут поступать не с вашей станции, оператор, скорее всего, потребует оплаты именно с вас. Поэтому не следует забывать о защите веб-интерфейса: если сервер установлен в вашей локальной сети, не стоит пробрасывать 80 порт наружу — для удаленной настройки вы можете использовать vpn, ssh-тоннель или любой другой способ доступа. Если же FreePBX установлен на удаленном сервере или по какой-то другой причине имеет прямой доступ в сеть, можно ограничить возможность подключения по 80 порту на уровне iptables, а также использовать парольную защиту Basic Auth как дополнительное средство обеспечения безопасности.
В случае, если вы установили FreePBX с официального образа, вам нужно будет отредактировать файл
В самый конец, перед последней строкой нужно добавить следующее
и введите пароль для пользователя admin. Не забудьте перезагрузить apache:
И проверьте результат:
Также следует обратиться к вашему оператору связи и ограничить возможность подключения с вашими учетными данными по ip-адресу: в таком случае, даже если злоумышленники получат ваш логин и пароль, воспользоваться ими не получится.
Безусловно, нельзя забывать и о безопасности аккаунтов пользователей на вашей станции. Если возможно (например, все ваши пользователи находятся в локальной сети), обязательно ограничивайте возможность подключения по ip-адресам — даже если пароль определенного пользователя будет скомпрометирован, воспользоваться им извне злоумышленники не смогут.
Приложения → Внутренние номера → Внутренний номер → Расширенный
Бывают ситуации, когда ограничить пользователя по ip не представляется возможным — например, аккаунт используется с мобильного телефона, из разных 3g, 4g, и wifi-сетей. В таком случае, в первую очередь, проверьте надежность ваших паролей. Запомните, даже на “пустой” станции, даже для тестирования, никогда не нужно ставить пароли типа qwerty, ведь забыть впоследствии о таком аккаунте проще простого, как и подобрать такой пароль.
Приложения → Внутренние номера → Внутренний номер → Общие
Необходимо задуматься и о переборе паролей. Естественно, если ваш сервер обслуживает клиентов из одной сети и подключается к одному оператору связи, вы можете и даже должны ограничить возможность подключения к sip-порту (обычно, 5060) для всех, кроме известных адресов своих сетей и провайдеров, например, так, если вы устанавливали FreePBX вручную
Или воспользоваться встроенным модулем веб-интерфейса Firewall, если вы установили систему с официального образа. Вы можете задать доверенные и внешние сети вручную в меню
Подключения → Firewall → Zones → Network
И затем определить, к каким сервисам будет открыт доступ в закладке
Подключения → Firewall → Services
Но не всегда возможно оставить только несколько подсетей для sip-порта. В таком случае крайне рекомендуется поставить fail2ban и настроить его на использование с asterisk. Этот демон, основываясь на логах попыток авторизации, блокирует слишком настойчивых на определенное время после заданного числа попыток авторизации, что позволяет пресекать брутфорс. В последних версиях fail2ban правила для asterisk уже включены в поставку, но рекомендуется проверить его работоспособность — выполнить несколько попыток регистрации с заведомо неверным логином и паролем (только обязательно не с того же ip-адреса, с которого вы подключаетесь к серверу!) и проверить, заблокируется ли этот адрес командой
В официальной сборке FreePBX система защиты от перебора паролей уже установлена и настроена. Заблокированные адреса можно найти в закладке
Подключения → Firewall → Статус
Очень часто, особенно в небольших организациях, когда используется только один провайдер, системные администраторы не уделяют внимания грамотной настройке исходящих маршрутов, ограничиваясь шаблоном X., разрешая таким образом всем пользователям звонить на любой номер телефона. Даже если полностью исключить возможность совершения звонков злоумышленниками, нельзя забывать о том, что пользователь может просто ошибиться и позвонить куда-нибудь в Доминиканскую республику, так что ограничивать исходящие звонки нужно в обязательном порядке. Обычно достаточно добавить шаблоны вызова городских и мобильных номеров телефонов, для РФ маршрут может выглядеть так:
Подключения → Исходящая маршрутизация → Маршрут → Правила набора
Здесь мы задаем, что номер должен быть 11-значным, начинаться с 8, и вторая цифра должна быть 3,4,8 или 9, что полностью перекрывает все Российские номера, а также разрешаем звонить через этот маршрут только внутренним номерам 100-199. В случае, если кому-то из сотрудников нужно открыть международные звонки, следует добавить дополнительный маршрут для него перед основным, и обязательно в поле CID указать его номер или шаблон номеров, если таких сотрудников несколько.
А также стоит всегда указывать количество одновременных исходящих вызовов в настройках транков, особенно в том случае, если они не ограничены на стороне оператора (10 сотрудников никак не смогут сделать 100 исходящих вызовов), а вот в случае несанкционированных звонков взломщики пытаются звонить в максимальное количество потоков.
Подключения → Транки → Настройки Транка → Общие
Следующая частая ошибка — создание очереди звонков без ограничения по времени и без условия “покидать пустую очередь”. Особенно опасно такое действие, если вы используете номер 8-800 с оплатой за входящие — определенный отдел может остаться без связи (завис свитч, пропал свет, крысы съели витую пару), а входящие звонки для него будут продолжать поступать на очередь, и особо упорные звонящие могут ждать на линии часами.
Неприятности могут возникнуть и в том случае, если вы не используете 8-800, но оператор связи ограничивает количество одновременных входящих звонков, или используются медные линии или поток. В таком случае ресурс канала будет расходоваться просто на проигрывание музыки вызывающим абонентам, и в итоге может возникнуть ситуация, когда все ваши входящие каналы заняты ожидающими в пустой очереди. Именно поэтому нужно всегда ограничивать время ожидания в очереди и не допускать звонков в пустых очередях.
Приложения → Очереди → Настройки очереди → Параметры времени и операторов
Приложения → Очереди → Настройки очереди → Параметры емкости очереди
Голосовые приветствия и голосовые меню — безусловно, полезные и нужные функции, используемые почти каждой организацией, решившей перейти на FreePBX, но и при их настройке часто допускаются ошибки. Во-первых, модуль Приветствие, то есть просто воспроизведение голосового ролика, который нельзя пропустить (или можно пропустить по нажатию клавиши, о чем обычно забывают уведомить пользователя), стоит использовать только тогда, когда в этом есть насущная необходимость. Мне доводилось видеть как в Приветствие помещают ролик длительностью одна минута, и только после него следует IVR с предложением выбрать нужный отдел. Когда клиент звонит в первый раз, это воспринимается нормально, но когда он перезванивает пятый раз за час, и пятый раз подряд слушает о том, как компания рада его звонку, он начинает сомневаться в этом. Клиент уже точно знает, что ему нужно нажать кнопку 2 и переключиться на нужный отдел, но его раз от раза заставляют прослушать приветствие целиком. По максимуму сократите использование Приветствий, используйте IVR и разрешите прямые наборы — это позволит сократить время ожидания клиента и не раздражать его.
Еще при создании Интерактивного меню IVR часто забывают сменить настройки по умолчанию, касающиеся неверного набора — при нажатии клавиши, которая не описана в правилах, ролик повторяется несколько раз. Такое поведение уместно только в случае, если выбор должен быть сделан обязательно (крайне редкий случай), и совершенно неуместно в первом, приветственном голосовом меню. Отключайте повторы голосового меню и переводите звонок на назначение, используемое по умолчанию: на секретаря, в очередь менеджеров и так далее. То же касается и тайм-аута набора.