VOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction Critical

VOS3000 CDR Pipe Format Definitive 18-Field Important Reference Guide

VOS3000 CDR Pipe Format Definitive 18-Field Reference Guide

๐Ÿ“Š Every VOS3000 operator who exports call detail records must understand the VOS3000 CDR pipe format down to the individual field level. The pipe-delimited text file is the universal interface between your softswitch and every external system that consumes call data โ€” billing platforms, fraud detection engines, analytics dashboards, and regulatory compliance archives. A single misinterpreted field can cascade into billing errors, incorrect traffic reports, or failed audits. Yet the official manual provides only a brief field listing, leaving operators to figure out data types, edge cases, and integration mappings on their own. ๐Ÿ”

โš™๏ธ This guide provides a definitive, field-by-field reference of every column in the VOS3000 CDR pipe format. Each field is documented with its position in the pipe-delimited line, data type, example value, special considerations, and how it maps to external billing and analytics systems. All field definitions are sourced from the official VOS3000 2.1.8.0/2.1.9.07 English manual ยง4.4 (pages 241โ€“243), with additional practical guidance based on real-world parsing and integration experience. ๐Ÿ“˜

๐ŸŽฏ Whether you are building a Python CDR parser, configuring a MySQL import pipeline, or integrating VOS3000 with a third-party billing system, this reference eliminates the guesswork from field mapping and data interpretation. Let us walk through every field in the exact order it appears in each CDR line. ๐Ÿ”ง

Table of Contents

๐Ÿ” VOS3000 CDR Pipe Format Overview

๐Ÿ“ When SS_CDR_RECORD_TO_FILE is enabled in VOS3000, the softswitch generates hourly text files in the cdr/ directory. Each file follows the naming convention YYYYMMDDHH.txt, and each line within the file represents one call detail record with fields separated by the pipe character (|, ASCII 124). The format specification is documented in the official VOS3000 manual ยง4.4.

๐Ÿ“‹ CDR Line Format Structure – VOS3000 CDR Pipe

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 header line with 18 pipe separators producing 19 columns. The first 17 fields (through billingMode) are the core billing-critical fields present in all CDR records. Fields 18 and 19 (callerPdd and calleePdd) provide Post-Dial Delay metrics that measure call setup timing. Your parsing logic should handle both 17-field and 19-field records for maximum compatibility across VOS3000 versions.

๐Ÿ“Š Complete Field-by-Field Reference – VOS3000 CDR Pipe

๐Ÿ“‹ Below is the definitive reference for every field in the VOS3000 CDR pipe format, in the exact order they appear in each line:

Field 1: callerE164 โ€” The Caller ID ๐Ÿ””

AttributeValue
๐Ÿ“Œ Field Position1 (first field)
๐Ÿ“ Data TypeString (numeric E.164 format)
๐Ÿ“ DescriptionThe caller ID โ€” the originating party’s phone number
๐Ÿ”ข Example12125551234
โš ๏ธ NotesMay differ from callerAccessE164 after prefix transformations

๐Ÿ’ก Practical note: The callerE164 field reflects the caller ID after VOS3000 has applied any configured prefix transformations. This is the number as seen by the billing engine, not necessarily the original incoming number. For the original incoming caller ID before any transformations, refer to Field 12 (callerAccessE164). Understanding this distinction is essential when troubleshooting billing discrepancies.

Field 2: calleeE164 โ€” The Callee ID ๐Ÿ“ž

AttributeValue
๐Ÿ“Œ Field Position2
๐Ÿ“ Data TypeString (numeric E.164 format)
๐Ÿ“ DescriptionThe callee ID โ€” the destination phone number
๐Ÿ”ข Example18005559876
โš ๏ธ NotesThis is the billed destination number after prefix processing

๐Ÿ”‘ Billing relevance: The calleeE164 is the number used by the VOS3000 billing engine to match the call against rate tables. If your prefix settings strip or add digits, the calleeE164 reflects the number after those transformations. This is critical for rate table matching โ€” a calleeE164 of 18005559876 matches a different rate entry than 01118005559876.

Field 3: startTime โ€” Call Begin Time โฐ

AttributeValue
๐Ÿ“Œ Field Position3
๐Ÿ“ Data TypeDatetime string
๐Ÿ“ DescriptionBegin time of the call
๐Ÿ”ข Example2018-12-20 11:20:18
โš ๏ธ NotesFormat is YYYY-MM-DD HH:MM:SS; timezone is server local time

โฑ๏ธ Time zone awareness: The startTime is recorded in the VOS3000 server’s local timezone. If your server is configured in UTC+6 (Bangladesh Standard Time), all timestamps reflect that timezone. When integrating CDR data with systems in different timezones, always account for the offset. The startTime represents when the call was initially received by VOS3000, not when it was answered.

Field 4: stopTime โ€” Call End Time ๐Ÿ›‘

