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
2025-10-15 21:24:59 -06:00
2025-10-15 21:24:59 -06:00
2025-10-15 21:24:59 -06:00
2018-09-03 16:00:25 -06:00
2025-10-15 21:24:59 -06:00
2025-08-26 08:17:41 -06:00
2022-09-17 11:07:02 -06:00
2020-05-19 15:19:16 -06:00

What is FusionPBX?

FusionPBX can be used as a single or domain based multi-tenant PBX, carrier grade switch, call center server, fax server, VoIP server, voicemail server, conference server, voice application server, multi-tenant appliance framework and more. FreeSWITCH™ is a highly scalable, multi-threaded, multi-platform communication platform.

It provides the functionality your business needs and brings carrier grade switching, and corporate-level phone system features to small, medium, and large businesses. Read more at FusionPBX. Please visit our youtube channel

In addition to providing all of the usual PBX functionality, FusionPBX allows you to configure:

  • Multi-Tenant
  • Unlimited Extensions
  • Voicemail-to-Email
  • Device Provisioning
  • Music on Hold
  • Call Parking
  • Automatic Call Distribution
  • Interactive Voice Response
  • Ring Groups
  • Find Me / Follow Me
  • Hot desking
  • High Availability and Redundancy
  • Dialplan Programming that allow nearly endless possibilities
  • Many other Features

Software Requirements

How to Install FusionPBX

  • As root do the following:

Debian Install

wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/debian/pre-install.sh | sh;
cd /usr/src/fusionpbx-install.sh/debian && ./install.sh

Ubuntu Install

wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/ubuntu/pre-install.sh | sh;
cd /usr/src/fusionpbx-install.sh/ubuntu && ./install.sh

FreeBSD Install

pkg install --yes git
cd /usr/src && git clone https://github.com/fusionpbx/fusionpbx-install.sh.git
cd /usr/src/fusionpbx-install.sh/freebsd && ./install.sh

CentOS Install

yum install wget
wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/centos/pre-install.sh | sh
cd /usr/src/fusionpbx-install.sh/centos && ./install.sh

This install script is designed to be an fast, simple, and in a modular way to install FusionPBX. Start with a minimal install with SSH enabled. Run the following commands under root. The script installs FusionPBX, FreeSWITCH release package and its dependencies, IPTables, Fail2ban, NGINX, PHP FPM and PostgreSQL.

Some installations require special considerations. Visit https://github.com/fusionpbx/fusionpbx-install.sh readme section for more details.

ISSUES

If you find a bug sign up for an account on www.fusionpbx.com to report the issue.


FusionPBX Members

FusionPBX Memberships are for businesses that want to get the most out of FusionPBX. A FusionPBX Member actively receives news and updates, has access to past training videos, additional member documentation, and live monthly continuing education training.

How to sign up

Create an Account. Then login and click on Become a Member and then Join Now. From there follow the simple instructions. After signing up as a FusionPBX member you will get instant access to your member benefits.

Receive News & Updates

FusionPBX Members receive regular updates on new features and behavioral changes in the project, as well as advanced warning of any security related issues. Be in the know as a Member.

Advanced Bug Reporting

Beyond submitting your own Bug Reports, FusionPBX Members also get to view select bug reports from other users saving you the valuable time spent communicating the details of an issue that's already known. Become a Member today and help make FusionPBX even better.

Continuing Education

Receive access to an exclusive live session each month with developers of FusionPBX. Attending will help you stay on top of recent advancements, bug fixes, interface changes, and other relevant updates. If you're serious about telephony, and rely on FusionPBX as a revenue stream, you won't want to miss these valuable meetings.

Official Training

Members receive access to past Admin Training Videos, Advanced Training Videos and exclusive, Advanced Member Documentation. This is valuable documentation that we are confident you will find it to be essential and important to your business.

Feature Videos

To speed up the learning process, FusionPBX Members are encouraged to peruse the growing library of Feature Videos, to get quickly up to speed on a specific feature of FusionPBX. More videos are added on a regular basis, with the intent to help Members become expert FusionPBX system administrators feeling confident in their ability to manage their telephony environment with ease.

