Back to SIPswarm
External Signaling

One port. One protocol.
The entire world talks to you here.

The entire external signaling surface of SIPswarm is one UDP port speaking standard SIP/2.0. Fourteen custom X-BF-* headers enable real-time bid/ask provider negotiation without breaking compatibility with any existing SIP stack. Admin traffic, media relay, and data streaming all live on separate internal planes.

Six deterministic phases. No ambiguity.

Every external signaling session passes through six phases. No optional steps. Every phase produces audit evidence. Session defaults are set before any INVITE leaves.

1. Ingress Customer INVITE IP + prefix match Digit manipulation Session type detect Defaults set 2. LCR Dial code extract Route table lookup Health + capacity score Bid group select PDD budget set 3. Negotiate INVITE + X-BF-* Parallel or seq fork 200 OK = accepted 488 = counter-offer MaxBidRnd bounds 4. Accept Winner selected Receipt proposed ACK echoes receipt Losers CANCEL/BYE Agreement binding 5. Session Media established RTP/SRTP active Session timer (4028) CDR accumulating Receipt in re-INVITE 6. Teardown BYE + receipt CDR finalized Quality metrics SHA-256 chain CDR to MQAL Session defaults set at Phase 1 • Negotiation can only improve terms • CDR always complete
1

Ingress

Customer sends SIP INVITE to port 5060. Source IP + dialed digit prefix identify the customer. Session defaults locked.

2

LCR Selection

Dial code identifies destination. Pre-computed LCR table scored by price, provider health (ASR/ACD/latency), and capacity. Ordered bid groups returned.

3

Bid/Ask Negotiation

INVITEs sent to carriers with X-BF-* headers. Parallel fork within groups (MaxBidRnd=1). Sequential cascade between groups. Counter-offers via 488.

4

Winner & Receipt

First acceptable response wins in parallel groups. Receipt GUID proposed in 200 OK, confirmed by echo in ACK. Losers get ACK+BYE (receipt voided).

5

Session Active

Media plane established (RTP/SRTP, topology-hidden). Session timer per RFC 4028. CDR accumulates in real-time. Receipt carried in all in-dialog messages.

6

Teardown & CDR

BYE carries receipt. CDR finalized with timing, quality metrics, pricing (customer/provider/spread), routing path, bid history. SHA-256 hash chain applied.

Fourteen headers. Purely additive.

All bidfabric headers use the X-BF-* prefix. Standard SIP stacks ignore unknown headers per RFC 3261. The protocol extension is invisible to legacy carriers and adds zero overhead to non-supporting peers.

HeaderTypeRequiredPurpose
Originator → Terminator (in INVITE)
X-BF-Negotiation-IDUUIDYesUnique per negotiation context; constant across rounds with same carrier
X-BF-MaxBidRndIntegerYesMax negotiation rounds allowed. Must be 1 for parallel groups.
X-BF-Bid-PriceDecimalYesOffered price per unit
X-BF-Price-UnitEnumYesper-min, per-msg, per-token-in, per-token-out, per-session
X-BF-CurrencyStringYesISO 4217 currency code (default: USD)
X-BF-Bid-RoundIntegerYesCurrent round number (starts at 1)
X-BF-Session-TypeEnumYesai-model, media, sms
X-BF-VersionStringYesProtocol version (e.g., 1.0)
X-BF-Bid-GroupStringNoBid group identifier
X-BF-Price-FloorDecimalNoLowest acceptable price
X-BF-Price-CeilingDecimalNoMaximum willingness to pay
Terminator → Originator (in Response)
X-BF-AcceptBooleantrue if bid accepted as-is
X-BF-Ask-PriceDecimalCounter-offer price (present when Accept is false)
X-BF-ReceiptUUIDProof-of-agreement GUID. Generated by terminator. Present only when Accept is true.
-- Outbound INVITE with X-BF-* headers --
INVITE sip:12145551234@carrier-a.net SIP/2.0
Via: SIP/2.0/UDP 10.0.1.5:5060;branch=z9hG4bK-524
From: <sip:customer@sipswarm.net>;tag=a73kszlfl
To: <sip:12145551234@carrier-a.net>
Call-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
CSeq: 1 INVITE
Contact: <sip:sipswarm.net:5060>
X-BF-Negotiation-ID: c9a1e8b2-4f7d-4a3e-9c12-d8f6a2b1c5e4
X-BF-MaxBidRnd: 1
X-BF-Bid-Price: 0.0042
X-BF-Price-Unit: per-min
X-BF-Currency: USD
X-BF-Bid-Round: 1
X-BF-Session-Type: media
X-BF-Version: 1.0
Content-Type: application/sdp
Content-Length: 142

-- Legacy carrier ignores X-BF-* headers per RFC 3261 --
-- Rate sheet rate already locked. Zero PDD penalty. --

Two modes. Same engine. Your choice.

SIPswarm supports two deployment modes per customer. Both use the same LCR engine, rate cache, and audit trail. Mode 1 puts SIPswarm in both signaling and media paths. Mode 2 returns routing decisions and gets out of the way.

  • Per-customer configurable — mix modes across your customer base
  • Same LCR + rate cache — identical routing intelligence in both modes
  • Session mobility in Mode 1 — re-INVITE migration, failover adoption
  • Ranked routes in Mode 2 — Contact headers with q-values
