Commit Graph

11925 Commits

Author SHA1 Message Date
Alex b5592e84c7
Fix fatal error on fax send (#7313) 2025-03-13 11:04:40 -06:00
FusionPBX ee28c6d203
Fix Call Detail Records with invalid xml 2025-03-13 10:06:36 -06:00
chansizzle 95761621a6
improve emergency emailing (#7309)
* improve emergency emailing

1. set emergency CID name & number to the outbound CID name & number if emergency CID name & number are not set
2. remove duplicate item in email body
3. change the hardcoded email subject '911 Emergency Call' to be dynamically provided from the event. I do not like seeing the subject '911 Emergency Call' when it is an TEST call.

* improve emergency emailing

1. change the hardcoded email subject '911 Emergency Call' to be dynamically provided from the event. I do not like seeing the subject '911 Emergency Call' when it is an TEST call.
2. fix email template misspelling
3. improved email template with bold fonts
2025-03-12 17:39:05 -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
Alex abb95e38bb
Add content card to outbound route add and pin number export (#7308)
* Add content card to outbound route add and pin number export

* Add content card
2025-03-12 13:37:26 -06:00
FusionPBX 7a167f70af
Get emergency emails from both default and domain settings 2025-03-12 11:37:27 -06:00
chansizzle 20f3c4eb71
Add CDR Details, Call Recordings Play, and Call Recordings Download to emergency logs (#7301)
* Create download.php

download.php is required to play and download call recordings

* add CDR Details and Call Recording to emergency logs

* add CDR Details and Call Recording to emergency logs

* combine call details column and call status column

removed the call details column
make the call status column be the hyperlink to the cdr details page

* combine call details column and call status column

removed the call details column
make the call status column be the hyperlink to the cdr details page
2025-03-12 09:40:44 -06:00
FusionPBX af9691ff41
Fix missed_call use as boolean 2025-03-11 19:54:54 -06:00
FusionPBX c3e5647c03
Update app_defaults.php 2025-03-11 19:36:56 -06:00
FusionPBX 1be15d7d9c
Update responsive design 2025-03-11 14:27:45 -06:00
Alex 35aa781c90
Add content card to device export and pin numbers (#7297)
* Add content card to device export and pin numbers

* Update pin_numbers.php

* Update pin_number_edit.php

* Update device_download.php
2025-03-10 10:26:27 -06:00
FusionPBX 8ef90b9dcc
Update xml_cdr.php 2025-03-08 14:42:35 -07:00
FusionPBX 5391745155
Update abstraction.conf.xml 2025-03-08 08:59:22 -07:00
chansizzle 8f5d5b58b3
add call status to emergency logs page (#7278)
* add call status to emergency logs page
2025-03-08 07:20:39 -07:00
chansizzle 8f354b54de
add new active calls permissions (#7294)
Add new permissions to the active calls page so the fields can be removed from an admin permissions group to simplify the page, hiding more technical fields they probably will not find helpful.
2025-03-06 18:54:57 -07:00
chansizzle a1c03c364a
add new active calls permissions (#7295)
Add new permissions to the active calls page so the fields can be removed from an admin permissions group to simplify the page, hiding more technical fields they probably will not find helpful.
2025-03-06 18:54:43 -07:00
frytimo fbeb65428e
fix bug for registration count (#7293) 2025-03-06 15:46:17 -07:00
Alex 397db90533
Add content card div to call block recent calls (#7290) 2025-03-06 10:17:41 -07:00
fusionate 03030465d9
Audio Waveform: Boolean adjustments. 2025-03-05 16:09:17 -07:00
frytimo e9739d2b06
Use single event socket object in registrations class (#7288)
* Use single event socket object in registrations class
Allow passing an event_socket in the constructor
Ensure the event_socket is connected before using it in loops
2025-03-05 10:08:08 -07:00
AdSecIT b714d25150
Update device.php (#7287)
Spelling correction.
2025-03-05 09:58:00 -07:00
FusionPBX 0fa87760cb
Update fifo_edit.php
Add validation
Use the event_socket object
2025-03-04 18:18:04 -07:00
frytimo 1aa1eb6159
Use text instead of boolean for ace editor settings (#7285) 2025-03-04 16:30:17 -07:00
frytimo d529021b3f
Use boolean setting as true boolean (#7284)
* 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.
2025-03-04 11:25:47 -07:00
Antonio Fernandez 1b19e40be4
Consistent email wording (#7283) 2025-03-04 10:53:23 -07:00
FusionPBX 48e44814de
Update email_send.php 2025-03-02 10:38:34 -07:00
chansizzle e4ddb4561e
fix email category mispelling (#7280) 2025-02-28 17:22:22 -07:00
FusionPBX b4de6f5e4b
Use status voicemail
Moved voicemail status after missed calls. This way, it will show the status of voicemail when it goes to voicemail.

There is still a field in the CDR for missed_call and this will still be set to true.
2025-02-28 17:09:35 -07:00
FusionPBX f3986290ea
Add enable-rfc-5626 to the internal profile 2025-02-27 10:48:29 -07:00
markjcrane bd54c07e50 Move email_templates to core 2025-02-26 10:29:45 -07:00
frytimo d919a3cc1b
Add the apcu caching ability for performance (#7276)
* add the apcu caching ability for performance
When the PHP extension APCu is loaded, the settings class and the auto_loader will cache their results across requests in RAM. For more information about the APCu extension visit the PHP page: https://www.php.net/apcu

* use global instead of default terminology
2025-02-25 17:21:41 -07:00
Alex 305f585b17
Add missing counter divs (#7277)
* Add counter div to voicemail messages and domain settings

* Update domain_settings.php

* Update menu_item_list.php

* Update domain_settings.php

* Update voicemail_messages.php
2025-02-25 16:24:16 -07:00
Alex 2f955d4fef
Fix queue edit content alignment (#7274) 2025-02-25 13:23:06 -07:00
Alex e08a79e64d
Add missing required class to required fields (#7273)
* Add missing required class to required fields

* Update destination_edit.php

* Update device_edit.php

* Update voicemail_edit.php

* Update dashboard_edit.php

* Update call_block_edit.php

* Update destination_edit.php
2025-02-25 12:48:50 -07:00
Alex ba48d186a9
Add content card div to contact email edit and module edit (#7272)
* Add content card div to contact email edit and module edit

* Update module_edit.php
2025-02-25 12:35:23 -07:00
FusionPBX bbe7b76673
Add more FIFO Queue features
- Ring Strategy
- Queue
- Exit Key
- Exit Action
2025-02-24 22:07:34 -07:00
FusionPBX eb26156159
Remove the !empty(voicemail_mail_to) condition
The toggle for keeps local after email harms nothing. So we don't need to restrict it.
2025-02-21 13:16:11 -07:00
Alex 7707b9853c
Fix bridges redirect to correct domain when using show all (#7269) 2025-02-21 10:58:53 -07:00
Alex d78c726d9b
Fix call forward show all button (#7267) 2025-02-21 10:23:46 -07:00
chansizzle 3adcad3e5e
date column before time column (#7266)
change the order of the columns
2025-02-20 21:28:22 -07:00
Alex 8cfc221da4
Redirect to the correct domain if using show all (#7265)
* Redirect to the correct domain if using show all

* Update bridges.php

* Update call_recordings.php

* Update conference_controls.php

* Update conference_profile_params.php

* Update conference_profiles.php

* Update email_queue.php

* Update event_guard_logs.php

* Update fax_queue.php

* Update user_settings.php

* Update require.php
2025-02-20 16:30:09 -07:00
FusionPBX c2fe9d32f7
Fix a voicemail bug
Fix the voicemail link
Use only one keep local feature
Deprecate the voicemail_local_after_forward
2025-02-20 15:01:28 -07:00
FusionPBX 37840abb98
Fix the cdr http_enabled boolean condition 2025-02-20 09:51:08 -07:00
chansizzle 3c9720ee36
Add CID Name prefix to destinations.php (#7262) 2025-02-20 09:13:36 -07:00
FusionPBX 7503ff40de
Add 922 as another emergency test number 2025-02-19 10:37:40 -07:00
frytimo 679b407562
bug fix domain name when using devices showall (#7259)
When the 'Show All' button is clicked the display of devices is using the current domain name instead of the domain name that belongs to the device
2025-02-18 15:01:19 -07:00
FusionPBX 2661ad7bf0
Allow the @ in the Caller ID name 2025-02-17 11:56:01 -07:00
FusionPBX 8b54dd8b61
Fix invalid XML CDR 2025-02-15 18:56:12 -07:00
FusionPBX abd2077ede
Send CDR with invalid xml to failed/invalid_xml 2025-02-15 18:21:14 -07:00
FusionPBX 7c25ad1ed7
Disable vad for flying voice by default 2025-02-15 12:09:46 -07:00
FusionPBX 27e32e8f34
Send the fax with primary and alternative routes 2025-02-14 15:50:51 -07:00
FusionPBX 9d3dd2a831
Add two fax variables 2025-02-14 13:08:19 -07:00
FusionPBX f11c792c2f
Fix the fifo agent delete 2025-02-13 21:51:50 -07:00
fusionate bd5002ca32
Voicemail: Rename voicemail filesystem folder if Voicemail ID changes. 2025-02-13 15:02:53 -07:00
frytimo 9b0eead911
Fix incorrect name on disk usage chart (#7237)
* fix incorrect name on disk usage chart

* put correct information in disk usage for Linux and FreeBSD systems

* Update system_disk_usage.php

* Update system_disk_usage.php
2025-02-13 14:18:36 -07:00
frytimo f03803f113
use settings object where possible (#7246)
* use settings object where possible

* use $user_uuid instead of $_SESSION['user_uuid']

* use extension_uuid when counting for performance
2025-02-13 14:12:48 -07:00
frytimo 056ddc93ca
remove the automatic setting of server connection port in provisioning (#7243)
* remove the automatic setting of the server connection port in provisioning
2025-02-13 14:09:03 -07:00
fusionate 68e3b4c187
Fax - New: Add cover_message, cover_message_height Default Settings to define a default Message and the height of the message box on the cover page, respectively. 2025-02-13 11:56:07 -07:00
frytimo 0cf387f306
do not save event_guard logs to transactions (#7254)
Event Guard already has a log table so no need to duplicate the transactions in another table
2025-02-13 09:10:33 -07:00
frytimo 0a5c377ae6
Remove Extra Line Ending (#7252) 2025-02-13 09:09:52 -07:00
frytimo 5c9eeb1956
Remove Extra Line Ending (#7253) 2025-02-13 09:09:34 -07:00
FusionPBX cd5ed73602
Allow # and * in the sanitized caller ID 2025-02-11 13:26:32 -07:00
Ahron Greenberg (agree) 3603711d77
fix destination_condition_field gets overwritten by default setting (#7242) 2025-02-11 08:41:25 -07:00
FusionPBX a91e2ac547
Fix password when the permission is not assigned 2025-02-07 17:32:09 -07:00
FusionPBX 0ce6f3c956
Update language French vm 2025-02-06 14:33:11 -07:00
FusionPBX 7f7ca70210
Change value of yealink_voice_vad to 0
A value of 0 disables voice activity detection. VAD when enabled on a Yealink T54W made the audio at the beginning of the call start at the beginning of the call and sometimes took 1 to 30 seconds to start.

Recommend changing this value on all systems using Yealink to use 0 to disable voice activity detection. Currently yealink_voice_vad is used in t46s, t41s, and t54w
2025-02-06 12:11:24 -07:00
FusionPBX 574ec7a5b3
Fax queue setting prefer_local default false
This allows control over whether to prefer sending to the voip provider or attempt local fax call.
2025-02-04 18:37:58 -07:00
Alex 5f2a6eed09
Fix dashboard number background color not showing (#7241)
* Fix dashboard number background color not showing

* Update missed_calls.php

* Update recent_calls.php

* Update voicemails.php

* Update registrations.php
2025-02-03 16:27:09 -07:00
frytimo 1c29addf08
fix spelling mistake in xml_cdr function name (#7240) 2025-02-03 13:21:47 -07:00
FusionPBX ca2e72e6f4
Fix the call recording length 2025-02-02 18:27:03 -07:00
FusionPBX 793e5b5e00
Fix the devices domain names column 2025-02-02 18:01:27 -07:00
FusionPBX bb0e23354a
Add uuid to the custom recording name 2025-02-01 00:22:56 -07:00
FusionPBX d655fa0ba6
Use the settings class use database::new() 2025-01-31 21:40:35 -07:00
FusionPBX 55fa668765
Use one database connection 2025-01-30 22:51:20 -07:00
chansizzle e8f8e2cfc5
add missing semicolons (#7238) 2025-01-30 22:40:21 -07:00
FusionPBX a2fc7dff1d
Update email_send.php 2025-01-30 16:11:33 -07:00
FusionPBX 0c48569c71
record_extension default to mp3 2025-01-29 21:43:24 -07:00
FusionPBX 355c0e692c
Update call details
- Add pass objects into the constructor
- details show local source and destination extensions
2025-01-28 21:57:41 -07:00
FusionPBX 65aeefaea4
update voicemail_main_menu phrase 2025-01-28 20:27:24 -07:00
FusionPBX d2294f76f3
Update voicemail_listen_file_options phrase 2025-01-28 20:18:16 -07:00
FusionPBX e0c7a8a9b5
Add voicemail_deleted_message_count phrase 2025-01-28 20:05:03 -07:00
simplecoder732 77f9161408
Add a voicemail deletion queue (#7221)
* Add a deleted messages option to voicemail.
Messages are only deleted after a certain amount of time instead of immediately.
The queue can be turned off or on with the default setting "use_deletion_queue" in the "voicemail" category.
Changed deleted phrase and added a deleted messages count phrase
Added a program to delete messages that are due for deletion. Also small changes to phrases.

* Added a remove_deleted_messages function that runs on voicemail main menu log in. With this method, the deletion queue is handled per mailbox vs system-wide as in the cron-triggered script. It also allows us to adjust the retention hours on a per-domain basis.
2025-01-28 16:57:50 -07:00
Alex b2349060b5
Fix number text and background color not applying (#7235)
* Fix number text and background color not applying

* Update registrations.php

* Update voicemails.php

* Update missed_calls.php

* Update recent_calls.php

* Update domains.php
2025-01-28 16:39:35 -07:00
denisent bb1006aca8
Add serial number to the device edit page (#7234)
* add device serial number

* add device serial number field

* add device serial number field
2025-01-28 16:26:32 -07:00
chansizzle 964865ae63
add xml statistics mouse over text and use languages variables (#7211)
* add xml statistics mouse over text and use languages variables

* add xml statistics mouse over text and use languages variables

* xml statistics - remove English words from non-English languages
2025-01-28 16:22:02 -07:00
FusionPBX fe0680f9b1
Handle columns in the table that may not exist
The old v_device_keys column device_profile_uuid is deprecated. It will exist on systems that were upgraded from an older version before the change was made.

The app default code here moves data from the old format to the newer one. This is useful for upgrades. Newer installs will not have this deprecated field in the device_keys and device_settings table.
2025-01-28 15:59:04 -07:00
fusionate 14288772d5
Yealink App: Replace an invalid UUID. 2025-01-28 12:53:32 -07:00
frytimo 7c887184ff
adjust system service dashboard widget to not show by default (#7233) 2025-01-28 12:17:04 -07:00
fusionate aa75be76e7
Yealink App: Fix UUID in a previous commit.
This was preventing the App Defaults to run properly, because the database was rejecting the UUID value.
2025-01-28 11:58:32 -07:00
frytimo 96da9967e0
create system services dashboard item (#7231)
* create system services dashboard item

* update internationalization language file used in system_services
2025-01-28 10:20:36 -07:00
chansizzle ecc9361b68
remove device_label duplicates (#7215)
removed device_label duplicated in 2 locations
2025-01-27 11:12:00 -07:00
chansizzle bf84789f64
yealink power savings description clarity (#7220)
It was unclear as to what 'saving enabled' is. Updated to 'power saving enabled'. Yealink setting `features.power_saving.enable`
2025-01-26 19:28:58 -07:00
Mendel 43612a5049
multiple changes to the and for the yealink t58W,and images for yealinks in general. (#7223)
* multiple changes to the and for the yealink t58W

Added the variable for Bluetooth so that it won't be disabled every time the phone is provisioned.
Added what is needed for the wallpaper and firmware.
2025-01-25 19:32:25 -07:00
FusionPBX 965b245794
Use lowercase matching domain name #7230
When the domain name has upper and lower case letters. The domain UUID results in not found in app/provision
2025-01-24 16:03:53 -07:00
frytimo d77b69b4d5
fix provision edit to use text type instead of numeric (#7229) 2025-01-24 10:15:36 -07:00
FusionPBX 8b59ef881b
Use the settings array to pass database connection
Improve efficiency by using one database connection
2025-01-18 15:47:56 -07:00
FusionPBX b6386ada32
Add table xml_cdr_extensions 2025-01-17 23:30:06 -07:00
frytimo dc22e87fc2
fix dashboard php warnings (#7218) 2025-01-17 12:48:11 -07:00
FusionPBX 11f250191d
Add call recordings record_extension
Call recording file format options: wav, mp3
2025-01-16 19:59:32 -07:00
FusionPBX 31adc0883a
Update destination_edit.php
- Use the settings class to get the default settings
- Use call recordings variable record_extension wav or mp3
2025-01-16 19:56:32 -07:00