AttributeValue
๐Ÿ“Œ Field Position4
๐Ÿ“ Data TypeDatetime string
๐Ÿ“ DescriptionEnd time of the call
๐Ÿ”ข Example2018-12-20 16:34:09

๐Ÿ“Š Duration calculation: The actual call duration is stored in Field 5 (holdTime), not calculated from startTime and stopTime. The difference between startTime and stopTime includes call setup time, ringing time, and other pre-connection delays. Only holdTime represents the actual conversation duration. The stopTime determines which hourly CDR file the record is written to.

Field 5: holdTime โ€” Call Duration โฑ๏ธ

AttributeValue
๐Ÿ“Œ Field Position5
๐Ÿ“ Data TypeInteger (milliseconds)
๐Ÿ“ DescriptionCall duration in milliseconds
๐Ÿ”ข Example45000 (equals 45 seconds)
๐Ÿšจ Critical NoteValue is in MILLISECONDS, not seconds โ€” a common parsing error

โš ๏ธ The #1 parsing mistake: The holdTime field is recorded in milliseconds, not seconds. A value of 45000 means 45 seconds of conversation, not 45000 seconds. This is the single most common error when integrating VOS3000 CDR data with external billing systems. Always divide holdTime by 1000 before applying per-second or per-minute billing rates. The holdTime is also affected by the SERVER_BILLING_HOLD_TIME_PRECISION parameter, which controls millisecond rounding before billing calculation.

Field 6: endReason โ€” End Reason Code ๐Ÿ“‹

AttributeValue
๐Ÿ“Œ Field Position6
๐Ÿ“ Data TypeString/Integer
๐Ÿ“ DescriptionEnd reason โ€” SIP response code or Q.850 cause code
๐Ÿ”ข Example200 (normal), 486 (busy), 480 (no answer)

๐Ÿ” Interpreting endReason: For SIP calls, the endReason typically contains the SIP response code from the final response message (200 OK, 486 Busy, 480 Temporarily Unavailable, 503 Service Unavailable, etc.). For H.323 calls, it may contain Q.850 cause codes. The endReason field, combined with endDirection, provides the complete picture of why and how a call terminated. For a detailed breakdown of termination codes, see our guide on VOS3000 call termination reasons.

Field 7: endDirection โ€” Hangup Side ๐Ÿ”„

AttributeValue
๐Ÿ“Œ Field Position7
๐Ÿ“ Data TypeInteger (0, 1, or 2)
๐Ÿ“ DescriptionHangup side: 0 = caller, 1 = callee, 2 = server

๐Ÿ”‘ Billing impact: The endDirection tells you who initiated the call termination. A value of 0 means the calling party hung up normally, 1 means the called party hung up, and 2 means the VOS3000 server itself terminated the call (which could indicate a session timeout, account balance exhaustion, or administrative intervention). This field is critical for dispute resolution โ€” see our detailed analysis in the server hangup CDR recording guide.

Fields 8โ€“9: Gateway Identifiers ๐Ÿ“ก

FieldPositionDescriptionExample
callerGatewayId8Calling gateway ID1001
calleeGatewayId9Called gateway ID2003

๐Ÿ“ก Gateway mapping: These fields contain the VOS3000 internal gateway IDs, not the gateway names you see in the client interface. To map these IDs to human-readable gateway names, you need to cross-reference the VOS3000 gateway configuration. The callerGatewayId refers to the mapping gateway (incoming side), while the calleeGatewayId refers to the routing gateway (outgoing side). Understanding this mapping is essential for gateway performance analysis and route optimization.

Fields 10โ€“11: IP Addresses ๐ŸŒ

FieldPositionDescriptionExample
callerIp10Caller IP address192.168.1.100
calleeIp11Callee IP address10.0.0.50

๐Ÿ”’ Security value: The IP address fields are invaluable for security analysis. By tracking callerIp patterns, you can identify traffic from unexpected source IPs that may indicate unauthorized access or SIP scanning attacks. The VOS3000 anti-hack configuration uses IP-level authentication, and these CDR fields provide the audit trail for verifying that authentication is working correctly.

Fields 12โ€“13: Access (Incoming) E164 Numbers ๐Ÿ“ฅ

FieldPositionDescription
callerAccessE16412Incoming caller โ€” the original caller ID as received by VOS3000 before any transformations
calleeAccessE16413Incoming callee โ€” the original destination number as received before transformations

๐Ÿ”„ Why access fields matter: These fields preserve the original phone numbers as they arrived at VOS3000, before any callee rewrite rules, prefix stripping, or number transformations were applied. This is crucial for debugging routing issues โ€” if a call was routed incorrectly because a prefix transformation changed the destination, you can compare calleeAccessE164 (original) with calleeE164 (transformed) to identify exactly where the routing went wrong. For detailed prefix configuration guidance, see our callee rewrite rule guide.

