Commit Graph

290 Commits

Author SHA1 Message Date
Andy-Seattle bbabb4f861
Handle ERR no such channel during call intercepts (#6943)
When call center is not enabled, during a standard call intercept sometimes we are seeing an error as follows:
call_center_queue_uuid=-ERR%20No%20such%20channel!%0A
cc_queue_joined_epoch=-ERR%20No%20such%20channel!%0A
Normally it returns call_center_queue_uuid=_undef_ but occasionally shows the ERR message.
When the epoch variable is set to this it causes the XML CDR service to continually stop and start at the same CDR which raises the CPU load on the server significantly until the CDR is deleted.
This code fix will handle the ERR message in the same way as _undef_.
2024-04-05 17:36:25 -06:00
FusionPBX e0f4309076
New setting call_log_enabled default false 2024-03-12 17:44:46 -06:00
FusionPBX e6ca01a7af
Add Call Logs and CDR JSON, and Call Flows.
Move the CDR JSON and and Call Flows data to their own tables and add a new table for the Call Log.
2024-03-11 18:51:36 -06:00
FusionPBX bb8c4c0e66
Include ORIGINATOR_CANCEL for missed calls 2024-03-01 14:08:47 -07:00
FusionPBX 4d9160b1cd
Extension summary add voicemail column and use the CDR status 2024-02-22 21:04:14 -07:00
FusionPBX 746413cbfe
Update recent_calls.php
- Simplify SQL time format
- Use SQL limit to be more efficient
- Use the call detail record status
2024-02-20 14:48:24 -07:00
FusionPBX cdee086045
Use SQL limit for missed calls 2024-02-20 14:16:53 -07:00
FusionPBX 61d40a62ee
Simplify the time format 2024-02-20 13:41:21 -07:00
FusionPBX 53f6f040c1
Update the URL to use status 2024-02-20 13:24:27 -07:00
FusionPBX 60d4a7c1be
Use the call status missed to find missed calls 2024-02-20 13:12:52 -07:00
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