Found on some servers park_lot variable was not getting set. Added ?: to (?:park)? and then used $1 worked consistently during testing.
Variable valet_context set to the domain_name and removed referred_by_host reason for this change is that the context shouldn't need to change. Since the referred_by_host variables were not used, the sip_refer_to conditions were no longer needed.
* Add active conferences with web sockets
* Buttons mostly working
* Convert all methods, function, variable, const to snake case instead of standards.
* Add default settings for customized control
* Add customizable settings
* More debugging default settings added
* Add better authentication handling for websocket connections
These methods were added:
- on_ws_authenticated can be overridden in the child class if there are tasks that need to be done after authentication.
- handle_ws_authenticated was added in the parent class
Handle methods are called by the this class and then their respective 'on_ws_' method is then called.
* Mute All now working
* Add PHPDoc block comments
* More PHPDoc to better describe class and variables
* Fix accidental removal of function during PHPDoc block edits
* Remove the variable type declaration for PHP 7.1 compatibility
* Update conferences with more websocket communication to replace AJAX calls.
* Ensure interface is loaded when no members
* Move color settings to theme category
* Update page view to default settings changes
- Fix the speed to calculate on bits instead of bytes so the speed transfer rates are more accurate
- Add PHPDoc blocks to the dashboard class (No code changes)
- Get the default device template file ealier in the render method. This wil fix retreiving the file type.
- Rename the file variable to the device_file
- Pass in the domain_uuid, domain_name, and user_id when the object is initialized.
- Get the greeting format to support mp3
- Fixes a problem when using elevenlabs
- Code assumed wav format
- Check class existence before instantiating objects
- Use the new transcribe_queue class and method
- Move call recording transcription to xml_cdr_transcripts
- Remove transcribe_target table, keys and colum name
* Missing open statement
Missing open statement
```
$view['sql'] .= "); \n";
```
* Double SELECT will break query
Double SELECT break query
* Forgot update version
Forgot update version
* No matching (
No matching opening
```
FROM
v_contacts as c
);
```
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.
- Count the primary key in the SQL statement. Slightly more efficient.
- Updated $dir to $xml_dir
- Add an extra line feed
- Change spaces to tabs
- Remove the method return