Fields 14โ€“15: Outbound (To Gateway) E164 Numbers ๐Ÿ“ค

FieldPositionHeader NameDescription
callerToGatewayE16414callerToGatewayE164Outbound caller โ€” the caller ID sent to the outgoing gateway
calleeToGatewayE16415calleeToGatewayE164Outbound callee โ€” the destination number sent to the outgoing gateway

๐Ÿ“‹ Naming discrepancy note: The VOS3000 manual ยง4.4 header line labels these fields as callerToGatewayE164 and calleeToGatewayE164, but the field description table in the same section refers to them as “Outbound caller” and “Outbound callee” (callerOutE164 / calleeOutE164). Both names refer to the same data โ€” the phone numbers after all VOS3000 transformations have been applied, as they are sent out to the routing gateway. These outbound fields show the final form of the numbers as seen by the terminating carrier.

Field 16: calleeBilling โ€” Billing Method ๐Ÿ’ฐ

AttributeValue
๐Ÿ“Œ Field Position16
๐Ÿ“ Data TypeInteger (0 or 1)
๐Ÿ“ DescriptionBilling method: 0 = By caller, 1 = By callee

๐Ÿ’ก Understanding billing method: This field indicates which party’s account is charged for the call. A value of 0 means the caller’s account is billed (the standard arrangement for most calls). A value of 1 means the callee’s account is billed, which applies to collect calls, toll-free number calls, or special reverse-charging arrangements. This field works in conjunction with billingMode (Field 17) to determine the complete billing attribution for each call.

Field 17: billingMode โ€” Charge Mode ๐Ÿ’ณ

AttributeValue
๐Ÿ“Œ Field Position17
๐Ÿ“ Data TypeInteger (-1, 0, 1, or 3)
๐Ÿ“ DescriptionCharge mode: -1 = no billing, 0 = phone number, 1 = gateway ID, 3 = phone card

๐Ÿ”‘ Billing mode codes explained: This is one of the most important fields for billing analysis. A billingMode of -1 means the call was not billed at all โ€” this applies to illegal calls, free numbers, and calls that bypass the billing engine. A value of 0 means billing is attributed to a phone number account. A value of 1 means billing is attributed to a gateway ID. A value of 3 means billing is attributed to a phone card (calling card). For a comprehensive breakdown of how each code affects billing calculations, refer to our detailed billing mode codes reference.

Fields 18โ€“19: Post-Dial Delay Metrics โฑ๏ธ

FieldPositionDescription
callerPdd18Time elapsed from call received to call connected (incoming PDD)
calleePdd19Time elapsed from call sent to routing response (outgoing PDD)

๐Ÿ“Š PDD analysis value: Post-Dial Delay is a critical quality-of-service metric. High callerPdd values indicate that calls take too long to connect on the incoming side, which frustrates callers. High calleePdd values indicate slow response from routing gateways, which may point to gateway overload, network latency, or incorrect INVITE timeout configuration. Monitoring PDD trends helps you identify degrading gateway performance before it impacts your ASR.

๐Ÿ“‹ Complete VOS3000 CDR Pipe Format Quick Reference Table

#Field NameTypeDescriptionExample
1callerE164StringThe caller ID12125551234
2calleeE164StringThe callee ID18005559876
3startTimeDatetimeCall begin time2018-12-20 11:20:18
4stopTimeDatetimeCall end time2018-12-20 16:34:09
5holdTimeInteger (ms)Call duration in milliseconds45000
6endReasonString/IntEnd reason code200
7endDirectionIntegerHangup side (0/1/2)0
8callerGatewayIdIntegerCalling gateway1001
9calleeGatewayIdIntegerCalled gateway2003
10callerIpStringCaller IP address192.168.1.100
11calleeIpStringCallee IP address10.0.0.50
12callerAccessE164StringIncoming caller12125551234
13calleeAccessE164StringIncoming callee01118005559876
14callerToGatewayE164StringOutbound caller12125551234
15calleeToGatewayE164StringOutbound callee18005559876
16calleeBillingIntegerBilling method (0/1)0
17billingModeIntegerCharge mode (-1/0/1/3)0
18callerPddIntegerIncoming PDD (ms)3200
19calleePddIntegerOutgoing PDD (ms)1500

๐Ÿ“Š External System Mapping Guide – VOS3000 CDR Pipe

๐Ÿ”— When integrating VOS3000 CDR data with external billing and analytics systems, field names and data types often need to be mapped to the target system’s schema. Here is a reference mapping for common integration targets:

VOS3000 FieldMySQL ColumnCommon Billing LabelTransform Needed
callerE164VARCHAR(32)ANI / Calling NumberNone
calleeE164VARCHAR(32)DNIS / Called NumberNone
startTimeDATETIMECall Start / Setup TimeParse datetime string
holdTimeINTDuration (seconds)โš ๏ธ Divide by 1000
endReasonVARCHAR(16)Release CauseMap to cause code table
endDirectionTINYINTRelease SourceMap 0/1/2 to labels
billingModeTINYINTBilling TypeMap -1/0/1/3 to labels

