Основы настройки и управления FreePBX


IP-телефония (Виртуальные АТС и SIP-телефония)
asterisk freepbx ivr voip web управление
 
 

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


(последние правки 3 недели, 5 дней)

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

FreePBX - это графический интерфейс пользователя с открытым исходным кодом, предназначенный для управления Asterisk и естественно, что этот графический интерфейс значительно упрощает управление АТС для рядовых пользователей и администраторов существенно снижая порог вхождения в технологию. Платой за такое упрощение являются автоматически генерируемые конфигурационные файлы и жестко заданная внутренняя организация системы которая в дальнейшем уже не даст вам такой гибкости как использование конфигурационных файлов.

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

При базовом рассмотрении и если отбросить все тонкости, то FreePBX можно сравнить с обычной аналоговой офисной АТС у нее так же есть набор входящих и исходящих линий, в рамках небольшой компании вся логика работы цифровой АТС обычно сводится к следующим операциям:

  • Осуществление звонков между внутренними номерами
  • Звонки на внешние линии (через любой свободный транк или более сложная логика для экономии денежных средств)
  • Запись телефонных разговоров
  • Голосовое меню и функционал набора внутреннего номера сотрудника
  • Голосовая почта и отправка сообщений на Email

Я сейчас описал, то, что есть у 90% компаний и часть такого функционала предоставляет например Zadarma и ряд других компаний в своих виртуальных АТС которые они могут предоставлять бесплатно или за деньги, но в любом случае, при использовании программных АТС провайдера у вас будет ряд ограничений по сравнению с FreePBX. Например web-интерфейс у Zadarma вообще рассчитан на детей младшего дошкольного возраста, что еще сильнее ударило по функциональной части и это решение можно рекомендовать только для очень маленьких компаний или команд.

Внутренние звонки между абонентами FreePBX

По умолчанию, в FreePBX разрешены звонки между всеми внутренними номерами и вам требуется лишь создать несколько внутренних номеров и настроить VOIP-оборудование (настройка оборудования выходит за рамки этого обзора). 

Для создания внутреннего номера сотрудника вам необходимо перейти в раздел меню "Приложения -> Внутренние номера".

Для создания нового внутреннего номера в нашем случае мы выбираем "Добавить новый PJSIP внутренний номер" (более подробно в технической части описано что это вообще такое и чем отличается).

При создании нового внутреннего номера вам необходимо обязательно заполнить следующие поля:

  • Внутренний номер пользователя 
  • Отображаемое имя 
  • Секрет

"Внутренний номер" и "Секрет" являются фактически логином и паролем который мы указываем в настройках VOIP-оборудования для подключения к программной АТС. Естественно, что "Внутренний номер пользователя является уникальным идентификатором", отображаемое имя опционально, но желательно так как оно будет участвовать во внутренних отчетах и отображаться на телефоне при входящем звонке (если не переопределено такое поведение).

 

Для каждого из внутренних номеров. вы можете так-же активировать голосовую почту и отправку голосовой почты на электронную почту. 

На вкладке "Расширенный" вы можете задать максимально число одновременных регистраций клиентов на один номер (удобно при одновременном использовании одного номера ) пунктом:

  • Максимальное количество Контактов

И можете установить режим принудительной записи разговоров для этого внутреннего номера в разделе "Опции записи"

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

Настройка исходящего транка

В разделе "Подключения -> Транки" вы можете настроить подключения к провайдеру услуг IP-телефонии и хотя это немного сложнее чем настройка внутренней линии, но при проработанной схеме подключения к провайдеру IP-телефонии больших проблем не вызывает. 

В большинстве случаев вам необходимо настроить исходящее и входящее подключение (примеры настроек лучше запросить у провайдера), параметры настроек для исходящих подключений провайдера voip.kz выглядят следующим образом:

username=ext_1678541OUUJS
type=friend
secret=xxxPasswordxxx
insecure=invite,port
host=sn.voip.kz
fromuser=ext_12592541OUUJS
fromdomain=sn.voip.kz
disallow=all
context=from-trunk
canreinvite=no
allow=ulaw&alaw
dtmfmode=auto
qualify=400
directmedia=no
nat=force_rport,comedia

Для входящих подключений используется так называемая строка регистрации:

ext_1678541OUUJS:xxxPasswordxxx@sn.voip.kz/87112961022

Рассмотрим процесс создания исходящего транка для провайдера voip.kz и первым делом вам требуется добавить новый транк "Добавить SIP (chan_sip) транк". Для провайдера voip.kz мы выбираем именно chan_sip транк и проработка вопроса подключения новых провайдеров является самым сложным вопросом который должен выполняться администратором, а оператор может просто подключать транки по заданной схеме меняя логин-пароль.

