VOS3000

VOS3000 CDR Text File Export Complete Pipe-Delimited Format Best Guide

VOS3000 CDR Text File Export Complete Pipe-Delimited Format Guide

πŸ“Š Every VoIP operator needs reliable call data β€” and the VOS3000 CDR text file export is the backbone of billing accuracy, traffic analysis, and regulatory compliance. When enabled, VOS3000 generates pipe-delimited text files containing every call detail record, ready for ingestion by external billing systems, analytics platforms, and fraud detection tools. Yet many operators never configure this powerful feature correctly, leaving critical data trapped inside the VOS3000 database with no external backup or integration path. πŸ“

βš™οΈ The two parameters that control this entire process β€” SS_CDR_RECORD_TO_FILE and SS_CDR_RECORD_NONCONNECT β€” are straightforward to configure, but their implications for disk space, data completeness, and billing accuracy are often misunderstood. Setting SS_CDR_RECORD_TO_FILE to On creates an hourly CDR text file in the softswitch’s cdr/ directory, while SS_CDR_RECORD_NONCONNECT determines whether zero-duration calls (failed attempts, busy signals, no-answer) are included in that export. The difference between having these records and not having them can mean the difference between catching a fraud pattern early and discovering it weeks too late. πŸ”

🎯 This guide provides a complete walkthrough of the VOS3000 CDR text file export system: how to enable it, how the pipe-delimited format is structured, how file naming and rotation work, and how to integrate the exported data with external systems. All parameter details are sourced from the official VOS3000 2.1.8.0/2.1.9.07 English manual, Β§4.3.5.1 (page 225) and Β§4.4 (pages 241–243). πŸ“˜

Table of Contents

πŸ” What Is VOS3000 CDR Text File Export?

πŸ“ The VOS3000 CDR text file export is a softswitch-level feature that writes call detail records to flat text files on the server filesystem. Unlike CDR records stored in the MySQL database β€” which require the VOS3000 client or web interface to query β€” text file exports provide a continuous, externally accessible stream of call data that can be consumed by any system capable of parsing pipe-delimited text. πŸ“‹

πŸ’‘ Why text file export matters:

  • πŸ”„ External billing integration: Feed CDR data directly into third-party billing platforms without database access
  • πŸ›‘οΈ Backup redundancy: Maintain a file-based CDR copy independent of the MySQL database
  • πŸ“Š Analytics pipeline: Pipe-delimited files are easily consumed by Python, Excel, BigQuery, and custom tools
  • πŸ” Fraud detection: Real-time or near-real-time CDR analysis on exported files catches anomalies faster
  • πŸ“‹ Regulatory compliance: Many telecom regulators require CDR archival in a portable, non-proprietary format
  • πŸ”— System migration: Export historical CDR data when migrating to a new billing or CRM system

πŸ“ Parameter location in VOS3000 Client: Operation management β†’ Softswitch management β†’ Additional settings β†’ Softswitch parameter

πŸ“‹ SS_CDR_RECORD_TO_FILE β€” The Master Switch

πŸ”§ SS_CDR_RECORD_TO_FILE is the primary parameter that enables or disables the entire text file CDR export. When set to On, VOS3000 creates hourly text files containing all CDR records in pipe-delimited format.

AttributeValue
πŸ“Œ Parameter NameSS_CDR_RECORD_TO_FILE
πŸ”’ Default ValueOff
βš™οΈ Valid ValuesOn / Off
πŸ“ DescriptionSave CDR as TXT (per VOS3000 manual Β§4.3.5.1, page 225)
πŸ“ LocationOperation management β†’ Softswitch management β†’ Additional settings β†’ Softswitch parameter

⚠️ Critical note: This parameter is Off by default. Many VOS3000 deployments run for years without CDR text file export enabled, which means no file-based CDR backup exists. If the MySQL database becomes corrupted or the server experiences a disk failure, all historical CDR data stored only in the database may be lost. Enabling SS_CDR_RECORD_TO_FILE provides a critical safety net.

πŸ“‹ SS_CDR_RECORD_NONCONNECT β€” Zero-Duration Call Export

πŸ“ž SS_CDR_RECORD_NONCONNECT controls whether non-connected calls β€” those with zero hold time β€” are included in the text file export. This includes busy signals, no-answer attempts, failed calls, and other call attempts that never established a two-way audio path.