โ“ Frequently Asked Questions

โ“ How many fields are in the VOS3000 CDR pipe format?

๐Ÿ“‹ The VOS3000 CDR pipe format contains 17 core billing-critical fields (through the billingMode field at position 17) plus 2 Post-Dial Delay fields (callerPdd at position 18 and calleePdd at position 19), for a total of up to 19 fields. The pipe delimiter creates 18 separators for the full 19-column format. Older VOS3000 versions may produce records with only 17 fields (without PDD data). Your parsing code should handle variable field counts gracefully by checking the number of pipe-delimited columns in each line before processing.

โ“ Why is holdTime in milliseconds instead of seconds?

โฑ๏ธ VOS3000 records holdTime in milliseconds to support high-precision billing configurations. The SERVER_BILLING_FEE_PRECISTION and SERVER_BILLING_HOLD_TIME_PRECISION parameters allow billing calculations down to millisecond granularity. While most operators bill in whole seconds or minutes, the millisecond precision in the CDR ensures that no rounding is applied before the data is exported โ€” any rounding happens in the billing engine according to the configured precision parameters. When parsing CDR data, always divide holdTime by 1000 to convert to seconds.

โ“ What is the difference between callerE164 and callerAccessE164?

๐Ÿ”„ callerE164 (Field 1) is the caller ID after VOS3000 has applied all prefix transformations and number manipulations. callerAccessE164 (Field 12) is the original incoming caller ID as it was received by VOS3000 before any transformations. The two values differ when VOS3000’s callee rewrite rules, prefix stripping, or caller ID manipulation features modify the number. Similarly, calleeE164 (Field 2) may differ from calleeAccessE164 (Field 13) when the destination number is transformed before routing.

โ“ What does a billingMode of -1 mean in the CDR?

๐Ÿ’ณ A billingMode of -1 means the call was not billed. This applies to calls that bypass the billing engine entirely, including illegal calls from unauthorized IP addresses, calls to toll-free numbers configured under SERVER_BILLING_FREE_E164S, and calls where the billing system could not determine an account to charge. These records still appear in the CDR export (when SS_CDR_RECORD_ILLEGAL is On) for security auditing purposes, but they carry no billing charge.

โ“ How do I parse VOS3000 CDR files with different field counts?

๐Ÿ”ง The safest approach is to split each CDR line on the pipe character and check the resulting field count before processing. Lines with 17 fields contain core billing data without PDD metrics. Lines with 19 fields include the PDD columns. Always map fields by position (index), not by counting from the end, since new fields are added at the end of the line. Use the field position reference table in this guide to ensure correct mapping regardless of the field count in your specific VOS3000 version.

โ“ Are VOS3000 CDR timestamps in UTC or local time?

โฐ VOS3000 CDR timestamps (startTime and stopTime) are recorded in the server’s local timezone, not UTC. If your server is configured with timezone Asia/Dhaka (UTC+6), all timestamps will be in BST. When integrating CDR data with systems that expect UTC, you must apply the appropriate timezone offset during parsing. Always verify your server’s timezone setting with the date command in SSH before assuming the timezone in your CDR processing logic.

๐Ÿ“ž Need Expert Help with VOS3000 CDR Pipe Format?

๐Ÿ”ง Accurate VOS3000 CDR pipe format parsing is the foundation of every billing integration, analytics pipeline, and compliance archive. A single misinterpreted field โ€” especially the millisecond holdTime or the billing mode codes โ€” can cascade into revenue-impacting billing errors. Whether you are building a CDR parser from scratch, troubleshooting field mapping issues, or integrating VOS3000 with an external billing platform, expert guidance ensures your data pipeline is accurate from day one. ๐Ÿ“Š

๐Ÿ’ฌ WhatsApp: +8801911119966 โ€” Get immediate assistance with VOS3000 CDR pipe format parsing, field mapping, and external system integration. Our team specializes in VOS3000 CDR data extraction, billing system integration, and custom analytics development. ๐Ÿ”ง

๐Ÿ”— Explore related VOS3000 CDR and configuration guides:


๐Ÿ“ž 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


VOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction CriticalVOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction CriticalVOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction Critical
VOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction Critical

VOS3000 Real-Time CDR Forwarding Advanced External Server Easy Integration

VOS3000 Real-Time CDR Forwarding Advanced External Server Integration

๐Ÿ“ก In modern VoIP operations, CDR data must reach external systems immediately โ€” not hours later after a batch export. The VOS3000 real-time CDR forwarding feature, powered by SERVER_CDR_REAL_TIME_REPORT_SERVER, pushes every call detail record to an external server the moment a call ends. This enables live billing by external rating engines, instant fraud detection, real-time traffic monitoring, and seamless integration with third-party business intelligence platforms. ๐Ÿš€

