Back to page

Stasis Action Dispatch Mapping

Raw Markdown & AI/RAG Chunks
Raw Markdown Source 2260 chars
# Stasis Action Dispatch Mapping

To execute visual node graphs across telecommunication networks, **Asterisk 2** maps abstract interface elements down into standard **Asterisk REST Interface (ARI)** commands. The framework converts UI layouts into real native stasis execution frames.

---

## Dynamic API Frame Conversion Topology

The layout below illustrates how abstract workspace modules generate physical API output instructions:

```mermaid
graph LR
    %% Visual Model
    subgraph CanvasSource["Visual Layout Context"]
        NodePlay["Playback Shape block<br/>(File: 'welcome.wav')"]
        NodeCollect["Input Shape block<br/>(MaxDigits: 4)"]
    end

    %% Engine Dispatcher
    subgraph TranslationCore["Stasis Dispatcher Class"]
        MapPlay["POST /ari/channels/{id}/play<br/>(Inject Audio Container)"]
        MapCollect["POST /ari/channels/{id}/play<br/>(Stream prompt & await DTMF event)"]
    end

    %% Underlying Engine
    subgraph AsteriskKernel["Asterisk Channel Engine"]
        ExecMedia["res_stasis Execution Engine<br/>(Handles Physical Audio Streams)"]
    end

    %% Paths
    NodePlay ==>|"Translate Action"| MapPlay
    NodeCollect ==>|"Translate Action"| MapCollect
    MapPlay ==>|"Push Network Frame"| ExecMedia
    MapCollect ==>|"Push Network Frame"| ExecMedia

    %% Aesthetic Color Schemes
    classDef srcToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef coreToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef kernelToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;

    class CanvasSource,NodePlay,NodeCollect srcToken;
    class TranslationCore,MapPlay,MapCollect coreToken;
    class AsteriskKernel,ExecMedia kernelToken;
```

---

## Synthesized API Frame Output Specs

### 1. Interactive Sound Playback Requests
Maps user sound strings down into explicit network frame formats:
```json
{
  "media": "sound:welcome.wav",
  "lang": "en",
  "playbackId": "play_node_01"
}
```

### 2. Dynamic Tone Staging Loops
To gather push-button digit sequences, runtime workers stream introductory prompts and register targeted listener handlers targeting inbound `ChannelDtmfReceived` socket payloads automatically.
AI Chunks (RAG) 3 chunks
Chunk #1 Stasis Action Dispatch Mapping
# Stasis Action Dispatch Mapping

To execute visual node graphs across telecommunication networks, **Asterisk 2** maps abstract interface elements down into standard **Asterisk REST Interface (ARI)** commands. The framework converts UI layouts into real native stasis execution frames.

---
Chunk #2 Dynamic API Frame Conversion Topology
## Dynamic API Frame Conversion Topology

The layout below illustrates how abstract workspace modules generate physical API output instructions:

```mermaid
graph LR
    %% Visual Model
    subgraph CanvasSource["Visual Layout Context"]
        NodePlay["Playback Shape block<br/>(File: 'welcome.wav')"]
        NodeCollect["Input Shape block<br/>(MaxDigits: 4)"]
    end

    %% Engine Dispatcher
    subgraph TranslationCore["Stasis Dispatcher Class"]
        MapPlay["POST /ari/channels/{id}/play<br/>(Inject Audio Container)"]
        MapCollect["POST /ari/channels/{id}/play<br/>(Stream prompt & await DTMF event)"]
    end

    %% Underlying Engine
    subgraph AsteriskKernel["Asterisk Channel Engine"]
        ExecMedia["res_stasis Execution Engine<br/>(Handles Physical Audio Streams)"]
    end

    %% Paths
    NodePlay ==>|"Translate Action"| MapPlay
    NodeCollect ==>|"Translate Action"| MapCollect
    MapPlay ==>|"Push Network Frame"| ExecMedia
    MapCollect ==>|"Push Network Frame"| ExecMedia

    %% Aesthetic Color Schemes
    classDef srcToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef coreToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef kernelToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;

    class CanvasSource,NodePlay,NodeCollect srcToken;
    class TranslationCore,MapPlay,MapCollect coreToken;
    class AsteriskKernel,ExecMedia kernelToken;
```

---
Chunk #3 Synthesized API Frame Output Specs
## Synthesized API Frame Output Specs

### 1. Interactive Sound Playback Requests
Maps user sound strings down into explicit network frame formats:
```json
{
  "media": "sound:welcome.wav",
  "lang": "en",
  "playbackId": "play_node_01"
}
```

### 2. Dynamic Tone Staging Loops
To gather push-button digit sequences, runtime workers stream introductory prompts and register targeted listener handlers targeting inbound `ChannelDtmfReceived` socket payloads automatically.