Commit Graph

65 Commits

Author SHA1 Message Date
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
adfc4cc469 Create more documentation (#7627)
* Documentation, format class, no modification.
2025-11-18 18:33:07 -07:00
markjcrane
bf5bb4f642 Fix multiple PHP warnings 2025-11-01 19:58:21 -06:00
FusionPBX
2023e40d99 Cache key add hostname prefix 2025-10-15 21:39:03 -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
FusionPBX
2fe8b65988 Define app_name and app_uuid as constants (#7534)
* Set a constant on each class for app_name and app_uuid
* Update the database class to use the app_uuid and app_name
* Update the classes to use the database::new()
* Remove the instances of 'new database'
2025-09-30 21:37:09 -06:00
fusionate
6fc9b81aac Extension - Delete: Remove associated Extension Settings. 2025-07-25 15:32:06 -06:00
frytimo
08001488f4 Allow namespace in auto loader (#7307)
* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove closing tag

* remove invalid method params

* remove closing tag

* remove closing tag

* Update auto_loader to load each class file in the project
Update the auto_loader class to use an include statement on each file in the project to load the class within the file. This will allow mismatched names within the file to be loaded and mapped according to the declaration instead of the filename. The class is then checked against the parsed classes from the PHP engine so that namespaces are available and mapped to the file they were declared in. An update was also made to the search algorithm used to find a file that was not already loaded by collapsing the array to have only valid matches to increase performance on a cache miss. Logging within the auto_loader has been moved to a function.
Multiple files were modified to allow the include statement. When the class has the `if(class_exists())` statement, the auto_loader is called to check for the class. This caused an infinite loop scenario so all wrappers have been removed. The auto_loader will now break the loop by directly modifying the internal classes array instead of trying to restart with the 'reload_classes' method.

- APCu is used to cache classes so any loading of the classes is done only once. To clear the APCu cache, restart php-fpm or call the auto_loader::clear_cache() function.
- Cache file is used when APCu is not available. To clear the cache remove it from the tmp folder or call the auto_loader::clear_cache() function.
- All classes must no longer have a class_exists wrapper to benefit from the performance boost.
- Classes should not be directly included when the auto_loader is used.

* remove include statement of class file

* Update destinations.php
2025-03-12 13:55:47 -06:00
FusionPBX
cd8d5302ac Fix temporary permissions 2024-11-29 13:57:01 -07:00
markjcrane
5cbc53c7d9 Fix end of file line only use one line feed at the end of the file 2024-09-19 16:33:17 -06:00
frytimo
2cbb4dbc31 remove instances where a pointer is used in a foreach loop for value (#7108) 2024-08-22 12:41:10 -06:00
FusionPBX
a5d44ae44b Use the database more efficiently 2024-07-26 17:04:02 -06:00
markjcrane
025f243bac Prevent PHP 8.1 warnings 2023-07-13 17:00:47 -06:00
fusionate
603199f1d4 Extension [Class]: Updates for PHP 8.1 2023-05-17 07:02:26 +00:00
fusionate
4c50b6e83a Extension [Class]: Updates for PHP 8.1 2023-05-17 05:25:48 +00:00
frytimo
fef8165be2 Frytimo pr patches for php8.1 (#6630)
* Passing null to parameter #2 ($string) of type string is deprecated

* Passing null to parameter #1 ($string) of type string is deprecated

* php 8.1 fixes

* php 8.1 fixes - replace strlen($var) > 0 with !empty($var)

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - strlower with null

* php 8.1 fixes - strreplace with null

* php 8.1 fixes - passing null to base64_decode

* php 8.1 fixes - check for false and check for null on $this->dir

* php 8.1 fixes - remove assignment of $db variable to modules object

* php 8.1 fixes - avoid sending null to substr

* php 8.1 fixes - change ${var} to {$var}

* php 8.1 fixes - check for null before preg_replace

* php 8.1 fixes - remove setting db variable on domains object

* php 8.1 fixes - set empty string if $row['domain_setting_subcategory'] is null

* php 8.1 fixes - set empty string if $_REQUEST['show'] is not available

* php 8.1 fixes

* php 8.1 fixes - correct $_POST checking syntax

* php 8.1 fixes - correct $_POST variables

* php 8.1 fixes

* Use brackets consistently

* Update user_setting_edit.php

* Change to not empty

* Update device.php

* Update text.php

---------

Co-authored-by: Tim Fry <tim@voipstratus.com>
Co-authored-by: FusionPBX <markjcrane@gmail.com>
2023-05-05 10:46:37 -06:00
frytimo
69bd42af05 remove unneeded destruct methods as GC has higher performance (#6631)
Co-authored-by: Tim Fry <tim@voipstratus.com>
2023-04-27 20:18:53 -06:00
FusionPBX
dd106a6871 Replace event_socket_mkdir with php mkdir. (#6170) 2021-12-02 19:03:55 -07:00
fusionate
229bc0ca4e Extensions - Delete: Restore concurrent deletion of voicemail box. 2020-11-30 14:17:30 -07:00
fusionate
c67c8cd4c2 Destination Select - Dynamic: Clear session array on add/toggle/delete of a destination type record. 2020-11-30 14:15:57 -07:00
Nate
8a6ba1fda2 Extensions: Option to delete voicemail when deleting extensions. 2020-02-18 07:44:01 -07:00
Nate
a6b06ee8a9 Call Forward/Follow Me/DND: Update classes. 2019-11-30 21:42:15 -07:00
Nate
bec5c647c9 List View: Updates to action classes. 2019-11-30 15:18:48 -07:00
Nate
0e56d1b7e5 Extensions: List view updates. 2019-11-18 13:31:06 -07:00
Nate
836fb87136 Misc Classes: Database class integration. 2019-09-02 15:57:18 -06:00
FusionPBX
72cdefba59 Update extension.php 2016-11-29 11:51:33 -07:00
FusionPBX
fe49484055 Update extension.php
Improve the extension->exists method.
2016-11-29 11:38:00 -07:00
FusionPBX
f65903e75e Update extension.php
Update the function exists method.
2016-11-29 11:04:00 -07:00
FusionPBX
9cac833ee3 Update extension.php
Remove the extra exists method added a few hours ago.
2016-11-24 11:03:13 -07:00
jebsolutions
9626f23072 prevent cloning duplicate extensions (master #1821) (#2033)
* prevent cloning duplicate extensions

app/extensions/app_languages.php
+ add duplicate extension error prompt

app/extensions/extension_copy.php
+ add check to see if duplicate extension exists

app/extensions/resources/classes/extension.php
+ add function to check if extension exists

* fix typo

* Update app_languages.php

* Update extension_copy.php

* Update extension.php

* Update extension_copy.php

Use the global app_languages.php message-duplicate translation.

* Update extension_copy.php

* Update extension.php
2016-11-24 00:23:44 -07:00
FusionPBX
5fe295a818 Update extension.php
Add exists method to the extension class.
2016-11-05 22:32:20 -06:00
FusionPBX
bd15a0a52d Update extension.php 2016-10-18 00:18:32 -06:00
FusionPBX
9ddd8f81dc Update extension.php
Merged pull request 1607 manually.
2016-08-25 15:59:32 -06:00
markjcrane
bd23c78670 Use FreeSWITCH to run mkdir so it inherits its own user and group permissions. 2016-06-28 15:18:40 -06:00
Mafoo
71525c26b0 I got the permissions wrong (#1616)
it should have been in octal mod (leading 0)
also updated the fax application as it needs the stickygid too
2016-05-26 05:55:46 -06:00
Mafoo
86c4742347 Added sticky GID permissions (#1615) 2016-05-25 21:51:41 -06:00
markjcrane
471da2bca0 Add (!class_exists('extension')) 2016-04-28 16:57:42 -06:00
blackc2004
52bd6a1029 Update extension.php 2015-12-09 14:04:26 -08:00
blackc2004
cdb016277d Update extension.php 2015-10-29 12:24:55 -07:00
FusionPBX
e6a85e776b Merge pull request #1018 from moteus/number_alias_as_vm_id
Change. Use number_alias as voicemail_id.
2015-08-11 20:43:20 -06:00
Alexey Melnichuk
e89a499b2c Change. Use number_alias as voicemail_id. 2015-07-02 18:49:58 +04:00
Alexey Melnichuk
9097861e30 Change. Does not use default dialplan/directory.
I think it more consistent that it allows edit domain in single place.
Also on my Windows machine while installing all users/context creates not in `default` directory.
And I have problem because remove users did not work, `default.xml` file contain `$${v_domain}` variables.
2015-07-02 13:14:35 +04:00
Mark Crane
35ad4784dd Add call_timout to the extension xml files. 2015-05-05 07:45:05 +00:00
Nate Jones
71a861580c Voicemail: Added additional options for email notification (attach vm, download link, auto-play listen link). Also cleaned up email templates a little. 2015-02-24 08:09:01 +00:00
Mark Crane
ba54bce345 Remove the a1 hash which breaks integration with Asterisk. a1 hash was also undermined by reverse authentication. 2014-12-09 09:45:14 +00:00
Mark Crane
14babb88ed Set extension variables for forward all, busy, no answer, and do not disturb. 2014-12-03 08:05:41 +00:00
Mark Crane
b4c32e7fc4 Remove the closing multi-line comment 2014-10-11 07:26:59 +00:00
Mark Crane
58fe5d54a7 Add the menu_item_group_uuid primary key when adding a group to the menu 2014-10-11 07:16:04 +00:00
Mark Crane
110ae90cae Add reverse authentication required for the provision and reboot options on the status -> registrations. 2014-09-17 17:04:41 +00:00
Mark Crane
0c58eaa56d Add domain_name to the extension xml file 2014-08-03 10:48:45 +00:00