โš™๏ธ Without real-time CDR forwarding, operators must rely on scheduled database exports or CDR text file parsing โ€” both of which introduce latency ranging from minutes to hours. For high-value wholesale operations where every second of billing delay impacts cash flow, the VOS3000 real-time CDR forwarding capability is not a luxury โ€” it is a necessity. This guide covers the configuration, use cases, and integration patterns based exclusively on the official VOS3000 2.1.9.07 manual. ๐Ÿ“‹

๐Ÿ’ฌ Need help setting up external CDR integration? Contact our VOS3000 team at WhatsApp: +8801911119966 for expert configuration and deployment assistance. ๐Ÿ’ก

Table of Contents

๐Ÿ” What Is VOS3000 Real-Time CDR Forwarding?

๐Ÿ“Š The VOS3000 real-time CDR forwarding system transmits each completed call detail record to a designated external server immediately after the call ends. Unlike the text file export (which writes CDRs to local files at regular intervals) or the database storage (which requires direct database access), real-time forwarding delivers CDR data over the network to any system that can accept the connection โ€” whether it is a custom billing application, a fraud detection platform, or a data warehouse. ๐ŸŒ

๐Ÿ’ก Key advantages over other CDR access methods:

  • โšก Zero latency: CDRs are forwarded the instant a call completes โ€” no waiting for batch exports
  • ๐Ÿ”— Loose coupling: The external system does not need database access or file system access to VOS3000
  • ๐Ÿ›ก๏ธ Redundancy: Provides a third copy of CDR data (database + text files + external server)
  • ๐Ÿ“Š Real-time analytics: Feed live CDR data into dashboards, monitoring tools, and alerting systems
  • ๐Ÿ’ฐ External billing: Route CDRs to a separate rating engine for specialized billing calculations

โš™๏ธ SERVER_CDR_REAL_TIME_REPORT_SERVER โ€” The Core Parameter

๐Ÿ“ก SERVER_CDR_REAL_TIME_REPORT_SERVER specifies the target server address (IP and port) where VOS3000 forwards CDR records in real-time. This is the single parameter that enables and configures the entire real-time forwarding system. ๐ŸŽฏ

AttributeValue
๐Ÿ“Œ Parameter NameSERVER_CDR_REAL_TIME_REPORT_SERVER
๐Ÿ”ข Default ValueNone (not configured by default)
๐Ÿ“ FormatIP:Port (e.g., 192.168.1.100:5060)
๐Ÿ“ DescriptionAdditional send call record to server address
๐Ÿ“ LocationOperation management โ†’ Softswitch management โ†’ Additional settings โ†’ Server parameter

๐Ÿ”ง Configuration syntax: Set the parameter value to the IP address and port of your external CDR receiving server, separated by a colon. For example, to forward CDRs to a server at IP 10.0.0.50 listening on port 8080, set the value to 10.0.0.50:8080. When this parameter is left empty (default), real-time CDR forwarding is disabled.

๐Ÿ”— Two additional parameters work alongside SERVER_CDR_REAL_TIME_REPORT_SERVER to control the external CDR delivery pipeline: ๐Ÿ’ก

ParameterDefaultRangePurpose
EXTERNAL_SEND_CDROffOn/OffInterface: send CDR โ€” master switch for external CDR delivery
EXTERNAL_MAX_CDR_PENDING_SIZE100001000โ€“100000Queue size for resending CDR when external server is unavailable

โš ๏ธ Important: EXTERNAL_SEND_CDR must be set to On for the real-time CDR forwarding to work. This is the master switch for the entire external CDR interface. Additionally, EXTERNAL_MAX_CDR_PENDING_SIZE defines a buffer queue โ€” if the external server is temporarily unreachable, VOS3000 queues up to this many CDRs for automatic resend when the connection is restored. This prevents CDR loss during network interruptions. ๐Ÿ›ก๏ธ

๐ŸŽฏ VOS3000 Real-Time CDR Forwarding Use Cases

๐ŸŒ The real-time CDR forwarding capability enables a wide range of integration scenarios that are essential for modern VoIP operations: ๐Ÿ“Š

Use CaseExternal SystemBenefit
๐Ÿ’ฐ External billing engineCustom rating/billing applicationReal-time invoice generation; custom rate plans beyond VOS3000
๐Ÿ›ก๏ธ Fraud detectionFraud monitoring platform (e.g., custom SIEM)Instant detection of SIM box, arbitrage, and premium rate fraud
๐Ÿ“Š Traffic analyticsElasticsearch, Splunk, or custom dashboardLive traffic visualization and capacity planning
๐Ÿ”„ CDR reconciliationThird-party reconciliation toolCross-vendor CDR matching for carrier dispute resolution
๐Ÿ“‹ Regulatory complianceLawful interception / CALEA systemImmediate CDR delivery to compliance systems
๐Ÿข Multi-system distributionCDR router/multiplexer applicationOne source feeding multiple downstream systems