AttributeValue
πŸ“Œ Parameter NameSS_CDR_RECORD_NONCONNECT
πŸ”’ Default ValueOff
βš™οΈ Valid ValuesOn / Off
πŸ“ DescriptionWhen saving CDR as TXT, contains CDR which hold time is 0s (per VOS3000 manual Β§4.3.5.1, page 225)
πŸ“ LocationOperation management β†’ Softswitch management β†’ Additional settings β†’ Softswitch parameter

πŸ’‘ Why you might want non-connected CDRs: While zero-duration calls generate no revenue, they carry essential operational intelligence. High volumes of busy signals from a specific gateway may indicate capacity problems. Repeated no-answer attempts to a destination could signal a routing misconfiguration. Patterns of failed calls from unauthorized IPs β€” tracked by SS_CDR_RECORD_ILLEGAL β€” are often the first sign of toll fraud. Without SS_CDR_RECORD_NONCONNECT enabled, all of this intelligence is excluded from your text file export.

πŸ“ CDR Text File Naming and Storage

πŸ“‚ When SS_CDR_RECORD_TO_FILE is enabled, VOS3000 creates CDR text files in the cdr/ directory under the VOS3000 installation path. The naming convention follows a precise hourly pattern documented in the official manual Β§4.4 (page 241):

πŸ“‹ File Naming Convention

AttributeDetail
πŸ“ FormatYYYYMMDDHH.txt
πŸ“ Directorycdr/ under VOS3000 installation path
⏰ GranularityOne file per hour
πŸ“ Example2013103112.txt contains CDRs ending between 12:00:00 and 12:59:59

πŸ” How the hourly file system works: Each CDR is written to the file corresponding to the hour in which the call ended (stop time). A call that starts at 11:45 and ends at 12:10 will be recorded in the 12:00 hour file, not the 11:00 hour file. This means each file contains a self-contained set of CDRs that can be processed independently without worrying about time-overlap between files.

πŸ“‹ CDR File Rotation and Retention

πŸ”„ VOS3000 manages CDR text file rotation using two server-level parameters that control how long files are retained and how many are kept on disk:

ParameterDefaultRangePurpose
SERVER_CDR_FILE_WRITE_INTERVALNone60–86400 secondsTime interval for creating new CDR files
SERVER_CDR_FILE_WRITE_MAX204810–4096 filesMaximum number of CDR files retained on disk

πŸ“Š Disk space planning: With the default SERVER_CDR_FILE_WRITE_MAX of 2048 files and one file per hour, VOS3000 retains approximately 85 days of CDR text files. For high-traffic systems, monitor disk usage closely β€” each hourly file can range from a few KB on a low-traffic system to hundreds of MB on a system processing thousands of concurrent calls. To learn more about CDR file rotation and backup strategies, see our guide on VOS3000 CDR analysis and billing.

πŸ“Š Pipe-Delimited CDR Format Overview

πŸ”— Each line in the VOS3000 CDR text file represents one call detail record, with fields separated by the pipe character (|). The format is documented in the official VOS3000 manual Β§4.4 (pages 241–243). Understanding this format is essential for parsing CDR data into external systems.

πŸ“‹ CDR Line Format Structure

callerE164|calleeE164|startTime|stopTime|holdTime|endReason|
endDirection|callerGatewayId|calleeGatewayId|callerIp|calleeIp|
callerAccessE164|calleeAccessE164|callerToGatewayE164|
calleeToGatewayE164|calleeBilling|billingMode|callerPdd|calleePdd

πŸ“ Field count note: The VOS3000 manual Β§4.4 documents the pipe-delimited format with 18 pipe separators, resulting in 19 columns of data. The first 18 fields (through billingMode) are the core CDR fields present in all versions, while the callerPdd and calleePdd fields provide Post-Dial Delay metrics that were added in later revisions of the software.

πŸ“‹ Key CDR Fields at a Glance

