Hanging & Deadlocked Channel Scrubbing
Hanging & Deadlocked Channel Scrubbing
To prevent stale voice sessions from accumulating across server network ports, Asterisk 2 runs automated Channel Garbage Collectors. The service identifies non-communicative call paths to clear abandoned hardware slots automatically.
Deadlock Detection & Scrubbing Pipeline
The chart below details the maintenance sweep isolating disconnected telephone endpoints:
graph TD
%% Sweeper
subgraph MaintenanceCron["Background Garbage Collection"]
TriggerSweep["Active Channel Monitor Task<br/>(Executes Sweep Every 60 Seconds)"]
end
%% Evaluation
subgraph SessionCheck["Telemetry Audit Layer"]
CheckState["Audit Cached Channel Inactivity<br/>(Last Received Signaling Frame > 3600s)"]
end
%% Drop Target
subgraph TeardownTarget["API Termination Engine"]
ExecPurge["DELETE /ari/channels/{id}<br/>(Force Channel Dissolution)"]
end
%% Links
TriggerSweep ==>|"Query Concurrent Cache Maps"| CheckState
CheckState ==>|"Unresponsive Timeframe Identified"| ExecPurge
%% High-Contrast Theming Palette
classDef cronToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
classDef chkToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;
classDef dropToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;
class MaintenanceCron,TriggerSweep cronToken;
class SessionCheck,CheckState chkToken;
class TeardownTarget,ExecPurge dropToken;
Automated Scrubbing Parameters
1. Absolute Maximum Duration Bounds
To completely prevent orphaned telephone connections from locking GSM gateway channels overnight, global background configurations enforce absolute duration caps. Any individual voice session running past 4 hours continuous connection triggers automatic termination sweeps.
2. Stasis Context Cleanup Triggers
If client socket disconnects drop without firing normal websocket signaling frames, maintenance loops sweep operational channel lists to force memory cleanup across mapped dictionaries.