12625 Commits

Author SHA1 Message Date
frytimo
340df86073 Fix live updating (#7816) 2026-03-26 10:39:53 -06:00
frytimo
9259aff1a4 Fix operator panel color when available (#7815) 2026-03-25 19:15:41 -06:00
Mendel
029f58a245 Fix http auth password copy length (#7769) 2026-03-25 21:59:34 +00:00
frytimo
d72fb962f9 Fix wrong leg transferred (#7812)
* Fix icon color

* Fix dialpad outbound call with _undef_ variable

* remove submodule
2026-03-25 20:35:53 +00:00
FusionPBX
9c88ff2732 Update operator panel
- Remove Live prefix
- Add superadmin and admin
2026-03-25 18:20:51 +00:00
frytimo
0c4122cb94 Fix the context being sent as 'default' (#7811)
Minor change requests implemented that were forgotten:
- Removed the line between the extension that belong to the user and the other extensions.
- Added the permissions for the tabs so they are not visible yet. "Extensions" and "Calls" are the only ones with the permissions after running app defaults
2026-03-25 11:42:53 -06:00
FusionPBX
630fed9494 Update the permissions again
music_on_hold_all  permission
- Used with the show all button to view across all domains. This should be only assigned to the global admin group such as the superadmin group

music_on_hold_domain permission
- The permission to view and upload music on hold on the current domain

music_on_hold_global permission
- The permission to view and upload to the global music on hold
2026-03-25 15:00:36 +00:00
chansizzle
1aa006905f Add CDR UUID search to the xml cdr page (#7806)
* Add permissions for xml_cdr_search_cdr_uuid

* Add permission check for xml_cdr_search_cdr_uuid

* Add CDR UUID search permission and input field

Added permission check and input field for CDR UUID.
2026-03-25 07:44:41 -06:00
jamesorose
32e84ec59a Update music_on_hold.php (#7805)
* Update music_on_hold.php

The music on hold app doesn't follow the proper permissions (like the rest of FusionPBX). I've fixed it so that you can set this up such that someone with only music_on_hold_domain sees just that. Prior, it didn't matter what was selected (music_on_hold_domain or music_on_hold_all) , if you had any access you could change/delete the default MOH.

In my use case, I have a client that hired an outside firm to do their MOH, and they are want access to upload new files. Now you can limit what they can see with a new permissions/menu role.
2026-03-25 07:43:53 -06:00
Krushali Shah
124d64d3b3 Customize fax confirmation email (#7807)
* Update fax_send.php to get total pages

1. Added the total number of the FAX

Introduce a $total_pages variable
Include the cover page in the page count

 1. Initialize total pages (NEW)
Location: Right before adding the cover page

➤ Added: line 425
$total_pages = $fax_page_count;

📌 Meaning:
Starts total count with attachment pages (same as original behaviour baseline)

 2. Replace original page display logic
 Original code:
if ($fax_page_count > 0) {
$pdf->Text($x + 2.0, $y + 2.6, $fax_page_count.' '.$text['label-fax-page'.(($fax_page_count > 1) ? 's' : null)]);
}

 Replacement: line 560
$total_pages = $fax_page_count + 1; // 1 = cover page
$pdf->Text(
$x + 2.0,
$y + 2.6,
$total_pages.' '.$text['label-fax-page'.(($total_pages > 1) ? 's' : null)]
);

📌 Meaning:
Adds +1 for cover page
Always shows total pages instead of just attachments
Removes conditional (if ($fax_page_count > 0))

 3. Handle multi-page cover message (NEW)
Location: After: 

$pages = $pdf->getNumPages();

➤ Added: line 583
$total_pages += $pages;

📌 Meaning:
If your cover page expands into multiple pages (long message), those pages are added to total
This is important edge-case handling (nice touch 👍)
🧠 Behaviour Change (Before vs After)
 Before:
Only counted attachment pages
Ignored cover page
Display could be misleading
 After:
Counts:
Attachments
Cover page
Extra cover pages (if message is long)
Displays true total fax pages

* Update fax_send.php to get fax_retry_date

Expose and display the fax retry date/time inside email notifications by:

Pulling it from the database
Injecting it into the email template using a variable

 1. Fetch fax_retry_date from the database File Path:

/var/www/fusionpbx/app/fax_queue/resources/job/fax_send.php

Location: Under

//get the fax queue details to send

➤ Added (around line ~228):
$fax_retry_date = $row["fax_retry_date"];

📌 What this does:
Extracts fax_retry_date from the v_fax_queue (or related query result)
Stores it in a PHP variable for later use

 2. Inject variable into email body
Same file: fax_send.php

Location: Under

//replace variables in email body

➤ Added (around line ~659):
$email_body = str_replace('${fax_retry_date}', $fax_retry_date, $email_body);

📌 What this does:
Replaces ${fax_retry_date} placeholder in email template
Dynamically inserts retry date into outgoing emails

* Update fax_send.php

* Update fax_send.php

* Update fax_send.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2026-03-25 07:42:00 -06:00
frytimo
7503d0eec6 Operator panel using WebSocket (#7810) 2026-03-25 07:32:35 -06:00
chansizzle
080e0ebd12 Add default settings - firmware for Yealink T34W, T73W, T74W, and T87W (#7804)
Added default settings for Yealink T34W, T73W, T74W, and T87W
2026-03-23 18:57:19 +00:00
FusionPBX
7831e7c10e Security update
- There are safer ways to do this
2026-03-23 12:34:33 +00:00
FusionPBX
26e803d76c Security using shell_esc for file cache flush command 2026-03-22 16:11:37 +00:00
FusionPBX
faab18936e Security add shell_esc to the sox command 2026-03-22 15:38:37 +00:00
FusionPBX
8920222cb7 Security voicemail listen_to_recording add shell_esc 2026-03-22 15:27:13 +00:00
FusionPBX
3e2f60bc7e Update shell_esc remove local 2026-03-22 15:23:15 +00:00
FusionPBX
198edb9d41 Update shell_esc.lua 2026-03-22 14:54:46 +00:00
FusionPBX
92ea4dc8db Add sanitize for the lua copy function 2026-03-22 03:34:26 +00:00
FusionPBX
0a63841e5a Update conference center lua
- prevent a minor error
- add shell_esc
2026-03-22 03:32:08 +00:00
FusionPBX
e5314b254f Include the shell_esc function 2026-03-22 03:29:32 +00:00
FusionPBX
07926f6b06 Security add a shell arg escape function 2026-03-21 23:59:20 +00:00
FusionPBX
bd906cd8c6 Add double quotes and metacharacter to escape shell arguments 2026-03-21 23:48:20 +00:00
FusionPBX
a72bd5c708 Fix call center queue sound_prefix 2026-03-21 01:31:09 +00:00
FusionPBX
39199da5bb Send all attachments that are not voicemail 2026-03-21 00:39:59 +00:00
Alex
6c648b6bb1 Add icon to multi select dropdown (#7803)
* Add down arrow icon to multi select dropdown

* Update template.php
2026-03-20 23:01:17 +00:00
Alex
eb622a3fd0 Update extension label (#7802)
* Update extension label

* Update xml_cdr_search.php
2026-03-20 12:13:25 -06:00
FusionPBX
a2c057dc31 Fix email transcribe when sending an email download or listen link 2026-03-20 16:59:33 +00:00
FusionPBX
45ae47f4a1 Fix the time used with the DateTime
The cond_start and cond_stop time format has been normalized to 24-hour time. If they are not normalized to one format, then two different formats would be needed.

Y-m-d H:i      24-hour format
Y-m-d h:i a   12-hour format with AM/PM
2026-03-19 16:15:31 -06:00
chansizzle
8532d21b73 Add wallpaper settings for Yealink T34W, T73W, T74W, T87W (#7797) 2026-03-19 15:13:35 -06:00
FusionPBX
6a535fe7ad Use proc_open to get the exit cod and stderr 2026-03-19 03:18:22 +00:00
FusionPBX
9e5844977c Event Guard remove all instances of a specific IP address 2026-03-19 00:38:45 +00:00
FusionPBX
138aca175b Set screen_pop_enabled default false 2026-03-18 14:25:46 -06:00
FusionPBX
b57d57de65 Fix for Fanvil OutputDevice to allow an empty value
- Reported that stdout could cause audio issue on some models so this provides an option to leave it empty.
- Default the value to empty
- Continued support for fanvil_syslog_enable
2026-03-18 16:36:42 +00:00
FusionPBX
c5800b7072 Add Screen Pop search by Caller ID number. 2026-03-17 15:50:51 +00:00
FusionPBX
44c19f3487 Fix destination import for multiple actions 2026-03-16 11:04:23 -06:00
Alex
233dbfd13e Add destination condition description (#7789) 2026-03-13 19:39:40 +00:00
FusionPBX
c771179afc Remove empty function from the destination_trunk_prefix
Empty treats 0 as empty which means the trunk prefix is not included. So to fix this issue had to remove the empty function.
2026-03-12 22:33:41 +00:00
FusionPBX
8c1df99ffc Fix to add domain_uuid, domain_name to the bridge 2026-03-12 18:51:33 +00:00
Alex
f537604e24 Fix array null error (#7788) 2026-03-12 16:53:02 +00:00
Alex
92609e825a Minor CDR search bug fixes (#7787)
* Minor CDR search bug fixes

* Update xml_cdr_search.php

* Update xml_cdr_inc.php

* Update xml_cdr.php

* Update template.php
2026-03-12 16:48:03 +00:00
FusionPBX
3ce1aa0df4 Fix provision device_keys use the category 2026-03-12 02:12:15 +00:00
Alex
737650ff74 CDR Advanced Search: Add extension multi select dropdown (#7780)
* CDR Advanced Search: Add extension multi select dropdown

* Update app_languages.php

* Update template.php

* Update css.php

* Update xml_cdr.php

* Update xml_cdr_search.php

* Update xml_cdr_inc.php
2026-03-11 23:55:13 +00:00
FusionPBX
25a08f6cd3 Add Yealink vendor function key mobile_line 2026-03-11 21:35:06 +00:00
Alex
ab5ecd8106 Move caller id number field (#7778) 2026-03-11 19:50:32 +00:00
FusionPBX
5667aa3157 Process files in the cdr directory when the service has started 2026-03-11 19:23:55 +00:00
FusionPBX
e129db46b2 Update how the application icon is determined
- Created application_icons array
- Add the application_icon before the code is displayed
2026-03-11 18:34:45 +00:00
FusionPBX
8f5fd17479 Update the alignment 2026-03-11 18:30:47 +00:00
Alex
abe3bf9022 Fix extension input/select box toggle function (#7774) 2026-03-09 21:06:22 +00:00
FusionPBX
f76207d327 Use date-time to set the year, month, day and time
- date-time replaced to support channel variable time_zone
2026-03-06 20:50:23 +00:00