#FieldDescriptionExample
1callerE164The caller ID12125551234
2calleeE164The callee ID18005559876
3startTimeCall begin time2018-12-20 11:20:18
4stopTimeCall end time2018-12-20 16:34:09
5holdTimeCall duration in milliseconds45000
6endReasonEnd reason code200
7endDirectionHangup side (0=caller, 1=callee, 2=server)0
17billingModeCharge mode (-1=no billing, 0=phone, 1=gateway, 3=phone card)0

πŸ”‘ Key observations: The holdTime field records call duration in milliseconds, not seconds. This is critical for billing calculations β€” a holdTime of 45000 means 45 seconds, not 45000 seconds. The endDirection field identifies who terminated the call (caller, callee, or server), which is essential for call termination analysis. The billingMode field determines how the call was charged and whether billing was applied at all.

βš™οΈ Step-by-Step VOS3000 CDR Text File Export Configuration

πŸ–₯️ Follow these steps to enable and configure the VOS3000 CDR text file export on your softswitch:

Step 1: Enable CDR Text File Export πŸ“

  1. πŸ” Log in to VOS3000 Client with administrator credentials
  2. πŸ“Œ Navigate: Operation management β†’ Softswitch management β†’ Additional settings β†’ Softswitch parameter
  3. πŸ” Locate SS_CDR_RECORD_TO_FILE in the parameter list
  4. ✏️ Change the value from Off to On
  5. πŸ’Ύ Click Save to apply the configuration

⚠️ Important: After enabling SS_CDR_RECORD_TO_FILE, VOS3000 will begin writing CDR text files starting from the next hourly interval. Historical CDR data from before the parameter was enabled is not retroactively exported. If you need historical data, use the CDR query interface in the VOS3000 client to export it manually, as described in our CDR analysis guide.

Step 2: Configure Non-Connected Call Recording πŸ“ž

  1. πŸ“‹ In the same Softswitch parameter section, locate SS_CDR_RECORD_NONCONNECT
  2. ✏️ Change the value from Off to On if you need zero-duration call records in the export
  3. πŸ’Ύ Save the configuration

πŸ’‘ Recommendation: Enable SS_CDR_RECORD_NONCONNECT for most deployments. The additional disk space consumed by zero-duration CDRs is minimal compared to the operational value they provide. However, during a DDoS or flood attack, the volume of zero-duration CDRs can spike dramatically. If disk space is a concern during such events, you can temporarily disable this parameter to prevent disk overflow.

Step 3: Configure File Rotation Parameters πŸ”„

  1. πŸ“‹ Navigate: Operation management β†’ Server management β†’ Server parameter
  2. πŸ” Review SERVER_CDR_FILE_WRITE_INTERVAL β€” set the hourly interval for new file creation (default: one file per hour)
  3. πŸ” Review SERVER_CDR_FILE_WRITE_MAX β€” set the maximum number of CDR files to retain (default: 2048)
  4. πŸ’Ύ Save and restart the VOS3000 service for changes to take effect
ScenarioWRITE_INTERVALWRITE_MAXResult
βœ… Default (most deployments)3600 (1 hour)2048~85 days of CDR files retained
πŸ“Š High-traffic analytics1800 (30 min)4096~85 days with finer granularity
πŸ’Ύ Low disk space3600 (1 hour)720~30 days of retention
πŸ›‘οΈ Long-term compliance3600 (1 hour)4096~170 days of retention

πŸ›‘οΈ Another important softswitch parameter that affects CDR text file content is SS_CDR_RECORD_ILLEGAL. This parameter controls whether CDRs are generated for calls originating from unauthorized IP addresses β€” calls that VOS3000 rejects as illegal or unauthorized.

AttributeValue
πŸ“Œ Parameter NameSS_CDR_RECORD_ILLEGAL
πŸ”’ Default ValueOn
πŸ“ DescriptionRecord illegal call (per VOS3000 manual Β§4.3.5.1, page 225)

πŸ”’ Unlike SS_CDR_RECORD_NONCONNECT (which defaults to Off), SS_CDR_RECORD_ILLEGAL defaults to On. This means VOS3000 is configured by default to record CDRs for hack attempts and unauthorized call attempts. These records appear in the text file export with a special billing mode code of -1 (no billing), making them easy to filter and analyze separately. For more details on how VOS3000 handles unauthorized calls, see our guide on illegal call detection and prevention.

πŸ› οΈ Parsing VOS3000 CDR Text Files for External Systems

