Commit Graph

150 Commits

Author SHA1 Message Date
FusionPBX
b0b3b63cb6 Update the systemd service files 2025-08-19 18:05:40 -06:00
hacc1225
1fc0962de2 Fix: Ensure proper absolute_codec_string for fax_queue (#7359)
The absolute_codec_string parameter for FreeSWITCH was being incorrectly
for formatted, causing issues with fax transmissions, particularly in
regions preferring the PCMA codec.
Without proper quoting, the comma-separated codec list PCMU,PCMA was
being parsed incorrectly by FreeSWITCH. The second codec PCMA was
misinterpreted as a separate dial string parameter, resulting in
absolute_codec_string being set to only PCMU. This led to negotiation
failures when the receiving end required PCMA.
This commit resolves this by enclosing the codec list within *escaped*
single quotes \'PCMU,PCMA\'. **Crucially, without this escaping,
FreeSWITCH would not correctly interpret the quoted string.** The
literal quotes are necessary to ensure that PCMU,PCMA is treated as a
single value. By implementing this change, we guarantee that both PCMU
and PCMA are correctly included in the codec negotiation, resolving the
fax transmission failures in PCMA-dominant regions.
2025-08-15 07:29:27 -06:00
FusionPBX
7a8b1a6fe4 Use www-data for the fax_queue service 2025-06-25 12:10:03 -06:00
FusionPBX
4e3618e35f Update process_exists 2025-06-05 16:46:39 -06:00
FusionPBX
399c071961 Fix the email_from when using per domain settings
Remove extra new database objects to make the code more efficient
2025-05-06 21:30:01 -06:00
FusionPBX
884da5600d Show the hostname only to the superadmin group 2025-04-30 09:44:06 -06:00
FusionPBX
c3952028b1 Use the settings get method for the buttons 2025-04-14 10:36:21 -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
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
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
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
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
FusionPBX
df90b758bb Fix issue with sending local faxes
When sip_to_user or sip_req_user are used then we need to add these variables so that it can find the correct inbound route.
2025-01-15 19:44:56 -07:00
FusionPBX
57a792dccd Use the PHP_BINARY constant 2024-12-02 17:58:07 -07:00
FusionPBX
cd8d5302ac Fix temporary permissions 2024-11-29 13:57:01 -07:00
FusionPBX
baed3947d4 Make sure the origination_uuid is set 2024-11-04 08:21:03 -07:00
frytimo
557de4b744 Update settings using real boolean (#7165)
* update settings using real boolean
2024-10-22 18:55:19 -06:00
FusionPBX
81fc86fc01 Handle country code, trunk prefix and area code 2024-10-17 13:15:26 -06:00
FusionPBX
ed836aa41e Update fax_send.php
- Optimize the database connection
- Use loopback for local FAX destinations
2024-10-17 02:39:03 -06:00
FusionPBX
7b025e490f Update fax sending order 2024-10-15 12:06:02 -06:00
fusionate
e4aa30bcd6 Fax - Sent: Added Recipient column, if allowed. 2024-09-17 14:38:11 -06:00
frytimo
d4fdd1ce6b Add back button to fax queue page. Move permission_exists outside loop (#7125)
* Add back button to fax queue page. Move permission_exists outside loop

* move to permission array instead of individual permission variables
2024-09-06 20:27:19 -06:00
Alex
b43bcb9a13 Added the heading counter div (#7124) 2024-09-06 16:43:42 -06:00
fusionate
d234fb185a Multiple Apps: Integrate content cards. 2024-09-04 16:55:24 -06:00
MarBifrost
906b3edf03 Corrections in Georgian translation (#7113) 2024-08-31 10:02:51 -06:00
NorwayFun
aabc2f33a8 Localization: Add full support for Georgian language (#7110)
* Translating apps to Georgian

* Translating apps to Georgian

* Translating more apps to Georgian

* Translating more apps to Georgian

* Translating more apps to Georgian

* Translating more apps to Georgian

* Translating more apps to Georgian

* Translating theme to Georgian

* Translating core to Georgian

* Translating core to Georgian

* Translating core to Georgian by Marie

* Translating core to Georgian

* Translating resources to Georgian by Marie

* Translating core to Georgian

* fix app_languages.php
2024-08-28 09:59:02 -06:00
Anthony
831f720638 Added translations to app_languages.php files (#7104)
* Added translations to fax_queue/app_languages.php

* Added translations to recordings/app_languages.php

* Added translations to emergency/app_languages.php
2024-08-20 08:51:20 -06:00
Antonio Fernandez
440ffb69db set fax failed when missing (#7077) 2024-07-30 16:31:11 -06:00
frytimo
46abe4897c use loose comparison instead of strict comparison (#7064)
Update comparison checks when testing the database status and
add a unified log message with a more detailed message from the
database when there is a failure

Authored-by: Tim Fry <tim@fusionpbx.com>
2024-07-23 19:58:13 -06:00
frytimo
d1594da57e implement changes in to the fax queue class (#7044)
Co-authored-by: Tim Fry <tim@fusionpbx.com>
2024-07-09 12:51:36 -06:00
FusionPBX
475696ecff Check for valid fax numbers
Validate the fax destination number
- Check outbound routes
- Check valid extension
- Set the status to failed for all other numbers
2024-05-14 12:49:13 -06:00
FusionPBX
f30180d2b7 Bug fix send fax to a local extension 2024-05-03 13:13:51 -06:00
FusionPBX
d8a8d4997e Show all messages in the fax queue
Including ones not assigned to a user
2024-04-11 16:04:44 -06:00
FusionPBX
ebcd78ed4f Fix fax from address when sending an outbound fax 2024-02-23 15:42:38 -07:00
FusionPBX
192e651722 Remove the single quote
Escape with a back slash didn't work
2024-02-05 17:22:42 -07:00
FusionPBX
1f5b979d0d Add escape_quote quoted values 2024-02-05 17:10:20 -07:00
Krushali Shah
7f35e8178b Added User Column in Fax Queue. (#6848)
* enable/disable codec settings for all accounts

The template for codec enable settings was taking a value as 1 if it was set in the settings. It was not taking the actual value inside it. So I have edited the templates to check the value if it's set to true.

* Update fax_queue.php

I added a user column in the Fax Queue to see which user sent the fax.

* Update app_languages.php

Added field for User
2024-01-13 18:46:56 -07:00
FusionPBX
f63524a164 If exists use category fax from and from name 2024-01-05 17:24:08 -07:00
fusionate
cb58bd4fb1 Fax Queue - Update comments. 2023-12-21 19:30:51 +00:00
frytimo
3a4c2f72e2 Event socket bug fix and more docs (#6823)
* Add documentation to methods. Use is_resource for added type detection

* Allow connect to specify timeout in microseconds with default 30,000

* Update calling mechanism for event sockets

* Update project for new singleton event sockets

* remove unused variable

* catch errors on closing the socket
2023-12-02 17:16:18 -07:00
FusionPBX
afc9061fef Get the fax_response from the fax_queue table 2023-09-28 23:12:58 -06:00
FusionPBX
c19899097d Send FAX when gateway fails try the next one 2023-09-28 12:41:12 -06:00
fusionate
7984ddeb64 Fax Queue - Edit: Add Response field and translations. 2023-09-28 18:37:36 +00:00
fusionate
d9d17a6917 Misc: Remove parameters from event_socket_create() calls. 2023-09-20 18:43:17 +00:00
FusionPBX
81b92075a9 Delete app/fax_queue/app_defaults.php 2023-09-15 23:26:33 -06:00
FusionPBX
f1890976b2 Use settings class for the fax queue 2023-09-14 22:15:37 -06:00
FusionPBX
656e077d40 Use !empty instead of != '' 2023-07-06 14:08:54 -06:00
Andy Binder
cfda1ab335 More german translation updates (#6755) 2023-06-17 13:28:37 -06:00
frytimo
d7bbcd89f5 Use magic constant dir (#6711)
* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__ to load only functions.php

* replace spaces with tab character

* update dirname command to use levels instead of nesting

* use magic constant __DIR__

* update dirname command to use levels instead of nesting

* Update access_control_edit.php

* Update access_control_import.php

* Update access_controls.php

* Update dnd.php

* Update access_controls_reload.php

* Update call_center_agents.php

* Update call_center_agents.php

* Update fax_queue.php

* Update login.php

* Update pdo.php

* Update pdo_vm.php

* Update switch.php

* Update index.php

* Update css.php

* Update v_mailto.php

* Update fax_to_email.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2023-06-15 11:28:23 -06:00