VOS3000 CDR File Rotation Robust Backup Write Interval Configuration
๐ Every VoIP operator knows that CDR data is the lifeblood of billing reconciliation โ lose your call records, and you lose revenue. The VOS3000 CDR file rotation system, controlled by SERVER_CDR_FILE_WRITE_INTERVAL and SERVER_CDR_FILE_WRITE_MAX, provides a robust backup mechanism that writes call records to text files independently of the primary database. When configured correctly, this ensures you always have a secondary copy of every CDR โ even during database outages, server restarts, or unexpected failures. ๐ก๏ธ
โ ๏ธ But misconfigure the rotation parameters, and you risk two catastrophic outcomes: disk overflow from uncontrolled CDR file accumulation, or missing records if the rotation window is too long during peak traffic. The VOS3000 CDR file rotation parameters give you precise control over how frequently backup files are generated and how many are retained โ balancing data integrity against disk consumption. This guide covers every detail from the official VOS3000 2.1.9.07 manual, with no fabricated values. ๐ง
๐ฏ Need help configuring your VOS3000 CDR backup? Contact our team at WhatsApp: +8801911119966 for expert assistance with CDR rotation, billing setup, and complete VOS3000 deployment. ๐ฌ
Table of Contents
๐ What Is VOS3000 CDR File Rotation?
๐ The VOS3000 CDR file rotation system is an additional backup mechanism that writes call detail records to plain text files on the server filesystem. This operates alongside the primary CDR database, providing redundancy and enabling external analytics integration. The system generates pipe-delimited text files in the cdr directory beneath the VOS3000 installation directory, with one file created per configured time interval. ๐
๐ก Why this matters: The backup CDR file system serves several critical purposes:
- ๐ก๏ธ Disaster recovery: If the database becomes corrupted or unavailable, text files remain intact on disk
- ๐ External analytics: Pipe-delimited files are easy to parse with Python, awk, or business intelligence tools
- ๐ Regulatory compliance: Many telecom regulators require CDR archival in flat-file format
- ๐ฐ Billing reconciliation: Compare database CDRs against file CDRs to detect discrepancies
- ๐ก Real-time monitoring: Some operators tail the CDR files for live traffic visibility
๐ Key distinction: The VOS3000 CDR file rotation is a backup mechanism. It does not replace the database CDR storage. The primary CDR records are always written to the database first; the file-based system creates a secondary copy that can be used independently.
โ๏ธ SERVER_CDR_FILE_WRITE_INTERVAL โ The Core Parameter
โฑ๏ธ SERVER_CDR_FILE_WRITE_INTERVAL defines the time interval (in seconds) at which the softswitch creates new CDR text files. Each time this interval elapses, a new file is opened and the previous file is finalized for reading. ๐
| Attribute | Value |
|---|---|
| ๐ Parameter Name | SERVER_CDR_FILE_WRITE_INTERVAL |
| ๐ข Default Value | None (not set by default) |
| ๐ Unit | Seconds |
| ๐ Range | 60โ86400 |
| ๐ Description | Additional write call record file, the new file created time interval (seconds) |
| ๐ Location | Operation management โ Softswitch management โ Additional settings โ Server parameter |
๐ก How the interval works: When you set SERVER_CDR_FILE_WRITE_INTERVAL to a value such as 3600 (1 hour), the softswitch creates a new CDR text file every hour. All CDRs whose end time falls within that hour are written to the corresponding file. At the end of the interval, the file is closed and a new one is opened. The file naming convention follows the format YYYYMMDDHH.txt โ for example, 2026042612.txt contains all CDRs that ended between 12:00 and 13:00 on April 26, 2026.
๐ฏ Interval Value Recommendations by Traffic Volume
๐ก The optimal interval depends heavily on your call volume. Higher traffic demands shorter intervals to prevent individual files from becoming too large: ๐ก
| Traffic Volume | Recommended Interval | Seconds Value | Rationale |
|---|---|---|---|
| ๐ Low (<50 CPS) | 1 hour | 3600 | โ Manageable file size; hourly granularity |
| ๐ Medium (50โ200 CPS) | 30 minutes | 1800 | ๐ง Prevents oversized files during peaks |
| ๐ฅ High (200+ CPS) | 15 minutes | 900 | ๐ก๏ธ Keeps files manageable; easier parsing |
| โ ๏ธ Extreme (DDoS scenario) | 5 minutes | 300 | ๐จ Rapid rotation prevents disk fill |
โ ๏ธ Important: The minimum allowed value is 60 seconds and the maximum is 86400 seconds (24 hours). Setting the interval below 60 seconds is not supported. If your traffic is so high that even 5-minute files are too large, consider increasing SERVER_CDR_FILE_WRITE_MAX to retain more files, or implementing an external script that periodically archives old files to remote storage.
๐ฆ SERVER_CDR_FILE_WRITE_MAX โ Rotation File Count Limit
๐ While SERVER_CDR_FILE_WRITE_INTERVAL controls how often new files are created, SERVER_CDR_FILE_WRITE_MAX controls how many backup CDR files are retained on disk. This parameter prevents uncontrolled disk consumption by automatically deleting the oldest files when the count exceeds the limit. ๐๏ธ
| Attribute | Value |
|---|---|
| ๐ Parameter Name | SERVER_CDR_FILE_WRITE_MAX |
| ๐ข Default Value | 2048 |
| ๐ Unit | Number of files |
| ๐ Range | 10โ4096 |
| ๐ Description | Additional write call record file, the maximum number of reserved file |
| ๐ Location | Operation management โ Softswitch management โ Additional settings โ Server parameter |
๐ How rotation works: When the number of CDR text files exceeds SERVER_CDR_FILE_WRITE_MAX, the oldest files are automatically deleted. This creates a sliding window of retained CDR data โ at any given time, you have at most the most recent N files on disk, where N equals SERVER_CDR_FILE_WRITE_MAX.
๐ Calculating Retention Period from Rotation Parameters
๐งฎ The total retention period depends on both the write interval and the maximum file count. Here is the formula: ๐ก
๐ VOS3000 CDR File Retention Calculation: Retention Period = SERVER_CDR_FILE_WRITE_INTERVAL ร SERVER_CDR_FILE_WRITE_MAX Example 1 (Default Settings): Interval = 3600s (1 hour) ร Max Files = 2048 Retention = 3600 ร 2048 = 7,372,800 seconds โ 85.3 days Example 2 (High Traffic): Interval = 1800s (30 min) ร Max Files = 2048 Retention = 1800 ร 2048 = 3,686,400 seconds โ 42.7 days Example 3 (Maximum Retention): Interval = 86400s (24 hours) ร Max Files = 4096 Retention = 86400 ร 4096 = 353,894,400 seconds โ 11.2 years Example 4 (Short Retention, Frequent Rotation): Interval = 300s (5 min) ร Max Files = 2048 Retention = 300 ร 2048 = 614,400 seconds โ 7.1 days
โ ๏ธ Critical warning: A shorter interval with the same file count means shorter total retention. If you decrease the interval for performance reasons, you must proportionally increase the file count to maintain the same retention period. Otherwise, you may lose historical CDR backup data faster than expected. ๐ฅ
๐ฅ๏ธ Enabling VOS3000 CDR File Rotation
๐ง The VOS3000 CDR file rotation requires two conditions to be met before it generates backup files: the SS_CDR_RECORD_TO_FILE parameter must be enabled, and the SERVER_CDR_FILE_WRITE_INTERVAL must be set to a valid value. ๐
Step 1: Enable CDR Text File Export ๐
- ๐ Log in to VOS3000 Client
- ๐ Navigate: Operation management โ Softswitch management โ Additional settings โ Softswitch parameter
- ๐ Locate SS_CDR_RECORD_TO_FILE
- โ๏ธ Set value to On
| Attribute | Value |
|---|---|
| ๐ Parameter Name | SS_CDR_RECORD_TO_FILE |
| ๐ข Default Value | Off |
| ๐ Description | Save CDR as TXT โ enables the backup CDR text file system |
| ๐ Location | Operation management โ Softswitch management โ Additional settings โ Softswitch parameter |
Step 2: Configure Write Interval โฑ๏ธ
- ๐ Navigate: Operation management โ Softswitch management โ Additional settings โ Server parameter
- ๐ Locate SERVER_CDR_FILE_WRITE_INTERVAL
- โ๏ธ Set the desired interval value (60โ86400 seconds) based on your traffic volume
Step 3: Configure Maximum File Count ๐
- ๐ In the same Server parameter section, locate SERVER_CDR_FILE_WRITE_MAX
- โ๏ธ Set the maximum number of files to retain (10โ4096, default: 2048)
- ๐พ Save and apply the configuration
Step 4: Verify CDR File Generation โ
๐ฅ๏ธ After configuration, verify that files are being generated in the CDR directory:
# Check the CDR directory on the VOS3000 server ls -la /home/vos3000/cdr/ # Expected output โ files named by YYYYMMDDHH convention: # -rw-r--r-- 1 vos3000 vos3000 245120 Apr 26 12:00 2026042612.txt # -rw-r--r-- 1 vos3000 vos3000 189340 Apr 26 13:00 2026042613.txt # -rw-r--r-- 1 vos3000 vos3000 312500 Apr 26 14:00 2026042614.txt # Verify rotation is working โ old files should be auto-deleted # when count exceeds SERVER_CDR_FILE_WRITE_MAX ls -1 /home/vos3000/cdr/ | wc -l
๐ For detailed CDR file format information, see our VOS3000 CDR pipe format reference guide.
๐ VOS3000 CDR File Rotation and Disk Space Management
๐พ One of the most critical aspects of VOS3000 CDR file rotation is managing disk space consumption. Each CDR record written to the text file contains 18 pipe-delimited fields. A typical single CDR line is approximately 200โ350 bytes depending on the length of phone numbers, IP addresses, and other variable-length fields. ๐
๐ Estimating Disk Space Requirements
๐ Use this calculation to estimate your CDR file storage needs: ๐ก
| Metric | Formula | Example (100 CPS) |
|---|---|---|
| CDR lines per hour | CPS ร 3600 | 360,000 |
| File size per hour | Lines ร 300 bytes (avg) | ~108 MB/hour |
| Daily disk usage | File/hour ร 24 | ~2.6 GB/day |
| With 2048 hourly files | 2048 ร 108 MB | ~221 GB total |
โ ๏ธ Key insight: At 100 CPS with hourly intervals and the default 2048 file limit, you need approximately 221 GB of disk space for CDR files alone. This does not account for the database, logs, or other system files. Ensure your server has adequate storage, or implement an external archival strategy. For help sizing your VOS3000 server, see our concurrent call load test guide. ๐ง
๐ก๏ธ Common VOS3000 CDR File Rotation Problems and Solutions
โ Misconfigured rotation parameters cause a range of issues from missing records to disk overflow. Here are the most common problems and their solutions: ๐
โ Problem 1: CDR Files Not Being Generated
๐ Symptom: The CDR directory exists but no text files are being created, even though calls are flowing through the system.
๐ก Cause: The most common reason is that SS_CDR_RECORD_TO_FILE is set to Off (default). Without enabling this parameter, the VOS3000 CDR file rotation system is completely inactive regardless of the interval and max file settings.
โ Solutions:
- ๐ง Set SS_CDR_RECORD_TO_FILE to On in Softswitch parameter settings
- ๐ Verify SERVER_CDR_FILE_WRITE_INTERVAL is set to a valid value between 60 and 86400
- ๐ Check that the cdr directory exists beneath the VOS3000 installation directory and has write permissions
- ๐ Check the softswitch logs for any write errors
โ Problem 2: Disk Space Exhausting Rapidly
๐ Symptom: The server runs out of disk space quickly, and the CDR directory contains a very large number of files.
๐ก Cause: SERVER_CDR_FILE_WRITE_MAX is set too high, or the write interval is very short, causing many small files that collectively consume large amounts of disk space. Alternatively, the automatic file deletion mechanism may not be working correctly.
โ Solutions:
- ๐ Reduce SERVER_CDR_FILE_WRITE_MAX to a value that fits within your available disk space
- โฑ๏ธ Increase SERVER_CDR_FILE_WRITE_INTERVAL to create fewer, larger files
- ๐ Implement an external archival script that moves old CDR files to remote storage (NFS, S3, etc.)
- ๐ Monitor disk usage with a cron job that alerts you when usage exceeds 80%
โ Problem 3: Historical CDR Files Disappearing Too Quickly
๐ Symptom: You need to look up CDR data from 30 days ago, but the oldest available file is only from 10 days ago.
๐ก Cause: The retention period (interval ร max files) is shorter than your required retention window. This happens when the interval is decreased without proportionally increasing the file count.
โ Solutions:
- ๐ Calculate your required retention: Required Max Files = Required Days ร 86400 / Interval
- ๐ฆ Increase SERVER_CDR_FILE_WRITE_MAX to the calculated value (up to 4096 maximum)
- ๐๏ธ If you need more than 4096 files, implement external archival before rotation deletes them
- ๐ For detailed CDR querying guidance, see our VOS3000 CDR analysis and billing guide
โ Problem 4: Zero-Duration Calls Flooding CDR Files
๐ Symptom: CDR text files are much larger than expected, filled with records for calls that never connected (0-second duration).
๐ก Cause: The SS_CDR_RECORD_NONCONNECT parameter is set to On, causing all non-connected calls (failed attempts, busy, no answer) to be included in the text file export along with successful calls.
โ Solutions:
- โ๏ธ Set SS_CDR_RECORD_NONCONNECT to Off to exclude zero-duration calls from the file export
- ๐ Keep it On only if you need failed call data for analytics or fraud detection
- ๐ก๏ธ During DDoS attacks, set SERVER_BILLING_RECORD_ZERO_HOLD_TIME to Off to prevent database overload โ see our DDoS protection guide
๐ Complete VOS3000 CDR File Rotation Parameter Reference
๐ Here is the complete reference table for all parameters related to CDR file rotation, sourced from the official VOS3000 2.1.9.07 manual: ๐ง
| Parameter | Default | Range | Purpose |
|---|---|---|---|
| SERVER_CDR_FILE_WRITE_INTERVAL | None | 60โ86400s | Time interval for new CDR file creation |
| SERVER_CDR_FILE_WRITE_MAX | 2048 | 10โ4096 | Maximum number of CDR files to retain |
| SS_CDR_RECORD_TO_FILE | Off | On/Off | Enable/disable CDR text file export |
| SS_CDR_RECORD_NONCONNECT | Off | On/Off | Include non-connected calls (0s) in file export |
| SS_CDR_RECORD_ILLEGAL | On | On/Off | Record illegal calls in CDR files |
| SERVER_CDR_REAL_TIME_REPORT_SERVER | None | IP:Port | Forward CDRs to external server in real-time |
๐ All server parameters are located at: Navigation โ Operation management โ Softswitch management โ Additional settings โ Server parameter. Softswitch parameters are at the same path under Softswitch parameter.
๐ก VOS3000 CDR File Rotation Best Practices
๐ฏ Follow these best practices to ensure your VOS3000 CDR file rotation is both reliable and efficient: ๐
| Best Practice | Recommendation | Reason |
|---|---|---|
| ๐ Calculate retention needs | Interval ร Max Files = Retention | โ Ensures you keep enough historical data |
| ๐ Implement external archival | Cron job to copy old files to remote storage | ๐ก๏ธ Prevents data loss when rotation deletes files |
| โฑ๏ธ Match interval to traffic | Higher CPS = shorter interval | ๐ง Keeps individual file sizes manageable |
| ๐พ Monitor disk space | Alert at 80% usage threshold | ๐จ Prevents unexpected disk-full outages |
| ๐ Test recovery regularly | Parse backup files monthly to verify integrity | ๐ Confirms files are usable when needed |
| ๐ Secure CDR directory | Restrict file permissions to vos3000 user only | ๐ก๏ธ CDRs contain sensitive billing data |
๐ฌ Questions about your VOS3000 CDR file rotation setup? Reach out at WhatsApp: +8801911119966 โ our VOS3000 experts can help you optimize rotation settings for your traffic volume and retention requirements. ๐
โ Frequently Asked Questions
โ What is the default value for SERVER_CDR_FILE_WRITE_INTERVAL?
๐ The default value for SERVER_CDR_FILE_WRITE_INTERVAL is None (not set). This means that CDR file rotation is not active by default. You must explicitly set a value between 60 and 86400 seconds and enable SS_CDR_RECORD_TO_FILE to On before the system generates backup CDR text files. Without this configuration, CDR records are only stored in the database. ๐ก
โ How does VOS3000 CDR file rotation prevent disk overflow?
๐ก๏ธ The VOS3000 CDR file rotation uses SERVER_CDR_FILE_WRITE_MAX to enforce a maximum number of retained files. When the file count exceeds this limit, the oldest files are automatically deleted. For example, with the default value of 2048 and an hourly interval, the system retains approximately 85 days of CDR files. Once the 2049th file is created, the oldest file is removed, maintaining a consistent disk footprint. This sliding window mechanism ensures the CDR directory never grows beyond a predictable size. ๐
โ Can I change the VOS3000 CDR file rotation interval without restarting?
๐ง Server parameters in VOS3000 typically take effect after saving and applying the configuration through the VOS3000 Client interface. While some parameters may apply immediately, it is recommended to verify that the new interval is in effect by checking the timestamps of newly created CDR files. If the old interval persists, a softswitch service restart may be required. Always test configuration changes during a maintenance window to avoid any disruption to CDR recording. ๐
โ What is the relationship between SS_CDR_RECORD_TO_FILE and SERVER_CDR_FILE_WRITE_INTERVAL?
๐ SS_CDR_RECORD_TO_FILE is the master switch that enables or disables the entire CDR text file system. SERVER_CDR_FILE_WRITE_INTERVAL controls the frequency of file creation within that system. If SS_CDR_RECORD_TO_FILE is Off (default), no CDR files are generated regardless of the interval setting. If it is On but the interval is not set (None), the system may not create files properly. Both parameters must be correctly configured for the VOS3000 CDR file rotation to function. ๐ฏ
โ How do I include non-connected calls in the CDR text files?
๐ By default, SS_CDR_RECORD_NONCONNECT is set to Off, which means only successfully connected calls (calls with duration greater than 0 seconds) are written to the CDR text files. To include failed call attempts, busy calls, and no-answer calls, set SS_CDR_RECORD_NONCONNECT to On. Be aware that enabling this parameter significantly increases the number of CDR records per file, especially during traffic spikes or attack scenarios. For DDoS protection guidance, see our zero duration CDR control guide. โ ๏ธ
โ Where are VOS3000 CDR text files stored on the server?
๐ CDR text files are stored in the cdr directory beneath the VOS3000 installation directory. The file naming convention is YYYYMMDDHH.txt, where YYYY is the year, MM is the month, DD is the day, and HH is the hour. Each file contains all CDRs whose end time falls within that time window. For example, 2026042614.txt contains CDRs for calls that ended between 14:00 and 15:00 on April 26, 2026. The files use pipe-delimited format with 18 fields per record โ see our CDR pipe format reference for complete field documentation. ๐
๐ Need Expert Help with VOS3000 CDR File Rotation?
๐ง Proper VOS3000 CDR file rotation configuration is essential for ensuring billing data integrity, meeting regulatory retention requirements, and preventing disk overflow disasters. Whether you need to set up CDR backup for the first time, tune rotation parameters for high traffic, or implement an external archival strategy, our VOS3000 experts are here to help. ๐ก๏ธ
๐ฌ Contact us at WhatsApp: +8801911119966 for professional VOS3000 deployment, CDR configuration, and ongoing support. We help VoIP operators worldwide optimize their softswitch performance and billing accuracy. ๐
๐ Explore more VOS3000 guides: CDR analysis and billing, billing system overview, and parameter description reference. ๐
๐ 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
![]() | ![]() | ![]() |