На вкладке "Общие" мы задаем читаемое имя транка которое будет применяться в настройке маршрутизации входящих и исходящих вызовов и для провайдера voip.kz мы дополнительно выбираем режим "Скрыть CallerID", в нашем случае для исходящих соединений провайдер сам подставит необходимый CallerID. 

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

Мы просто указываем "Название транка" и его "опции", единственное что я рекомендую делать, это подписывать в названии направление транка IN или OUT.

Исходящая маршрутизация

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

Начнем с основного направления звонков через VOIP-провайдера и переходим в раздел "Подключения -> Исходящая маршрутизация".

Как вы видите я создал всего одно правило для всех исходящих звонков и называется оно to-outside.

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

Правила набора номера, как раз и используются определения какой исходящий маршрут использовать и для определения совпадает ли набранный абонентом номер с маршрутом используется "Шаблон номера" для построения которого в FreePBX может использоваться мастер создания маршрута.

Представленный в качестве пример маршрут описывает правило "Все исходящие с префиксом девять отправлять провайдеру", это самое простое правило и в списке исходящих маршрутов должно отрабатываться последним. Дополнительно в этом правиле, мы меняем первую 8-ку на 7-ку, так как провайдет voip.kz принимает только номера +7-xxxxxxxxx.

Вот пример более сложной маршрутизации:

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

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

Входящая маршрутизация

Для управления входящей маршрутизацией, переходим в раздел "Подключения -> Входящая маршрутизация".

Маршрутизация входящих подключений может осуществляться самыми разными способами, но самы распространенные варианты это то номеру входящего подключения или по транку подключения. Вы можете задать в поле CID фильтр входящих номеров и например отравить звонки из Украины на IVR запись которой подготовлена на Украинском языке ну и соответствующие звонки из Европы на Английскую IVR и т.п.

В представленном выше примере используется маршрутизация входящих по входящему транку, а входящий транк определяется по его номеру DID и в большинстве случаев это логин который вам выдал voip-провайдер. После того как вы определились с выбором входящего звонка, вам надо назначить его направление.

Как вы видите из примера, я просто перенаправлил входящий на "Внутренний номер", но это довольно редкое явление и обычно используется IVR в связке с DISA или группа вызовов. Группа вызовов настраивается в разделе "Приложения -> Группы вызовов".

Номер группы вызова, это внутренний виртуальный номер при звонке на который будут вызываться номера из списка "Лист внутренних номеров" согласно "Стратегии вызовов". Список номеров может содержать другие группы, что позволяет строить довольно сложные схемы вызовов и огромное количество параметров этого плагина позволяет строить схемы на любой вкус и цвет. Звонок на группу вы можете направить при входящем подключении выбрав в направлении "Группа вызова". Аналогично, вместо группы вызова вы можете направить звонок на голосовое меню и из голосового меню подключить управление DISA для реализации функционала "Если вы знаете внутренний номер сотрудника, вы можете набрать его в фоновом режиме".

Для настройки модуля IVR переходим в раздел "Приложения -> Интерактивное меню (IVR)", где вы естественно выбираете пункт "Добавить IVR". 

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

Если вы хотите сделать голосовое меню с поддержкой вложенности, то вы можете вызывать из одного интерактивного меню, другое и из него при возврате в предыдущее меню вызывать исходное.

Моя официальная страница на FaceBook
Мой микроблог в твиттер

Сборка VoIP-клиента Linphone из исходных кодов с поддержкой проприетарных видео и аудио кодеков

Сборка VoIP-клиента Linphone из исходных кодов с поддержкой проприетарных видео и аудио кодеков

Этот вопрос я уже несколько раз рассматривал, но как оказалось данные немного устарели и сборка новой версии из Github репозитрия осуществляется немного сложнее и появились новые специфичные подводные камни. Правда стоит отметить, что клиент для Linux и Windows стал выглядеть гораздо лучше хотя в продакшн тащить его я не советую, он еще слишком сырой.


Настройка Fail2ban для Asterisk (FreePBX)

Настройка Fail2ban для Asterisk (FreePBX)

Небольшое описание того, как я возился с настройкой Fail2ban в Centos 7. Что интересно, штатные правила конфигурации для FirewallD с виду работают, добавляют заблокированные адреса в соответствующие цепочки, но подключения клиентов все равно не блокируются. Для Asterisk который является просто лакомым кусочком для разного рода жуликов работать без Fail2Ban крайне опасно.


Сборка и установка дополнительных кодеков для Asterisk (Codec Translators)

Сборка и установка дополнительных кодеков для Asterisk (Codec Translators)

Небольшая шпаргалка как в FreePBX-core добавить проприетарные кодеки. Часть кодеков вы можете использовать бесплатно, а например для кодека g729a вам придется приобрести лицензию. Лицензии покупаются на количество конкурентных подключений и для кодека g729a лицензия стоит 8 долларов, что не так уж и дорого если у вас не колл-центр.


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


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .