Максимально простой способ сделать телефонию в ОО красивой и функциональной!
В данной статье мы рассмотрим установку, конфигурирование и внедрение виртуальной телефонии на базе бесплатной системы FreePBX, основанной конечно же на Asterisk. Почему FreePBX? Функционал огромен, может быть даже излишне, но работает как часы! Можете выбрать любую другую систему, можете чистый Астериск попробовать… Но мы остановимся на FreePBX 16
Так же в данной статье мы рассмотрим подключение городского телефонного номера образовательной организации, используя SIP Trunk от МГТСа (забегая вперед — услуга платная)
Кейсы, которые могут сподвигнуть Вас на внедрение своей телефонии:
- Общий городской номер для всех подразделений организации. Согласитесь, иметь 1 номер проще, чем 30.
- Продленка… Самая большая проблема во всех оо это способы оповещения детей о приходе родителей в группах продленного дня. Много способов есть: Кто то вызывает по громкой связи, кто то по рации. Есть случаи установки аналогового домофона в каждый класс. На мой взгляд самое удобное и эффективное это как раз виртуальная телефония.
- Внутренняя связь — иногда проще позвонить в нужный кабинет или сотруднику, чем идти к нему. Удобно позвонить на охрану, предупредить о визитах, доставке и т.д. и не важно кто там сидит — номер то внутренний и внешний один.
- Для совсем продвинутых айтиЧников: Предоставление доступа к телефонии для сотрудников на «удаленке». Выдал ноутбук с настроенным впном до школы и voip — софтфоном и сотрудник всегда на связи!
- etc… Еще очень много преимуществ, которые можете почитать в интернете.
И так приступим…
Подготовка:
- Вам потребуется устройство ИЛИ виртуальная машина на сервере с 2-мя сетевыми интерфейсами. (Если вам нужна только внутренняя связь — хватит и 1 сетевой дырки);
- Статический IP адрес в КМС сегменте (vlan70, например);
- SIP — телефоны, софтфоны и любые другие устройства, поддерживающие sip протокол аудиосвязи.
- В статье будет рассматриваться подключение городского номера от мгтс, т.к. в школах именно он, по этому потребуется расположение рядом с сервером телефонии любого ONT-модема провайдера с пустой дыркой.
Минимальные характеристики:
Достаточно будет C2D и выше процессора, 2гб ОЗУ и диск, в зависимости от задач. Для записи разговоров потребуется прилично места, без записи 120Гб накопителя хватит за глаза.
В статье сервер будет разворачиваться в виртуальной среде под управлением MS Hyper-V, используя 2 ядра, 4Гб озу, 2 сетевых интерфейса и виртуальный диск объемом в 500Гб для записи разговоров.
Первые шаги:
Для начала потребуется скачать iso-образ по ссылке https://www.freepbx.org/downloads/

Создаем виртуальную машину с параметрами: 2 процессора, 4Гб ОЗУ, 500Гб HDD, 2 сетевых интерфейса: 1 в vlan70 (КМС сеть), второй пока не подключен, но смотрит в сторону мгтс-ONT-модема.

Подкидываем в нее iso образ FreePBX (в нашем случае это SNG7-PBX16-64bit-2302-1.iso) и запускаем виртуальную машину.
P.S.> То же самое проделать с обычным пк — записать руфусом в режиме DD флешку с iso, воткнуть в пк и запустить.
Установка:
Это наверное самая простая установка в мире!
- Выбираем Recommended версию, FreePBX 16, базирующуюся на Asterisk 18.

- Выбираем графический режим — Output to VGA

- Запускаем установку FreePBX Standart

- Началось копирование файлов и установка всех библиотек. В это время зададим единственный параметр — root пароль


По окончанию установки нажимаем кнопку «Reboot» и после перезагрузки, «не отходя от кассы», залетаем в консоль. Пользователь root соответственно и пароль который вы на предыдущем шаге придумали.
В консоли нам нужно взглянуть на таблицу с сетевыми интерфейсами и запомнить ip адрес. Это адрес web-морды системы. Переписываем его и на этом консольный «пердолинг» закончился.

