Skip to content

CDR Export

The CDR Export tool produces a gzipped CSV dump of CDR History rows matching a set of filters. Exports run asynchronously, and once Completed the file can be downloaded from the web UI or fetched by an external system via callback.

The CSV is generated by PostgreSQL using COPY, so large exports do not stream through the Rails process. Server-side storage and download routing must be configured beforehand — see CDR Export configuration.

Lifecycle

Pending
Created and queued; a worker will pick it up shortly.
Completed
CSV is ready. Download and Delete File actions become available.
Failed
Background job hit an unrecoverable error. Check job logs and Sentry. The export row is kept so parameters can be cloned into a new attempt.
Deleted
CSV file removed (via Delete File or retention cleanup). The export row stays as a historical record.

If a Callback URL is set, Yeti POSTs { "export_id": ..., "status": "Completed|Failed" } to it when the job finishes.

Creating a new export

Use the New CDR Export form (under CDR → CDR Export).

Fields

CDR columns to include. All CDR History columns are available, plus virtual fields that resolve to human-readable names from external dictionaries:

  • src_country_name
  • dst_country_name
  • src_network_name
  • dst_network_name

CSV column order follows selection order. Each new form pre-fills the most-recently-used field set.

Callback URL

Optional. Yeti POSTs a status update here when the job finishes.

Time formatting

Controls how time_start, time_connect, time_end and other timestamp columns are rendered.

Time format

How timestamps are rendered:

With timezone
2025-02-03 20:21:32.118457+00 — full timestamptz. Default.
Without timezone
2025-02-03 20:21:32.118457 — cast to timestamp, no timezone suffix.
Round to seconds
2025-02-03 20:21:32 — fractional seconds dropped.
Time zone name

Optional IANA time zone (e.g. Europe/Kyiv, UTC). When set, the export session runs SET LOCAL timezone TO ... before COPY so timestamps are emitted in that zone. Leave blank for the server default.

Filters

At least Time start gteq and one of Time start lteq / Time start lt are required.

Result file

When the job completes:

  • File is named {id}.csv.gz on disk (or {uuid}.csv.gz on download — the UUID is the stable public identifier).
  • First row contains column headers — humanized field names (e.g. Src Prefix In).
  • CSV is sorted by time_start DESC.
  • rows_count is set to the number of rows written.

Download the file from the show page (Download) while in Completed state. Use Delete File to remove the CSV — the row stays for audit purposes and switches to Deleted status.