Membership Features

Gold members get access to FusionPBX's REST API. Purple members get access to Call Center Reporting and Wallboard (coming soon) Additional Member Applications will be added to all Member levels.

Membership Levels

Green Level

The Green level Membership allows one individual access to all the following benefits. Some benefits are described in detail in the Membership Benefits section below. FusionPBX is critical to your business, so becoming a Member is a crucial step in protecting your investment.

  • News & Updates
  • Official Training Videos
  • Member Documentation
  • Feature Videos
  • Advanced Bug Reporting
  • Monthly Continuing Education
  • Additional Member Applications (Coming Soon)

Price $100.00 USD Monthly



Blue Level

The Blue level Membership allows one individual access to the Green level benefits, plus includes OVER AN HOUR of Official Support each month. FusionPBX is critical component of your business, so access to support when you need it is crucial.

  • News & Updates

  • Official Training Videos

  • Member Documentation

  • Feature Videos

  • Advanced Bug Reporting

  • Monthly Continuing Education

  • Rebranding (White Label)

  • Rebranding Training

  • Up to 1.5 HOURS of Official Support Each Month

  • Additional Member Applications (Coming Soon)

Price $300.00 USD Monthly

Purple Level

The Purple level Membership allows one individual access to the Green level benefits, plus includes up to THREE (3) HOURS of Official Support each month, and the use† of the advanced FusionPBX Call Center applications.

  • News & Updates

  • Official Training Videos

  • Member Documentation

  • Feature Videos

  • Advanced Bug Reporting

  • Monthly Continuing Education

  • Call Center Wallboard Application†

  • Call Center Summary (Reporting) Application†

  • Up to 3 Hours of Official Priority Support Each Month

  • Additional Member Applications (Coming Soon)

Price $500.00 USD Monthly

† Up to three (3) company-owned servers (additional licensing available).



Gold Level

The Gold level Membership includes all the benefits of the Green and Purple membership levels, plus access for up to three (3) employees from your organization, up to SIX (6) HOURS of Official Support each month, and access to the FusionPBX REST API.

  • News & Updates

  • Official Training Videos

  • Member Documentation

  • Feature Videos

  • Advanced Bug Reporting

  • Monthly Continuing Education

  • Call Center Wallboard Application‡

  • Call Center Summary (Reporting) Application‡

  • 3 Hours of Official Priority Support Each Month

  • Up to Three (3) Users from Your Business

  • 3 MORE Hours of Official Priority Support

  • (Up to 6 Monthly)

  • FusionPBX REST API

  • Additional Member Applications (Coming Soon)

Price $1000.00 USD Monthly

‡ Up to six (6) company-owned servers (additional licensing available).



Becoming a FusionPBX Member requires a ONE (1) YEAR COMMITMENT (to be understood as 12 consecutive months) from the date you join. Failure to maintain a valid payment method during this period may result in your membership being permanently terminated, and all support options forfeited. Following the commitment term, your membership will continue automatically on a monthly basis, but you may cancel at any time. Note: If you have paid for, and participated in, an Official FusionPBX Training course, the standard 1-year commitment does not apply.



Free Support

We provide several avenues for you to get your system up and running on your own and learn the basics of the system.

  1. Youtube Channel
  2. Documentation
  3. How to Contribute

Commercial Support

These options support the project and cover any kind of help you might need from architecture, installation, best practices, troubleshooting, custom feature programming, and training.

  1. Commercial Paid Support
  2. Custom Feature Development
  3. Admin Training
  4. Advanced Training
  5. Developer Training

Community

We have a pretty thriving community. You can find us here:

Contributing

Requirements

It's easy to contribute to FusionPBX the only thing we ask before accepting your pull request is that you sign a Contributor License Agreement. We ask that you sign the Contributor License Agreement for the following reasons:

  1. It protects FusionPBX by you guaranteeing that your contributions are yours to contribute and not the property of an employer or something found on the web.
  2. It protects you from using code that belongs to others that is subject unfriendly licensing.

How to Contribute

Description
No description provided
Readme 925 MiB
Languages
PHP 80.1%
JavaScript 16.5%
Lua 3.2%