Дмитрий Кайдаш
06.11.2019
79

Работа с модулями FreePBX – часть 1: создание и подключение

Описание: в данной статье будет рассмотрена возможность добавления собственного модуля в систему администрирования АТС на базе Asterisk – FreePBX на примере простого редактирования базы данных. Необходимое оборудование: CentOS 6.9 Asterisk 13 FreePBX 13 Для начала нам потребуется доступ по SSH к консоли сервера. Для генерации новых модулей на официальном сайте есть скрипт-помощник. Переходим в директорию […]

Описание: в данной статье будет рассмотрена возможность добавления собственного модуля в систему администрирования АТС на базе Asterisk – FreePBX на примере простого редактирования базы данных.

Необходимое оборудование:

  • CentOS 6.9
  • Asterisk 13
  • FreePBX 13
Указаны версии на которых проводилось тестирование, на других эффективность не гарантируется.

Для начала нам потребуется доступ по SSH к консоли сервера. Для генерации новых модулей на официальном сайте есть скрипт-помощник. Переходим в директорию исполнимых скриптов:

# cd /usr/local/bin

Скачиваем скрипт по ссылке:

# wget https://git.freepbx.org/projects/FL/repos/freepbx-module-generator/raw/dist/freepbxgenerator.phar?at=refs%2Fheads%2Fmaster -O freepbxgenerator.phar
Скрипт генерации
Скрипт генерации

Даём права на выполнение и запускаем без параметров. После чего нам придётся ответить на ряд вопросов.

Для выбора пунктов нужно напечатать цифру стоящую в начале строки пункта.
Генерация нового модуля
Генерация нового модуля
  1. К какому разделу отнести новый модуль (FreePBX\UCP\Оба)?
  2. Название вашего нового модуля?
Название пишется в одно слово. Без пробелов и спец.символов

3. Базовая директория модуля? Если нет особой нужды в индивидуальном размещении, достаточно нажать Enter.
4. Версия модуля?
5. Пояснения к модулю, описание?
6. Как лицензировать модуль?
7. Вкладка в которой будет размещена ссылка на страницу нового модуля?

После ответа на все вопросы будет выведена вся информация для проверки и возможности редактирования.

Здесь необходимо напечатать «yes» если всё настроено правильно, «no» если нужно что-то исправить.

После отправки утвердительного ответа начнётся процесс генерации необходимых файлов, зависимостей и ссылок. В конце будет выполнена перезагрузка FreePBX, чтобы окончательно применить новые изменения.

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

Путь к новому модулю
Путь к новому модулю
Ссылка в вашем случае может отличаться. Зависит от настроек, которые вы указали в момент генерации.

Если всё было произведено корректно, на странице отобразится следующее:

Путь к новому модулю
Путь к новому модулю

Переходим к редактированию. Сперва, откроем файл:

# nano /<modul_path>/<modul_name>/views/main.php

И проверим возможность внести изменения и их отображение на странице. Например заменим шаблонную запись на приветствие.

Работа с разметкой
Работа с разметкой

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

Но сперва, сделаем заготовку внутри самой БД. Подключаемся:

# mysql -u root –p<password>

Меняем активную базу данных:

> Use asteriskcdrdb;
Здесь точка с запятой (;) в конце строки обязательна

Создадим простую таблицу на две колонки:

> CREATE TABLE `newmodule` (`exten` VARCHAR(50) NOT NULL, `description` VARCHAR(50) DEFAULT NULL);

После чего проверим наличие новой таблицы и её пустоту.

> show tables from asteriskcdrdb; 
> select * from newmodule;
Заглушка со стороны базы данных
Заглушка со стороны базы данных

Добавим одно значение, чтобы было с чем оперировать.

> INSERT INTO newmodule VALUES (‘712’,’MyExtension’);

Вернёмся к странице, с которой мы уже работали

# nano /<modul_path>/<modul_name>/views/main.php

И приведём её к следующему виду:

Обращение из модуля в БД
Обращение из модуля в БД

Внимание! Здесь не нужно указывать авторизационных учётных данных, поскольку все операции проходят через ядро FreePBX и все доступы у модуля уже имеются.

Здесь присутствуют два логические блока:

  1. Отправляет запрос в нужную нам базу и таблицу
  2. Разбирает полученный результат и выводит на страницу

И если после сохранения этого кода не допущено ошибок, после обновления страницы мы увидем следующее:

Пробный вывод на страницу из БД
Пробный вывод на страницу из БД

Отлично. Данные в массив получены и успешно выведены. Если немного поработать над разметкой страницы и привести к следующему виду:

Корректная разметка
Корректная разметка

Сохраняем изменения и смотрим, как это повлияет на вывод страницы. Должно получиться что-то вроде:

Корректный вывод
Корректный вывод

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

Работа с модулями FreePBX – часть 2: работа с базой, импорт и экспорт

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices