A quick Google search suggests the files can be found on the 3CX server at these file paths:
Windows
C:\ProgramData\3CX\Instance1\Data\Logs\CDRLogs
Linux
/var/lib/3cxpbx/Instance1/Data/Logs/CDRLogs
This makes it clear that you must have physical access to the 3CX server disk in order to download and process the CDR data. For Windows, the built-in file explorer is an obvious choice. For Linux there are may good free tools. I have found Filezilla to be useful.
I understand you are looking for free solutions, but if you struggle to automate the process of parsing the CDR file data and putting the data into a database where you can generate reports, you may want to consider our
3CX Exporter tool. In addition to gaining access to the CDR data, with our tool you also get access to ALL the data 3CX uses to generate their built-in reports. Keep in mind that CDR data is only summary information about a call. It does not provide useful information about queue statistics and much more.
It should also be noted that we replicate this data from 3CX to a database running on a separate server (MS SQL, MySQL, MariaDB). This has the advantage of eliminating the processing demands of generating reports from the 3CX server to an completely separate computer. In other words, running complex reports will not impact the performance of the 3CX server.
Finally, because we are replicating all the 3CX data to a separate database, you are free to truncate the 3CX database, thus reducing the demands of processing large amounts of data by your 3CX server AND has the added benefit of a more efficient environment for 3CX. It is a win-win for both historical reporting and 3CX optimization.