πŸ“Š Once the VOS3000 CDR text file export is configured, the next step is integrating the exported data with your external systems. The pipe-delimited format is universally supported by programming languages, databases, and analytics tools.

πŸ“‹ Parsing Methods Comparison

MethodBest ForComplexityReal-Time
🐍 Python scriptCustom analytics, billing importMediumNear-real-time (cron)
πŸ—„οΈ MySQL LOAD DATADatabase import, reportingLowBatch (hourly)
πŸ“Š Excel/CSV conversionManual review, one-time analysisLowManual
πŸ”„ Logstash/FluentdElasticsearch, SIEM integrationHighNear-real-time

πŸ“‹ Python Parsing Example

import csv

# VOS3000 CDR field names (per manual Β§4.4)
CDR_FIELDS = [
    'callerE164', 'calleeE164', 'startTime', 'stopTime',
    'holdTime', 'endReason', 'endDirection',
    'callerGatewayId', 'calleeGatewayId',
    'callerIp', 'calleeIp',
    'callerAccessE164', 'calleeAccessE164',
    'callerToGatewayE164', 'calleeToGatewayE164',
    'calleeBilling', 'billingMode',
    'callerPdd', 'calleePdd'
]

def parse_cdr_file(filepath):
    """Parse VOS3000 CDR text file into list of dictionaries."""
    records = []
    with open(filepath, 'r') as f:
        reader = csv.reader(f, delimiter='|')
        for row in reader:
            if len(row) >= 17:  # Minimum core fields
                record = dict(zip(CDR_FIELDS[:len(row)], row))
                records.append(record)
    return records

# Usage: Parse a CDR file and filter connected calls
cdr_data = parse_cdr_file('/home/vos3000/cdr/2026042612.txt')
connected = [r for r in cdr_data if int(r.get('holdTime', 0)) > 0]
print(f"Total CDRs: {len(cdr_data)}, Connected: {len(connected)}")

πŸ›‘οΈ Common VOS3000 CDR Text File Export Problems and Solutions

⚠️ Misconfigurations and misunderstandings about the CDR text file export can lead to data loss, disk space issues, or incomplete records. Here are the most common problems and their solutions:

❌ Problem 1: No CDR Text Files Being Generated

πŸ” Symptom: The cdr/ directory is empty or does not contain the expected hourly text files.

Related Post

πŸ’‘ Cause: SS_CDR_RECORD_TO_FILE is still set to Off (the default value). Many operators assume CDR files are generated automatically, but this feature must be explicitly enabled.

βœ… Solution:

  • πŸ”§ Navigate to Softswitch parameter and set SS_CDR_RECORD_TO_FILE = On
  • πŸ’Ύ Save the configuration and wait for the next hourly interval
  • πŸ“ Verify the cdr/ directory exists and has proper write permissions
  • πŸ“‹ Confirm with the VOS3000 system parameter guide that no other settings are blocking file creation

❌ Problem 2: Missing Zero-Duration Call Records

πŸ” Symptom: The CDR text files only contain records for connected calls. Failed calls, busy signals, and no-answer attempts are absent.

πŸ’‘ Cause: SS_CDR_RECORD_NONCONNECT is set to Off (default), which excludes zero-duration calls from the text file export.

βœ… Solution:

  • πŸ“ž Set SS_CDR_RECORD_NONCONNECT = On in Softswitch parameter
  • πŸ“Š Be aware this increases file sizes β€” monitor disk usage after enabling
  • πŸ” For fraud detection purposes, this setting is strongly recommended

❌ Problem 3: Disk Space Exhaustion from CDR Files

πŸ” Symptom: The server runs low on disk space, and the cdr/ directory contains thousands of large CDR text files.

πŸ’‘ Cause: SERVER_CDR_FILE_WRITE_MAX is set too high, or an external script is not archiving and cleaning up old CDR files.

βœ… Solution:

  • πŸ”„ Reduce SERVER_CDR_FILE_WRITE_MAX to a lower value (e.g., 720 for ~30 days)
  • πŸ“ Implement a cron job to move CDR files older than X days to archive storage
  • πŸ“Š Monitor disk usage with the VOS3000 disk alarm feature
  • πŸ’Ύ Consider compressing older CDR files with gzip to save space

