Coder Social home page Coder Social logo

lumian / grcentral Goto Github PK

View Code? Open in Web Editor NEW
5.0 0.0 1.0 9.91 MB

GRCentral - Система управления VoIP устройствами Grandstream в удобном Web интерфейсе.

Home Page: https://hionline.ru/#grcentral

License: MIT License

PHP 90.13% HTML 0.33% JavaScript 4.53% CSS 5.01%
grandstream voip panels php webmanager webui

grcentral's Introduction

GRCentral

Система управления VoIP устройствами Grandstream в удобном Web интерфейсе.

Основа:

  • Code language: PHP 7.4
  • PHP framework: Codeigniter 3.1.13
  • WebUI: Bootstrap 5.1.3 + jQuery 3.6.0 + Font Awesome icons 5.15.4
  • UI Languages: Russian, English.

Примечание:

Система разрабатывается и тестируется на аппаратах Grandstream GXP1610, GXP1620 и HT802, но подойдет практически для любых телефонных аппаратов фирмы Grandstream за счет практически полного отсутствия привязки к конкретным параметрам (P-Value) конфигов тех или иных устройств. В коде присутствует привязка только к параметрам аккаунтов, индексы которых, на всех аппаратах идентичны.

Описание текущего функционала (v0.3):

  • Общее:
    • Наличие простого web-инсталлятора.
    • Возможность работы с двумя языками: Русский и Английский.
    • Все разделы и настройки подробно описаны в документации на github wiki продукта.
  • Управление устройствами:
    • Создание/редактирование/удаление.
    • Возможность автоматического создания новых устройств при обращении к серверу конфигурации.
    • Управление SIP аккаунтами (до 4х штук).
    • Просмотр логов обращения устройства к GRCentral.
    • Группировка устройств по модели и группам моделей для упрощения настройки.
    • Управление параметрами устройств:
      • Возможность редактирования и привязки различных шаблонов параметров к различным группам моделей устройств.
      • Возможность указания частных параметров для каждого конкретного устройства
    • Возможность создания общего справочника VoIP серверов для их дальнейшего использования при настройке SIP аккаунтов.
  • Распространение прошивок:
    • Добавление/Удаление/Активация/Деактивация прошивок.
    • Привязка прошивок к группам моделей устройств.
    • Возможность включения или отключения выдачи прошивок устройствам.
    • Возможность обновлять как добавленные в базу данных устройства, так и любые другие без добавления в БД.
  • Генерация XML файла телефонного справочника:
    • Система позволяет управлять телефонным справочником как вручную (создание контакта с заполнением полей), так и автоматически на основе подключенных к устройствам SIP аккаунтов.
  • API функционал:
    • Получение информации об устройствах
    • Получение контактов из телефонной книги
  • Мониторинг устройств:
    • Система может производить периодическую проверку доступности устройств посредством системной команды ping и отображать данные по доступности как в общем списке устройств, так и на странице устройства.
  • Логирование действий:
    • Система позволяет вести логи обращений всех устройств, а так же логирование API запросов.
    • Логи можно посмотреть как в общем журнале, так и отфильтрованные по выбранному устройству на странице с информацией об устройстве.

Планы на развитие:

Процесс установки и настройки

Полезные ссылки

Авторские права

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

grcentral's People

Contributors

lumian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Forkers

scrik

grcentral's Issues

Ошибка при отдаче прошивки

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

Документация по v0.2

