Session Memory & Dynamic Variables
Session Memory & Dynamic Variables
To execute stateful logic workflows across live telephone calls, Asterisk 2 configures short-lived Session Memory Caches. The framework scopes key-value properties to individual caller interactions, facilitating dynamic decision branching during complex IVR traversals.
Distributed Session Persistence Topology
The layout below illustrates how caller inputs map directly into multi-layered session variable layers:
graph TD
%% Caller Ingress
subgraph TelecomEdge["Active Channel Interfaces"]
InputTone["Inbound Audio Channel<br/>(Client DTMF Entry: '90210')"]
end
%% Engine Dispatcher
subgraph StagingContext["Scoped Session ledgers"]
CacheVolatile["In-Memory Call Context<br/>(Attached to Active UUID: ast_channel_a)"]
CacheDistributed[("Distributed Redis Hash<br/>(Preserves Cross-Call Attributes)")]
end
%% Consumption Tier
subgraph LogicTarget["Evaluating Logic Nodes"]
EvalJump["Switch Logic Evaluator<br/>(Branch Rule: ZipCode == '90210')"]
end
%% Links
InputTone ==>|"Write Scoped Key"| CacheVolatile
CacheVolatile <-->|"Sync Critical Tokens"| CacheDistributed
CacheVolatile ==>|"Resolve Evaluation Variable"| EvalJump
%% Dark Mode High-Contrast System
classDef edgeToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
classDef cacheToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;
classDef targetToken fill:#065f46,stroke:#10b981,stroke-width:2px,color:#fff,rx:6px,ry:6px;
class TelecomEdge,InputTone edgeToken;
class StagingContext,CacheVolatile,CacheDistributed cacheToken;
class LogicTarget,EvalJump targetToken;
Memory Framework Rules
1. Zero-Leak Memory Bounds
Transient variables attached to volatile call contexts (ast_channel_a) are completely restricted to session lifespans. As soon as base telecom connections drop, application contexts clear allocated dictionaries instantaneously.
2. Cross-Node Multi-Tenant Isolation
Scoped variables use deterministic key combinations pairing base caller IDs with explicit organization credentials (org_id:session_id:key), preventing internal state mix-ups across separate client tenants.