❌ Problem 4: Parsing Errors Due to Extra Pipe Characters

πŸ” Symptom: External parsing scripts produce incorrect field alignment or data corruption.

πŸ’‘ Cause: Caller or callee E164 fields contain unexpected characters, or the number of pipe separators varies between CDR records.

βœ… Solution:

  • πŸ”§ Use a robust parser that handles variable field counts gracefully
  • πŸ“‹ Always validate the number of fields per line before processing
  • πŸ“Š Reference the official VOS3000 manual Β§4.4 (page 241) for the exact field specification

πŸ’‘ VOS3000 CDR Text File Export Best Practices

🎯 Follow these best practices to get the most from your VOS3000 CDR text file export configuration:

Best PracticeRecommendationReason
πŸ“ Always enable SS_CDR_RECORD_TO_FILESet to Onβœ… Provides file-based CDR backup independent of MySQL
πŸ“ž Enable SS_CDR_RECORD_NONCONNECTSet to On for most deploymentsπŸ” Captures failed call data for fraud detection and quality analysis
πŸ”„ Archive CDR files regularlyMove files older than 30 days to archiveπŸ’Ύ Prevents disk space exhaustion on active server
πŸ“Š Validate CDR data dailyCheck record counts and file sizesπŸ›‘οΈ Early detection of data export problems
πŸ”’ Set proper file permissionsRestrict cdr/ directory accessπŸ” CDR files contain sensitive call data and IP addresses
πŸ“‘ Consider real-time forwardingUse SERVER_CDR_REAL_TIME_REPORT_SERVER⚑ For immediate CDR delivery to external billing systems

πŸ’‘ Pro tip: The VOS3000 CDR text file export works best as part of a comprehensive data strategy. Combine the text file export with the VOS3000 billing system for complete revenue tracking, and use the exported data to build custom dashboards that go beyond what the VOS3000 client interface provides. For operators who need real-time CDR delivery rather than hourly file batches, the SERVER_CDR_REAL_TIME_REPORT_SERVER parameter provides an alternative integration path.

πŸ“Š Complete VOS3000 CDR Export Parameter Reference

πŸ“‹ Here is the complete reference table for all parameters related to CDR text file export, sourced from the official VOS3000 2.1.8.0/2.1.9.07 English manual:

ParameterDefaultCategoryPurpose
SS_CDR_RECORD_TO_FILEOffSoftswitchEnable CDR text file export
SS_CDR_RECORD_NONCONNECTOffSoftswitchInclude zero-duration calls in export
SS_CDR_RECORD_ILLEGALOnSoftswitchRecord illegal/unauthorized call CDRs
SERVER_CDR_FILE_WRITE_INTERVALNoneServerCDR file creation interval (60–86400 seconds)
SERVER_CDR_FILE_WRITE_MAX2048ServerMaximum CDR files retained (10–4096)
SERVER_CDR_REAL_TIME_REPORT_SERVER(blank)ServerReal-time CDR forwarding server address
SERVER_QUERY_CDR_DENY_TIME(blank)ServerNo CDR query time (blackout hours)
SERVER_QUERY_CDR_MAX_DAY_INTERVAL31ServerMaximum CDR query date range (days)
SERVER_MAX_CDR_PENDING_LIST_LENGTH100000ServerCDR queue length limit (10000–100000)

❓ Frequently Asked Questions

❓ How do I enable VOS3000 CDR text file export?

πŸ“ To enable the VOS3000 CDR text file export, navigate to Operation management β†’ Softswitch management β†’ Additional settings β†’ Softswitch parameter and set SS_CDR_RECORD_TO_FILE to On. This parameter is Off by default, so it must be explicitly enabled. After saving the configuration, VOS3000 will begin creating hourly CDR text files in the cdr/ directory starting from the next hourly interval. The files follow the naming convention YYYYMMDDHH.txt as documented in the VOS3000 manual Β§4.4.

❓ What is the difference between SS_CDR_RECORD_TO_FILE and SS_CDR_RECORD_NONCONNECT?

