Conditional Dialplan Branching

Conditional Dialplan Branching

To implement robust decision handling logic, Asterisk 2 compiles visual branching elements into distinct back-end logic conditions. The runtime compares input contexts to branch audio sessions directly.


Decision Node Switching Topology

The diagram below outlines how logical evaluation nodes dispatch execution flows across independent structural routes:

graph TD
    %% Trigger Condition
    subgraph LogicSource["Decision Router Block"]
        EvalCondition["Check Boolean Field State<br/>(Condition: IsWithinOfficeHours)"]
    end

    %% Evaluated Targets
    subgraph RoutingTargets["Dynamic Execution Paths"]
        PathTrue["Condition == True<br/>(Route to Internal SIP Extension)"]
        PathFalse["Condition == False<br/>(Route to After-Hours Voicemail)"]
    end

    %% Telephony Engine
    subgraph StasisExecution["Engine Routing Engine"]
        ExecRedirect["POST /ari/channels/{id}/redirect<br/>(Updates physical call trunk)"]
    end

    %% Flows
    EvalCondition ==>|"True Evaluation"| PathTrue
    EvalCondition -->|"False Evaluation"| PathFalse
    PathTrue ==>|"Execute Dial Directive"| ExecRedirect
    PathFalse ==>|"Execute Dial Directive"| ExecRedirect

    %% Rich Styled Themes
    classDef srcToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef pathToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef execToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;

    class LogicSource,EvalCondition srcToken;
    class RoutingTargets,PathTrue,PathFalse pathToken;
    class StasisExecution,ExecRedirect execToken;

Logical Execution Profiles

1. Chronological Scheduler Checks (TimeCondition)

Evaluates operational timing markers directly against active system real-time clock flags:

  • True: Call hits active enterprise IVR routing branches.
  • False: Call redirects automatically to offline alert lines.

2. Dynamic Input Evaluators (VariableCondition)

Compares client string entries collected during previous workflow stages against matching configuration arrays to determine access permissions instantly.