In our previous system, we could run reports based on the Inbound Route. So you could see how many calls you were getting to each business/department/team member direct line.
However, the issue we have is that the CDR report includes every extension in the RG/CQ so if you had 50 calls in a day, and 10 people in the ring group, your report gives you a 500 line report, when all there was, and all you need to know, was that there were 50 calls.
I have tried to use the filters, it works for answered calls, but for missed calls, it give you every call because every call, 9 out of 10 people didnt pick up so you are getting a whole heap of irrelevant information.
Now, you can sift through all this, but that is a lot of work.
The PBX should be able to at the very least, give accurate data on inbound calls answered and missed.
Please help. If I am doing it wrong let me know!
Sontata stats also is of no use, it really only focuses on agents, not inbound routes.
We had a similar issue. I created a view in MySQL to clean it up to something more usable.
We’ve since started exporting CDR entries to a Postgres database as well and I’ve refined the view a bit more but for simplicity here is what I used to start to get a useful CDR view. Sorry it’s not pretty, just exported my current view so it’s one big block of text.
This is assuming that every call to your system is answered in some way whether by voicemail or something else, it drops all calls that don’t have a disposition of ANSWERED.
It’s not perfect but could be a good start and if anybody improves on it please share!
CREATE VIEW `cdr_minimal` AS select `cdr`.`calldate` AS `calldate`,`cdr`.`disposition` AS `disposition`,`cdr`.`duration` AS `duration`,`cdr`.`calltype` AS `calltype`,case when `cdr`.`calltype` = 1 then substring_index(substring_index(`cdr`.`clid`,'<',-1),'>',1) when `cdr`.`calltype` = 2 then `cdr`.`src` when `cdr`.`calltype` = 3 then `cdr`.`dst` else NULL end AS `external_did`,case when `cdr`.`calltype` = 1 then `cdr`.`dst` when `cdr`.`calltype` = 2 then `cdr`.`did` when `cdr`.`calltype` = 3 then `cdr`.`src` else NULL end AS `tenant_did`,`cdr`.`uniqueid` AS `uniqueid`,`cdr`.`linkedid` AS `linkedid`,`cdr`.`tenant` AS `tenant_name`,case when `cdr`.`calltype` = 1 and `cdr`.`dcontext` like '%queue-call-to-agents' then `cdr`.`destination` when `cdr`.`calltype` = 2 and `cdr`.`dst` = 's' then concat('hangup_',`cdr`.`dcontext`) when `cdr`.`calltype` = 2 then `cdr`.`dst` when `cdr`.`calltype` = 3 then `cdr`.`source` else NULL end AS `extension`,case when ifnull(`cdr`.`recfile`,'') <> '' then `cdr`.`recfile` when ifnull(`cdr`.`recfile`,'') = '' and `cdr`.`calltype` = 3 and (select count(0) from `cdr` `c2` where `c2`.`linkedid` = `cdr`.`linkedid` and `c2`.`disposition` = 'ANSWERED' and `c2`.`duration` > 0) > 1 then ifnull((select `cdr_recfile`.`recfile` from `cdr` `cdr_recfile` where `cdr_recfile`.`linkedid` = `cdr`.`linkedid` and ifnull(`cdr_recfile`.`recfile`,'') <> '' order by `cdr_recfile`.`calldate` desc limit 1),'') else NULL end AS `recfile`,case when ifnull(`cdr`.`recfile`,'') <> '' and `cdr`.`dst` like 'VFAX-%' then 'fax' when ifnull(`cdr`.`recfile`,'') <> '' and lcase(`cdr`.`lastapp`) = 'voicemail' then 'voicemail' when ifnull(`cdr`.`recfile`,'') <> '' then 'call_recording' else 'call' end AS `call_type` from `cdr` where (`cdr`.`disposition` = 'ANSWERED' or `cdr`.`disposition` = 'CONGESTION') and `cdr`.`duration` > 0 and `cdr`.`destination` <> '*97' and (left(`cdr`.`channel`,7) <> 'PJSIP/T' or left(`cdr`.`dstchannel`,7) <> 'PJSIP/T')
Hi @Eli_Hunter unfortunately, as we are a telco, we need for our customers to be able to run practical information quickly and easily themselves from the PBX. Considering we have moved from a PBX with a full reporting suite that gives them this info at the click of a mouse in both a graph format or full detail CSV format, asking them to manipulate data themselves is not going to go down well.
@miguel the biggest complaint is not being able to run numbers quickly and easily on calls into a certain DID? Is this something that could be added, or do you have a formula for the filtering that will achieve this.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.