Commit Graph

280 Commits

Author SHA1 Message Date
FusionPBX dbc88b847a
Replace voicemail_answer_stamp with voicemail_message_seconds
The voicemail_answer_stamp value exists if the call reaches voicemail. The voicemail_message_seconds is set if the caller leaves a voicemail message.
2024-02-20 12:47:10 -07:00
FusionPBX 359a323c1f
Don't use voicemail_id to determine call status
This is an unreliable way to detect if the call when to voicemail.
2024-02-20 12:28:59 -07:00
FusionPBX bbb71439d0
Bug Fix: missed_call handling and voicemail status
Call going to voicemail for an extension was showing status answered instead of voicemail and missed call
2024-02-06 15:24:46 -07:00
FusionPBX 51fe5f1d4b
Update xml_cdr.php 2024-01-18 14:13:44 -07:00
FusionPBX 4e622d9b10
Handle no answer for unset status 2023-12-27 13:08:15 -07:00
FusionPBX 7de2ae0d23
Use last_bridge_hangup_cause to determine status 2023-12-27 11:37:36 -07:00
FusionPBX 4919633568
Create debian.service 2023-12-26 20:45:54 -07:00
FusionPBX 89ab37ce9d
Create xml_cdr.php 2023-12-26 20:43:59 -07:00
FusionPBX 7d819c4822
Use isset and if statements
Changed ifelse to if statement to make sure it evaluates each condition.
2023-12-20 13:59:33 -07:00
FusionPBX b9686aeae7
Set call center cancel call to missed 2023-12-20 13:49:48 -07:00
FusionPBX cea06a548e
Add provider_uuid to destinations dialplan xml and XML CDR 2023-12-09 23:07:36 -07:00
FusionPBX 65b6600e82
Changing format from 11/02 to 02 Nov
Reason for the change better worldwide support. Problem with numeric dates is that it can have a date 07/09 and does mean July 9 or September 7. In the US its standard month then day. However this isn't universal. This makes the dates confusing. So changed this to day and abbreviated month.
2023-11-02 12:45:38 -06:00
FusionPBX 12964eb83e
Prevent an error by casting to int 2023-10-30 20:29:56 -06:00
FusionPBX 3514a489d1
After application conference skip the row 2023-10-25 11:23:38 -06:00
FusionPBX 72fd0fe343
Move code for calculating the duration 2023-10-25 11:13:20 -06:00
FusionPBX cb65e7f66e
Prevent an warning by using preg_quote
This accounts for special characters like a * in the value.
2023-10-25 10:41:03 -06:00
FusionPBX 57d8d52336
Add Call Detail Record status no answer 2023-10-25 09:37:17 -06:00
FusionPBX d7e2ab900b
Call Detail Record add status and use billsec for the duration 2023-10-24 15:58:13 -06:00
FusionPBX f09b04eb01
Only add default value if application was not found 2023-10-23 16:13:07 -06:00
FusionPBX 1e06e3aa1c
Move the find_app method to the xml_cdr class 2023-10-23 15:15:58 -06:00
FusionPBX d6fb5ac7b8
Call Flow Summary add the IVR Menus status to routed 2023-10-21 20:57:11 -06:00
FusionPBX 115e9e0055
Use lower case status values to match the translation labels. 2023-10-21 13:26:26 -06:00
FusionPBX 026b2f4f44
CDR Call Flow Summary add a status for Call Flows 2023-10-21 10:40:31 -06:00
FusionPBX ea05178018
Add new rows when callee_id_number exists 2023-10-20 22:16:48 -06:00
FusionPBX 9fb99cc137
Add additional error handling 2023-10-19 20:02:55 -06:00
FusionPBX 8158518837
CDR call flow array add bridged_time, answer_time and update park 2023-10-19 19:49:51 -06:00
FusionPBX 6ce57690ee
Update the call_flow_summary array add a new row for inbound calls 2023-10-18 21:26:25 -06:00
FusionPBX 7c98190bde
Add new class methods called call_flow and call_flow_summary 2023-10-17 16:21:17 -06:00
FusionPBX 694d701757
Auto decode when urlencoding is detected 2023-10-16 09:55:20 -06:00
FusionPBX c7ae3b3a63
[SECURITY] Prevent showing Missed and Recent Calls to users that are not in xml_cdr_domain group and not assigned any extensions. 2023-10-13 14:25:02 -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
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 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 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 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
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 81d19fdce7
XML CDR [Class]: Updates for PHP 8.1 2023-05-29 18:30:07 +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
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
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
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
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
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
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
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
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
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 88bc541d0d
Create database object if not set. (#6492)
* Create database object if not set.
2022-11-08 09:40:12 -07:00
markjcrane d50bcb476a Replace root.php 2022-10-10 16:35:14 -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 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 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 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
FusionPBX 7f6b1472e6
Add conference recording to CDR page.
Tested and works with regular dialplan conference.
2022-06-09 11:04:07 -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 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
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
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