πŸ”§ SS_CDR_RECORD_TO_FILE is the master switch that enables CDR text file export entirely. Without it set to On, no CDR text files are created at all. SS_CDR_RECORD_NONCONNECT only takes effect when SS_CDR_RECORD_TO_FILE is already On β€” it controls whether zero-duration call records (failed calls, busy signals, no-answer attempts) are included in the exported text files. When SS_CDR_RECORD_NONCONNECT is Off, only connected calls with non-zero hold time appear in the export.

❓ Where are VOS3000 CDR text files stored?

πŸ“‚ VOS3000 CDR text files are stored in the cdr/ directory under the VOS3000 installation path. Each file is named using the format YYYYMMDDHH.txt, where each file contains all CDRs for calls that ended during that specific hour. For example, the file 2026042612.txt contains all CDRs for calls that ended between 12:00:00 and 12:59:59 on April 26, 2026. This file structure is documented in the official VOS3000 manual Β§4.4 (page 241).

❓ Can I export historical CDR data that was generated before enabling text file export?

πŸ“‹ No, the VOS3000 CDR text file export only generates files for new calls after the feature is enabled. Historical CDR data that was generated while SS_CDR_RECORD_TO_FILE was Off is only available through the VOS3000 client CDR query interface or by querying the MySQL database directly. If you need to export historical data, use the CDR query function in the client and export the results manually. This is why it is strongly recommended to enable SS_CDR_RECORD_TO_FILE from the very first day of deployment.

❓ How much disk space do VOS3000 CDR text files consume?

πŸ’Ύ Disk space consumption depends entirely on your call volume. Each CDR record is approximately 200–350 bytes in the pipe-delimited text format. A system processing 100,000 calls per day would generate roughly 25–35 MB of CDR text data per day, or about 1 GB per month. With the default SERVER_CDR_FILE_WRITE_MAX of 2048 files (roughly 85 days of retention), a mid-traffic system would need approximately 3–4 GB of dedicated disk space for CDR files. Always monitor disk usage and configure VOS3000 disk alarms to receive alerts before space runs out.

❓ What is the pipe delimiter character used in VOS3000 CDR text files?

πŸ”— The VOS3000 CDR text file format uses the vertical bar or pipe character (|, ASCII 124) as the field delimiter. Each line in the file represents one call detail record, with fields separated by pipe characters. This format is widely supported by data processing tools, programming languages (Python, PHP, Perl), database import utilities (MySQL LOAD DATA INFILE), and spreadsheet applications. When parsing, always split on the pipe character and validate the expected field count.

πŸ“ž Need Expert Help with VOS3000 CDR Text File Export?

πŸ”§ Proper VOS3000 CDR text file export configuration ensures your billing data is complete, your audit trail is intact, and your external systems receive the call data they need. Whether you are setting up CDR export for the first time, troubleshooting missing records, or integrating CDR data with an external billing platform, expert guidance saves time and prevents costly data gaps. πŸ“Š

πŸ’¬ WhatsApp: +8801911119966 β€” Get immediate assistance with VOS3000 CDR text file export setup, parsing, and integration. Our team specializes in VOS3000 softswitch configuration, billing system integration, and custom CDR analytics solutions. πŸ”§

πŸ”— Learn more about related VOS3000 CDR and billing configurations:


πŸ“ž Need Professional VOS3000 Setup Support?

For professional VOS3000 installations and deployment, VOS3000 Server Rental Solution:

πŸ“± WhatsApp: +8801911119966
🌐 Website: www.vos3000.com
🌐 Blog: multahost.com/blog
πŸ“₯ Downloads: VOS3000 Downloads


Recent Posts

  • VOS3000

VOS3000 CDR End Direction Critical Call Termination Party Detection

Master VOS3000 CDR end direction codes 0, 1, and 2. Learn who hung up each call β€” caller, callee, or… Read More

21 minutes ago
  • VOS3000

VOS3000 CDR Billing Mode Codes Accurate -1 0 1 3 Reference

Master VOS3000 CDR billing mode codes -1, 0, 1, and 3. Learn what each code means for billing calculation, how… Read More

21 minutes ago
  • VOS3000

VOS3000 CDR Pipe Format Definitive 18-Field Important Reference Guide

Master the VOS3000 CDR pipe format with this definitive 18-field reference. Learn every pipe-delimited field, data type, example value, and… Read More

21 minutes ago

This website uses cookies.