Mode 1: Integrated SBC (B2BUA) Customer SIPswarm Provider INVITE INVITE+X-BF-* RTP/SRTP (topology-hidden via SIPswarm) Full CDR: duration + quality + pricing + bid history + receipt Mode 2: Routing Advisory (302 Redirect) Customer SIPswarm Provider INVITE 302 + routes Customer connects directly to Provider Routing-only CDR: dial code + routing decision (no duration/quality)
Mode 1 — B2BUA

Full Managed Service

SIPswarm sits in both the signaling and media paths. Complete visibility. Complete control.

  • SIPswarm handles bid/ask negotiation
  • Full CDR: duration, quality, pricing, bid history
  • Topology-hidden via SDP rewrite
  • Session mobility (re-INVITE migration)
  • Receipt GUID managed by SIPswarm
Mode 2 — Redirect

Routing Intelligence Overlay

SIPswarm runs LCR and returns a 302. Your existing switch connects directly to the provider.

  • SIPswarm NOT in media path
  • Routing-only CDR: dial code + decision
  • Contact headers with ranked q-values
  • Customer's SBC handles bid/ask (if supported)
  • Zero media overhead on SIPswarm

Propose. Confirm. Carry. Void.

The Receipt GUID provides bilateral proof of the negotiated rate agreement. It follows a propose → confirm model analogous to contract formation. Both parties hold the same GUID — immutable evidence of the agreed price.

Normal Path (Agreement) Void Path (Auction Loser) SIPswarm Carrier 200 OK + Receipt: a7f3 Proposed ACK + Receipt: a7f3 Confirmed Session active — receipt in re-INVITE BYE + Receipt: a7f3 In CDR SIPswarm Loser 200 OK + Receipt: b4d2 ACK (no receipt echo) Void Immediate BYE No agreement formed ACK + BYE for 200 OK losers • CANCEL for pending losers • ACK for 4xx losers

Proposed

Terminator generates GUID on acceptance, includes in 200 OK. Not yet binding. Either party can still withdraw.

Confirmed

Originator echoes receipt in ACK. Agreement is now binding. Both parties hold the same GUID. Negotiated rate cached.

Voided

ACK sent without receipt echo + immediate BYE. Parallel auction loser. No agreement formed. No billing obligation.

Fork within. Cascade between.

LCR tables are composed of ordered bid groups. Within a group, all carriers are forked in parallel. Between groups, the system falls back sequentially. MaxBidRnd=1 is enforced for parallel groups — no multi-round negotiation when racing.

First acceptable response wins the auction. Losers are handled cleanly: pending INVITEs get CANCEL, 4xx responses get standard ACK, and 200 OK responses get ACK (no receipt echo) + BYE.

  • MaxBidRnd=1 for parallel groups — single shot
  • Sequential groups support multi-round negotiation
  • PDD budget = sum of per-group timeouts across LCR
  • Hybrid LCR — mix parallel and sequential groups
SIPswarm Group 1 (parallel, MaxBidRnd=1) Carrier A Carrier B Carrier C WINNER CANCEL ACK+BYE or if no winner... Group 2 (sequential, MaxBidRnd=3) Carrier D up to 3 rounds Group 3 (parallel, MaxBidRnd=1) Carrier E Carrier F

Bidding is additive. Legacy carriers just work.

The rate sheet rate is locked before any INVITE leaves. X-BF-* headers are added to the outbound INVITE. Per RFC 3261, SIP stacks MUST ignore unknown headers. Legacy carriers respond with plain 200 OK. Zero PDD penalty. CDR always priced.

Rate Sheet Default

Rate sheet rate locked at INVITE time. This is the session default, not a fallback. Bidding can only improve it.

Legacy Detection

SIPswarm detects absence of X-BF-* headers in the 200 OK. No timeout. No protocol negotiation. Instant detection.

Zero PDD Penalty

INVITE proceeds normally regardless of carrier support. Same latency profile. Same session setup time. No extra round trips.

CDR Always Priced

Whether negotiated via bid/ask or defaulted to rate sheet, the CDR contains a price. No undefined state. No manual reconciliation.

Your traffic. Your rules. Our exchange is optional.

SIPswarm involvement is optional. Customers choose their participation level: direct path (fixed carrier arrangement, bypass the exchange), market path (all traffic through SIPswarm for LCR, bid/ask, CDR, audit), or hybrid (some direct, some market, with failover).

Think NYSE (market path) versus OTC (direct path). Value earned, not forced. No lock-in by design. A carrier can serve both direct and market traffic simultaneously.

  • No lock-in — value earned, not forced
  • Hybrid failover — direct-first with market as fallback
  • Same provider can serve both direct and market paths
Customer SIPswarm Exchange Provider Direct Path Fixed arrangement, bypass exchange Market Path LCR + bid/ask + CDR + audit Hybrid Path Direct-first, market failover (or vice versa)

Direct Path

Fixed carrier arrangement. Bypass SIPswarm entirely. OTC-style. No exchange fees. Your existing relationships.

Market Path

All traffic through the exchange. Full LCR, real-time bid/ask, rated CDR, and audit trail. NYSE-style.

Hybrid Path

Some traffic direct, some through exchange. Per-destination or per-traffic-type. Failover in either direction.

Ready to see the signaling surface in action?

One port. Fourteen headers. Full backward compatibility. Real-time pricing negotiation built into standard SIP.

Request a Demo Technical Questions