Настройка:
Теперь берем любой пк с веб-браузером и переходим на страницу только что установленного сервера. У меня это https://192.168.90.76, у вас соответственно ваш ip.
- Сразу после открытия страницы система предложит указать админ — аккаунт, название сервера и управление обновлениями. Я всегда отключаю автоматические обновления. Это всегда можно сделать руками, да и без обнов все работает прекрасно.

Вводим данные, нажимаем «Setup System» и далее можем влогиниться под созданным админ-аккаунтом в панель управления, нажав кнопку «FreePBX Administration»

- Следующим этапом — активируем наш сервер. Это не обязательно, но активация бесплатна и дает доступ к нужным нам настройкам машины, которые конечно же можно сделать и из консоли, но мы ж не «в перчатке».

Нажимаем «Activate» и вводим любую вашу почту. Кнопки не нажимать! После ввода почты ниже загрузится форма, которую нужно заполнить!

Подтверждаем еще раз нажатием «Activate»

Далее пропускаем (Skip) всю рекламу и ГОТОВО! Система предложит нам обновления — как хотите, но думаю что в данный момент можно обновиться!

- После обновления обновите страницу. Будет предложено выбрать Языки — конечно же Русский!
- Следом нам система предлагает «Sangoma Smart Firewall», не нужно его включать. Жмем «Abort»

Не забываем после изменения настроек жать на красную кнопку в правом верхнем углу страницы! («Apply Config» или по нашему «Применить изменения»)
На этом система готова к дальнейшей шлифовке…
Идем в меню «Администратор» -> «System Admin» и по порядку проходимся по вкладкам:
- DNS — можно указать днс адреса. Каждый адрес на новой строке.
- Intrusion Detection — Включить! Это защита от перебора паролей и подключений.
- Network Settings — вот тут задаем ip адреса для интерфейсов. В моем случае у меня eth0 — это кмс сеть и интернет, а eth1 — мгтс сип транк.

- Hostname — имя сервера
- Time Zone — выбрать Europe Moscow
>> Не забудьте нажать кнопку «Сохранить» и после «Применить изменения» в правом верхнем углу.
Следом идем в меню «Общие настройки» -> «Дополнительные настройки»

- Country Indication Tones — Russian Federation
- Формат времени говорящих часов — 24 Hour Format
- Date and Time Format —
L HH:mm(Прям во так, и с пробелом) - PHP Timezone — Europe / Moscow
- System Identity — Любое, например
SCH 0000 VoIP Server(если не задано) - RSS Feeds — удалить все, что бы убрать лишнее со страницы Dashboard
>> Не забудьте нажать кнопку «Сохранить» и после «Применить изменения» в правом верхнем углу.
На этом базовые настройки выполнены!
Добавление внутреннего номера:
После успешной первоначальной настройки требуется завести хотя бы 1 номер в систему. Делается это так:
- Переходим во вкладку «Приложения» -> «Внутренние номера»

- Нажмите кнопку «Добавить внутренний номер» -> «Добавить н
аовый SIP [pchan_pjsip] внутренний номер»

- Во вкладке «Общие» указываем внутренний номер телефона, отображаемое имя и отключаю ссылку на пользователя. Мы не используем UCP систему, не актуально я считаю для обр. организации.
Т.к. телефония будет для всего комплекса, внутренние номера автор делает по маске №здания№кабинета. В примере: здание № 15, кабинет 201 — номер 15201
Так же запишите себе «Секрет» — пароль, указываемый на настраиваемом оборудовании.

- Во вкладке «Расширенный» вы можете включить запись разговоров для данного внутреннего абонента.

На этом стандартное добавление внутреннего номера окончено.
Проверка:
Для теста мы будем использовать программу Zoiper — бесплатной версии хватит для звонков.
Настраиваем Zoiper
- Введите созданный номер (15201)

