Commit Graph

1050 Commits

Author SHA1 Message Date
FusionPBX 8f0c11fa6c
Make sure to start the PHP SESSION 2023-09-25 13:01:40 -06:00
FusionPBX 09dd09305c
Fix CDR import for HTTP POST
Add syslog server messages with more details when sending access denied.
2023-09-25 12:55:20 -06:00
fusionate a91f0cf346
CDR - Export: Integrate permissions on CSV output. 2023-09-20 01:58:13 +00:00
fusionate 5c9b02fec2
CDR - Export: Fix file name for Show All, correct average MOS value. 2023-09-20 01:24:46 +00:00
fusionate aab2880153
CDR - Export: Integrate permissions on PDF output. 2023-09-20 01:15:04 +00:00
fusionate 3659e07df9
CDR - Export: Include Caller Destination column in PDF. 2023-09-19 23:53:51 +00:00
FusionPBX 24bdccdb0b
Use the settings class instead of the SESSION 2023-09-18 14:59:21 -06:00
FusionPBX 9684541dbe
PHP 8.1 end function requires array 2023-09-08 09:33:54 -06:00
FusionPBX d2bb186b33
Prevent an error for PHP 8.1 plus 2023-09-06 16:32:11 -06:00
FusionPBX 88169f9e30
Use the call direction from the xml_cdr table 2023-08-25 16:13:02 -06:00
FusionPBX 85f6793a41
Set bridge statements variables 2023-08-25 16:05:33 -06:00
FusionPBX e8e6673be8
Remove some redudant code for finding record_path and record_name 2023-08-10 09:05:42 -06:00
FusionPBX 0304dfffad
Use empty record_name
Recording call through a ring group its not setting the record_name variable this picks up the recording from the file system.
2023-08-04 13:53:37 -06:00
fusionate f61302190b
Dashboard - Missed Calls: Apply domain time zone. 2023-08-01 20:33:51 +00:00
fusionate d68f9826f1
Dashboard - Recent Calls: Apply domain time zone. 2023-08-01 20:33:39 +00:00
FusionPBX 5e69a3deda
Update xml_cdr_details.php 2023-07-15 23:59:05 -06:00
FusionPBX 64c5eeb35e
Update xml_cdr_details.php 2023-07-15 23:49:55 -06:00
FusionPBX 1b6bf49a62
Update xml_cdr_details.php 2023-07-15 23:43:19 -06:00
fusionate 3b6c2acd76
CDR Details: Little better output. 2023-07-07 21:55:32 +00:00
FusionPBX d6969715d7
Update xml_cdr_details.php fix PHP 8.1 warnings 2023-07-07 15:39:38 -06:00
FusionPBX 49648e6655
Handle errors better for invalid xml with simplexml_load_string
When the XML object detects invalid XML move the file to the failed directory.

