Home/Platform/Voice softswitch

SS-40 · Class 4 & 5 · 73 operations

Voice softswitch

Least-cost interconnect, SIP session border, STIR/SHAKEN and SS7↔SIP — on a switch we run.

73
operations
5
routing strategies
A/B/C
STIR attestation
SS7↔SIP
SIGTRAN bridge

What it does

Voice softswitch — the depth.

The carrier-grade heart of the network: a Class 4 wholesale route-selection engine and a Class 5 SIP session border in one service. A carrier registry tracks live ASR / ACD / MOS with a consecutive-failure circuit breaker; per-tenant routing strategies (least-cost · quality · balanced · round-robin · priority) rank candidates on a composite cost-quality score against longest-prefix LCR rate decks, with ranked primary/secondary/tertiary/overflow failover. On the media side it registers SIP endpoints, admits calls through an SBC, anchors B2BUA sessions and relays RTP, signs and verifies STIR/SHAKEN PASSporTs with real ES256/X.509, and bridges SS7 ISUP to SIP over SIGTRAN — plus WebRTC/TURN for browser calling.

Sub-capabilities · real endpoints

Every capability maps to a real method + path.

LCR route selection, carrier health & rate decks

Add (carrier, prefix) routes with buy cost, baseline quality and channel capacity; /select and /routes/select rank them least-cost under a quality floor with margin protection. Carrier call-start/call-end/result feed live ASR/ACD/MOS and trip a circuit breaker on consecutive failures. Longest-prefix LCR decks and a per-tenant routing policy decide the path.

  • POST/api/v1/routes
  • POST/api/v1/routes/select
  • POST/api/v1/select
  • GET/api/v1/carriers
  • POST/api/v1/carriers
  • POST/api/v1/carriers/{name}/call-start
  • POST/api/v1/carriers/{name}/call-end
  • POST/api/v1/carriers/{name}/result
  • POST/api/v1/ratedeck
  • GET/api/v1/routing/policy
  • POST/api/v1/routing/policy
  • PUT/api/v1/min-quality
  • GET/api/v1/kpis

Wholesale decide — dial-peers, gateway groups, number screening

The Class 4 wholesale plane: inbound/outbound dial-peers with a /decide endpoint, gateway groups for egress fan-out, number lists for screening (allow/block), and customer-auth for wholesale trunk authentication.

  • GET/api/v1/dialpeers
  • POST/api/v1/dialpeers
  • POST/api/v1/dialpeers/decide
  • PUT/api/v1/dialpeers/{id}
  • GET/api/v1/gateway-groups
  • POST/api/v1/gateway-groups
  • GET/api/v1/numberlists
  • POST/api/v1/numberlists
  • POST/api/v1/customer-auth

STIR/SHAKEN — ES256/X.509 PASSporT + policy

Real caller-ID attestation: a per-tenant signing credential (X.509 SPC), ES256-signed PASSporTs at attestation level A/B/C, verification of inbound Identity headers, and a tenant policy for how unsigned or failed-verification calls are treated. Stats expose sign/verify rates.

  • GET/api/v1/stir/pki/credential
  • POST/api/v1/stir/pki/credential
  • POST/api/v1/stir/pki/sign
  • POST/api/v1/stir/pki/verify
  • GET/api/v1/stir/pki/stats
  • POST/api/v1/stir/policy
  • POST/api/v1/stir/verify
  • GET/api/v1/stir/stats

SIP session border & media — registrar, SBC, B2BUA, RTP

Class 5 access: SIP domains and devices, a registrar with an AOR location store, SBC admission (invite/register) with per-gateway attempt metrics, B2BUA sessions you can answer, terminate and fail over, and an RTP relay you offer, read and release.

  • POST/api/v1/sip/register
  • GET/api/v1/sip/domains
  • POST/api/v1/sip/domains
  • GET/api/v1/sip/devices
  • GET/api/v1/sip/locations/{aor}
  • POST/api/v1/sbc/invite
  • GET/api/v1/sbc/gateways
  • GET/api/v1/sbc/attempts
  • GET/api/v1/sbc/metrics
  • POST/api/v1/sessions/invite
  • GET/api/v1/sessions/{id}
  • POST/api/v1/sessions/{id}/answer
  • POST/api/v1/sessions/{id}/terminate
  • POST/api/v1/sessions/{id}/failover
  • POST/api/v1/rtp/offer
  • GET/api/v1/rtp/{call_id}
  • POST/api/v1/rtp/{call_id}/release

SIGTRAN (SS7↔SIP) & WebRTC/TURN

Legacy interworking and browser calling: SS7 ISUP IAM translated to a SIP INVITE and release causes mapped both ways over managed linksets, plus WebRTC sessions with short-lived TURN credentials for media traversal.

  • POST/api/v1/sigtran/isup/iam-to-invite
  • POST/api/v1/sigtran/isup/map-cause
  • GET/api/v1/sigtran/linksets
  • POST/api/v1/sigtran/linksets
  • POST/api/v1/sigtran/linksets/{id}/status
  • POST/api/v1/webrtc/sessions
  • GET/api/v1/webrtc/sessions/{id}
  • POST/api/v1/webrtc/turn-credential

Worked example

One call: register → route → attest → anchor → rate

The path a single outbound wholesale call takes across SS-40 and out to SS-36 for rating.

1RegisterPOST/api/v1/sip/registerEndpoint binds its AOR; the registrar stores the contact location.
2AdmitPOST/api/v1/sbc/inviteSBC admission control checks the gateway, rate-limits and screens the number list.
3RoutePOST/api/v1/routes/selectLCR ranks carriers least-cost under the quality floor; returns primary + failover order.
4AttestPOST/api/v1/stir/pki/signSigns an ES256 PASSporT (attestation A) so the far end can verify the caller ID.
5AnchorPOST/api/v1/sessions/inviteB2BUA anchors the leg; /answer confirms, /failover re-routes on a 5xx.
6MediaPOST/api/v1/rtp/offerRTP relay pins the media path; /rtp/{call_id}/release tears it down at hangup.
7RatePOST/api/v1/carriers/{name}/call-endCall-end updates carrier ASR/ACD; the CDR is handed to SS-36 for rating.

Architecture placement

Where it sits in the platform.

SS-40 sits at the traffic core. It authenticates with SS-01, screens each call against SS-38 fraud on the same plane, and emits CDRs to SS-36 mediation for rating. STIR credentials live in Vault (SS-05); every route change and money/usage write is audit-chained (ADR-0014) and idempotent (ADR-0039).

Depends on

SS-01 identitySS-05 Vault (STIR keys)SS-38 fraud (screen)

Feeds

SS-36 mediation (CDR → rating)SS-10 charging (OCS)SS-42 media (recording)