π A single CDR query spanning 90 days on a high-traffic VOS3000 system can return tens of millions of records β enough to overwhelm the database, exhaust client memory, and freeze the VOS3000 interface for minutes. The VOS3000 CDR query date range limit, controlled by SERVER_QUERY_CDR_MAX_DAY_INTERVAL, prevents this by capping the maximum number of days a user can query in a single CDR search. The default of 31 days is designed to balance operational needs against database performance β but understanding how to work within and around this limit is essential for every VOS3000 operator. β±οΈ
π§ Whether you are a reseller who needs to pull quarterly reports or an administrator protecting your database from runaway queries, mastering the VOS3000 CDR query date range configuration is critical. This guide covers the parameter details from the official VOS3000 2.1.9.07 manual, practical workarounds for large-range queries, and how this limit works alongside other CDR access controls. π
π¬ Need help optimizing your VOS3000 CDR query performance? Contact our team at WhatsApp: +8801911119966 for expert database tuning and configuration support. π‘
π The VOS3000 CDR query date range limit specifies the maximum number of days a user can include in a single CDR query. When a user attempts to search CDRs with a start and end date that spans more than the configured maximum, the query is rejected with an error message indicating the date range exceeds the allowed limit. π«
π‘ Why this limit exists:
π SERVER_QUERY_CDR_MAX_DAY_INTERVAL defines the maximum number of days allowed in a CDR queryβs date range. Any query with a date range exceeding this value is automatically rejected. π
| Attribute | Value |
|---|---|
| π Parameter Name | SERVER_QUERY_CDR_MAX_DAY_INTERVAL |
| π’ Default Value | 31 |
| π Unit | Days |
| π Description | Maximum Interval for CDR Inquiry (Day) |
| π Location | Operation management β Softswitch management β Additional settings β Server parameter |
π§ How the 31-day default works: When a user queries CDRs with a date range of, say, January 1 to February 15 (45 days), VOS3000 calculates the interval: 45 days. Since this exceeds the default SERVER_QUERY_CDR_MAX_DAY_INTERVAL of 31, the query is rejected and the user receives an error. The user must then narrow the search to a maximum of 31 days β for example, January 1 to January 31.
π Here are practical examples showing how the limit affects different query scenarios: π‘
| Query Date Range | Days Spanned | Default Limit (31) | Result |
|---|---|---|---|
| Apr 1 β Apr 15 | 15 days | β Within limit | Query executes normally |
| Apr 1 β Apr 30 | 30 days | β Within limit | Query executes normally |
| Apr 1 β May 1 | 31 days | β Exactly at limit | Query executes (31 β€ 31) |
| Apr 1 β May 2 | 32 days | β Exceeds limit | Query rejected β reduce date range |
| Jan 1 β Mar 31 | 90 days | β Exceeds limit | Query rejected β use incremental approach |
π When you need CDR data spanning more than 31 days, there are several approaches to work around the VOS3000 CDR query date range limit without increasing the parameter value and risking database performance: π‘
π’ Break your large date range into multiple queries, each within the 31-day limit. For example, to get 90 days of CDR data: π‘
π Incremental CDR Query Strategy (90-day range, 31-day limit): Query 1: Jan 1 β Jan 31 (31 days) β Query 2: Feb 1 β Feb 28 (28 days) β Query 3: Mar 1 β Mar 31 (31 days) β Total: 3 queries covering 90 days Merge results externally (Excel, Python, etc.)
π Advantage: No parameter changes needed; each query is database-friendly. Disadvantage: Requires manual effort to merge multiple result sets. For automated merging, use Python or a spreadsheet tool to combine the CSV exports.
π Use the VOS3000 CDR text file system instead of the database query. When SS_CDR_RECORD_TO_FILE is enabled, all CDRs are written to pipe-delimited text files in the cdr directory. These files can be searched, filtered, and analyzed using any text processing tool without any date range restriction. π
| Aspect | Database Query | Text File Export |
|---|---|---|
| π Date range limit | 31 days (configurable) | No limit β read any files on disk |
| π Search capability | Rich filtering (account, gateway, etc.) | Text processing (grep, awk, Python) |
| π Speed | Fast for targeted queries | Slower for large file scans |
| π§ Setup required | None β built into VOS3000 Client | Enable SS_CDR_RECORD_TO_FILE + rotation |
π‘ For detailed CDR text file setup instructions, see our CDR text file export guide and CDR file rotation guide. π
π If you frequently need large-range CDR analysis, consider forwarding CDRs to an external analytics platform (Elasticsearch, Splunk, custom database) using SERVER_CDR_REAL_TIME_REPORT_SERVER. External platforms typically have no date range restrictions and offer more powerful search and visualization capabilities. For setup instructions, see our real-time CDR forwarding guide. π
β οΈ You can increase SERVER_QUERY_CDR_MAX_DAY_INTERVAL beyond 31 days if your database has sufficient resources. However, be aware of the implications: π‘
| Setting | Risk Level | Impact at 100 CPS | Recommendation |
|---|---|---|---|
| 31 days (default) | π’ Low | ~267M records max | β Safe for most deployments |
| 60 days | π‘ Medium | ~518M records max | β οΈ Only with powerful database server |
| 90 days | π High | ~778M records max | π¨ Risk of query timeouts and client crashes |
| 365 days | π΄ Very High | ~3.15B records max | β Not recommended β use external analytics instead |
π§ Follow these steps to configure the CDR query date range limit: π
π After configuration, test the limit by attempting a CDR query that exceeds the configured maximum:
π The VOS3000 CDR query date range limit works alongside several other query size parameters that together control database load: π‘
| Parameter | Default | Purpose |
|---|---|---|
| SERVER_QUERY_CDR_MAX_DAY_INTERVAL | 31 | Maximum days in CDR query date range |
| SERVER_QUERY_MAX_ONE_PAGE_SIZE | 200000 | Maximum records per page in results |
| SERVER_QUERY_MAX_SIZE | 30000000 | Total data query limit (items) |
| SERVER_QUERY_ONE_PAGE_SIZE | 10000 | Default records per page |
| SERVER_QUERY_NON_PAGABLE_MAX_LINES | 100000 | Non-pagable table max lines per page (1000β200000) |
π‘ Practical example: At 100 CPS, a 31-day query could return approximately 267 million records β well above the SERVER_QUERY_MAX_SIZE of 30 million items. This means that even with a 31-day date range, the actual query results may be truncated by the total query size limit. The combination of date range and result size limits provides defense in depth against database overload. π‘οΈ
π Symptom: A reseller needs to generate a quarterly CDR report (90 days) but the query is rejected.
β Solutions:
π Symptom: A 31-day CDR query returns fewer records than expected.
π‘ Cause: The total result count exceeds SERVER_QUERY_MAX_SIZE (30 million items), causing truncation. Or the query falls within the CDR query blackout window for some hours.
β Solutions:
π Symptom: After changing SERVER_QUERY_CDR_MAX_DAY_INTERVAL, queries still fail at the old limit.
β Solutions:
| Best Practice | Recommendation | Reason |
|---|---|---|
| π Keep default 31-day limit | Do not increase without careful analysis | β Protects database from runaway queries |
| π Use incremental queries | Chunk large ranges into 31-day segments | π§ No parameter changes; database-friendly |
| π Leverage text file exports | Use CDR text files for large-range analysis | π No date range restriction on file reads |
| π‘ Forward to external analytics | Integrate with Elasticsearch/Splunk | π No limits; powerful visualization |
| π Add query filters | Specify account, gateway, or call type | π Reduces result count and query time |
π¬ Need to optimize your VOS3000 CDR query strategy? Contact us at WhatsApp: +8801911119966 for expert guidance on database performance, CDR export workflows, and external analytics integration. π
π The default value is 31 days. This means that by default, any CDR query in VOS3000 with a date range exceeding 31 days is automatically rejected. The 31-day default covers a typical monthly reporting cycle and provides a reasonable balance between operational needs and database protection. If your business requires larger query ranges, you can increase this value β but consider the performance implications carefully, especially on high-traffic systems. π§
β οΈ While SERVER_QUERY_CDR_MAX_DAY_INTERVAL can technically be set to 365 or higher, doing so on a production system with significant call volume is strongly discouraged. At 100 CPS, a 365-day query could attempt to return over 3 billion records β far exceeding the SERVER_QUERY_MAX_SIZE of 30 million items and likely causing query timeouts or client crashes. For annual CDR analysis, use incremental queries, text file exports, or external analytics platforms instead. For CDR text file setup, see our CDR text file export guide. π
π No. The VOS3000 CDR query date range limit only applies to queries made through the VOS3000 Client and web interface (database queries). The CDR text file system writes all records to files on disk without any date range filtering. You can read, search, and analyze these text files using external tools (Python, awk, grep) with no date range restriction whatsoever. This makes the text file system the preferred method for large-range historical CDR analysis. π
π You have several options: (1) Use incremental queries β run multiple 31-day queries and merge the results externally, (2) Access the CDR text files on the server directly β they contain all records with no date range limit, (3) Use the real-time CDR forwarding feature to send records to an external analytics platform where larger queries are supported, or (4) Temporarily increase SERVER_QUERY_CDR_MAX_DAY_INTERVAL for the specific query (remember to reduce it back afterward). For the most robust long-term solution, option 3 provides unlimited analytical capability. π‘
π The date range limit primarily affects manual CDR queries through the VOS3000 Client interface. Automated reports (configured under Report management) generate based on their own scheduling parameters. However, if an automated reportβs date range configuration exceeds the SERVER_QUERY_CDR_MAX_DAY_INTERVAL, it may also be subject to the same restriction. Always verify that your automated report schedules are compatible with the configured date range limit. For more on reporting, see our CDR analysis guide. π
π§ Several parameters work together to protect database performance: SERVER_QUERY_CDR_MAX_DAY_INTERVAL (date range limit), SERVER_QUERY_MAX_ONE_PAGE_SIZE (max records per page = 200000), SERVER_QUERY_MAX_SIZE (total query limit = 30M items), SERVER_QUERY_ONE_PAGE_SIZE (default page size = 10000), and SERVER_QUERY_CDR_DENY_TIME (blackout hours). Together, these parameters provide layered protection against heavy queries. For the blackout configuration, see our CDR query blackout guide. π‘οΈ
π§ Proper VOS3000 CDR query date range configuration protects your database while ensuring your team can access the billing data they need. Whether you need to optimize query performance, set up CDR text file exports for large-range analysis, or integrate with external analytics platforms, our VOS3000 experts are here to help. π‘οΈ
π¬ Contact us at WhatsApp: +8801911119966 for professional VOS3000 deployment and optimization services. We serve VoIP operators worldwide with proven solutions for billing, analytics, and system performance. π
π Explore related guides: CDR query blackout configuration, CDR analysis and billing, and parameter description reference. π
For professional VOS3000 installations and deployment, VOS3000 Server Rental Solution:
π± WhatsApp: +8801911119966
π Website: www.vos3000.com
π Blog: multahost.com/blog
π₯ Downloads: VOS3000 Downloads
Master VOS3000 password policy configuration with SERVER_PASSWORD_LENGTH and SERVER_TERMINAL_ADDITIONAL_CHARACTERS. Enforce strong passwords for telecom security.
Configure VOS3000 login brute-force lockout with SERVER_LOGIN_FAILED_DISABLE_TIME. Lock accounts after repeated failed logins and prevent…
Configure VOS3000 concurrent call abuse blacklist with SS_BLACK_LIST_CALLER_CONCURRENT. Auto-block callers exceeding concurrent limits, stop SIM-box…
Configure VOS3000 no-answer auto-blacklist with SS_BLACK_LIST_NO_ANSWER. Block dead-end numbers, prevent wasted port capacity, and optimize…
Master VOS3000 malicious caller blacklist with SS_BLACK_LIST_CALLER_MALICIOUS_CALL. Configure auto-blacklist for flagged callers, block duration, and…
Master VOS3000 system white list for global allow-list configuration. Learn how system-level trusted numbers override…