Voice Call Detail Records (CDR) - Circuit Switched

This dataset provides comprehensive voice call detail records from legacy 2G/3G telecommunications networks, including subscriber identifiers, device information, call timings, cell tower locations, call termination causes, and detailed billing charges. It is ideal for telecom billing, fraud detection, network optimization, and regulatory compliance analysis.

  • opened 18 times
  • last updated 1 Nov 2025
  • by GoMask
The brief that made it

Billing reconciliation and charge calculation

Sample rows

preview · 8 of 501 rows · all 21 columns
cdr_idstringcall_termination_causestringtoll_chargefloatis_roamingbooleancurrencystringcall_start_timedatetimecall_end_timedatetimecall_duration_secondsintegercalling_numberstringcalled_numberstringcalling_imsistringcalling_imeistringcalled_imsistringcalled_imeistringcalling_cell_idstringcalled_cell_idstringroaming_chargefloatnetwork_typestringcall_directionstringbilling_account_idstringfraud_flagboolean
GB-20240605-01Anormal3.12falseGBP2024-06-05T08:13:00Z2024-06-05T08:17:25Z265+447865432101+447912345678234150987654321356789123456789234150123456789354321987654321London-Cell-1001London-Cell-102303GoutgoingBA10001false
US-20240605-02Bnormal45.57trueUSD2024-06-05T16:45:30Z2024-06-05T17:05:30Z1200+12025550101+13105550102310150123456789352001234567890310150234567890354001987654321NYC-Cell-5002LA-Cell-700535.13GoutgoingBA10002false
IN-20240605-03Cbusy0falseblank2024-06-05T05:55:00Z2024-06-05T05:55:02Z2+919876543210+919812345678blankblankblankblankblankblank02Goutgoingblankfalse
DE-20240604-04Dnormal4.63falseEUR2024-06-04T14:20:10Z2024-06-04T14:26:10Z360+4915123456789+4917623456789262011234567890358123456789012262015678901234359876543210987Berlin-Cell-2100Munich-Cell-215003GincomingBA10003false
FR-20240605-05Efailed0falseblank2024-06-05T10:00:00Z2024-06-05T10:00:01Z1+33612345678+33698765432blankblankblankblankblankblank02Goutgoingblankfalse
GB-20240605-06Fnormal150.6trueGBP2024-06-05T12:30:00Z2024-06-05T15:30:00Z10800+447812345679+447912345679234151234567890353456789012345234159876543210357654321098765Manchester-Cell-3032London-Cell-1051120.13GoutgoingBA10004true
US-20240605-07Gnormal6.41falseUSD2024-06-05T18:45:00Z2024-06-05T18:53:30Z510+12025550103+12025550104310150345678901352002345678901310150456789012355001234567890LA-Cell-7021NYC-Cell-501102GincomingBA10005false
CA-20240605-08Hdropped0.15falseCAD2024-06-05T21:10:00Z2024-06-05T21:10:47Z47+14165550105+14165550106302720123456789351001234567890302720234567890351002345678901Toronto-Cell-9101Montreal-Cell-850202Goutgoingblankfalse

What the 501 rows show

from the 501-row sample

Normal (call termination cause) stands out: 95 of its 302 rows have is_roaming = true, against 0 of 199 for the rest.

  • 19%is_roaming = true
  • 2.2median toll_charge
  • 2call directions
  • 3network types
  • 180median call_duration_seconds
  • 0.0median roaming_charge
Is roaming rate by call_termination_causeis_roaming = true
0%50%100%31%normal95 of 3…0%dropped0 of 600%busy0 of 530%failed0 of 590%unknown0 of 27
toll_charge501 rows, in bands of 20
020541040722211714398080160toll_charge →

Median 2.2, from 0.0 to 155.8.

currency303 rows with a value · 198 left blank
  1. EUR100
  2. USD53
  3. GBP46
  4. INR21
  5. CAD19
  6. JPY13
  7. SGD7
  8. SEK7
  9. NOK7
  10. AUD6