В текущей документации необходимы следующие изменения:

  • Добавить информацию о новом разделе системных настроек ( Issue #16 и #28 )
  • Добавить информацию о новом разделе "Справочник" ( Issue #3 )
  • Добавить информацию про настройку номера голосовой почты ( Issue #23 )
  • Добавить подробное описание конфигурационных настроек в группах моделей устройств: что такое, где искать, как заполнять ( Issue #26 )
  • Добавить информацию по чтению логов устройств ( Issue #8 )

Расширенная работа с прошивками аппаратов

Необходимо реализовать возможность выбора прошивки у аппарата, даже если прошивка отключена.
Для чего? Чтобы можно было обкатывать новые прошивки только на указанных аппаратах.

Что для этого нужно:

  • Добавить поле выбора прошивки при редактировании аппарата из списка прошивок, даже если прошивка не активна.
  • Добавить какое-то обозначение, что прошивка зафиксирована в списке аппаратов
  • Добавить обработку версии в контроллер provisioning для отдачи только выбранной прошивки
  • Добавить возможность включения/отключения скачивания прошивок для не добавленных и не активированных аппаратов

Реализовать проверку IP адреса устройства

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

Сделать настройки:

  • "Отвечать на запросы только с указанных в БД IP адресов" - для дополнительной авторизации не только по mac адресу, но и по IP адресу.
  • "Автоматически изменять IP адрес в базе данных при обращении с нового адреса" - будет полезно в случае динамических IP адресов у устройств.

Изменение логики отдачи прошивок

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

Суть изменения в следующем:

  • Устройства всегда должны получать статус HTTP 200 и актуальный файл прошивки. Устройство само решает, будет оно обновляться или нет.
  • Статус HTTP 404 должен отдаваться только в случае каких-либо ошибок или не правильных настроек сервера.

Инсталлятор

Необходим автоматический инсталлятор панели управления.

Девайс не обновляется на закрепленную прошивку

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

Интеграция с другими вендорами (не только Grandstream)

Необходимо рассмотреть возможность интеграции системы с другими вендорами, как например: Yealink, Fanvil.
На данный момент это является проблемой, т.к. нет аппаратов для тестирования.
В теории же, можно было бы реализовать.

Закидываю в период "v.0.XXX (Future)", т.е. в дальнюю коробку.

Флаг "Собственные параметры"

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

Отдельные параметры для каждого телефона

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

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

Тестовый режим в системных настройках

Необходимо реализовать переключатель в системных настройках на временное отключение возможности отдавать CFG и FW файлы устройствам, а так же на включение/отключение тестового режима для отладки системы.

Вынести настройки из конфигов в базу и web

Отказаться от конфига grcentral.php и перенести настройки в базу. Вынести страницу настроек системы где-то в интерфейсе.

Так же, хотелось бы рулить штатными (необходимыми Codeigniter'у - файл config.php) настройками из панельки, минимизируя хождения по конфигам при настройке и эксплуатации.

Реализовать авторизацию

Необходимо реализовать авторизацию в web-интерфейсе. Скорее всего будет достаточным просто пары login/password без возможности управления несколькими пользователями.

Авто-получение шаблонов данных для быстрой настройки

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

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

Предполагается реализация данного функционала в ближайшее время, поэтому проставляю план на v.0.3.

Поддержка работы с ActionURL

Устройства Grandstream позволяют "стучаться" по определенным URL в случае выполнения каких-либо действий. Grandstream называет их - ActionURL. Настраиваются, как обычно в конфиг файле.
Теоретически, можно сделать поддержку таких "стучалок", но надо подумать - надо ли оно вообще.

Откладываю на "далекое будущее"...

SIP аккаунт остается подключенным, если в GRCentral удалена информация о нем

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

Подгрузка логов обращений устройства через ajax

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

Реализация API для доступа к различной информации GRCentral

Необходимо реализовать API для доступа к информации, хранящейся в базе GRCentral:

  • Получение справочника (полностью)
  • Получение информации о контакте из справочника по номеру телефона
  • Получение списка устройств
  • Получение информации об устройстве по IP адресу/MAC адресу
  • Получение списка моделей устройств
  • Логирование всех запросов API
  • Возможность отключения API
  • Реализация доступа по ключу

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

Подробная информация по всем запросам в wiki проекта: API

Телефон => Устройство

Уходим от понятия "телефон" и приходим к понятию "устройство". С сервером GRCentral могут работать не только телефоны, но и другие устройства Grandstream.

  • Изменить lang-файлы
  • Изменить названия моделей
  • Изменить названия контроллеров
  • Изменить названия вьюшек

Обновление документации и выпуск релиза 0.3

Управление рингтонами

Необходимо внедрить функционал для управления рингтонами через web-интерфейс с автоматическим перекодированием в нужный формат.

Перевод на AJAX окна редактирования устройства

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

Возможно, в каких-то еще окнах потребуется к моменту реализации данной issue.

Счетчик прошивок

В списке прошивок добавить отображение счетчика "на скольких аппаратах установлена данная версия"

Редактирование устройства на странице информации

Необходимо реализовать редактирование устройства не только на странице списка, но и на странице информации.

Как вариант - чтобы не дублировать код, модальку и JS код вынести в отдельную вьюху и подключать непосредственно во вьюхе функции.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.