VOS3000 CDR End Direction Critical Call Termination Party Detection
๐ Knowing who hung up the call is not just a curiosity โ it is a critical data point that affects billing disputes, quality analysis, fraud detection, and network performance optimization. The VOS3000 CDR end direction field records exactly which party initiated the call termination: the caller (0), the callee (1), or the VOS3000 server itself (2). This three-code system, documented in the official VOS3000 manual ยง4.4 (page 242), provides the definitive answer to “who ended this call?” โ and that answer has far-reaching implications for your VoIP business. ๐
โ๏ธ Consider the billing dispute scenario: A customer claims they were overcharged because “the call dropped after only a few seconds.” Without the endDirection field, you have no way to prove whether the customer hung up normally, the far end hung up, or the server terminated the call due to a timeout or balance exhaustion. With endDirection = 2 (server), you can explain that the server terminated the call because the prepaid balance was depleted โ resolving the dispute with evidence. Without it, you are relying on guesswork. ๐
๐ฏ This guide provides a comprehensive reference for the VOS3000 CDR end direction field, covering all three codes (0, 1, 2), their meanings, how they interact with other CDR fields like endReason and billingMode, and practical analysis techniques for using end direction data in billing, quality monitoring, and security applications. All definitions are sourced from the official VOS3000 2.1.8.0/2.1.9.07 English manual ยง4.4 (page 242). ๐
Table of Contents
๐ What Is VOS3000 CDR End Direction?
๐ The VOS3000 CDR end direction (also called “hangup side” in the manual) is Field 7 in the pipe-delimited CDR format. It records which party initiated the termination of the call by sending the SIP BYE message, H.323 EndSessionCommand, or equivalent call teardown signal. This is not about which party originated the call โ it is specifically about which party ended it.
๐ CDR field location: Position 7 in the pipe-delimited CDR format, between the endReason (Field 6) and callerGatewayId (Field 8) fields, as documented in the VOS3000 manual ยง4.4.
๐ Official Manual Definition
๐ The VOS3000 2.1.8.0/2.1.9.07 English manual ยง4.4 (page 242) defines the endDirection field as:
“endDirection โ Hangup side๏ผ0-caller๏ผ1-callee๏ผ2-server๏ผ”
๐ This is the complete and official definition. The three possible values and their meanings are:
| Code | Party | Meaning | SIP Signal |
|---|---|---|---|
| 0 | ๐ Caller | The calling party initiated the hangup | BYE from caller side |
| 1 | ๐ Callee | The called party initiated the hangup | BYE from callee side |
| 2 | ๐ฅ๏ธ Server | The VOS3000 server initiated the hangup | BYE generated by VOS3000 |
๐ End Direction Code 0: Caller Hangup
๐ When the VOS3000 CDR end direction is 0, it means the calling party initiated the call termination. In SIP terms, the BYE message originated from the caller’s side of the call leg. This is the most common end direction for normal completed calls โ the person who made the call decides they are done talking and hangs up.
| Attribute | Detail |
|---|---|
| ๐ Code | 0 |
| ๐ Party | Caller (calling party) |
| ๐ Typical Scenario | Normal call completion โ caller hangs up after conversation |
| ๐ Expected Proportion | 50โ80% of connected calls in most deployments |
๐ Analysis Implications of Caller Hangup
๐ก What caller hangup tells you: When endDirection = 0, the call followed a normal pattern โ the calling party placed the call, the conversation took place, and the caller ended it when finished. This is the expected behavior for the majority of outbound calls. However, if you notice an unusually high percentage of caller hangups with very short hold times (under 3 seconds), it may indicate that callers are reaching the wrong number or encountering audio problems and hanging up immediately.
๐ Quality correlation: Pair endDirection = 0 with short holdTime values to identify potential audio quality issues. If callers consistently hang up within the first few seconds, there may be a one-way audio problem or incorrect number routing. Cross-reference with the endReason codes to get the full picture โ a normal SIP 200 OK with endDirection = 0 and holdTime under 2000ms suggests a quick hangup after audio issues rather than a failed call.
๐ End Direction Code 1: Callee Hangup
๐ When the VOS3000 CDR end direction is 1, it means the called party initiated the call termination. The BYE message came from the callee’s side. This typically happens when the person who received the call decides to end the conversation.
| Attribute | Detail |
|---|---|
| ๐ Code | 1 |
| ๐ Party | Callee (called party) |
| ๐ Typical Scenario | Called party hangs up after conversation ends |
| ๐ Expected Proportion | 15โ40% of connected calls in most deployments |
๐ Analysis Implications of Callee Hangup
๐ก What callee hangup tells you: An endDirection of 1 is perfectly normal for many call scenarios โ the called party simply ends the conversation. However, a high proportion of callee hangups, especially combined with short hold times, may indicate that the called parties are not expecting the call (possible spam or unsolicited traffic), or that the audio from the caller side is not reaching the callee properly.
๐ Wholesale traffic quality indicator: In wholesale VoIP operations, monitoring the ratio of callee hangups to caller hangups on specific routes helps assess traffic quality. A route with a high percentage of callee hangups and short durations may indicate that the terminating carrier’s end users are rejecting or quickly ending calls โ a sign of potential CLI (Caller Line Identification) issues or unwanted traffic. This data supports decisions about route optimization and carrier selection.
๐ End Direction Code 2: Server Hangup
๐ฅ๏ธ When the VOS3000 CDR end direction is 2, it means the VOS3000 server itself initiated the call termination. This is the most operationally significant of the three codes, because it indicates the softswitch actively intervened to end the call โ and the reasons for that intervention directly impact billing, customer experience, and system health. ๐จ
| Attribute | Detail |
|---|---|
| ๐ Code | 2 |
| ๐ Party | Server (VOS3000 softswitch) |
| ๐ Typical Scenario | Server-initiated call termination for policy, timeout, or balance reasons |
| ๐ Expected Proportion | 5โ20% of connected calls, depending on prepaid ratio |
๐ When Does Server Hangup Occur?
๐ฅ๏ธ There are several important scenarios where VOS3000 terminates a call from the server side, each with different operational implications:
| Scenario | Description | End Reason | Impact |
|---|---|---|---|
| ๐ฐ Balance exhaustion | Prepaid account runs out of funds during active call | Various (may show session timeout code) | Customer may dispute charges |
| โฑ๏ธ Session timer expiry | SIP session timer expires without successful re-INVITE refresh | 200 (normal) or 408 | Call duration capped by timer |
| ๐ง Administrative disconnect | Operator manually disconnects the call via VOS3000 client | 200 | Immediate call termination |
| ๐ก No-media timeout | RTP media stream stops flowing for the configured timeout period | Various | Detects dead calls consuming resources |
| ๐ก๏ธ Maximum duration limit | Call exceeds the configured maximum call duration | 200 | Policy-based call length cap |
| ๐ Gateway failover cleanup | Server terminates call during gateway switching or failover process | 503 or other error | Call may be re-routed |
๐ก Recording server hangups: Whether CDRs for server-initiated hangups are recorded depends on the SERVER_BILLING_RECORD_SERVER_HANG_UP parameter. When this parameter is On, VOS3000 generates CDR records even when the server initiates the hangup, providing a complete audit trail of all call terminations. When Off, server-initiated hangups may not generate CDR records, creating gaps in your billing and operational data. For detailed configuration guidance, see our server hangup CDR recording guide.
๐ End Direction and Billing Dispute Resolution
๐ฐ The VOS3000 CDR end direction field is one of the most powerful tools for resolving billing disputes. When a customer challenges a charge, the endDirection code provides objective evidence of what happened during the call:
| Dispute Claim | End Direction | Resolution |
|---|---|---|
| “The call dropped after a few seconds” | 0 (caller hangup) | โ The caller (customer) hung up normally โ not a dropped call |
| “I was disconnected unexpectedly” | 2 (server hangup) | โ ๏ธ Server terminated โ investigate balance exhaustion or session timeout |
| “The call was much shorter than billed” | 1 (callee hangup) | โ The called party hung up โ duration matches CDR holdTime |
| “I never made this call” | 0 (caller hangup) with specific callerIp | ๐ Verify the callerIp matches the customer’s registered device |
๐ Evidence chain: For maximum dispute resolution effectiveness, combine the endDirection field with other CDR fields. The endReason code tells you why the call ended, the holdTime tells you how long the conversation lasted, the callerIp confirms where the call originated, and the endDirection tells you who terminated the call. Together, these four fields create an unambiguous evidence chain that resolves most billing disputes. For detailed CDR analysis methodology, see our CDR billing discrepancy guide.
๐ End Direction and Call Quality Analysis
๐ Analyzing end direction patterns across your traffic reveals important quality trends that are not visible from ASR and ACD metrics alone. Here are the key analysis patterns to monitor:
๐ End Direction Distribution Analysis
| Pattern | End Direction Mix | Indicates | Action |
|---|---|---|---|
| โ Normal distribution | 60% caller, 30% callee, 10% server | Healthy traffic with normal call patterns | No action needed โ continue monitoring |
| โ ๏ธ High server hangup | Server hangup over 25% | Session timeouts, balance exhaustion, or system issues | Check session timer and prepaid balance settings |
| ๐ Short callee hangup | Callee hangup with holdTime under 5s | Called parties rejecting calls โ possible CLI or spam issue | Review caller ID presentation and traffic source |
| ๐จ Short caller hangup | Caller hangup with holdTime under 3s | One-way audio or wrong number โ callers hanging up immediately | Check audio quality on affected routes |
๐ End Direction by Gateway Analysis
๐ก Segmenting end direction data by gateway (using the callerGatewayId and calleeGatewayId fields) reveals gateway-specific quality issues. A gateway that shows an unusually high percentage of server-initiated hangups (endDirection = 2) may have connectivity problems causing session timer expirations. A gateway with a high proportion of short-duration callee hangups may be routing traffic to low-quality destinations where end users reject the calls. This gateway-level analysis supports data-driven routing decisions and helps you identify which carriers deliver the best call completion quality. For gateway performance monitoring techniques, see our gateway analysis reports guide.
๐ End Direction and Session Timer Interaction
โฑ๏ธ One of the most important operational interactions is between the VOS3000 CDR end direction and the SIP session timer system. When session timers are enabled, VOS3000 periodically sends re-INVITE messages to refresh the session. If the re-INVITE fails (the endpoint does not respond), VOS3000 terminates the call โ and the endDirection will be 2 (server). This is a common scenario for calls that “mysteriously drop” after a fixed interval.
| Session Timer Scenario | End Direction | End Reason | Resolution |
|---|---|---|---|
| โ Re-INVITE succeeds | 0 or 1 (normal) | 200 OK | Call continues until party hangs up |
| โ ๏ธ Re-INVITE fails (NAT issue) | 2 (server) | 408 or timeout | Check NAT keepalive settings |
| ๐ง No session timer support | 2 (server) | Session expiry | Configure SS_SIP_NO_TIMER_REINVITE_INTERVAL |
| ๐ฐ Prepaid balance depleted | 2 (server) | 200 OK (normal clear) | Expected behavior for prepaid accounts |
๐ก Investigating mysterious drops: If customers report calls dropping at consistent intervals (e.g., always at 30 minutes or 2 hours), check the SIP session timer configuration. The session timer interval, combined with the SS_SIP_SESSION_UPDATE_SEGMENT parameter, determines when VOS3000 sends re-INVITE refreshes. If the endpoint does not support session timers and SS_SIP_NO_TIMER_REINVITE_INTERVAL is not configured, VOS3000 may terminate the call after the session timer expires โ resulting in endDirection = 2.
๐ก๏ธ Common End Direction Analysis Problems and Solutions
โ Problem 1: Excessive Server Hangups (endDirection = 2)
๐ Symptom: A high percentage of CDRs show endDirection = 2, indicating the server is terminating many calls.
๐ก Cause: Multiple factors can cause excessive server hangups: session timer misconfiguration, NAT traversal failures causing re-INVITE timeouts, prepaid accounts frequently running out of balance, or RTP timeout detecting dead media streams.
โ Solutions:
- โฑ๏ธ Review SIP session timer settings โ ensure SS_SIP_NO_TIMER_REINVITE_INTERVAL provides a safety net for non-timer endpoints
- ๐ Check NAT keepalive settings โ failed re-INVITEs through NAT firewalls are a leading cause of server-initiated hangups
- ๐ฐ Verify prepaid balance thresholds โ the mid-call balance warning should alert users before their balance is depleted
- ๐ก Monitor RTP timeout settings that may be too aggressive for legitimate silent periods in calls
โ Problem 2: Billing Disputes Where Customer Claims Call Dropped
๐ Symptom: Customer disputes a charge, claiming the call dropped unexpectedly, but the CDR shows endDirection = 0 (caller hangup) with a substantial holdTime.
๐ก Cause: The customer may have accidentally ended the call, or their SIP device may have sent a BYE due to a local issue (not a server-side drop). The CDR end direction provides the objective evidence.
โ Solutions:
- ๐ Present the endDirection = 0 record to the customer as evidence that their device initiated the hangup
- ๐ Cross-reference with callerIp to confirm the call originated from the customer’s registered device
- ๐ Compare the holdTime with the customer’s claim about call duration
- ๐ For endDirection = 2 cases, explain the server termination reason (balance exhaustion, session timeout, etc.)
โ Problem 3: Short Callee Hangups Indicating Traffic Quality Issues
๐ Symptom: High volume of endDirection = 1 records with very short holdTime values on a specific route or gateway.
๐ก Cause: The called parties are answering and immediately hanging up. This can indicate wrong-number calls, CLI (Caller Line Identification) not being presented correctly, or the traffic being perceived as spam by the called parties.
โ Solutions:
- ๐ Verify that the caller ID being presented to the called party is correct and recognizable
- ๐ง Check the caller ID management configuration for the affected mapping gateway
- ๐ Analyze the geographic distribution of short callee hangups to identify specific regions or carriers with quality issues
- ๐ Consider routing adjustments to avoid low-quality termination carriers
๐ก End Direction Best Practices
๐ฏ Follow these best practices to maximize the value of VOS3000 CDR end direction data in your operations:
| Best Practice | Recommendation | Reason |
|---|---|---|
| ๐ Always enable server hangup CDR recording | Set SERVER_BILLING_RECORD_SERVER_HANG_UP = On | ๐ Complete audit trail of all call terminations |
| ๐ Monitor end direction distribution weekly | Track % of codes 0, 1, 2 across all traffic | ๐ Early detection of quality and configuration issues |
| ๐ฐ Use end direction in billing dispute workflows | Include endDirection in dispute resolution SOP | ๐ก๏ธ Objective evidence resolves disputes faster |
| ๐ก Segment by gateway for quality analysis | Analyze end direction per routing gateway | ๐ง Data-driven carrier selection and route optimization |
| โฑ๏ธ Correlate endDirection = 2 with session timer | Match server hangups to timer expiry patterns | ๐ง Identifies NAT and timer configuration problems |
โ Frequently Asked Questions
โ What does VOS3000 CDR end direction 2 mean?
๐ฅ๏ธ A VOS3000 CDR end direction of 2 means the VOS3000 server initiated the call termination. This occurs when the softswitch actively ends the call, rather than either endpoint (caller or callee) hanging up. Common reasons include: prepaid account balance exhaustion (the server terminates the call when funds run out), SIP session timer expiry (the server did not receive a successful re-INVITE refresh), administrative disconnect by the operator, maximum call duration limit reached, or RTP media timeout detecting a dead media stream. The endDirection = 2 code is documented in the VOS3000 manual ยง4.4 (page 242) as “server” hangup side.
โ How do I determine why a server hangup occurred?
๐ To determine the specific reason for a server-initiated hangup (endDirection = 2), cross-reference the endDirection field with the endReason field (Field 6) in the same CDR record. The endReason provides the SIP response code or cause code that explains why the call was terminated. For example, endDirection = 2 with endReason = 200 typically indicates a normal server-initiated clear (such as balance exhaustion or maximum duration). EndDirection = 2 with endReason = 408 indicates a timeout. Combining these two fields gives you the complete picture of who ended the call and why.
โ Does endDirection affect billing calculations?
๐ฐ The endDirection field itself does not directly change billing calculations โ the holdTime field determines the billable duration regardless of who hung up. However, endDirection has indirect billing implications. When endDirection = 2 (server hangup), the call may have been terminated before the natural conversation end, which can lead to customer disputes. When analyzing billing data, filtering by endDirection helps you understand the nature of your call completions and identify patterns that affect revenue, such as premature server terminations due to balance exhaustion on prepaid accounts.
โ Can the endDirection value be incorrect?
๐ง In rare cases, the endDirection may not accurately reflect the true termination party. This can happen when a SIP ALG (Application Layer Gateway) or intermediate proxy modifies the BYE message direction, or when a gateway sends a BYE on behalf of an endpoint (making it appear as a callee hangup when the caller actually hung up). If you suspect endDirection inaccuracy, enable SIP debug tracing to capture the actual BYE message flow and verify which IP address sent the termination signal. Check our SIP debug guide for instructions on capturing and analyzing SIP message traces.
โ How is endDirection different from endReason in VOS3000 CDR?
๐ The endDirection field (Field 7) tells you who terminated the call โ caller (0), callee (1), or server (2). The endReason field (Field 6) tells you why the call was terminated โ using SIP response codes (200, 486, 503, etc.) or Q.850 cause codes. These two fields answer different questions and must be analyzed together for the complete picture. For example, endDirection = 0 with endReason = 200 means the caller hung up normally. EndDirection = 2 with endReason = 200 means the server terminated the call normally (likely due to balance exhaustion or duration limit). EndDirection = 1 with endReason = 486 means the callee rejected the call with a busy signal.
โ Should I always record CDRs for server-initiated hangups?
๐ Yes, it is strongly recommended to record CDRs for server-initiated hangups by setting SERVER_BILLING_RECORD_SERVER_HANG_UP = On. Without these records, your CDR data has gaps โ you lose visibility into calls that the server terminated, which are often the most operationally significant calls (balance exhaustion, session timeouts, administrative actions). These records are essential for billing dispute resolution, quality analysis, and system health monitoring. The zero-duration CDR control parameter (SERVER_BILLING_RECORD_ZERO_HOLD_TIME) serves a different purpose โ it controls whether failed call attempts are recorded, while SERVER_BILLING_RECORD_SERVER_HANG_UP specifically addresses server-initiated terminations.
๐ Need Expert Help with VOS3000 CDR End Direction?
๐ง Understanding and analyzing VOS3000 CDR end direction data is essential for billing accuracy, quality monitoring, and operational intelligence. Whether you are investigating server-initiated hangups, resolving billing disputes, or building a call quality dashboard, expert guidance ensures your analysis is accurate and actionable. ๐
๐ฌ WhatsApp: +8801911119966 โ Get immediate assistance with VOS3000 CDR end direction analysis, billing dispute resolution, and call quality monitoring. Our team specializes in VOS3000 CDR analytics, billing system optimization, and VoIP quality assurance. ๐ง
๐ Explore related VOS3000 CDR and call quality guides:
- VOS3000 Call Termination Reasons โ Complete reference for endReason codes that complement endDirection analysis
- VOS3000 Server Hangup CDR โ Configuring SERVER_BILLING_RECORD_SERVER_HANG_UP for complete audit trails
- VOS3000 CDR Analysis and Billing โ Comprehensive CDR analysis methodology for revenue optimization
- VOS3000 Zero Duration CDR โ Managing zero-duration call records during attacks and normal operations
- VOS3000 Session Timer โ SIP session timer configuration that affects server-initiated hangups
- VOS3000 ASR ACD Analysis โ Using ASR and ACD metrics alongside end direction for quality assessment
๐ 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
![]() | ![]() | ![]() |