After reading and processing the XML save each call detail record to the database.
2023-06-29 17:25:20 -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
FusionPBX 5759a636e6
Add missing cc_queue_joined_epoch variable 2023-06-08 18:47:17 -06:00
Alex 66e14c586c
Update xml_cdr.php (#6749) 2023-06-08 16:57:06 -06:00
Alex 475cf4d253
Fixed more php 8.1 errors (#6748)
* Update call_center_queue_edit.php

* Update number_translation_edit.php

* Update database_transactions.php

* Update xml_cdr_extension_summary.php

* Update call_flow_edit.php

* Update contact_address_edit.php

* Update device_profiles.php
2023-06-08 16:07:01 -06:00
Alex 22a01b147d
Fixed call center queue agents table (#6746)
* Update destination_edit.php

* Fixed php 8.1 errors

* Fixed cdr recording download not working

* Update call_center_queue_edit.php

* Update call_center_queue_edit.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2023-06-06 11:31:22 -06:00
fusionate 28ebdbc722
CDR: Restore call recording download. 2023-06-06 16:29:09 +00:00
Anthony bf194cddaf
Simplified Variables in xml_cdr.php (#6740) 2023-06-02 16:22:26 -06:00
fusionate bc322e5cd6
CDR - Details: Update for PHP 8.1 2023-06-02 18:26:30 +00:00
fusionate 69900445b5
CDR: Updates for PHP 8.1 2023-06-01 22:55:19 +00:00
fusionate c4f44f9ad5
Dashboard - Recent Calls: Updates for PHP 8.1 2023-05-29 19:57:35 +00:00
fusionate c3fda2c09d
Dashboard - Missed Calls: Updates for PHP 8.1 2023-05-29 19:57:10 +00:00
fusionate f4c141f6ef
Extension Summary: Updates for PHP 8.1 2023-05-29 18:30:31 +00:00
fusionate 81d19fdce7
XML CDR [Class]: Updates for PHP 8.1 2023-05-29 18:30:07 +00:00
fusionate 3adeb15ace
CDR Statistics: Updates for PHP 8.1 2023-05-25 21:34:41 +00:00
fusionate 9227344748
xml_cdr [Class]: Update for PHP 8.1 2023-05-23 20:20:40 +00:00
FusionPBX 62b95fa690
Handle call center variables with a value of _undef_ 2023-05-18 23:41:21 -06:00
markjcrane cf580e6c8c Move failed call detail records to a failed directory 2023-05-18 17:44:36 -06:00
Alex 05063e35d2
Update translations (#6694)
* Update app_languages.php
2023-05-18 15:36:17 -06:00
Luis Daniel Lucio Quiroz 3f544496b7
DB and protection (#6696)
so this small change has 2 purposes.
first, I found the hard way, that PHP PDO is not always coded with the same criteria between versions and databases.  While PDO PGSQL on PHP 8.x may work, PDO SQLITE on PHP 7.4 may not and so on.. This will make sure that the value there is an integer.

Second, since these two values are taken from the _GET, which is in the URL string, it will protect against "imaginative" users.
2023-05-16 13:05:07 -06:00
markjcrane 155f15a407 Fix CDR paging and minor code changes 2023-05-16 10:07:32 -06:00
FusionPBX 590faa4e83
Set the export_format
To prevent null and prevent unintended behavior set an empty string to as the default export format.
2023-05-12 14:30:16 -06: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
FusionPBX eccae62149
Replace is_array with !empty 2023-05-10 22:25:10 -06:00
FusionPBX 020b1414aa
Use empty instead of is_array 2023-05-10 22:22:21 -06:00
Alex ac38507462
Update translations (#6682)
* Update translations

* Update app_menu.php

* Update app_languages.php
2023-05-10 18:20:44 -06:00
fusionate 80ce576ea5
Dashboard - Missed Calls: Updates for PHP 8.1 2023-05-10 22:34:27 +00:00
fusionate c391faccfc
Dashboard - Recent Calls: Updates for PHP 8.1 2023-05-10 22:32:44 +00:00
Alex 3e0ec8b752
Add missing translations (#6673) 2023-05-09 11:39:02 -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
markjcrane 1513bd3301 Add Chinese, Korean, and Japanese translations 2023-05-03 10:36:25 -06:00
markjcrane 28fe89066e Add Chinese, Korean, and Japanese translations 2023-05-02 22:05:16 -06:00
markjcrane 381b3bdd9f Add menu translations 2023-05-02 20:30:13 -06:00
frytimo 69bd42af05
remove unneeded destruct methods as GC has higher performance (#6631)
Co-authored-by: Tim Fry <tim@voipstratus.com>
2023-04-27 20:18:53 -06:00
fusionate dc327aec6d
CDR: Add missing language translations. 2023-04-26 21:55:55 +00:00
Finn 54be67935b
Improve error handling when a recording download fails (#6592) 2023-03-29 17:46:51 -06:00
FusionPBX e3696871c9
If record_length is not set then still set record path and name
This affected outbound calls in some cases.
2023-03-15 14:48:26 -06:00
FusionPBX 6d114f0d11
Fix outbound call result status 2023-03-15 13:30:53 -06:00
fusionate f6b065085b
Dashboard - Missed & Recent Calls: Fix minor inconsistencies. 2023-02-23 14:50:16 +00:00
FusionPBX 67bfd31765
Fix syntax problem 2023-02-21 19:44:41 -07:00
demonspork 95579ca716
Fix cdr delete for recordings schema change and minor refactoring (#6532)
* Fix cdr delete for recordings schema change and minor refactoring

* Update changes to prevent losing changes.

Also remove trailing spaces

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2023-02-21 10:38:25 -07:00
FusionPBX e91f78bafe
permission exists xml_cdr_domain false 2023-02-20 12:29:32 -07:00
FusionPBX d4458782b8
Change is_group to permission_exists
Use the xml_cdr_domain permission instead of is_group admin or superadmin.
Using the permission is more flexible.
2023-02-20 12:12:43 -07:00
FusionPBX cd517ea403
Show the latest 24 hours for CDR statistics 2023-02-18 17:28:15 -07:00
FusionPBX 712b1e7281
Update xml_cdr_statistics.php (#6557)
* Update xml_cdr_statistics.php

* Build the xml cdr statistics with a query
2023-02-16 22:09:00 -07: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
Luis Daniel Lucio Quiroz 9aa88dc537
Make the XML CDR Importer more resilient (#6543)
So I discovered 2 things,

1. If a user adds the default config cdr-field-array with the content of a database field Let's pretend they want to show the xml_cdr_uuid column (for support purposes) - it could be any column, the SQL construction will fail as not Postgresql, Not MariaDB/MySQL allow having a column repeated twice. Adding array_unique() fixes this issue.

2. This one is for developers: If a developer wants to create more columns in the v_xml_cdr table and make them visible in the CDR app, common sense tells to add the default setting cdr-field-array to show it. As the code is now, this will look into the freeswitch variables and overwrite it with NULL. I am adding a condition that verifies if the value has been already assigned, if it is, it won't overwrite it. This allows any developer who may be interested in extending the CDR to simply extend the class without touching it; very handy to keep the original code untouched.
2023-02-08 18:43:25 -07:00
Alex 3fe43be2a8
Update default chart colors (#6542)
* Update default chart colors

* Update app_config.php

* Update index.php
2023-01-31 11:08:00 -07:00
fusionate d04b6db96a
Dashboard: Call Forward widget, Edit position without reload, misc adjustments. 2023-01-31 00:19:09 +00:00
FusionPBX e3b600eaff
Exclude Call center agent as missed call
The call could have been answered by another call center agent.
2023-01-28 14:49:35 -07:00
fusionate b35aafc391
Dashboard: Click chart to expand/contract details. 2023-01-28 01:52:13 +00:00
demonspork a3811128af
Support upcoming change in freeswitch - bridge_uuid changes to bridge_uuids array (#6531) 2023-01-27 10:18:35 -07:00
fusionate 96ba877a30 CDR: Update copyright date. 2023-01-16 23:10:11 +00:00
FusionPBX cf69ee46dc
Use the call recordings view 2023-01-07 08:44:20 -07:00
Alex 37ab508d1b
Update chart.js v3 to v4 (#6529)
* Update chart.min.js

* Update missed_calls.php

* Update recent_calls.php

* Update system_counts.php

* Update system_cpu_status.php

* Update system_status.php

* Update domain_limits.php

* Update voicemails.php
2023-01-06 13:18:53 -07:00
FusionPBX bccc736fea
Update xml_cdr.php 2022-12-05 17:52:36 -07:00
FusionPBX 0f60b2b34d
Add record_length numeric
And remove call_recordings save
2022-12-03 18:36:42 -07:00
FusionPBX c910f2177a
Add record_length type numeric 2022-12-03 18:24:09 -07:00
FusionPBX 88bc541d0d
Create database object if not set. (#6492)
* Create database object if not set.
2022-11-08 09:40:12 -07:00
FusionPBX 95dd6094e0
Removing this because it breaks Missed Call results
Missed calls should include hangup_cause NO_ANSWER
2022-10-24 15:27:41 -06:00
FusionPBX ef040f2b7a
Command line or web server both includes can work the same 2022-10-13 16:50:47 -06:00
FusionPBX b8e8c726be
Update the include handling. 2022-10-11 11:54:01 -06:00
markjcrane d50bcb476a Replace root.php 2022-10-10 16:35:14 -06:00
markjcrane eb5c25aa35 Add insert_date, insert_user, update_date, update_user to all tables 2022-09-18 00:54:37 -06:00
FusionPBX 0fce8ac1a5
Add more comments and is_array before foreach 2022-09-12 08:59:28 -06:00
FusionPBX bb56827f4f
Use is_array before foreach 2022-09-12 08:54:16 -06:00
FusionPBX 2cd382ec38
Get caller ID from the same call flow -> caller profile
This is the same place we get caller ID from in the XML CDR Details page.
2022-08-23 13:13:34 -06:00
agree f94bad1730
[xml_cdr] more caller id handling (#6452) 2022-08-16 00:00:43 -06:00
FusionPBX da768d984b
If the call goes to voicemail it is a missed call. 2022-08-05 15:05:49 -06:00
FusionPBX 84a3ab143d
Needs to use double equals for the condition. 2022-08-05 14:35:54 -06:00
FusionPBX 6f2a2a76a1
Answered calls to exclude missed calls.
Determining missed_call is done in the import so the extra originating_leg_uuid is not needed.
2022-08-05 13:46:26 -06:00
FusionPBX e0b37ae834
When call goes to voicemail mark it as missed.
Add additional labels and change isset answer_stamp to use billsec greater than zero.
2022-08-05 13:19:35 -06:00
FusionPBX 0a45b7acf1
Don't show these by default.
Permissions are there to show these however its is expected that these permissions will be assigned to a group rarely.
Considering removing the permissions and not import the records.
2022-08-05 11:30:57 -06:00
FusionPBX 440584898b
Missed calls are marked when the call is imported.
Missed calls are marked when the call is imported and in some cases near the end of the call. This simplifies the missed_call in reports and call detail records.
2022-08-05 11:18:40 -06:00
FusionPBX d5e7552fb4
Hide not answered calls Ring Group Destinations that were answered by someone else.
Improve the form
2022-08-05 11:15:09 -06:00
FusionPBX 58d7e402d9
Hide ring group legs by default that were not answered.
Cleans up the Call Detail Records list.
2022-08-05 10:43:40 -06:00
FusionPBX 301dc1501c
Eliminate faxes from missed calls and ring group destinations that didn't answer the call. 2022-08-04 19:09:23 -06:00
FusionPBX 74d034d7a9
Work on missed_call field. 2022-08-04 18:37:14 -06:00
FusionPBX 3418859ee9
Update xml_cdr.php 2022-08-04 15:37:12 -06:00
FusionPBX 7a6c44267a
Check for missed_call variable use it if it exists 2022-08-04 12:50:29 -06:00
agree b7e7d27c79
[xml_cdr] LOSE_RACE handled in wrong place (#6433)
LOSE_RACE is already being handled later `if (permission_exists('xml_cdr_lose_race'))`
2022-06-25 12:04:44 -06:00
agree f907619679
[xml_cdr] cdr statistics fix LOSE_RACE (#6432) 2022-06-25 12:04:23 -06:00
FusionPBX 7f6b1472e6
Add conference recording to CDR page.
Tested and works with regular dialplan conference.
2022-06-09 11:04:07 -06:00
FusionPBX 9330414120
Use the number alias permission in the extension summary. 2022-05-05 10:59:25 -06:00
FusionPBX 9e77266299
Re-add permission check for xml_cdr_lose_race and xml_cdr_enterprise_leg. 2022-05-05 10:55:52 -06:00
emak 2050d98e3e
Update XML CDR Extension Summary Queries #5979 (#6365)
* Change labels to reflect new CC missed field

* Update extension summary queries

* Hide number alias field
2022-05-05 10:43:44 -06:00
FusionPBX 4ab4fbbae9
Exclude LOSE_RACE for missed calls (#6338)
* Exclude LOSE_RACE for missed calls

* Update xml_cdr_inc.php
2022-04-07 10:05:54 -06:00
FusionPBX a16c109c96
Missed Calls exclude LOSE_RACE 2022-04-07 09:59:29 -06:00
FusionPBX 3336e1420a
If caller_destination is not set use dialed_user 2022-03-15 14:50:28 -06:00
FusionPBX af994de554
Set caller_id_number using sip_from_user if the variable is not set. 2022-03-15 14:43:55 -06:00
FusionPBX 76a4e9dd50
Work on caller_destination, caller_id_name and caller_id_number. 2022-03-15 14:33:44 -06:00
FusionPBX fac8ee8244
Hide Extension Summary Show all by default. (#6318)
* Hide Extension Summary button show all by default. Add new permission xml_cdr_extension_summary_all

Many extensions and CDR records make this a resource very intensive query. Disable by default for all groups.

* Add new permission xml_cdr_extension_summary_all

* Update xml_cdr_extension_summary.php

* Update xml_cdr.php
2022-02-24 01:53:54 -07:00
AlexC 78c5666aff
Fixed dashboard layout bugs (#6263)
* Fixed dashboard layout bugs

* Update domain_limits.php

* Update missed_calls.php

* Update recent_calls.php

* Update voicemails.php

* Update system_counts.php

* Update system_cpu_status.php

* Update system_status.php

* Update caller_id.php
2022-01-25 11:03:37 -07:00
FusionPBX ba2f5c379f
Only compare sip_from_domain with domain_name if the sip_from_domain exists. 2022-01-18 12:05:32 -07:00
FusionPBX e16cc5e725
Need to keep the caller ID prefix on the caller ID name.
This was needed to keep caller id prefix for the caller ID name so it shows up in the Call Detail Records.
2022-01-18 11:52:26 -07:00
vivoras 650f50a6ce
Update xml_cdr_statistics.php (#6239) 2022-01-11 16:27:34 -07:00
vivoras c3d3429635
Update app_languages.php (#6238) 2022-01-11 09:23:08 -07:00
Antonio Fernandez 7e321c43fb
added support for ALOC description #1 (#6234)
* added support for ALOC description

* Changed description to 'Average Length of Call'

Conversation isn't bad but I've always heard it as Average Length of Call.

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2022-01-10 22:33:47 -07:00
Antonio Fernandez 13a1590c8f
Update xml_cdr_extension_summary.php (#6235) 2022-01-10 22:28:55 -07:00
Antonio Fernandez affba4b61d
Update xml_cdr_statistics.php (#6236) 2022-01-10 22:27:33 -07:00
FusionPBX 9d01324da7
Use sip_from_display and sip_from_user when the call originated from the VoIP Provider.
When an inbound call is forwarded the call_direction is set to inbound and then updated to outbound. In this situation we use the sip_from_display and sip_from_user to get the original caller ID instead of the updated caller ID after the call was forwarded.
2022-01-04 17:50:51 -07:00
FusionPBX 1f0af43d83
Use the date c function only if the the epoch is_numeric 2022-01-04 16:54:47 -07:00
Len 02a12591dd
Replace duplicate uuid (#6208)
* Replace duplicate uuid
* Replace duplicate uuid
2021-12-20 11:40:52 -07:00
FusionPBX dd106a6871
Replace event_socket_mkdir with php mkdir. (#6170) 2021-12-02 19:03:55 -07:00
AlexC 2a4550c910
Add dashboard default settings to recent_calls.php (#6138)
* Add dashboard default settings to recent_calls.php

* Update recent_calls.php
2021-11-19 16:32:53 -07:00
AlexC 4b6f42e5c3
Add dashboard default settings to missed_calls.php (#6137)
* Add dashboard default settings to missed_calls.php

* Update missed_calls.php
2021-11-19 16:31:51 -07:00
AlexC 04f301337d
Add new dashboard default settings for cdr charts (#6134) 2021-11-19 16:31:00 -07:00
FusionPBX 2d4c65abee
Simplify missed call handling. 2021-11-19 15:47:54 -07:00
FusionPBX 80cfab92b8
Use answer_stamp and bridge_uuid to deteremine if the call was answered. 2021-11-19 11:11:40 -07:00
AlexC 4600e5f98e
Update missed_calls.php (#6122) 2021-11-12 12:56:11 -07:00
AlexC fd3f3c2d69
Update recent_calls.php (#6121) 2021-11-12 12:55:51 -07:00
AlexC 12260ae24b
Update recent_calls.php (#6117) 2021-11-09 23:23:18 -07:00
AlexC e67e005d08
Update missed_calls.php (#6116) 2021-11-09 23:22:03 -07:00
AlexC cbd0081e3d
Add chart to cdr recent calls (#6111) 2021-11-09 22:27:23 -07:00
AlexC b77e2468d9
Add chart to cdr missed calls (#6110) 2021-11-09 22:27:06 -07:00
markjcrane 032a5aec39 Add a new dashboard 2021-11-09 18:42:14 -07:00
AlexC 42cf0b7068
Replace old chart with Chartjs (#6094) 2021-11-04 10:22:14 -06:00
FusionPBX 4066d868e3
Add flexible search with improved wildcard support. 2021-08-30 19:10:31 -06:00
FusionPBX 287869d71f
Add sip_call_id to the xml cdr SQL select. 2021-07-31 19:28:59 -06:00
FusionPBX 4da962e4e0
Add sip_call_id to the xml cdr import.
The sip_call_id is the Call-ID found in the SIP headers.
2021-07-31 19:25:23 -06:00
FusionPBX 34e3683527
Add sip_call_id to the xml cdr table. 2021-07-31 19:15:18 -06:00
FusionPBX bcd7482e5c
Use elseif instead of a series of if statements. 2021-06-15 13:44:14 -06:00
FusionPBX 6d536ce4d7
Add more to the missed call check
Only count as a missed call if the bridge_uuid has a length.
2021-06-15 12:53:46 -06:00
FusionPBX 3e2ae03295
Count a going to voicemail as a missed call. 2021-06-15 12:20:04 -06:00
markjcrane af3610d986 Add CIDR option to HTTP POST 2021-05-26 20:41:26 -06:00
markjcrane 2750475ab2 Add better logging to XML CDR 2021-05-26 14:29:46 -06:00
FusionPBX 764a46458e
Update xml_cdr_import.php 2021-05-26 10:53:50 -06:00
Andrew Querol b67d55b39c
Replace duplicated v_xml_cdr_import.php with a call to the post method of xml_cdr (#5956)
* Redirect duplicated xml_cdr_import script

This replaces the duplicated code in v_xml_cdr_import.php with xml_cdr_import.php

This also adds a call to `$cdr->post();` in that file to then process the POSTed data from FreeSWITCH
2021-05-26 09:54:08 -06:00
demonspork 7133f35af5
Use epoch times for CDR Imports (#5955)
* Use epoch times for CDR Imports

There has been some discussion of edge cases for CDR Importing time zones/time stamps.

This modification makes the start_stamp, answer_stamp, and end_stamp values use the corresponding _epoch times for import into the v_xml_cdr table to remove any chance of time zone mis-alignment.

* Set Call recording date with Epoch

Use the start_epoch to set the call recording date.
2021-05-26 09:11:09 -06:00
FusionPBX b2e0402478
Get the call_center_queue_uuid from the channel variables. 2021-05-21 13:16:18 -06:00
FusionPBX a7efbe178f
Merge pull request #5952 from greenbea/patch-40
[cdr] Add call stats to cdr details
2021-05-21 09:05:02 -06:00
agree aef22cd47f remove unnecessary line 2021-05-21 01:02:34 -04:00
agree 0fc6915a7a [cdr] Add call stats to cdr details 2021-05-21 00:55:42 -04:00
FusionPBX 21ab598390
Merge pull request #5935 from greenbea/upstream/patch-39
[call_center] export call_center_queue_uuid channel variable to agent legs for cdr import
2021-05-10 12:29:55 -06:00
FusionPBX 10ca93cbc0
Add timestamptz and timezone to the extension summary. 2021-05-10 11:34:47 -06:00
FusionPBX 755f5aaf66
Use the database for formatted date and time. 2021-05-10 11:30:22 -06:00
FusionPBX 49cf078c5c
XML CDR add timestamptz and timezone
- If the server time is set to UTC then the search needs to account for the local time zone.
- Use the database to format the date in the most efficient way.
2021-05-10 11:28:22 -06:00
agree d7d7c6c678
remove reference 2021-05-09 16:07:17 -04:00
agree 06062b7fba * export call_center_queue_uuid channel variable to agent legs for cdr import
* add call_center_queue_uuid field to cdr for referenceing the call center queue table (cc_queue is a freeswitch variable for  the queue name)
2021-05-09 15:52:42 -04:00
markjcrane 884720489f Use the cc_queue to get the call_center_queue_uuid 2021-05-07 22:21:08 -06:00
markjcrane 8bd751f1c9 Use the cc_queue to get the call_center_queue_uuid 2021-05-07 22:04:38 -06:00
markjcrane e09a97f013 Add { and } brackets for each $field 2021-05-07 19:08:11 -06:00
markjcrane 9cfd41d222 Update CDR imports fix syntax 2021-05-07 16:06:03 -06:00
markjcrane cfd70fb18f Use the queue uuid for the cc_queue 2021-05-06 23:23:07 -06:00
markjcrane 014cbd1cd0 Replace data type timestamp with timestamptz 2021-05-05 20:46:53 -06:00
agree 69e892e790 [callcenter] Add ability for callcenter presence
* Freeswitch requires callcenters to have queue_name@domain for presence to work
2021-04-22 18:51:25 -04: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 c11589b1c3 Track Voicemail Message Success/Failure in CDR
Track whether or not a message was actually left in the voicemail box. Previously we only knew that voicemail answered, now we know whether the caller left a message.
Callers who didn't leave a message now show up in the "Cancelled" call filter in xml_cdr.php

Bonus: Fixed a bug with the originating_leg_uuid that was breaking extension summary from a previous commit and some other minor bugs/typos.
2021-02-21 21:09:37 -06: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 b5272984d1 Don't filter LOSE_RACE of already filtering originating_leg_uuid
It is redundant to filter out LOSE_RACE when originating_leg_uuid is also filtered, there is an overlap where every call with LOSE_RACE also has an originating_leg.
2021-02-20 11:51: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 92dc62a7b4 Fix TTA display bug in Export CDR PDF
Same thing as in the xml_cdr.php page display. If the call is answered instantly, less than a second, then the difference is 0s, and the 0s is a visual indicator that the call was answered, it just took less than a second. Calls that didn't get answered have a large negative number stored in the TTA field, 0 is an answered call.
2021-02-20 11:51:24 -06:00
demonspork d150f16b9d Fixed "Failed" call status in CDR
Re-implemented the commented out "Failed" call status SQL filter. It was no different than leaving the "Call status" search box empty. Removed the send_refuse restriction.
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 ef38b15cdc Add new missed call rules to HTTP CDR Imports
Add new missed call rules to HTTP CDR Imports. They had only been added to the xml_cdr class used by the file import.
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
demonspork 202bc7363e Fixed "Missed" link and exclude LOSE_RACE from CDR stats
Simple change to exclude lose_race and fix a URL change for the xml_cdr page.
2021-02-16 21:21:59 -06:00
agree ee1ca8a507
fix comparison operator 2021-02-09 14:18:21 -05:00
FusionPBX 0bc3b4cf57
Merge pull request #5714 from emaktech/patch-11
French language update
2021-01-26 08:38:56 -07:00
agree 08f5c1631c
Add missing variable 2021-01-23 23:53:36 -05:00
agree 9c9507e2e3
Fix xml_cdr_details fix application log
When there's a single app in the app log it's saved as an single object in the json not as an array of objects
2021-01-23 23:47:53 -05:00
FusionPBX 246ffb3e12
Add a permission check for xml_cdr_export_csv and xml_cdr_export_pdf to the CDR export. 2021-01-18 00:00:18 -07:00
FusionPBX 1b2812976d
Add xml_cdr_export_csv and xml_cdr_export_pdf permissions to app_config.php. 2021-01-17 23:56:45 -07:00
FusionPBX 9788b7b99f
Add xml_cdr_export_csv and xml_cdr_export_pdf permission checks. 2021-01-17 23:55:23 -07:00
agree 5778f71663
Update app_config.php 2021-01-13 13:13:11 -05:00
agree 33b206c6a7
Update xml_cdr.php 2021-01-13 13:12:23 -05:00
Greenbea 3a01537487 CDR add permision to hide call center agent legs
Author:    agree <ahrongreenberg@gmail.com>
2021-01-12 16:55:27 -05:00
emaktech d61388b3ee
Update app_languages.php
French language update
2021-01-06 16:20:26 -05:00
fusionate e8e67a6af7 CDR: Verify is array before checking size. 2020-12-28 14:23:00 -07:00
emaktech cc5eba5699
Revert "Order by start_epoch to Speed Up Query Execution" 2020-12-23 23:52:15 -05:00
FusionPBX fa835103e3
Use isset instead of strlen. 2020-12-21 11:13:55 -07:00
agree 60ed198a2e
CDR Import fix missing sql parameter 2020-12-15 12:42:47 -05:00
FusionPBX c314f4352a
Minor change add a little better description. 2020-12-10 20:20:51 -07:00
FusionPBX d5016a107b
Delete xml_cdr_import_update.php 2020-12-10 20:19:54 -07:00
FusionPBX 53cbf8c9b4
Fix a situation where call recording was not showing up in Call Detail Records.
Make sure the record_path is set to the default path if that value doesn't exist in the xml.
2020-12-10 20:03:53 -07:00
emaktech c97d9e7022
Order by start_epoch to Speed Up Query Execution
In some cases, this seems to speed up xml_cdr loading times by ~10x.

It appears one big cause of this is the final ORDER_BY statements are very slow in PostgreSQL for timestamp fields. Ordering by start_epoch field improves query execution time in a dramatic way and should result in the same ordering.
2020-12-07 15:56:26 -05:00
fusionate da069651f4 CDR: Grant xml_cdr_domain permission to admin group by default. 2020-12-02 13:37:49 -07:00
FusionPBX 08de8d1f81
Remove code that caused an error. 2020-10-07 13:48:17 -06:00
Nate 41501eee61 CDR: Mitigate warnings if no extensions assigned to user. 2020-09-29 13:56:10 -06:00
agree aabd4059be
cdr add call flow summary (#5454) 2020-09-23 10:29:13 -06:00