Dynamic Outbound Gateway Pools

Dynamic Outbound Gateway Pools

To route external telecommunications traffic optimally, Asterisk 2 groups physical gateway hardware assets into logical mapping collections called Gateway Pools. This database module maps out available cellular hardware arrays to balance session assignments cleanly.


Gateway Load-Balancing Schema

The diagram below outlines how logical pools sort outbound traffic assignments dynamically across raw physical IP addresses:

graph LR
    %% Logical Pool
    subgraph LogicalPool["Logical Outbound Mapping"]
        EntityPool["GatewayPool Entity<br/>(PK: PoolId, Name: 'Indian Mobile Trunks')"]
    end

    %% Target Elements
    subgraph TargetMembers["Assigned Physical Gateways"]
        MemberA["GatewayMember Entity<br/>(IP: 192.168.10.50, Weight: 100)"]
        MemberB["GatewayMember Entity<br/>(IP: 192.168.10.51, Weight: 50)"]
    end

    %% Downstream Logic
    subgraph ExecutionTarget["PBX Outbound Core"]
        KamailioDisp["Kamailio Dispatcher Target<br/>(ds_select_dst Engine)"]
    end

    %% Vectors
    EntityPool ==>|"Includes Mapping"| MemberA
    EntityPool ==>|"Includes Mapping"| MemberB
    MemberA ==>|"Primary Selection"| KamailioDisp
    MemberB -->|"Secondary / Failover"| KamailioDisp

    %% Custom Curated Colors
    classDef poolToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef memToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef targetToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;

    class LogicalPool,EntityPool poolToken;
    class TargetMembers,MemberA,MemberB memToken;
    class ExecutionTarget,KamailioDisp targetToken;

Model Attribute Blueprint

1. GatewayPool Entity

  • PoolId (int): Primary automatic auto-increment integer ID.
  • PoolName (string): Logical descriptor mapped to specific dialing groups.
  • Members: Collection mapping physical gateway IP references.

2. GatewayMember Entity

  • MemberId (int): Primary automatic auto-increment integer ID.
  • PoolId (int): Foreign key connecting the hardware node to its parent logical pool.
  • IpAddress (string): Network address string mapping directly to physical Dinstar rack interfaces.
  • Weight (int): Numerical value determining priority dispatch selection frequency during round-robin distributions.