๐Ÿ“‹ Step-by-Step VOS3000 Real-Time CDR Forwarding Configuration

๐Ÿ–ฅ๏ธ Follow these steps to configure real-time CDR forwarding on your VOS3000 system: ๐Ÿ”ง

Step 1: Enable External CDR Interface ๐ŸŒ

  1. ๐Ÿ” Log in to VOS3000 Client
  2. ๐Ÿ“Œ Navigate: Operation management โ†’ Softswitch management โ†’ Additional settings โ†’ Server parameter
  3. ๐Ÿ” Locate EXTERNAL_SEND_CDR
  4. โœ๏ธ Set value to On

Step 2: Configure Target Server Address ๐Ÿ“ก

  1. ๐Ÿ” In the same Server parameter section, locate SERVER_CDR_REAL_TIME_REPORT_SERVER
  2. โœ๏ธ Set the value to the IP address and port of your external CDR receiver (e.g., 10.0.0.50:8080)

Step 3: Configure CDR Queue Size ๐Ÿ“ฆ

  1. ๐Ÿ” Locate EXTERNAL_MAX_CDR_PENDING_SIZE
  2. โœ๏ธ Set an appropriate queue size (default: 10000, range: 1000โ€“100000)
  3. ๐Ÿ’พ Save and apply the configuration

Step 4: Verify CDR Forwarding โœ…

๐Ÿ“ก After configuration, verify that CDRs are being forwarded by checking both the VOS3000 side and the external server: ๐Ÿ’ก

๐Ÿ“‹ VOS3000 Real-Time CDR Forwarding Verification:

1. Make a test call through the softswitch
2. On the external server, check for incoming CDR data:
   - Monitor the listening port for connections from VOS3000
   - Verify CDR records are being received after call completion

3. On VOS3000 server, check for forwarding errors:
   - Review softswitch logs for connection failures
   - Monitor the CDR pending queue size

4. If CDRs are not being received:
   - Verify firewall allows traffic from VOS3000 to target IP:Port
   - Confirm the external server application is listening
   - Check that EXTERNAL_SEND_CDR = On
   - Verify SERVER_CDR_REAL_TIME_REPORT_SERVER format (IP:Port)

๐Ÿ”„ CDR Queue and Delivery Guarantee – VOS3000 Real-Time CDR Forwarding

๐Ÿ›ก๏ธ The EXTERNAL_MAX_CDR_PENDING_SIZE parameter plays a critical role in ensuring CDR delivery reliability. When the external server is temporarily unreachable โ€” due to network issues, server maintenance, or application restarts โ€” VOS3000 does not simply discard the CDRs. Instead, it places them in a memory queue for automatic resend once the connection is restored. ๐Ÿ“ฆ

Queue ScenarioBehaviorRecommendation
โœ… External server onlineCDRs forwarded immediately upon call completionNormal operation โ€” no action needed
โš ๏ธ External server temporarily offlineCDRs queued up to EXTERNAL_MAX_CDR_PENDING_SIZESet queue size based on expected downtime duration
๐Ÿšจ Queue full (exceeded limit)Oldest CDRs in queue are discarded to make roomIncrease queue size or fix external server connectivity
๐Ÿ”„ External server restoredQueued CDRs automatically resent in orderVerify CDR ordering on the receiving side

๐Ÿ“ Queue sizing calculation: To determine the appropriate queue size, estimate how many CDRs might accumulate during the longest expected downtime. For example, at 100 CPS with a potential 10-minute server outage: 100 ร— 60 ร— 10 = 60,000 CDRs. Set EXTERNAL_MAX_CDR_PENDING_SIZE to at least 60000 to ensure no data loss. The default of 10000 covers approximately 100 seconds at 100 CPS, which may be insufficient for longer outages. ๐Ÿ“Š

๐Ÿ›ก๏ธ Common VOS3000 Real-Time CDR Forwarding Problems and Solutions

โŒ Misconfigured real-time CDR forwarding causes silent data loss that may go undetected for days. Here are the most common issues and their solutions: ๐Ÿ”

โŒ Problem 1: External Server Not Receiving CDRs

๐Ÿ” Symptom: The external CDR receiver shows no incoming data, even though calls are completing on VOS3000.

๐Ÿ’ก Cause: The most common reasons are: EXTERNAL_SEND_CDR is Off, SERVER_CDR_REAL_TIME_REPORT_SERVER is not configured, or a firewall is blocking the connection.

โœ… Solutions:

  • ๐Ÿ”ง Verify EXTERNAL_SEND_CDR is set to On
  • ๐Ÿ“ก Check that SERVER_CDR_REAL_TIME_REPORT_SERVER contains the correct IP:Port value
  • ๐Ÿ›ก๏ธ Ensure firewall rules allow outbound connections from VOS3000 to the target server
  • ๐Ÿ“‹ Test connectivity from the VOS3000 server: telnet target_ip target_port

