206 Commits

Author SHA1 Message Date
FusionPBX
6d8618cb2f Add sip_h_caller_destination to the dial_string if it has a value 2025-12-15 12:17:43 -07:00
FusionPBX
46bc156dc4 Predefine the subject and body variables 2025-12-15 10:45:28 -07:00
john doe
b2fc02f4a8 Replace CONCAT with indexable expressions and refactor using CTE (#7647)
Replaced unindexable CONCAT() with COALESCE(col, '') || ... and refactored dialplan lookup into a CTE with UNION to split destination-based and public-context paths.

CONCAT() is marked as STABLE in PostgreSQL and cannot be used in functional indexes, which forced sequential scans during dialplan lookups. To enable future indexing and improve query optimizability, we replace all CONCAT(a, b, c) calls with (COALESCE(a, '') || COALESCE(b, '') || COALESCE(c, '')), which is functionally equivalent for text columns (treating NULLs as empty) and composed only of IMMUTABLE operations.

Additionally, the query was refactored using a CTE with UNION to decompose a complex top-level OR condition into two independent branches:
1. Dialplans linked to matching destinations.
2. Public dialplans with domain_uuid IS NULL.

This structure allows the planner to optimize each path separately, avoid full-table scans, and leverage primary key lookups efficiently - even without additional indexes.

On a production dataset with 3kk records in v_dialplans, this change reduced dialplans query latency from ~1.5s to ~37ms (40.5x faster), with further gains possible via expression indexes.
2025-12-09 09:02:26 -07:00
FusionPBX
9a1e624af0 Fix condition for voicemail_transcription_enabled 2025-12-05 15:00:45 -07:00
FusionPBX
5996544050 Fix the call center dsn variable: dsn_callcenter 2025-12-02 11:09:18 -07:00
Ahron Greenberg (agree)
46f1ba9b2c Remove wrong 'Feature-Event' headers from event (#7635)
On multipart feature events, the feature-event header needs to be `init` only.
2025-11-24 05:11:53 -07:00
FusionPBX
bcc7bf9dc2 Add bind_digit_action for follow me 2025-11-07 21:06:53 -07:00
markjcrane
de74db14ee Add support for Poly check-sync 2025-11-05 17:24:19 -07:00
markjcrane
2ba40da0d4 Update the emergency_calls SQL Query 2025-10-31 21:40:02 -06:00
markjcrane
1d7ec1b020 Add dialplan emergency_calls
Adds a feature dial *911 to check recent emergency calls
2025-10-31 21:08:37 -06:00
FusionPBX
cf81cca8d1 Update boolean handling 2025-10-30 20:09:49 -06:00
FusionPBX
11eb62a50d Add missing call_center_agent_uuid required field 2025-10-30 14:56:44 -06:00
FusionPBX
39502959b2 Fix the call center agent_record boolean
Cast the agent_record in Lua. To a string then used agent_record == 'true'
2025-10-30 14:33:47 -06:00
FusionPBX
da2264aca0 Fix voicemail using tonumber on message_silence_seconds 2025-10-28 11:11:29 -06:00
Harry Foster
6530340765 Update the message length checker to match the silence seconds, otherwise silent voicemails are emailed or put into the voicemail box and cannot be played properly 2025-10-21 17:29:13 +01:00
FusionPBX
68d7f536d9 Update index.lua 2025-10-20 14:32:04 -06:00
FusionPBX
c4e38a3b93 Update call_forward.lua 2025-10-20 14:31:14 -06:00
Mark J Crane
090d4580d6 Add the hostname cache prefix 2025-10-20 14:29:28 -06:00
FusionPBX
e4ca0bf47d Add hostname cache key as a prefix 2025-10-15 20:33:46 -06:00
FusionPBX
4777d8b928 When hostname is used in the cache key use it as a prefix 2025-10-15 20:02:46 -06:00
FusionPBX
55a9e58dcf Fix follow me
Cast to a string and evaluating conditions as 'true' or 'false' is the most effective approach for Lua.
2025-10-06 16:21:58 -06:00
FusionPBX
7bcbba3bc1 Fix the sql for feature event notify lua 2025-09-29 10:26:43 -06:00
FusionPBX
4ef34b8790 Fix the do not disturb feature code 2025-09-24 17:57:13 -06:00
FusionPBX
a75513dba9 Fix ring group destination call forward and follow me 2025-09-24 16:56:01 -06:00
FusionPBX
c74cebf363 Fix ring group forward 2025-09-24 14:15:19 -06:00
FusionPBX
dd5eee0289 update record_message.lua 2025-09-24 14:04:21 -06:00
FusionPBX
341b6f3137 Voicemail recording insturctions and options cast boolean to text 2025-09-24 13:56:55 -06:00
FusionPBX
daa88119e2 Update follow_me.lua 2025-09-24 09:57:29 -06:00
FusionPBX
1191dd7cc1 Update callcenter lua to handle boolean 2025-09-24 08:46:42 -06:00
FusionPBX
69c9c7c03a Add the fields to the SQL query and cast direct dial to text 2025-09-23 14:24:29 -06:00
FusionPBX
9da40c38be Fix a syntax error 2025-09-22 11:17:54 -06:00
FusionPBX
b5037da3b8 Fix a syntax issue 2025-09-22 10:53:27 -06:00
FusionPBX
573903147a Use SQL to cast to boolean 2025-09-21 14:43:17 -06:00
FusionPBX
6df7fdd616 Update use SQL to cast boolean to strings 2025-09-21 14:04:25 -06:00
FusionPBX
a69e66a373 Additional boolean changes 2025-09-20 21:30:56 -06:00
FusionPBX
7f9064fadb Update boolean toggle and the database boolean type (#7522)
* Change the data type to boolean

* Use boolean values in SQL and Conditional Statements

* Schema Data Types: Drop views so that alter tables statements complete

* Update settings.php

* Add extension for call_screen_enabled

* Gateway handle boolean
Add the boolean toggle
- distinct_to
- caller_id_in_from
- supress_cng
- extension_in_contact
- contact_in_ping

* Update gateways.php

* Update voicemail_edit.php

* Replace the ${caller_id_name} with the extensions caller id name

* Phrase - Edit: Update slide toggle with new select beneath.

* Update the input toggle style

* Set the input_toggle_style_switch as boolean

* Update the input toggle style

* Theme: Adjust CSS to wrap description text on form fields.

* Add domain_uuid and domain_name to the SQL SELECT

* Unset the parameters to fix the next query

* Gateway: Integrate new slide toggle switch.

* Dashboard: Update the input toggle style (#7499)

* Dashboard: Update the input toggle style

* Update dashboard_widget_edit.php

* Update dashboard_edit.php

* Inbound Route - Add: Integrate new slide toggle switch and boolean.

* User Settings: Integrate new slide toggle switch.

* Call Block Edit: Update the input toggle style (#7500)

* Bridge Edit: Update the input toggle style (#7501)

* Update phrases.php

* Update domain_edit.php

* Domain Settings Edit: Update the input toggle style

* User Edit: Update the input toggle style

* Update install.php

* Remove fields marked as deprecated

* Use boolean in the select statement

* Streams: New slide toggle and boolean.

* Streams: Remove unnecessary default.

* Queues (FIFO): New slide toggle.

* Call Detail Records: Update the input toggle style (#7503)

* Call Detail Records: Update the input toggle style

* Update xml_cdr_extension_summary.php

* Update xml_cdr_extension_summary.php

* Update xml_cdr_extension_summary.php

* Call Centers: Update the input toggle style (#7502)

* Call Centers: Update the input toggle style

* Update call_center_agent_edit.php

* Conference Centers: Update the input toggle style (#7506)

* Conference Centers: Update the input toggle style

* Update app_config.php

* Update conference_center_edit.php

* Use boolean data type (#7505)

* Call Flow Edit: Update the input toggle style (#7504)

* Devices: Update the input toggle style

* IVR Menus: New slide toggle.

* IVR Menu: Remove deprected file.

* SIP Profile - Edit: New slide toggle.

* Device Profiles: Update the input toggle style

* Ring Groups - List: Fix syntax.

* Theme: Fire onchange event when switching slide toggle control.

* Device Vendors: Update the input toggle style

* Update enabled boolean

* Update device_edit.php

* Ring Groups: New slide toggle.

* Update domain_edit.php

* Email Templates: Update the input toggle style

* Header: Correct default value on input toggle style.

* Default/Domain/User Settings: Adjust Select option label for better clarity.

* Use true boolean types for switch theme toggle or drop-down box (#7507)

* Groups: Update the input toggle style

* Conference Controls: Update the input toggle style (#7509)

* Conference Controls: Update the input toggle style

* Update conference_control_edit.php

* Update conference_control_details.php

* Update conference_control_detail_edit.php

* Conferences: Update the input toggle style (#7511)

* Use true boolean types for switch theme toggle or drop-down box (#7513)

* Dialplans: Update the input toggle style
Also updated outbound route add

* Ring Group: Only adjust ring group forward destination top margin when slide toggle enabled.

* Default/Domain/User Settings - List: Adjust for new 'Select Box' label on input_toggle_style value.

* Use true boolean types for switch theme toggle or drop-down box (#7514)

* Call Forward / Follow Me: Minor javascript adjustments to mirror previous behavior.

* Ring Groups [Dashboard]: New slide toggle.

* Get the contacts details with a seperate SQL Query

* Remove debug info

* Destinations: Update the input toggle style

* Conference Profiles: Update the input toggle style (#7515)

* Conference Profiles: Update the input toggle style

* Update conference_profiles.php

* Update conference_profile_params.php

* Update conference_profile_param_edit.php

* Update conference_profile_edit.php

* Extensions: Update the input toggle style

* Contacts: Update the input toggle style (#7517)

* Contacts: Update the input toggle style

* Update contact_address_edit.php

* Update contact_attachment_edit.php

* Update contact_edit.php

* Update contact_email_edit.php

* Update contact_phone_edit.php

* Update contact_relation_edit.php

* Update contact_setting_edit.php

* Update contact_url_edit.php

* Update contacts.php

* Voicemails: New slide toggle.

* Voicemail Greeting: New slide toggle.

* Modules: New slide toggle.

* Recordings: New slide toggle

* Variables: New slide toggle.

* Time Conditions: New slide toggle.

* Extensions - List: Remove invalid column name.

* Extension Settings: New slide toggle.

* Number Translations: New slide toggle and boolean.

* Sofia global settings: Update the input toggle style

* Update alter table convert to boolean

* Fix contact relation search (#7518)

* Sip Profile Edit: Fix setting enabled labels (#7519)

* Sip Profile Edit: Fix setting enabled labels

* Update sip_profile_edit.php

* Update dialplan_edit.php (#7520)

* Update SQL queries to use true/false for contact primary settings (#7521)

* Update SQL queries to use true/false for contact primary settings

* Update contacts_vcard.php

* Update email.php

* Update totp.php

* Update contact_url_edit.php

* Update contact_email_edit.php

* Update contact_address_edit.php

* Update contact_attachment_edit.php

* Update contact_phone_edit.php

* Add a database views method

* Add database view groups

* Add database users view

* Add database call_recordings view

* Update users.php

* Add  database view call block

* Update schema to use the database views method

* Update conference.conf.lua boolean

* Update directory.lua boolean

* Update callcenter.conf.lua agent_status boolean

* Update sofia.conf.lua boolean

* Update number translations lua boolean

* Update directory.lua boolean

* Update group_call.lua fix the cache

* Update reverse-auth-lookup.lua boolean

* Update directory.lua boolean

* Use concat instead of ||

* Update index.lua

---------

Co-authored-by: fusionate <nate@fusionpbx.com>
Co-authored-by: Alex <alex@fusionpbx.com>
Co-authored-by: frytimo <tim@fusionpbx.com>
2025-09-20 18:42:05 -06:00
FusionPBX
96874c19b8 Update call_flow_monitor.lua boolean 2025-09-20 18:28:52 -06:00
FusionPBX
5e017a7154 Update call_flow.lua boolean 2025-09-20 18:27:54 -06:00
FusionPBX
98b66c37a6 Update blf_subscribe.lua boolean 2025-09-20 18:25:51 -06:00
FusionPBX
5729349057 Update route_to_bridge dialplan enabled boolean 2025-09-20 18:13:11 -06:00
FusionPBX
b6b5b9a82e Update settings boolean 2025-09-20 18:12:13 -06:00
FusionPBX
01ce31f5e8 Update lazy_settings setting boolean 2025-09-20 18:11:11 -06:00
FusionPBX
efe65828b0 Update indentation 2025-09-20 18:02:56 -06:00
FusionPBX
6529808ccc Remove trailing spaces or tabs 2025-09-20 17:55:47 -06:00
FusionPBX
960efb69c8 Update feature_event_notify.lua boolean 2025-09-20 17:52:20 -06:00
FusionPBX
b5e83a4e7c Ring strategy: simultenous, handle multiple registrations 2025-09-10 18:52:57 -06:00
FusionPBX
6b4469bbec Update directory.lua 2025-09-10 18:23:09 -06:00
frytimo
44e41f52d4 Fix uploaded greetings to use next id for wav,mp3,ogg (#7464)
* Fix uploaded greetings to use the next ID for wav,mp3,ogg

* Update voicemail_greetings.php
2025-08-20 15:13:43 -06:00
FusionPBX
f4fd10a85c Add Ring Group exit key 2025-07-18 19:24:49 -06:00
FusionPBX
dbf3b4ff81 Fix the regex capture groups 2025-07-16 22:31:23 -06:00