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.