Commit Graph

278 Commits

Author SHA1 Message Date
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
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
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
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
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
2750475ab2 Add better logging to XML CDR 2021-05-26 14:29:46 -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
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
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
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
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
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
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
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
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
FusionPBX
08de8d1f81 Remove code that caused an error. 2020-10-07 13:48:17 -06:00
FusionPBX
1abd1f1670 Change prefix from tmp_ to start_ as the variable is based on the start date. 2020-08-11 10:39:27 -06:00
agree
e2498a81de fix extension summary date selection (#5358) 2020-07-16 09:54:10 -06:00
FusionPBX
fa7bb2a781 Add direction inbound for call center calls and update missed_calls. 2020-07-02 18:02:19 -06:00
FusionPBX
2d5745c283 Adjust the key string to match the value. 2020-07-02 16:48:07 -06:00
FusionPBX
0a3d809556 Add cc values to the altnernate import. 2020-07-02 16:27:54 -06:00
FusionPBX
87a7073889 If you don't have xml_cdr_lose_race permission then hide the call. 2020-06-01 16:13:40 -06:00
FusionPBX
314a217d56 Update xml_cdr.php 2020-05-05 21:32:33 -06:00
FusionPBX
b261c7e6d5 Update xml_cdr.php 2020-04-28 16:11:06 -06:00
FusionPBX
4c34f3d4be Update xml_cdr.php 2020-04-17 12:53:50 -06:00
FusionPBX
311e647783 Update xml_cdr.php 2020-04-06 16:11:31 -06:00
Nate
365e20926f Safari Audio Support: Call Recordings, MOH, VM Greetings & Messages and CDR audio files. 2020-03-30 20:08:45 -06:00
FusionPBX
c1b80ade27 Update xml_cdr.php 2020-03-10 10:43:58 -06:00
FusionPBX
4bc1512fec Update xml_cdr.php 2020-02-19 12:56:16 -07:00
Nate
82367a5137 CDR: Remove domain_uuid from delete() method. 2020-02-12 14:14:16 -07:00
FusionPBX
a2b135809f Update xml_cdr.php 2020-02-02 12:50:34 -07:00
FusionPBX
c00563efd8 Update xml_cdr.php 2020-01-31 21:28:29 -07:00
FusionPBX
729c06cb25 Update xml_cdr.php 2020-01-31 17:17:55 -07:00
FusionPBX
2185780bef Update xml_cdr.php 2019-12-23 11:20:43 -07:00
Nate
0ebddaf2fa CDR: List view updates. 2019-10-22 01:43:55 -06:00
FusionPBX
dd7279b6e4 Update xml_cdr.php 2019-10-07 23:49:24 -06:00