โŒ Problem 2: CDRs Arriving Out of Order

๐Ÿ” Symptom: The external system receives CDRs but they are not in chronological order, causing billing calculation errors.

๐Ÿ’ก Cause: During high traffic periods, multiple CDR forwarding threads may deliver records in slightly different order than they were generated. Additionally, if the external server was temporarily unreachable and CDRs were queued, the resend order may not perfectly match the original sequence.

โœ… Solutions:

  • ๐Ÿ“Š Use the startTime field in each CDR record for ordering, not the arrival sequence
  • ๐Ÿ”ง Implement a small buffer window on the receiving side to reorder CDRs before processing
  • ๐Ÿ“‹ For the complete CDR field reference, see our VOS3000 CDR pipe format guide

โŒ Problem 3: CDR Loss During External Server Outages

๐Ÿ” Symptom: After an external server outage, some CDRs are missing from the received data.

๐Ÿ’ก Cause: The CDR queue (EXTERNAL_MAX_CDR_PENDING_SIZE) filled up during the outage, and older CDRs were discarded to make room for new ones.

โœ… Solutions:

  • ๐Ÿ“ฆ Increase EXTERNAL_MAX_CDR_PENDING_SIZE based on your maximum expected downtime
  • ๐Ÿ›ก๏ธ Implement high-availability for the external CDR receiver (redundant servers, load balancer)
  • ๐Ÿ”„ Cross-reference with VOS3000 CDR text files for missing records โ€” see our CDR file rotation guide
  • ๐Ÿ“Š Set up monitoring that alerts you immediately when the queue depth exceeds 50%

โŒ Problem 4: High CPU or Network Usage from CDR Forwarding

๐Ÿ” Symptom: VOS3000 server performance degrades noticeably after enabling real-time CDR forwarding.

๐Ÿ’ก Cause: At very high call volumes, the overhead of opening a network connection and transmitting CDR data for every single call can consume significant CPU and network resources, especially if the external server is slow to respond.

โœ… Solutions:

  • ๐Ÿ“Š Ensure the external CDR receiver can process records as fast as they arrive
  • ๐ŸŒ Use a local network connection (same datacenter) between VOS3000 and the CDR receiver
  • ๐Ÿ”ง Consider implementing a local CDR buffering proxy that batches records before forwarding
  • ๐Ÿ“‹ Monitor VOS3000 system resources to ensure forwarding does not impact call processing

๐Ÿ’ก VOS3000 Real-Time CDR Forwarding Best Practices

๐ŸŽฏ Follow these best practices to ensure reliable and efficient CDR forwarding: ๐Ÿ“‹

Best PracticeRecommendationReason
๐Ÿ›ก๏ธ Use high-availabilityRedundant CDR receiver with failoverPrevents CDR loss during receiver maintenance
๐Ÿ“ฆ Size the queue correctlyCalculate based on max downtime ร— CPSEnsures no CDRs are dropped during outages
๐Ÿ“Š Monitor queue depthAlert when queue exceeds 50% capacityEarly warning of external server problems
๐Ÿ”„ Cross-reference regularlyCompare forwarded CDRs with database records weeklyDetects silent CDR loss or duplication
๐ŸŒ Keep receiver closeSame datacenter or low-latency networkMinimizes forwarding delay and connection failures
๐Ÿ” Secure the connectionUse VPN or TLS tunnel for CDR trafficCDRs contain sensitive billing and subscriber data

๐Ÿ’ฌ Need to integrate VOS3000 with your external billing or fraud detection system? Our team at WhatsApp: +8801911119966 can help you configure real-time CDR forwarding and build the complete data pipeline. ๐Ÿš€

๐Ÿ“Š Complete VOS3000 Real-Time CDR Forwarding Parameter Reference

๐Ÿ“‹ Here is the complete reference table for all parameters related to real-time CDR forwarding, sourced from the official VOS3000 2.1.9.07 manual: ๐Ÿ”ง

ParameterDefaultRangePurpose
SERVER_CDR_REAL_TIME_REPORT_SERVERNoneIP:PortTarget server address for real-time CDR forwarding
EXTERNAL_SEND_CDROffOn/OffMaster switch for external CDR interface
EXTERNAL_MAX_CDR_PENDING_SIZE100001000โ€“100000Queue size for resend when external server is unavailable
EXTERNAL_WEB_SEND_PHONE_ONLINEOffOn/OffInterface: phone online/offline transfer

๐Ÿ“ All server parameters are located at: Navigation โ†’ Operation management โ†’ Softswitch management โ†’ Additional settings โ†’ Server parameter

โ“ Frequently Asked Questions

โ“ What is the default value for SERVER_CDR_REAL_TIME_REPORT_SERVER?

