* 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>
- When language is changed, update the menu and translations immediately
- When time zone is changed, update it immediately
- Flush the settings apcu cache if enabled
* use boolean setting as true boolean
* Update settings class to use the php filter_var function for boolean
Using the built-in filter type for boolean seems like a better option as they are faster, already hardened, and more widely tested.
I found this better method used originally by Mark J. Crane in 2022 in the content.php page so I included it here.
* Update settings class to use the php filter_var function for boolean
Using the built-in filter type for boolean seems like a better option as they are faster, already hardened, and more widely tested.
I found this better method used originally by Mark J. Crane in 2022 in the content.php page so I included it here.
- For pages using large number of permission like these
- Creating a permission array that is populated with permission_exists
- Then using the permission array is more efficient
* Remove the unset($database) statements
The database object is a global variable that contains a database object reference and should not be unset.
* Update event_guard.php
* Update event_guard.php
* Update event_guard.php
---------
Co-authored-by: Tim Fry <tim@fusionpbx.com>
Co-authored-by: FusionPBX <markjcrane@gmail.com>
* Added dropdown for filtering Call Center Queues
* added more translations
* fixed the wrong permission that I had originally
* added the Call Center dropdown to advanced search
so this small change has 2 purposes.
first, I found the hard way, that PHP PDO is not always coded with the same criteria between versions and databases. While PDO PGSQL on PHP 8.x may work, PDO SQLITE on PHP 7.4 may not and so on.. This will make sure that the value there is an integer.
Second, since these two values are taken from the _GET, which is in the URL string, it will protect against "imaginative" users.
* fix multiple warnings
* fix multiple warnings
* ensure array key exists
* ensure array key exists
* assign boolean variable for showall in url
* change boolean to show_all instead of showall
* revert some changes. Create default leg value and mos_score
* validate page integer
* revert back to showall from get
Permissions are there to show these however its is expected that these permissions will be assigned to a group rarely.
Considering removing the permissions and not import the records.
- If the server time is set to UTC then the search needs to account for the local time zone.
- Use the database to format the date in the most efficient way.
Track whether or not a message was actually left in the voicemail box. Previously we only knew that voicemail answered, now we know whether the caller left a message.
Callers who didn't leave a message now show up in the "Cancelled" call filter in xml_cdr.php
Bonus: Fixed a bug with the originating_leg_uuid that was breaking extension summary from a previous commit and some other minor bugs/typos.
Excluded cc_side = agent calls from being marked as missed_call = true
Fixed the previous performance issue with adding the cc_side != 'agent' to the SQL and removed its filter from the rendering loop for the xml_cdr.
It is redundant to filter out LOSE_RACE when originating_leg_uuid is also filtered, there is an overlap where every call with LOSE_RACE also has an originating_leg.
For some unexplained reason, including the `"and cc_side != 'agent'` in the WHERE tanks the query performance from seconds to minutes on Postgres 9.4. It runs great on Postgresql 13. Reverting to the "blank content while writing the page content" approach for this value unless I can find the source of the problem. - Oh, also removed an unnecessary condition that prevents you from filtering by LOSE_RACE.
Re-implemented the commented out "Failed" call status SQL filter. It was no different than leaving the "Call status" search box empty. Removed the send_refuse restriction.