π What happens when you restart your VOS3000 softswitch? Does the upstream SIP server still think you are registered, holding stale registration entries that could cause misrouted calls or ghost registrations? The answer depends on a single but critical parameter: SS_SIP_USER_AGENT_SEND_UNREGISTER, which controls the VOS3000 SIP send unregister behavior. When enabled (the default), VOS3000 sends a cancel register message to upstream servers during shutdown or restart β cleanly removing your registration state before the softswitch goes offline. π‘οΈ
π‘ Whether you are performing scheduled maintenance, restarting services after configuration changes, or migrating your VOS3000 server to new hardware, the VOS3000 SIP send unregister parameter determines whether upstream carriers and SIP proxies receive proper notification that your registration is being withdrawn. Without this cleanup, the upstream server may continue routing calls to your softswitch for the duration of the remaining registration expiry β leading to failed calls, lost revenue, and confused SIP signaling states. This guide covers every aspect of the SS_SIP_USER_AGENT_SEND_UNREGISTER parameter, from its default On setting to related registration parameters like SS_SIP_USER_AGENT_EXPIRE, SS_SIP_USER_AGENT_RETRY_DELAY, and system-level parameters such as SS_ENDPOINT_REGISTER_REPLACE. π―
π§ All data in this guide is sourced exclusively from the official VOS3000 V2.1.9.07 Manual, Section 4.3.5.2 (Tables 4-3 and 4-4) β no fabricated values, no guesswork. For expert assistance with your VOS3000 deployment, contact us on WhatsApp at +8801911119966. π‘
π The VOS3000 SIP send unregister feature controls whether VOS3000 sends a SIP REGISTER request with an expiration of zero (0) to upstream servers when the softswitch is stopping or restarting. This is commonly known as a βcancel register messageβ or βde-registration.β The parameter is governed by SS_SIP_USER_AGENT_SEND_UNREGISTER with a default value of On and two possible options: On or Off. π
π According to the official VOS3000 V2.1.9.07 Manual, Table 4-3:
| Attribute | Value |
|---|---|
| π Parameter Name | SS_SIP_USER_AGENT_SEND_UNREGISTER |
| π’ Default Value | On |
| π Options | On / Off |
| π Description | Send Cancel Register Message |
| π Navigation | Operation management β Softswitch management β Additional settings β SIP parameter |
π‘ Key insight: This parameter applies specifically to VOS3000βs outbound SIP registration β when VOS3000 acts as a SIP User Agent registering to another server (such as an upstream carrier or SIP trunk provider). It does not control how VOS3000 handles inbound de-registrations from your own endpoints. For inbound registration handling, see our VOS3000 SIP registration configuration guide. π‘
β οΈ Without proper unregister behavior, several critical problems can arise:
π Understanding the unregister mechanism requires knowing how SIP registration and de-registration work at the protocol level. When SS_SIP_USER_AGENT_SEND_UNREGISTER is set to On, VOS3000 sends a REGISTER request with the Contact header Expires parameter set to 0 β this is the standard SIP mechanism for canceling a registration. π‘
π VOS3000 SIP Send Unregister β Clean Shutdown Flow:
VOS3000 ββββ REGISTER (Expires: 3600) βββββΊ Upstream SIP Server
β β
ββββββββββββββ 200 OK ββββββββββββββββββββββ β
Registered
β β
β ... softswitch running normally ... β
β β
β β VOS3000 shutdown/restart initiated β
β β
VOS3000 ββββ REGISTER (Expires: 0) βββββββββΊ Upstream SIP Server
β (Cancel Register Message) β
β β
ββββββββββββββ 200 OK ββββββββββββββββββββββ β
Registration removed
β β
β π Clean shutdown β no stale entries! β
βββββββββββββββββββββββββββββββββββββββββββββ
π Key behavior: The cancel register message is sent before VOS3000 fully stops its SIP stack. This means the softswitch must still have network connectivity when the shutdown process begins. If VOS3000 is killed abruptly (power loss, kill -9), the unregister message may not be sent, regardless of the parameter setting. β‘
β οΈ When this parameter is set to Off, VOS3000 simply stops without sending any cancel register message. The upstream server retains the registration entry until it naturally expires based on the SS_SIP_USER_AGENT_EXPIRE value. Here is the problematic scenario: π§
β οΈ VOS3000 SIP Send Unregister OFF β Stale Registration Problem:
VOS3000 ββββ REGISTER (Expires: 3600) βββββΊ Upstream SIP Server
β β
ββββββββββββββ 200 OK ββββββββββββββββββββββ β
Registered
β β
β β VOS3000 shutdown β NO unregister sent β
β β
β βββββββββββββββββββββββββββββββββββββββ β
β β Upstream server still has: β β
β β π Registration: VOS3000 β Active β β
β β β±οΈ Expires in: ~3600 seconds β β
β β π Routing: Calls β VOS3000 IP β β
β βββββββββββββββββββββββββββββββββββββββ β
β β
β Incoming call arrives βββΊ Routed to β
β offline VOS3000 βββΊ β Call fails! β
β β
β ... waiting for expiry (up to 3600s) ...β
β β
β π VOS3000 restarts, sends new REGISTER β
β β
Registration restored (replaces old) β
βββββββββββββββββββββββββββββββββββββββββββββ
π‘ Critical observation: The duration of the stale registration depends on SS_SIP_USER_AGENT_EXPIRE. If the expiry is set to 3600 seconds (1 hour) and VOS3000 shuts down without sending unregister, the upstream server will consider the registration valid for up to 1 hour β during which all incoming calls to that registration will fail. For more on registration expiry, see our outbound registration SIP guide. π‘
π The VOS3000 SIP send unregister parameter does not operate in isolation. It is part of a family of User Agent parameters that control outbound registration behavior. Understanding their interactions is essential for proper configuration. π οΈ
| Parameter | Default | Range / Options | Description |
|---|---|---|---|
| SS_SIP_USER_AGENT_SEND_UNREGISTER | On | On / Off | Send cancel register message on shutdown/restart |
| SS_SIP_USER_AGENT_EXPIRE | Auto Negotiation | 20β7200s | SIP registration expiration time to other server |
| SS_SIP_USER_AGENT_RETRY_DELAY | 60 | 30β600s | Resend interval for SIP registration when failed |
| SS_SIP_USER_AGENT_PRIVACY | Ignore | Ignore / Id / None | Privacy setting for register user |
| SS_SIP_USER_AGENT_STOP_SWITCH_AFTER_INVITE_TIMEOUT | Off | On / Off | Stop switch gateway after INVITE timeout |
π All parameters are located at: Operation management β Softswitch management β Additional settings β SIP parameter. For the complete parameter reference, see our VOS3000 parameter description guide. π
β οΈ A common source of confusion is the difference between sending an unregister and letting a registration expire naturally. Here is the critical distinction: π―
| Aspect | SIP Send Unregister (Expires: 0) | Registration Natural Expiry |
|---|---|---|
| π Mechanism | Explicit REGISTER with Expires=0 | No refresh sent; server times out |
| β±οΈ Effectiveness | Immediate β server removes registration instantly | Delayed β server waits until expiry timer completes |
| π‘ Control | VOS3000 actively signals intent to unregister | VOS3000 passively allows registration to lapse |
| π‘οΈ Stale State Risk | None β registration removed on 200 OK | High β registration lingers until Expiry timer ends |
| π§ Trigger | VOS3000 shutdown or restart (if parameter is On) | VOS3000 stops sending refresh REGISTER |
π‘ Simple rule: Sending unregister is an active, immediate cleanup. Letting registration expire is a passive, delayed cleanup. Always prefer active unregister for clean server state management. For more details on registration expiry, see our VOS3000 system parameters reference. π‘
π While SS_SIP_USER_AGENT_SEND_UNREGISTER controls the timing of VOS3000βs outbound de-registration, VOS3000 also provides system-level parameters that govern how inbound terminal registrations are handled. These are documented in Table 4-4 of the VOS3000 manual: π
| Parameter | Default | Description |
|---|---|---|
| SS_ENDPOINT_REGISTER_REPLACE | On | Allow replace current registered users when terminal registration |
| SS_ENDPOINT_REGISTER_RETRY | 6 | Max retry times when terminal registration |
| SS_ENDPOINT_REGISTER_SUSPEND | 180 | Disable duration after exceeding retry times |
π§ How these relate to unregister: When VOS3000 restarts after a clean shutdown with unregister sent, and then sends a new REGISTER to the upstream server, SS_ENDPOINT_REGISTER_REPLACE (default: On) on the upstream side allows the new registration to replace any remaining stale entry. This is important because even with unregister sent, network conditions may cause the cancel register message to be lost. If SS_ENDPOINT_REGISTER_REPLACE is On on the receiving server, the new registration cleanly overrides the old one. π
π For detailed configuration of endpoint registration behavior and suspension, see our VOS3000 authentication suspend guide. For registration flood protection, refer to our VOS3000 registration flood article. π
π₯οΈ Beyond the SIP parameters, VOS3000 provides specific registration management settings for each outbound registration configured on the softswitch. These settings are documented on pages 106-107 of the VOS3000 manual and directly interact with the SS_SIP_USER_AGENT_SEND_UNREGISTER behavior: π‘
| Setting | Options | Relevance to Unregister |
|---|---|---|
| π‘ Signaling port | Configurable port number | Cancel register message uses the same signaling port |
| π₯οΈ Host name | FQDN or IP address | Identifies VOS3000 in the unregister Contact header |
| π Sip proxy | Address of the SIP route | Cancel register is sent to the same SIP proxy |
| π Register period | Default or Auto negotiation | Determines how long stale registration persists if unregister fails |
| π Authentication user | Username for SIP auth | Cancel register uses same credentials (401/407 challenge-response) |
π‘ Important note: The cancel register message must pass through the same SIP proxy and authenticate with the same credentials as the original registration. If authentication fails for the cancel register, the upstream server will not remove the registration entry, leaving a stale state. For more on SIP authentication, see our VOS3000 SIP authentication guide. π
π₯οΈ The behavior of VOS3000 during shutdown varies significantly based on how the softswitch is stopped and the state of SS_SIP_USER_AGENT_SEND_UNREGISTER. Here is a comprehensive analysis: π
π Understanding the practical difference between the two settings requires examining what happens in various shutdown and restart scenarios: π
| Scenario | SS_SIP_USER_AGENT_SEND_UNREGISTER = On | SS_SIP_USER_AGENT_SEND_UNREGISTER = Off |
|---|---|---|
| π§ Planned restart | β Cancel REGISTER sent β Clean removal | β No cancel sent β Stale entry remains |
| β‘ Service crash | β οΈ Cancel may not be sent (no graceful shutdown) | β οΈ No cancel sent (same as On, since crash is ungraceful) |
| π Power loss | β Cancel cannot be sent | β Cancel cannot be sent |
| π‘οΈ Network outage before shutdown | β οΈ Cancel sent but may not reach server | β No cancel sent |
| π Rapid restart (within seconds) | β Old registration removed, new one sent | β οΈ New REGISTER may conflict with stale entry |
| π Configuration change and restart | β Clean state for new configuration | β Old registration may interfere with new settings |
π― Conclusion: Keeping SS_SIP_USER_AGENT_SEND_UNREGISTER set to On (the default) is strongly recommended for all deployments. The only scenario where it provides no benefit is an abrupt crash or power loss β which is the same outcome as having it Off. In all planned shutdown and restart scenarios, On provides clean registration cleanup. For a complete SIP call flow reference, see our VOS3000 SIP call flow guide. π‘
βοΈ Follow these steps to configure the VOS3000 SIP send unregister parameter on your system:
π After configuration, verify the unregister behavior is working correctly by monitoring the SIP registration flow during a controlled restart. For comprehensive debugging techniques, see our VOS3000 troubleshooting guide. π§
π Verifying VOS3000 SIP Send Unregister During Shutdown:
VOS3000 ββββ REGISTER (Expires: 3600) βββββΊ Upstream Server
β β
ββββββββββββββ 200 OK ββββββββββββββββββββββ β
Active registration
β β
β β Administrator initiates VOS3000 stop β
β β
VOS3000 ββββ REGISTER (Expires: 0) βββββββββΊ Upstream Server
β Contact: sip:user@vos3000-ip:5060 β
β (Cancel Register Message) β
β β
ββββββ 401 Unauthorized βββββββββββββββββββββ (auth challenge)
β β
VOS3000 ββββ REGISTER (Expires: 0) βββββββββΊ Upstream Server
β Authorization: Digest username=... β
β (Cancel with credentials) β
β β
ββββββββββββββ 200 OK ββββββββββββββββββββββ β
Registration removed!
β β
βββ π Clean shutdown confirmed β no stale entries
π‘ Verification tip: The cancel register message goes through the same authentication challenge (401/407) as the original registration. This is standard SIP behavior β even de-registration requires proper authentication. If you see the REGISTER with Expires: 0 followed by a 200 OK in your SIP trace, the unregister is working correctly. π‘
π― Different VoIP deployment scenarios may have different requirements for unregister behavior. Here are our recommendations based on real-world deployment experience and VOS3000 manual specifications: π‘
| Deployment Type | Recommended Setting | Rationale |
|---|---|---|
| π Primary SIP trunk (carrier) | β On (default) | Essential β stale registrations cause incoming call failures during maintenance |
| π’ Enterprise SIP trunk | β On (default) | Clean state management prevents call routing confusion during restarts |
| π Wholesale VoIP (multi-vendor) | β On (default) | Multiple upstream carriers must all receive clean unregister to avoid ghost routes |
| π‘ Backup/secondary trunk | β On (default) | Even backup trunks should clean up registration to prevent call misrouting |
| π High-availability cluster | β On (default) | Critical β failover depends on clean registration state transitions |
| π§ͺ Test/lab environment | β οΈ Off (optional) | May be disabled for testing registration expiry behavior and stale state scenarios |
β οΈ Strong recommendation: Keep SS_SIP_USER_AGENT_SEND_UNREGISTER set to On in all production deployments. The default setting is correct for virtually every scenario. Disabling it should only be done intentionally for testing purposes. For more on call routing strategies, see our VOS3000 call routing guide. π‘οΈ
β οΈ Even with SS_SIP_USER_AGENT_SEND_UNREGISTER enabled, several issues can arise. Here are the most common problems and their solutions:
π Symptom: VOS3000 sends the unregister, but the upstream server still has the registration entry after VOS3000 restarts. Incoming calls may be routed to the old contact.
π‘ Cause: Network conditions or firewall rules may prevent the cancel register message from reaching the upstream server. The unregister REGISTER with Expires: 0 may be lost due to UDP unreliability or blocked by a firewall during the shutdown sequence.
β Solutions:
π Symptom: VOS3000 sends the cancel register, but receives a 403 Forbidden or repeated 401/407 challenges that cannot be completed before shutdown finishes.
π‘ Cause: The authentication credentials stored in VOS3000 may not match the upstream serverβs current requirements, or the shutdown process does not allow enough time for the full authentication handshake.
β Solutions:
π Symptom: VOS3000 crashes (process killed, power loss) and the upstream server retains the registration entry for the full expiry duration.
π‘ Cause: An abrupt crash prevents VOS3000 from sending the cancel register message, regardless of the SS_SIP_USER_AGENT_SEND_UNREGISTER setting. This is an inherent limitation of the SIP protocol β there is no way to send an unregister after a crash.
β Solutions:
π Symptom: Two VOS3000 instances register to the same upstream server with the same credentials. When one shuts down with unregister, it cancels the other instanceβs registration.
π‘ Cause: Both instances use the same SIP user credentials and register to the same SIP proxy. The cancel register from one instance removes the registration that the other instance depends on. π
β Solutions:
π Here is the complete reference for all parameters that govern SIP registration behavior in VOS3000 β both outbound (User Agent) and inbound (Endpoint): π
| Parameter | Default | Direction | Function |
|---|---|---|---|
| SS_SIP_USER_AGENT_SEND_UNREGISTER | On | Outbound | Send cancel register on shutdown/restart |
| SS_SIP_USER_AGENT_EXPIRE | Auto (20β7200s) | Outbound | Registration validity period |
| SS_SIP_USER_AGENT_RETRY_DELAY | 60s | Outbound | Wait time before re-registering after failure |
| SS_SIP_USER_AGENT_PRIVACY | Ignore | Outbound | Privacy setting for register user |
| SS_SIP_USER_AGENT_STOP_SWITCH_AFTER_INVITE_TIMEOUT | Off | Outbound | Stop switch gateway after INVITE timeout |
| SS_ENDPOINT_REGISTER_REPLACE | On | Inbound | Allow replace current registered users |
| SS_ENDPOINT_REGISTER_RETRY | 6 | Inbound | Max retry times for terminal registration |
| SS_ENDPOINT_REGISTER_SUSPEND | 180s | Inbound | Disable duration after exceeding retries |
π§ For complete documentation on all SIP parameters, see our VOS3000 parameter description reference. π
β Use this checklist when deploying or verifying your VOS3000 SIP send unregister settings:
| Check | Action | Status |
|---|---|---|
| π 1 | Verify SS_SIP_USER_AGENT_SEND_UNREGISTER is On (default) in SIP parameters | β |
| π 2 | Set appropriate SS_SIP_USER_AGENT_EXPIRE (shorter = less stale time after crash) | β |
| π 3 | Configure SS_SIP_USER_AGENT_RETRY_DELAY for post-restart re-registration timing | β |
| π 4 | Verify Authentication user credentials match upstream server requirements | β |
| π 5 | Test graceful shutdown and verify cancel register in SIP debug trace | β |
| π 6 | Configure backup vendor gateways for failover during restart periods | β |
| π 7 | Verify SS_ENDPOINT_REGISTER_REPLACE is On on upstream server (allows clean override) | β |
| π 8 | Document expected stale registration window (based on EXPIRE value) for incident response | β |
π The default setting for VOS3000 SIP send unregister is On, configured via the SS_SIP_USER_AGENT_SEND_UNREGISTER parameter. When set to On, VOS3000 automatically sends a cancel register message (REGISTER with Expires: 0) to all upstream SIP servers during a graceful shutdown or restart. This ensures that registration entries are removed from the upstream server immediately, preventing stale registration states and misrouted calls. The default On setting is recommended for all production deployments. π§
β οΈ In virtually all production scenarios, you should keep this parameter at its default value of On. The only cases where you might consider setting it to Off are: (1) Testing environments where you want to observe stale registration behavior, (2) Troubleshooting upstream server registration replacement issues, or (3) Very specific carrier requirements where the upstream server does not support de-registration. Disabling unregister in production will cause stale registrations to persist after every restart, leading to call routing failures. For help evaluating your specific scenario, contact us on WhatsApp at +8801911119966. π‘
β‘ If VOS3000 crashes abruptly (power loss, kill -9, kernel panic), the cancel register message cannot be sent regardless of the SS_SIP_USER_AGENT_SEND_UNREGISTER setting. The unregister mechanism only works during a graceful shutdown where VOS3000 has time to send the REGISTER with Expires: 0 before the SIP stack stops. After an abrupt crash, the upstream server will retain the stale registration until the expiry timer (governed by SS_SIP_USER_AGENT_EXPIRE) elapses. Using shorter expiry values (e.g., 300s instead of 3600s) limits the maximum stale registration duration after a crash. π§
π Yes, the cancel register message (REGISTER with Expires: 0) typically goes through the same authentication process as a normal registration. When VOS3000 sends the cancel register, the upstream server will usually respond with a 401 Unauthorized or 407 Proxy Authentication Required challenge, and VOS3000 must resend the cancel register with proper credentials. This is standard SIP behavior per RFC 3261. The Authentication user configured in the gateway settings must match the upstream serverβs requirements for the cancel register to succeed. For more on SIP authentication, see our VOS3000 SIP authentication guide. π‘
β±οΈ The SS_SIP_USER_AGENT_EXPIRE parameter determines how long a successful registration remains valid on the upstream server. If VOS3000 shuts down without sending unregister (parameter Off or crash), the stale registration persists for the remaining expiry duration. With the default Auto Negotiation setting, the expiry is typically negotiated between VOS3000 and the upstream server within the range of 20β7200 seconds. Shorter expiry values mean stale registrations clear faster, while longer values increase the risk window. If you want to minimize stale registration impact, use a shorter fixed expiry (e.g., 300 seconds) and keep unregister On. π
π‘ Yes, since SIP commonly uses UDP transport, the cancel register message can be lost. If VOS3000 sends the cancel register but the upstream server never receives it, the registration entry will persist until the expiry timer elapses. To mitigate this: (1) Use TCP transport for SIP if supported by the upstream server, (2) Verify the cancel register reaches the server using SIP debug traces, (3) Configure backup vendor gateways so calls continue through alternative paths during the stale period, and (4) Rely on SS_ENDPOINT_REGISTER_REPLACE (On) on the upstream server to allow the new registration after restart to override any stale entry. For complete troubleshooting guidance, see our VOS3000 troubleshooting guide. π§
π A cancel register is a standard SIP REGISTER request with the Contact header Expires parameter set to 0. This tells the registrar server to remove the binding immediately. The message includes the same Call-ID, From tag, and To tag as the original registration (per RFC 3261 requirements for registration updates). VOS3000 handles this automatically when SS_SIP_USER_AGENT_SEND_UNREGISTER is On β no manual message construction is needed. For more on SIP message flows, see our VOS3000 SIP call flow guide. π‘
π Explore these related VOS3000 guides for comprehensive softswitch configuration:
π Need expert help with your VOS3000 SIP send unregister configuration or registration cleanup? Contact us on WhatsApp at +8801911119966 for professional assistance with your VoIP softswitch deployment. π
For professional VOS3000 installations and deployment, VOS3000 Server Rental Solution:
π± WhatsApp: +8801911119966
π Website: www.vos3000.com
π Blog: multahost.com/blog
π₯ Downloads: VOS3000 Downloads
VOS3000 LRN number portability configuration for accurate US carrier lookup. Enable LRN query mode, handle…
VOS3000 server end reasons reference with all 25 codes. Understand call termination causes in CDRs…
VOS3000 LRN server configuration with SS_LRN_SERVER_IP and PORT parameters. Set up external LRN dip server…
VOS3000 H323 Q850 cause codes reference with 60+ ITU-T codes. Map Q.850 values to SIP…
VOS3000 SIP response codes CDR reference with 30+ codes. Understand 1xx through 6xx SIP responses…
Master VOS3000 SIP publish expire with SS_SIP_PUBLISH_EXPIRE. Configure 30-7200s timeout for gateway concurrency control, PUBLISH…