๐Ÿ“‹ The default value is None (not configured). This means VOS3000 real-time CDR forwarding is disabled by default. You must explicitly configure the IP:Port address of your external CDR receiving server and set EXTERNAL_SEND_CDR to On before any CDRs are forwarded. The parameter format is IP:Port โ€” for example, 192.168.1.100:8080 for a server at IP 192.168.1.100 listening on port 8080. ๐Ÿ”ง

โ“ Does VOS3000 real-time CDR forwarding guarantee delivery?

๐Ÿ›ก๏ธ VOS3000 provides a best-effort delivery mechanism with a configurable queue buffer. When the external server is unavailable, CDRs are queued up to the limit specified by EXTERNAL_MAX_CDR_PENDING_SIZE (default: 10000). If the queue fills up, older CDRs are discarded to make room. For guaranteed delivery, implement a high-availability CDR receiver, size the queue appropriately for your maximum expected downtime, and cross-reference with the VOS3000 CDR text file backup system described in our CDR file rotation guide. ๐Ÿ“Š

โ“ Can I forward CDRs to multiple external servers?

๐Ÿ“ก The VOS3000 SERVER_CDR_REAL_TIME_REPORT_SERVER parameter supports a single target address. To distribute CDRs to multiple downstream systems, you have two options: (1) Deploy a CDR multiplexer application at the target address that receives the CDR stream and forwards copies to multiple destinations, or (2) Use a combination of real-time forwarding for immediate processing and CDR text file rotation for batch distribution. The CDR text files can be parsed by multiple independent systems. For complex multi-system integration, contact our team at WhatsApp: +8801911119966. ๐Ÿ”—

โ“ What format are CDRs sent in during real-time forwarding?

๐Ÿ“‹ CDRs forwarded in real-time use the same pipe-delimited format as the text file export, containing all 18 standard fields: callerE164, calleeE164, startTime, stopTime, holdTime, endReason, endDirection, callerGatewayId, calleeGatewayId, callerIp, calleeIp, callerAccessE164, calleeAccessE164, callerToGatewayE164, calleeToGatewayE164, calleeBilling, billingMode, callerPdd, and calleePdd. Each field is separated by a pipe character (|). For the complete field reference, see our VOS3000 CDR pipe format guide. ๐Ÿ“Š

โ“ How do I troubleshoot real-time CDR forwarding connection issues?

๐Ÿ” Start by verifying the basics: (1) Confirm EXTERNAL_SEND_CDR is On, (2) Verify the SERVER_CDR_REAL_TIME_REPORT_SERVER value is correct (IP:Port format), (3) Test network connectivity from the VOS3000 server to the target using telnet or nc, (4) Check firewall rules on both sides, (5) Verify the external application is listening on the specified port, (6) Review VOS3000 softswitch logs for connection error messages, (7) Monitor the EXTERNAL_MAX_CDR_PENDING_SIZE queue depth to detect if CDRs are being queued due to connection failures. For additional troubleshooting, see our VOS3000 debug trace guide. ๐Ÿ”ง

โ“ Does real-time CDR forwarding affect VOS3000 call processing performance?

โšก Under normal conditions, the VOS3000 real-time CDR forwarding has minimal impact on call processing. The forwarding operation occurs after the call has ended, so it does not affect call setup or in-call quality. However, at extremely high call volumes (500+ CPS) or if the external server is slow to respond, the forwarding threads may consume additional CPU and network resources. Best practice is to keep the CDR receiver on the same local network as VOS3000 and ensure it can process records as fast as they arrive. Monitor your gateway analysis reports for any performance anomalies after enabling forwarding. ๐Ÿ“Š

๐Ÿ“ž Need Expert Help with VOS3000 Real-Time CDR Forwarding?

๐Ÿ”ง Whether you are integrating VOS3000 with an external billing engine, setting up a fraud detection pipeline, or building a real-time traffic monitoring dashboard, proper VOS3000 real-time CDR forwarding configuration is the foundation. Our VOS3000 experts can help you design and deploy the complete CDR integration architecture โ€” from softswitch parameters to the receiving application. ๐Ÿ›ก๏ธ

๐Ÿ’ฌ Contact us at WhatsApp: +8801911119966 for professional VOS3000 deployment and CDR integration support. We serve VoIP operators worldwide with proven solutions for billing, fraud prevention, and traffic analytics. ๐ŸŒ

๐Ÿ“– Explore related guides: CDR analysis and billing, billing system overview, and illegal call recording detection. ๐Ÿ”—


๐Ÿ“ž 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


VOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction CriticalVOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction CriticalVOS3000 CDR File Rotation, VOS3000 Real-Time CDR Forwarding, VOS3000 CDR Query Blackout, VOS3000 CDR Query Date Range, VOS3000 CDR Text File Export, VOS3000 CDR Pipe Format, VOS3000 CDR Billing Mode Codes, VOS3000 CDR End Direction Critical