Available Now

FreePBX Custom CDR Module

A free, open source advanced call detail records module for FreePBX 17. Powerful filtering, interactive charts, sortable data tables, CSV export, and recording playback — no license fees, no subscriptions.

Custom CDR module interface showing filters, statistics, charts, and call detail records in FreePBX 17
Custom CDR module — filters, statistics panel, interactive charts, and sortable CDR table

Why This Exists

FreePBX ships with a basic CDR viewer that covers simple lookups. For anything more — date range filtering, extension-based search, interactive charts, CSV exports — you typically need expensive commercial add-ons.

This module delivers those features and more as a native FreePBX module. Install it like any other module, and it integrates directly into the FreePBX admin interface. Self-signed on install, and it registers a repository for future updates.

FreePBX 17 Only

This module is built for and tested on FreePBX 17. It is not compatible with earlier versions. It connects to the standard asteriskcdrdb database and requires no additional dependencies beyond what FreePBX already provides.

Filtering

Narrow down call records with precise, flexible filters.

  • Date range presets: Today, Yesterday, Last 7 Days, Last 30 Days, This Month, Last Month
  • Custom date-time pickers (from/to)
  • Extension filter with autocomplete (3–5 digit numbers)
  • DID filter with autocomplete
  • Direction filter: All, Inbound, Outbound, Internal
  • Disposition filter: All, Answered, No Answer, Busy, Failed
  • Free-text search across source, destination, caller ID, DID, and channels
  • Reset filters button — clears everything back to defaults

Statistics & Charts

Real-time metrics and five interactive Chart.js visualizations that update dynamically as filters change.

Statistics Panel — 6 Metrics

Total Calls • AnsweredNo AnswerBusyFailedAvg Duration

All metrics update in real time as you change filters.

Call Volume by Day

Stacked bar chart showing daily call volume broken down by disposition.

Disposition Distribution

Doughnut chart showing the proportion of answered, no answer, busy, and failed calls.

Top 10 Extensions

Horizontal bar chart ranking the busiest extensions (combines source and destination).

Top 10 DIDs

Horizontal bar chart ranking the most active DIDs.

Hourly Distribution

Bar chart showing call volume across all 24 hours of the day.

CDR Data Table

Sortable, paginated call detail records with color-coded badges and recording playback.

Columns

DateCall timestamp
SourceOriginating extension or number
DestinationCalled number
DIDInbound DID
DirectionInbound, Outbound, or Internal
DurationTotal call duration
BillableBillable duration
DispositionAnswered, No Answer, Busy, Failed
RecordingPlayback button when recording exists

Table Features

  • Click any column header to sort — toggles ascending/descending
  • Color-coded badges for disposition and direction
  • Recording playback button links to the CDR module's built-in player
  • Configurable page size (10–200 rows, default 50)
  • Full pagination: First, Prev, numbered pages, Next, Last
  • "Go to page" input for direct jump
  • Total call count display

Export & Print

CSV Export

Download all filtered rows (up to 100,000 records) as a CSV file. Filename includes a timestamp for easy organization.

Print Report

Print-optimized CSS hides navigation, filters, and pagination while keeping statistics, charts, and the data table intact.

Under the Hood

Direction Detection

Automatically determines call direction by analyzing dcontext patterns:

  • from-trunk / from-did → Inbound
  • from-internal + short destination → Internal
  • from-internal + long destination → Outbound

Database Connection

Connects to the asteriskcdrdb database via PDO with a fallback chain:

  • CDRDB* settings (preferred)
  • AMPDB* settings (fallback)
  • localhost defaults (last resort)

Installation

Manual upload to FreePBX 17. The module self-signs on install and registers a repo for future updates.

Download the module

Download the tarball from this site:

Upload via FreePBX Module Admin

In the FreePBX admin panel, go to Admin → Module Admin. Click Upload modules to upload the downloaded .tar.gz file manually. Alternatively, use the command line:

fwconsole ma install /path/to/customcdr-1.0.2.tar.gz
FreePBX Module Admin showing the Upload modules button
FreePBX Module Admin — click "Upload modules" to upload the tarball

Or download directly from the repo

You can also use the Download (From Web) option in Module Admin to pull the module directly from the VoIP Stuff repository without downloading it first.

FreePBX Module Admin Download From Web form with repo URL
Download (From Web) — enter the repo URL to install directly

Install the module

Once uploaded, find Custom CDR in the module list, select Install, and submit. The module self-signs on install and registers a repository address for receiving future updates directly through FreePBX Module Admin.

FreePBX Module Admin showing Custom CDR module ready to install
Custom CDR in Module Admin — select Install and submit

Access Custom CDR

Once installed, the Custom CDR module appears in the FreePBX Reports menu. Open it to start filtering, charting, and exporting your call records.

Configuration

Minimal configuration stored in the customcdr_config table.

SettingDescription
page_sizeRows per page (default 50, range 10–200)
default_rangeDefault date range in days

License

Released under the MIT License. Use it, modify it, deploy it — no restrictions, no license fees.

Download v1.0.2