Commit Graph

953 Commits

Author SHA1 Message Date
frytimo
1ee116c3ee Remove file caching in auto loader (#7752)
* Remove file cache due to race condition

* Improves APCu cache consistency and error logging

Enhances APCu handling by validating both cache keys before using cached data, checking data integrity, and logging cache validation failures. Ensures both class and interface arrays are stored successfully, logging and clearing cache on partial store failures to prevent inconsistent states. Aims to improve reliability and aid in diagnosing APCu issues.
2026-02-24 13:21:44 -07:00
frytimo
683477fdcf Remove exit command on reload signal (#7749)
* Remove exit command on reload signal

* Issue reload message on signal reload event

* Add missing return type

* Add explicit casting for int

* Add comment for signal type

* Shutdown after sending reload signal
2026-02-20 20:27:29 -07:00
frytimo
ba45d527ed Add run as user and group parameters for the service (#7747)
* Prevent running service as root unless required

* Allow specifying the user to launch service
2026-02-18 09:36:08 -07:00
FusionPBX
12523c5830 Add a new cidr class 2026-02-17 09:20:45 -07:00
FusionPBX
0279dd90e6 Add timeout parameter to read_event method
Updated read_event method to accept a timeout parameter for stream_select.
2026-02-07 14:13:56 -07:00
Alex
4b868f8330 Update domain toggle/delete message (#7725)
* Update domain toggle/delete message

* Update app_languages.php

* Update app_languages.php

* Update modal.php
2026-01-27 15:30:54 -07:00
fusionate
d104b6e7dd Theme/Menu: Remove fixed menu menu_position setting. 2026-01-15 12:50:30 -07:00
frytimo
2358411257 Check for edge case in Auto Loader caching (#7699) 2026-01-15 10:35:38 -07:00
FusionPBX
d0b26d355c Add missing semi-colon. 2026-01-13 11:55:57 -07:00
FusionPBX
2975e166fc Change the name of method schema to upgrade 2026-01-13 11:43:55 -07:00
FusionPBX
afc9a733e7 Use pre-loaded applications array from the constructor 2026-01-13 11:41:19 -07:00
FusionPBX
6f37951e02 Move update_indexes into the schema method 2026-01-12 14:17:10 -07:00
FusionPBX
92042593c8 Add a static xml valid class 2026-01-09 20:21:33 -07:00
FusionPBX
b7edb9c797 Add method get_column_default to the schema class
Used to get the column default
2026-01-03 11:49:45 -07:00
FusionPBX
3e3f998810 Fix the per domain boolean settings 2026-01-02 01:09:14 -07:00
frytimo
46d3eb18ea Active conferences (#7684)
* Add active conferences with web sockets

* Buttons mostly working

* Convert all methods, function, variable, const to snake case instead of standards.

* Add default settings for customized control

* Add customizable settings

* More debugging default settings added

* Add better authentication handling for websocket connections
These methods were added:
- on_ws_authenticated can be overridden in the child class if there are tasks that need to be done after authentication.
- handle_ws_authenticated was added in the parent class

Handle methods are called by the this class and then their respective 'on_ws_' method is then called.

* Mute All now working

* Add PHPDoc block comments

* More PHPDoc to better describe class and variables

* Fix accidental removal of function during PHPDoc block edits

* Remove the variable type declaration for PHP 7.1 compatibility

* Update conferences with more websocket communication to replace AJAX calls.

* Ensure interface is loaded when no members

* Move color settings to theme category

* Update page view to default settings changes
2025-12-29 22:30:08 -07:00
Alex
295db3b9c8 Show the list of selected domains on toggle/delete confirmation (#7682)
* Show the list of selected domains on toggle/delete confirmation

* Update app_languages.php

* Update modal.php

* Update domains.php
2025-12-29 14:09:53 -07:00
markjcrane
1afc1daa88 Use CREATE INDEX IF NOT EXISTS 2025-11-28 17:16:19 -07:00
markjcrane
eb964855fe Add methods get_database_indexes and update_indexes 2025-11-27 08:07:07 -07:00
markjcrane
98e04da076 Format code with PHP Formatter - pretty-php 2025-11-26 07:19:30 -07:00
markjcrane
d7127cd1a6 Replace create or replace with drop the view then create view. 2025-12-10 13:02:21 -07:00
FusionPBX
6b063f2c28 Replace the DOCUMENT_ROOT and PROJECT_ROOT variables
Use the __DIR__ constant and dirname as needed
2025-12-08 14:12:19 -07:00
frytimo
2951bff6c5 Reuse socket connection to event socket. (#7634)
Reuse the socket connection instead of creating a new connection for each API request.
Add PHPDoc tag "static" for the static methods in event_socket.
2025-11-24 05:30:28 -07:00
FusionPBX
d6aa15549c Exclude json to jsonb for schema data types 2025-11-19 15:49:10 -07:00
markjcrane
8063ae9ceb Set the schema return type
- Remove deprecated comments
2025-11-19 14:22:27 -07:00
frytimo
34821bed7e Documentation, format class, no modification. (#7629) 2025-11-19 09:48:36 -07:00
markjcrane
0ea256fce8 Upgrade Schema includes Data Types by default
- Change the label to Database Schema
- Update the description to say tables, columns and data types
- upgrade.php --schema
  - Includes data types by default
  - Remove --types from upgrade.php
- command line upgrade --interactive
  - Option 2 schema
  - Includes data types by default
2025-11-18 20:19:04 -07:00
frytimo
debd5c0fbb Add more documentation for the abstract service class (#7626) 2025-11-17 21:44:02 -07:00
markjcrane
ce1bee4821 Optimize the schema class 2025-11-17 14:01:45 -07:00
frytimo
aacc41ade2 Fix PHP error implicit null casting (#7624) 2025-11-17 06:12:22 -07:00
fusionate
63aa341d99 Theme - Menu Style (Fixed): Make User Menu visible when scrolled. 2025-11-15 18:21:36 -07:00
frytimo
45710ef012 Use APCu cache for the text class when APCu is enabled (#7614)
Using the APCu cache within the text class adds a significant speed boost. In testing, the load time of the text class was about 7% of the total load time on the page. After implementing caching, the load time for the text class dropped to just 0.17% of the total time for the page to load. When APCu caching is not available, the class will cache it directly dropping it from 7% to just 2.3% of the total script load time.
2025-11-14 15:22:49 -07:00
FusionPBX
f3bbe8770e Add a space after the foreach 2025-11-13 08:27:53 -07:00
frytimo
5d5f00f82c Fixed the $settings object being singular when it should be plural (#7610)
This pull request fixes an error when the settings object is assigned to a singular variable of `$setting` instead of `$settings`. This makes the included files run potentially the wrong domain name.

Optimize the `upgrade()` method of the `domains.php` to reduce filesystem operations.
2025-11-12 16:02:57 -07:00
FusionPBX
203ce4d2a3 Function check_sql removed
This function was used before we started using paramaterized queries. So a better way has been in use for many years time to deprecate and remove the check_sql function.
2025-11-08 14:35:24 -07:00
markjcrane
422fee7f23 Prevent a few PHP Warnings 2025-11-01 21:40:28 -06:00
markjcrane
a90a4e6212 Pass the database object to the schema object 2025-11-01 21:34:03 -06:00
markjcrane
bf5bb4f642 Fix multiple PHP warnings 2025-11-01 19:58:21 -06:00
Mark J Crane
0d9107d4d5 Predefine the $m variable 2025-10-25 14:55:43 -06:00
FusionPBX
1221ac6498 Update domains.php 2025-10-24 23:40:27 -06:00
FusionPBX
55fe4e2eb5 Update settings class 2025-10-24 21:15:18 -06:00
Alex
126779190f Convert boolean values to a string before being copied (#7591)
* Convert boolean values to a string before being copied

* Update access_controls.php

* Update copyright year and handle boolean values

Updated copyright year from 2019 to 2025 and added conversion of boolean values to strings in the database result processing.

* Update call_block.php

* Update call_center.php

* Update call_flows.php

* Update conference_controls.php

* Update conference_profiles.php

* Update conferences.php

* Update device.php

* Update dialplan.php

* Update event_guard.php

* Update extension_settings.php

* Update fax.php

* Update fax_queue.php

* Update gateways.php

* Update ivr_menu.php

* Update number_translations.php

* Update phrases.php

* Update pin_numbers.php

* Update ring_groups.php

* Update streams.php

* Update time_conditions.php

* Update vars.php

* Update email_templates.php

* Update users.php

* Update domains.php

* Update groups.php

* Update extension_copy.php

* Update device_copy.php
2025-10-22 17:14:22 -06:00
Mark J Crane
136933fa57 Remove the semi-colon from the view sql statement. 2025-10-22 09:44:37 -06:00
Mark J Crane
2d6fbf5741 Update the install.php
- Updated to work with latest changes
- Updated a few setting defaults
2025-10-19 20:57:34 -06:00
Mark J Crane
a11b79e1b5 Removed :mixed to keep PHP 7.1 compatibility 2025-10-17 15:38:19 -06:00
frytimo
7fdb3644e7 Fix websocket connection (#7581) 2025-10-17 13:45:49 -06:00
Mark J Crane
559ea5fda7 Update the PHPDoc parameter types for select 2025-10-17 11:41:32 -06:00
frytimo
77eda80c3d Fix socket will not reconnect after disconnect (#7580) 2025-10-17 08:51:49 -06:00
frytimo
e0f7e38e84 Fix missing CSS class for open_id banners and more PHP warnings (#7575)
* Fix PHP 8.4 warnings
Strings are no longer allowed to be defaulted to null without the null declaration

* Fix missing css class for open_id banners
2025-10-16 12:08:19 -06:00
FusionPBX
dda18481ec Refactor PHP code (#7574)
* Use settings-get method
- get default, domain and user settings
- Replace _SESSION

* Simplify get domain paging

* Change isset using empty

* Fix token name and hash

* Add new default settings category: contact, name: default_sort_column, and default_sort_order

* Update app_config.php

* Update footer.php

* Fix require.php and core/dashboard/index.php (#7563)

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Update destinations.php

* Update permission.php

* Update require.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
Co-authored-by: FusionPBX <mark@fusionpbx.com>

* Update header.php

* Use settings get classes (#7567)

* access_control

* azure

* azure

* basic_operator_panel

* bridges

* call_block

* call_broadcast

* call_center

* call_flows

* call_forward

* call_recordings

* do_not_disturb

* feature_event_notify

* follow_me

* remove unused object properties

* fix esl command

* fix esl command

* conference_centers

* conference_centers - remove whitespace

* conference_controls

* conference_profiles

* conference_profiles

* Delete core/websockets/resources/classes/socket_exception.php.original~

* Delete core/websockets/resources/classes/websocket_server.php.original~

* conferences

* destinations

* device

* dialplan

* email_queue

* event_guard

* extension_settings

* extension

* fax

* fax_queue

* fifo

* gateways

* ivr_menu

* modules

* switch_music_on_hold

* number_translations

* phrases

* pin_numbers

* provision

* switch_recordings

* registrations

* ring_groups

* sip_profiles

* sofia_global_settings

* streams

* presence

* switch_files

* time_conditions

* vars

* voicemail_greetings

* voicemail

* ringbacks

* contacts

* xml_cdr

* authentication

* dashboard

* default_settings

* domain_settings

* email_templates

* permission

* user_logs

* user_settings

* users

* button

* cache

* captcha

* remove cli_option

* remove directory.php for switch_directory class

* email

* file

* groups

* event_socket use config object

* Use intval to give an integer port

* switch_settings

* tones

* fix object used before initialization

* menu

* fix copy paste error for switch_files.php

* always include require.php for framework files

* Fix missing properties

* set the action

* Use the $database object

* Add missing class properties

* Fix the domain_name

* Use public scope for domain_uuid and domain_name

* Add missing parameters

* Correct the user_uuid parameter

* Add json_validate and use it in the dashboard
update indentation on functions.php

* Intialize the active_registrations variable

* Define the $parameters

* Set a default value for user_setting_enabled

* Add condition domain_uuid not empty

* Add not empty condition for domain_uuid

* Declare the global variables

* Update how the defaults are set use ??

* Use ?? to set the default values

* Update call_center_queue_edit.php

* Prevent an error

* Add domain_name property

* Fix the null coalescing operator

* Removed domain_uuid from the URL

* Change condition to check sip_profile_domain_name

* Refactor domain_uuid declaration and comments

Removed redundant domain_uuid declaration and updated comments.

* Account for an empty value

* Refactor constructor to use settings array

Updated constructor to accept settings array for domain UUID and database initialization.

* Refactor xml_cdr.php to improve variable organization

Removed duplicate domain_uuid declaration and reorganized private variables for better structure.

* Enhance transcription button logic and icon display

Updated transcription button visibility conditions and improved application icon handling in the call flow summary.

* Refactor settings initialization in domains.php

Updated settings initialization to include domain_uuid and user_uuid.

* Modify domain change condition in require.php

Updated condition to check if 'domain_change' is not empty before proceeding.

* Set default_setting_enabled to true by default

* Enhance domain UUID check in access controls

* Enhance domain UUID check in settings list

* Refactor category display logic in vars.php

* Simplify list row URL generation

Removed domain UUID check from list row URL construction.

* Refactor module category display logic

* Fix SQL query by removing parameters variable

* Initialize result_count variable for call recordings

* Refactor leg variable usage in xml_cdr_details.php

* Update conference_room_edit.php

* Change GET to REQUEST for order and search variables

* Set timezone and SQL time format in recordings.php

Added timezone and SQL time format settings.

* Set default for ring group greeting

* Improve domain UUID check in stream listing

* Handle null voicemail_option_param safely

* Add file existence check for greeting files

Check if greeting file exists before getting size and date.

* Improve domain UUID check in email templates

* Update FIFO strategy dropdown and description text

* Add multilingual agent descriptions

Added multilingual descriptions for agents in the app_languages.php file.

* Add music on hold descriptions

* Add the chime list description

Updated copyright year from 2024 to 2025.

* Fix domain UUID check and handle email subject decoding

* Add null coalescing for $value in email_test.php

Ensure $value is not null by providing a default empty string.

* Handle undefined dialplan_uuid in input field

* Add translations for 'Status' label in multiple languages

* Fix typo in config instance check

---------

Co-authored-by: frytimo <tim@fusionpbx.com>
2025-10-15 21:24:59 -06:00