* add extension handling to subscriber
Store the extensions in the subscriber when it is available from $_SESSION.
Add more documentation to functions and variables
* remove rogue 'c' character injected by my keyboard
* Store the user session information in the token when available
* Add extension filter class
* Create get_user_setting function
* Add channel_presence_id key to event message
* Add context filter
* Add dashboard widget
* Add config for widget
* Add domain filter to service
* Fix websocket_service to get the class name
* Add new method get_service_name
* add cpu line graph
* add cpu line graph
* add cpu line graph
* add cpu line graph
* add cpu line graph
* Add FreeBSD CPU status
* Add new dashboard type Line
* Add missing public declaration
* Allow new dashboard type Line to be selected option
* Use new Line type for graphing instead of doughnut
* Remove setting hardcoded timer
* Use websockets for real-time CPU status on dashboard
* Add system_dashboard service file
* moved javascript file to core
* Initial commit of websockets
* Move app_menu to the active_calls websockets
* Fix hangup function
* Remove connection wait-state on web socket server so events can process
* Add timestamp and debug level to console for service debug output
* Remove debug exit
* Fix typo for ws_client instead of ws_server
* Update app_config.php
* Fix typo and remove empty function
* Remove call to empty function
* Fix the menu to point to the correct location
* Remove Logging Class
* Rename service file
* Rename service file
* Fix the in progress browser request
* Fix browser reload and implement 'active_calls' default values
* Add apply_filter function
* Create new permission_filter object
* In progress active calls now use filter
* Add invalid_uuid_exception class
* add event_key_filter to honor user permissions
* add and_link and or_link for filters
* Fix disconnected subscriber and add filters to honor permissions
* Add $key and $value for filter
* define a service name
* catch throwable instead of exception
* Add $key and $value for filter and allow returning null
* Update permission checks when loading page
* Add apply_filter function to honor subscriber permissions
* Add create_filter_chain_for function to honor subscriber permissions
* Add apply_filter function to honor subscriber permissions
* Add apply_filter function to honor subscriber permissions
* create interface to allow filterable payload
* create interface to define functions required for websocket services
* Pass in service class when creating a service token
* Allow key/name and return null for filter
* Adjust subscriber exceptions to return the ID of the subscriber
* Add event filter to filter chain
* Add command line options for ip and port for websockets and switch
* update service to use is_a syntax
* initial commit of base class for websockets system services
* initial commit of the system cpu status service
* remove extra line feed
* fix path on active_calls
* initial proof of concept for cpu status updated by websockets
* Allow returning null
* Use default settings to set the interval for cpu status broadcast
* Improve the CPU percent function for Linux systems
* Show more debug information
* Allow child processes to re-connect to the web socket service
* Fix websockets as plural instead of singular
* Add class name list-row
* Update active_calls.php
* Update active_calls.php
* Update websocket_client.js
* Update app_config.php
* Update app_menu.php
* Update debian-websockets.service
* Update debian-active_calls.service
---------
Co-authored-by: FusionPBX <markjcrane@gmail.com>
* Update system_status.php
Adjust column width to make some overflowing multi-line values into one-line view.
* Enhanced dashboard system_status card with more useful system info
- Added OS version detection
- Fixed not working memory usage with format (60% (1G/2G))
- Replaced memory available with swap usage
- Improved disk usage display format (57% (12G/20G))
- Added DB max connections display (Current/Max)
* Added style colors based on thresholds
* Update app_languages.php
Additional languages for new system_status items
* Refactor authentication to allow for OpenID Connect
The authentication class has been refactored to separate the `validate` function for the method `create_user_session`. This is needed for the OpenID Connect module to authenticate a user without going through the process of all authentication plugins. Only the function `check_user_cidr` has been rewritten to use a single loop instead of a double-loop.
Due to the fact that create_user_function is public, the $result associative array is checked to ensure the required fields are present and the UUID fields are valid UUIDs. Further checking could be done against the database to ensure the UUIDs exist but this has been suppressed at this time because database queries would be required.
* Database class modified to allow for login banners for OpenID Connect
The database class is responsible for creating the view for login. The OpenID application required banners to be present so that any OpenID Connect authentication mechanism could be used. Each banner displayed has the properties of: name, image, alt, and url. The name is the class name of the authentication plugin. This will match the action in the URL. The image is the image banner used for the login. The alt is the alternate text used for screen readers. Each authenticator is responsible for providing each of the field values.
* Added PHPDocs for the check_cidr function
* Add backwards compatibility for PHP versions below 8
* Remove get_banner_alt
* Update check_cidr to allow cidr array
* Update authentication.php
* Update functions.php
* Update authentication.php
When a setting is modified, the settings cache can be reloaded allowing the setting that was modified or added to take immediate effect. The call to allow any other clear cache methods to be called will allow any new features to have their settings also take effect. The settings are first cleared though so that any of the other classes that may require updated settings to work with, ensure that they have the newest default setting values.