Commit Graph

327 Commits

Author SHA1 Message Date
Alex c305685d23
Fix dashboard edit defaults (#7340)
* Fix dashboard edit defaults

* Update app_defaults.php

* Update config.php
2025-03-27 15:41:38 -06:00
FusionPBX 7fe291dfcf
Update xml_cdr.php
Use the permission_exists and is_uuid conditions at the top of the download class method. If false use return to prevent running code without the right permission and a valid uuid.
2025-03-26 18:34:54 -06:00
FusionPBX 288f693c12
Increase the delay when database is not connected 2025-03-26 11:48:18 -06:00
FusionPBX 67da2f2a3d
Make sure the database connection is available 2025-03-26 11:30:34 -06:00
FusionPBX 9ee9aa4023
Update xml_cdr.php 2025-03-22 21:03:19 -06:00
FusionPBX 7fae8eefca
Update xml_cdr.php 2025-03-22 17:03:37 -06:00
FusionPBX 0bec2b9aef
Remove empty XML CDR files 2025-03-18 13:40:47 -06:00
Alex 1e96df6e95
Change $setting to $settings (#7318)
* Change $setting to $settings

* Update app_defaults.php

* Update fax_queue.php

* Update xml_cdr.php

* Update email_queue.php

* Update transcribe.php

* Update send.php

* Update fax_queue.php

* Update fax_send.php

* Update app_defaults.php

* Update email_queue.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php

* Update app_defaults.php
2025-03-14 16:19:49 -06:00
FusionPBX ee28c6d203
Fix Call Detail Records with invalid xml 2025-03-13 10:06:36 -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 8ef90b9dcc
Update xml_cdr.php 2025-03-08 14:42:35 -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
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 37840abb98
Fix the cdr http_enabled boolean condition 2025-02-20 09:51:08 -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 cd5ed73602
Allow # and * in the sanitized caller ID 2025-02-11 13:26:32 -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 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
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
frytimo 79b0767343
fix xml_cdr import failing to move a zero byte record to failed folder (#7210)
When an XML CDR record is zero bytes that is recorded in the /var/log/freeswitch/xml_cdr directory, the xml_cdr class would fail to move the file. This causes the record files to eventually build up to where the files can exceed the import limit. This adjustment moves the sanity checking for `filesize` to before the import attempt and checks for over limit and zero bytes. If those conditions match the file is moved to the "failed" folder.
2025-01-09 11:47:28 -07:00
frytimo 76af096f52
xml_cdr catch edge case of failed import when no start stamp is present (#7207)
* xml_cdr catch edge case of failed import when no start stamp is present

* xml_cdr catch edge case of failed import when no start stamp is present
2025-01-01 10:32:12 -07:00
FusionPBX afaf31c3a2
Sanitize the caller ID name and number 2024-12-20 11:07:05 -07:00
Alex 9fc82c02cb
Add dashboard icon color setting (#7197)
* Add dashboard icon color setting

* Update index.php

* Update app_languages.php

* Update app_defaults.php

* Update app_config.php

* Update dashboard_edit.php

* Update index.php

* Update app_languages.php

* Update app_defaults.php

* Update app_config.php

* Update config.php

* Update domains.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update registrations.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update voicemails.php

* Update config.php

* Update missed_calls.php

* Update recent_calls.php

* Update index.php

* Update index.php

* Update index.php
2024-12-11 21:28:45 -07:00
FusionPBX cd8d5302ac
Fix temporary permissions 2024-11-29 13:57:01 -07:00
FusionPBX 8655c792a3
Fix ring group missed call to show in CDR 2024-11-19 13:42:25 -07:00
FusionPBX caba7800d1
Updated Call Flow Summary for outbound calls 2024-11-14 17:06:41 -07:00
FusionPBX fca029b7df
Use include internal on answered, missed and voicemail
This hides local calls which could also be calls to feature codes. Only add these feature code calls to the count if directed to show internal calls.
2024-11-08 18:09:32 -07:00
FusionPBX 139867815f
Fix the extension summary and call flow summary
Set the time zone in PHP so that it is correct inside the class method for the extension summary and the call flow summary
2024-11-08 17:21:18 -07:00
Antonio Fernandez fab9a6bbc9
Ring Group search in CDR (#7177)
* Adding Ring Group dropdown in cdr search

* 2nd commit

* remove unused permission
2024-11-01 10:06:23 -06:00
frytimo 557de4b744
Update settings using real boolean (#7165)
* update settings using real boolean
2024-10-22 18:55:19 -06:00
fusionate e0fe291da0
CDR - Recording Playback: Fix seeking for chromium based browsers. 2024-10-18 18:58:44 -06:00
fusionate 5459bca44b
CDR - Recording Playback: Fix progress indicator in chromium based browsers. 2024-10-16 17:29:10 -06:00
FusionPBX 9c68c183f2
Fix play recording in CDR 2024-10-16 16:18:13 -06:00
anthony-ricci 6b49a92f76
Update xml_cdr.php (#7156)
Fixed CDR recording playback - casting an empty string to an int breaks the if statement.
2024-10-08 17:27:54 -06:00
FusionPBX 1134341635
Before using is_numeric cast the value to int
Without this cc_queue_joined_epoch, cc_queue_answered_epoch, and other values were seen as a string
2024-10-07 14:28:41 -06:00
FusionPBX 0c9329b119
Restore previous caller ID behavior
If the caller ID was updated then update the caller ID
2024-09-23 13:00:46 -06: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
fusionate cc08aa724d
Dashboard: Widget counter pill style adjustments. 2024-09-16 18:22:28 -06:00
fusionate fd032f4ad4
Dashboard: Widget counter pill style adjustments. 2024-09-16 18:09:04 -06:00
Alex ca10a3e518
Update registrations.php (#7133) 2024-09-14 16:12:37 -06:00
FusionPBX 0357a08a25
Correct the icon name 2024-09-14 03:52:21 -06:00
FusionPBX 02054ae683
Add the missed call icon 2024-09-14 03:45:08 -06:00
FusionPBX 8d5a190063
Add the dashboard icons 2024-09-14 03:40:08 -06:00
FusionPBX a9f61e8cfc
Update missed, recent calls and new messages 2024-09-14 03:10:55 -06:00
FusionPBX 88b76a4e6d
Dashboard widgets collapsed by default 2024-09-13 19:28:13 -06:00
FusionPBX 88bfb18e5a
Add hold_accum_seconds to the xml_cdr table 2024-08-28 10:05:48 -06:00
FusionPBX b0aab10872
Simplify the dashboard path 2024-08-21 16:58:44 -06:00