- Введите IP адрес вашего сервер

- Опции аутентификации и прокси можно пропустить

- Тоже пропускаем

- Далее если все верно — подтвердите, нажав «Создать учетную запись»

- Выберите вашу учетную запись, введите пароль и нажмите кнопку» Зарегистрироваться»

- Если не возникло ошибок, кнопку поменяет название на «Разрегистрировать» (Ох уж этот ru_RU)
- После этого настройки можно закрыть и попасть в интерфейс приложения Zoiper
Так же можете проверить статус абонента на сервере во кладке «Отчеты» -> «Информация об Asterisk» и в разделе «Каналов» будет ваш номер абонента подсвечен зеленым цветом — значит все окай.

- Пробный звонок можно сделать на номер Эхо тест —
*43, Произношение вашего внутреннего номера —*65или Говорящие часы —*60. Эхо тест даст понять работоспособность телефонии как со стороны сервера, так и с вашей.

Если вы слышите себя — значит все работает как нужно.
Такого варианта настройки сервера вполне хватит для использования «на продленке, для вызова детей».
Закупаем телефоны, раскидываем по кабинетам и на охрану — профит, Вы лучший 
Подключение городского номера от МГТС:
Первым делом мы с вами понимаем, что услуга платная!
Примерные расценки:

Грубо: 57к единоразово, для переключения городского номера на цифру и предоставления sip транка и далее тарификации по тарифу ежемесячно. Как показала практика — 10 линий для организации за глаза для совместного использования.
Но в этой схеме есть минус — транк предоставляется только с оборудования МГТСа, а именно с модема. По слухам: Если не будет свободной дырки, мгтс протянет в эти деньги новую линию и воткнут модем куда нужно Вам.
С другой стороны — это обезопасит вас от подключения к вашему транку и телефонию не ломанут.
После заключения договора с МГТС вам предоставят ТУ, примерно такого вида:
Много всего написано, но работать будет без колдовства. Главное вбить правильно настройки основного и резервного транка и верно указать форматы номеров.
Пооогнали…
Начнем с настройки второй сетевой карты, которую мы задавали на этапе настройки виртуальной машины.
Не забудьте подключить кабель от мгтс-модема до второй дырки вашего сервера, той, для которой вы настроили вирт. коммутатор / или физический второй сетевой порт вашего пк.
- В меню «Администратор» провалиться в «System Admin» и выбрать «Network Settings»
- Задать настройки для eth1 то, что выдал нам МГТС

Для теста можно перейти в консоль виртуалки и пингануть шлюз, выданный МГТСом.
Если пинг прошел и все физически исправно — задать маршруты:
ip route add 10.1XX.XXX.XX via 10.YYY.YY.YY metric 101 ip route add 10.1XX.XXX.XX via 10.YYY.YY.YY metric 101
Где: 10.1XX.XXX.XX — это sbc sip сервера мгтса, а 10.YYY.YY.YY — ip адрес для вашего сип-сервера, выданный мгтсом
Настройка транков:
- Следуем по пути «Подключения» -> «Транки»

- Добавляем SIP транк: «Добавить mISDN транк» -> «Добавить SIP (chan_pjsip) транк»

- Называем как угодно, у меня например
MGTS_SIP_TRUNK, Исходящий CallerID указываем городской телефон в формате 749XXXXXXXX, который Вы переключили в мгтсе на транк

- В «Правила для манипуляции набранными номерами» задаем форматы номеров. Хватит 2-х форматов, как на стриншоте ниже:

- Во вкладке «pjsip Общие настройки» указываем адрес IP SBС SIP сервера, указанного в ТУ от МГТСа

Сохраняем, применяем. Повторить данные действия для резервного IP SBС SIP сервера. Должно получится что то такое:

Настройка исходящей маршрутизации:
В исходящую маршрутизацию нужно добавить как минимум 2 маршрута: Один для экстренных вызовов, второй — основной, через который будут звонить в город.
- Идем в «Подключения» -> «Исходящая маршрутизация»

