Commit Graph

234 Commits

Author SHA1 Message Date
Alex 7639f0755c
Update xml_cdr.php (#7315)
* Update xml_cdr.php

* Update css.php

* Update template.php
2025-03-13 14:58:15 -06:00
Alex 5dffd4d6e0
Add CDR column_overflow default setting (#7314)
* Add cdr column_overflow default setting

* Update app_config.php

* Update xml_cdr.php

* Update default_setting_edit.php

* Update template.php

* Update app_languages.php

* Update css.php
2025-03-13 14:49:30 -06:00
FusionPBX b0a630e80a
Use no-wrap class 2025-03-13 11:25:15 -06:00
FusionPBX af9691ff41
Fix missed_call use as boolean 2025-03-11 19:54:54 -06:00
FusionPBX 1be15d7d9c
Update responsive design 2025-03-11 14:27:45 -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 caba7800d1
Updated Call Flow Summary for outbound calls 2024-11-14 17:06:41 -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
fusionate e0fe291da0
CDR - Recording Playback: Fix seeking for chromium based browsers. 2024-10-18 18:58:44 -06:00
anthony-ricci 7122ecc154
Recording Seek (#7163) 2024-10-18 18:45:21 -06:00
fusionate 5459bca44b
CDR - Recording Playback: Fix progress indicator in chromium based browsers. 2024-10-16 17:29:10 -06:00
markjcrane 68c79ca0a3 Remove carriage return per line and leave only line feeds 2024-09-19 17:14:21 -06:00
FusionPBX 5bae14c6f9
Update xml_cdr.php 2024-09-18 19:07:02 -06:00
FusionPBX 99ceb6e158
Align SEARCH and other buttons to the right 2024-09-18 18:44:52 -06:00
Alex cb6edd88ef
Added content card to applications (#7121) 2024-09-05 17:10:04 -06:00
frytimo 2cbb4dbc31
remove instances where a pointer is used in a foreach loop for value (#7108) 2024-08-22 12:41:10 -06:00
FusionPBX 0044f0b69e
Update permissions handling for performance
- For pages using large number of permission like these
- Creating a permission array that is populated with permission_exists
- Then using the permission array is more efficient
2024-08-08 16:17:28 -06:00
FusionPBX e553e619bf
Extension column add nowrap 2024-06-06 14:27:09 -06:00
FusionPBX 5672944a5d
Add the extension name to CDR 2024-05-23 14:31:56 -06:00
fusionate 353bef172d
CDR - List: Make Delete button (if allowed) function like other pages. 2024-05-21 15:26:02 -06:00
frytimo 2264e2c0ed
Add read and write codec to columns displayed (#6913)
* add read and write codec to columns displayed

* update the column display name to be Codecs
2024-03-16 10:56:28 -06:00
FusionPBX 1acb30a7fe
Prevent an error 2024-03-02 18:13:25 -07:00
FusionPBX cdc11c5d16
Fix duration if null set to 0
If gmdate gets a null it uses the system time. This affected canceled calls.
2024-02-22 09:19:57 -07:00
fusionate cf51a862e7
CDR: Audio waveform generation integration. 2024-02-09 13:14:22 -07:00
FusionPBX 4ebdcdf4b2
Update CDR new call center search 2024-01-13 17:07:11 -07:00
Antonio Fernandez 69fc0c8378
Added CDR dropdown for showing CC Queue calls (#6869)
* Added dropdown for filtering Call Center Queues

* added more translations

* fixed the wrong permission that I had originally

* added the  Call Center dropdown to advanced search
2024-01-13 14:14:51 -07:00
fusionate ae5cb03547
CDR: Add permission for Account Code inclusion. 2024-01-10 21:34:53 +00:00
fusionate 212f91dd6c
CDR - List: Hide broken direction icon if invalid Status. 2023-12-27 18:42:32 +00:00
FusionPBX 837b2181ed
Fixed EXPORT missing min and max duration 2023-11-21 10:50:07 -07:00
FusionPBX 57d8d52336
Add Call Detail Record status no answer 2023-10-25 09:37:17 -06:00
FusionPBX 2be533687d
Add permissions for call detail record details. Purpose to hide advanced details from the admin group. 2023-10-24 17:06:39 -06:00
FusionPBX d7e2ab900b
Call Detail Record add status and use billsec for the duration 2023-10-24 15:58:13 -06:00
FusionPBX d5f39cf0b2
Call Flow Summary add name, application, link, and a new summary style. Controlled by summary_style setting. 2023-10-12 23:58:11 -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
Anthony bf194cddaf
Simplified Variables in xml_cdr.php (#6740) 2023-06-02 16:22:26 -06:00
fusionate 69900445b5
CDR: Updates for PHP 8.1 2023-06-01 22:55:19 +00:00
frytimo 9dc8bcf7e9
Fix xml cdr for PHP 8.1 (#6692)
* fix multiple warnings

* fix multiple warnings

* ensure array key exists

* ensure array key exists

* assign boolean variable for showall in url

* change boolean to show_all instead of showall

* revert some changes. Create default leg value and mos_score

* validate page integer

* revert back to showall from get
2023-05-12 13:28:42 -06:00
frytimo fef8165be2
Frytimo pr patches for php8.1 (#6630)
* Passing null to parameter #2 ($string) of type string is deprecated

* Passing null to parameter #1 ($string) of type string is deprecated

* php 8.1 fixes

* php 8.1 fixes - replace strlen($var) > 0 with !empty($var)

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - replace ${var} with {$var}

* php 8.1 fixes - strlower with null

* php 8.1 fixes - strreplace with null

* php 8.1 fixes - passing null to base64_decode

* php 8.1 fixes - check for false and check for null on $this->dir

* php 8.1 fixes - remove assignment of $db variable to modules object

* php 8.1 fixes - avoid sending null to substr

* php 8.1 fixes - change ${var} to {$var}

* php 8.1 fixes - check for null before preg_replace

* php 8.1 fixes - remove setting db variable on domains object

* php 8.1 fixes - set empty string if $row['domain_setting_subcategory'] is null

* php 8.1 fixes - set empty string if $_REQUEST['show'] is not available

* php 8.1 fixes

* php 8.1 fixes - correct $_POST checking syntax

* php 8.1 fixes - correct $_POST variables

* php 8.1 fixes

* Use brackets consistently

* Update user_setting_edit.php

* Change to not empty

* Update device.php

* Update text.php

---------

Co-authored-by: Tim Fry <tim@voipstratus.com>
Co-authored-by: FusionPBX <markjcrane@gmail.com>
2023-05-05 10:46:37 -06:00
fusionate dc327aec6d
CDR: Add missing language translations. 2023-04-26 21:55:55 +00:00
FusionPBX 6d114f0d11
Fix outbound call result status 2023-03-15 13:30:53 -06:00
denisent 00b5b79886
separating status and hangup permissions (#6522)
* separating status and hangup permissions

Creating a status permission so status can be displayed independently from hangup cause. The combination of status within the hangup permissions has confused some conversations with admins and superadmins.

* separating status and hangup permissions

Creating a status permission so status can be displayed independently from hangup cause. The combination of status within the hangup permissions has confused some conversations with admins and superadmins.
2023-02-08 19:03:40 -07:00
fusionate 96ba877a30 CDR: Update copyright date. 2023-01-16 23:10:11 +00:00
markjcrane d50bcb476a Replace root.php 2022-10-10 16:35:14 -06:00
FusionPBX 755f5aaf66
Use the database for formatted date and time. 2021-05-10 11:30:22 -06:00
emaktech a0ab52d369
CDR - Don't Check Filesystem for Recording on Load
I have been debugging slow loading on our CDR pages for the last few days now.

One issue that we have encountered is that currently as the page loads, it checks the filesystem for each file one at a time. In our case, we move recordings to object storage after 1 week, so each time we check for a file it passes api calls which take over 1 second each to return a result. This causes this page to not load at all for us in many cases.

Regardless, this current method is unnecessarily I/O intensive and really page load is probably not the time to be checking for each file one by one.

So this PR is the simplest solution - remove the check entirely. I would contend that the administrator should remove the record_path from the database if the file was removed so this should be acceptable.

This solves this particular issue for us, but would need feedback from others if not checking for files makes sense.
2021-03-03 15:48:17 -05:00
demonspork 0ef2551698 Exclude cc_side agent legs from missed_call
Excluded cc_side = agent calls from being marked as missed_call = true

Fixed the previous performance issue with adding the cc_side != 'agent' to the SQL and removed its filter from the rendering loop for the xml_cdr.
2021-02-21 18:26:24 -06:00
demonspork 77974b71dc Fix Query performance for cc_side agent
For some unexplained reason, including the `"and cc_side != 'agent'` in the WHERE tanks the query performance from seconds to minutes on Postgres 9.4. It runs great on Postgresql 13. Reverting to the "blank content while writing the page content" approach for this value unless I can find the source of the problem. - Oh, also removed an unnecessary condition that prevents you from filtering by LOSE_RACE.
2021-02-20 11:51:24 -06:00
demonspork 56a318b2f0 Fix TTA display bug
If the TTA is 0 because the call was answered in less than a second (so that the answer_epoch and start_epoch are in the same second), it would not display the TTA at all. This is safe to include 0 because "unanswered" calls are going to have a TTA that is is the negative value of the start time, significantly lower than 0.
2021-02-20 11:51:24 -06:00
demonspork 1a1edf1195 Improved Missed Call accuracy, cdr statistics, and hide duplicated CDRs from Enterprise Ring Groups
Changes
--------
  - Improve CDR Import Logic so that missed_call column is more accurate to the "missed" status. It would previously mark unanswered outbound calls as "missed". These are their own category of call.
  - Don't mark the CDRs of the "legs" of an Enterprise Ring Group call as missed, only the originating_leg will be marked (one missed call per call) - We could also just "skip" importing these call legs. Simultaneous ring groups don't have these duplicated CDRs for every ringing phone. The "Skip" approach might make most of the rest of this work irrelevant.
  - Create `originating_leg_uuid` column in v_xml_cdr and import it into the database during CDR imports so it is available for filtering Enterprise Ring Group calls out of CDRs and reports.
  - Move logic that hides the agent leg of CC calls, LOSE_RACE calls, and the Enterprise Leg hiding code from xml_cdr.php into xml_cdr_inc.php into the SQL query WHERE clause so the CDR page looks more consistent. The logic is the same, but these calls are now excluded from the query result entirely instead of having to "skip" rendering them in the list on the xml_cdr.php page.
  - Improved CDR statistics page to use the missed_call variable instead of relying upon billsec and answer_stamp/answer_epoch. Added the same logic as the xml_cdr pages to the query so it excludes enterprise ring group call legs.
  - Laid the query groundwork in xml_cdr_statistics to report on Average TTA (No UI changes yet to include that statistic)

Retroactive Changes
---------------------
There are a few changes going back in time to bring everything in line with this better reporting accuracy:
  - If you want the populated the `originating_leg_uuid column` in `v_xml_cdr`, it will rely upon having the `json` column and not having deleted the data from it like I know some people do for space saving.
  - If you don't have the json column,  you are mostly out of luck for hiding the duplicate legs of Enterprise ring group calls. It might be possible, but it isn't going to be easy.
  - On Newer Versions of postgres, this works:
```
UPDATE v_xml_cdr SET originating_leg_uuid = (json->'variables'->>'originating_leg_uuid')::uuid WHERE json->'variables'->>'originating_leg_uuid' IS NOT NULL;
```
  - For some reason on postgres 9.4, I had to UPDATE every single record because I couldn't get it to allow the json syntax properly after the WHERE. This is fine, it doesn't change the end result it just means it has to run the UPDATE on every record, which will take a while
```
UPDATE v_xml_cdr SET originating_leg_uuid = (json->'variables'->>'originating_leg_uuid')::uuid;
```
  - To remove the `missed_call = true` on all your previous outbound records so that they don't show up when you filter on missed (outbound unanswered calls can be accurately listed with TTA max 0 and direction outbound)
```
UPDATE v_xml_cdr SET missed_call = false WHERE direction = 'outbound' AND missed_call = true;
```
2021-02-20 11:51:24 -06:00
FusionPBX 9788b7b99f
Add xml_cdr_export_csv and xml_cdr_export_pdf permission checks. 2021-01-17 23:55:23 -07:00