21 columns by typefrom the column list below
  • string 14
  • integer 1
  • float 2
  • datetime 2
  • boolean 2

Columns

21 columns in four groups
blueprint · 21 columns
columntypedescriptionexample
Text 14 columns
cdr_idstringUnique identifier for the call detail recorduniqueGB-20240605-01A
calling_numberstringPhone number of the caller (MSISDN)+447865432101
called_numberstringPhone number of the called party (MSISDN)+447912345678
calling_imsistringIMSI of the calling subscriberoptional234150987654321
calling_imeistringIMEI of the calling deviceoptional356789123456789
called_imsistringIMSI of the called subscriberoptional234150123456789
called_imeistringIMEI of the called deviceoptional354321987654321
calling_cell_idstringCell tower ID where the call originatedoptionalLondon-Cell-1001
called_cell_idstringCell tower ID where the call was receivedoptionalLondon-Cell-1023
call_termination_causestringReason for call termination (e.g., normal, dropped, busy, failed)normal · dropped · busy · failed · unknownnormal
currencystringCurrency code for charges (ISO 4217)optionalGBP
network_typestringType of network used for the call (2G, 3G)2G · 3G3G
call_directionstringDirection of the call (incoming, outgoing)incoming · outgoingoutgoing
billing_account_idstringIdentifier for the billing account associated with the calloptionalBA10001
Numbers 3 columns
call_duration_secondsintegerDuration of the call in seconds0 or more265
toll_chargefloatToll charge for the call in local currency0 or more · optional3.12
roaming_chargefloatRoaming charge for the call in local currency0 or more · optional0
Dates and times 2 columns
call_start_timedatetimeTimestamp when the call started2024-06-05T08:13:00Z
call_end_timedatetimeTimestamp when the call ended2024-06-05T08:17:25Z
True or false 2 columns
is_roamingbooleanIndicates if the call was made while roamingfalse
fraud_flagbooleanIndicates if the call is flagged for potential fraudoptionalfalse

Use it for

  • is roaming19%95 of 501 rowsmean toll charge by c…26.0norm…0.05drop…0.0busy0.0fail…

    A telecommunications dashboard

    The is_roaming rate, toll_charge by call_termination_cause and a breakdown of currency. Excel, Power BI or Tableau.

  • Why do 95 of 501 rows have is_roaming = true?

    A root-cause class exercise

    Hand out the rows and one question. The answer is in the data, not in the brief.

  • A software demo

    Believable cdrs with call_start_time, call_end_time and call_duration_seconds to fill a screen in front of a buyer.

Not quite right?

Make it yours.

Same 21 columns, your size and your rules. See 20 rows before you pay.

Preview 20 rows free

10,000 rows of yours: $12.99One-time. No subscription. All prices

This dataset501 rows21 columns
Yours10,000 rows21 columns

blueprint · voice-call-detail-records-cdr-circuit-switched

Behind this dataset

Same schema. As many rows as you need.

These 501 rows came out of a blueprint — 21 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.

Rules it was built with
  • CDR ID unique identifier per call record
  • Calling party (A-number) and called party (B-number) with country code
  • Call start timestamp and duration in seconds
  • Call type: MO (mobile originated), MT (mobile terminated), forwarded, roaming
  • Serving cell ID (CGI) and location area code (LAC)
  • IMSI (International Mobile Subscriber Identity) and IMEI (device identifier)
  • Termination cause: normal clearing, busy, no answer, network failure
  • Charge amount based on duration, time-of-day, roaming status
Rows
Open the blueprint in Data Factory

1 credit per row. New accounts start with 25 free credits.

Exports
CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
Licence
yours to use, including commercially
API slug
voice-call-detail-records-cdr-circuit-switched

What should your data show?

Preview 20 rows free
No signup. No card.