- Первый маршрут у нас будет «Emergency» (экстренные вызовы) — так его и назовем. Далее указываем городской телефон, выбираем тип маршрута «Экстренные службы» и задаем последовательность транков: Основной + Резервный

- Во вкладке «Правила набора» добавляем шаблоны звонков на городские службы

- Во вкладке «Дополнительные установки» можно включить запись разговоров.

Сохраняем, применяем. Повторить данные действия с некоторыми изменениями:
- Во вкладке «Настройки маршрутов» не включаем кнопку «Экстренные службы».

- Меняем правила набора номера во вкладке «Правила набора»

- Ну и как выше — включаем или не включаем запись вызовов.
Сохраняем, применяем.
Настройка входящей маршрутизации:
- Переходим в «Подключения» -> «Входящая маршрутизация» и нажимаем кнопку «Добавить входящий маршрут»

- Указываем описание, номер городской и направление указываем на «Внутренние номера» и выбираем нужный нам внутренний номер. В дальнейшем можно будет изменить номер, например либо на группу номером либо по модному на IVR — голосовое меню

- На вкладке «Другое» можем включить запись разговоров, как делали до этого в исходящих маршрутах.

Сохраняем, применяем.
Далее пробуем все той же программой Zoiper звонить в город, на мобилы, в 112. Попробуйте с города прозвониться на ваш городской номер. Если все работает — ВЫ САМЫЙ ЛУЧШИЙ
P.S: УУУФФФФ. Долго я собирался… Первое, для чего была написана статья — для себя любимого! А то каждый раз когда настраиваю кому то телефонию — забываю какую ни будь мелочь! Статью не заканчиваю, дополню немного про IVR — голосовое меню и всякие ништячки для комфортной работы сотрудников с этой телефонией.

Накрылся сервер на котором стояла виртуалка с FreePBX. Сделал бэкап, попасть на FreePBX из другого здания не могу. Firewall отключен. Куда копать ?
А из здания, где телефония? И сама телефония работает ли? Копать в сторону firewal, пинговать со всех сторон.
Так же проверить у виртуальной машины настройки сетевых карт — вдруг там транк приходил, или несколько сетевых было.
Микросип отлично работает с телефонией) https://www.microsip.org/downloads
О! Как всё знакомо! Имел такой же опыт с этим же продуктом лет 7 назад. Только транк и номер покупал у zadarma.ru , что в десятки раз дешевле. Не знаю, правда, как сейчас.
Астериск и FreePBX — хороший, удобный продукт, зарекомендовавший себя десятилетиями. Астериск замечательно работает и без всякой веб-морды, но настройка его в чистой ос — то еще приключение. Все остальное, что дает FreePBX сверх Астериска, — вменяемый веб-интерфейс и какие-то дополнительные модули.
Но ничто не стоит на месте и сейчас из таких продуктов я бы рекомендовал систему на основе FreeSWITCH. Мне очень понравилась fusionpbx , реализованная на его основе. Веб-интерфейс похож на FreePBX, только всё работает быстрее. Что позволяет на таком же оборудовании поднять больше линий. Ну и ставил я сначала чистую Ubuntu-server, а уже продукт на нее.
Ну, и, насколько помню, FreePBX предпочитает работать (или предпочитала) на физическом сервере, а FusionPBX замечательно заработала на виртуалке.
1. Максимально защищаем данный компьютер от взлома. Чтоб потом не получить счет на несколько сотен тысяч за межгород.
1.1. Пароль максимально сложный.
1.2. У провайдера, который предоставляет телефонию, попросить мак-фильтрацию.
1.3. Fail2ban от подбора.
2. Для extension обязательно максимально длинные пароли.
Описано для школ — у нас по контрактам закрыты межгород и международные звонки. ))
Но все верно, данную машину защитить от всевозможных внешних доступов.
Добрый, сработает, если использовать ноут с встроенной сетевухой и usb -rj45 адаптером?
Да. не самое лучшее решение, но можно и так.