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.
Every external signaling session passes through six phases. No optional steps. Every phase produces audit evidence. Session defaults are set before any INVITE leaves.
Customer sends SIP INVITE to port 5060. Source IP + dialed digit prefix identify the customer. Session defaults locked.
Dial code identifies destination. Pre-computed LCR table scored by price, provider health (ASR/ACD/latency), and capacity. Ordered bid groups returned.
INVITEs sent to carriers with X-BF-* headers. Parallel fork within groups (MaxBidRnd=1). Sequential cascade between groups. Counter-offers via 488.
First acceptable response wins in parallel groups. Receipt GUID proposed in 200 OK, confirmed by echo in ACK. Losers get ACK+BYE (receipt voided).
Media plane established (RTP/SRTP, topology-hidden). Session timer per RFC 4028. CDR accumulates in real-time. Receipt carried in all in-dialog messages.
BYE carries receipt. CDR finalized with timing, quality metrics, pricing (customer/provider/spread), routing path, bid history. SHA-256 hash chain applied.
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.
| Header | Type | Required | Purpose |
|---|---|---|---|
| Originator → Terminator (in INVITE) | |||
| X-BF-Negotiation-ID | UUID | Yes | Unique per negotiation context; constant across rounds with same carrier |
| X-BF-MaxBidRnd | Integer | Yes | Max negotiation rounds allowed. Must be 1 for parallel groups. |
| X-BF-Bid-Price | Decimal | Yes | Offered price per unit |
| X-BF-Price-Unit | Enum | Yes | per-min, per-msg, per-token-in, per-token-out, per-session |
| X-BF-Currency | String | Yes | ISO 4217 currency code (default: USD) |
| X-BF-Bid-Round | Integer | Yes | Current round number (starts at 1) |
| X-BF-Session-Type | Enum | Yes | ai-model, media, sms |
| X-BF-Version | String | Yes | Protocol version (e.g., 1.0) |
| X-BF-Bid-Group | String | No | Bid group identifier |
| X-BF-Price-Floor | Decimal | No | Lowest acceptable price |
| X-BF-Price-Ceiling | Decimal | No | Maximum willingness to pay |
| Terminator → Originator (in Response) | |||
| X-BF-Accept | Boolean | — | true if bid accepted as-is |
| X-BF-Ask-Price | Decimal | — | Counter-offer price (present when Accept is false) |
| X-BF-Receipt | UUID | — | Proof-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. --
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.
SIPswarm sits in both the signaling and media paths. Complete visibility. Complete control.
SIPswarm runs LCR and returns a 302. Your existing switch connects directly to the provider.
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.
Terminator generates GUID on acceptance, includes in 200 OK. Not yet binding. Either party can still withdraw.
Originator echoes receipt in ACK. Agreement is now binding. Both parties hold the same GUID. Negotiated rate cached.
ACK sent without receipt echo + immediate BYE. Parallel auction loser. No agreement formed. No billing obligation.
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.
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 rate locked at INVITE time. This is the session default, not a fallback. Bidding can only improve it.
SIPswarm detects absence of X-BF-* headers in the 200 OK. No timeout. No protocol negotiation. Instant detection.
INVITE proceeds normally regardless of carrier support. Same latency profile. Same session setup time. No extra round trips.
Whether negotiated via bid/ask or defaulted to rate sheet, the CDR contains a price. No undefined state. No manual reconciliation.
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.
Fixed carrier arrangement. Bypass SIPswarm entirely. OTC-style. No exchange fees. Your existing relationships.
All traffic through the exchange. Full LCR, real-time bid/ask, rated CDR, and audit trail. NYSE-style.
Some traffic direct, some through exchange. Per-destination or per-traffic-type. Failover in either direction.
One port. Fourteen headers. Full backward compatibility. Real-time pricing negotiation built into standard SIP.