Technical Overview
A CDMA2000 1x network you can hold in your hands: SDR radio, BTS, BSC, MSC, voice, SMS, and packet data — open source, no proprietary silicon required.
Receiver Pipeline
IQ samples to Layer 3 frames in nine stages
Raw RF in, protocol frames out. The receiver pipeline runs continuously — pilot search, timing recovery, Walsh despread, Viterbi decode — processing every active mobile on every PCG, 800 times per second.
Closed-Loop Power Control
Three coordinated loops spanning PCG, frame, and pilot measurement timescales
- Measure Eb/Nt from received signal
- Compare against outer-loop target
- Sigma-delta modulator quantizes error — finer effective control than simple thresholding
- Transmit binary PCB on forward traffic channel
- Mobile adjusts TX power ±step
- Track CRC pass/fail in sliding window
- Estimate FER through IIR filter
- FER too high → raise target Eb/Nt
- FER too low → lower target Eb/Nt
MO Call Setup
CDMA2000 message sequence from access probe to EVRC bearer
MT calls follow the same channel setup path — triggered by MSC Paging Request → BSC General Page Message → R-ACH Page Response. If the mobile already holds a traffic channel, BSC begins service negotiation in place without a new page cycle.
Layer 2 Assured Delivery
MAC/LAC ARQ with sequence tracking, retransmission, and duplicate suppression
Every Layer 3 message rides a LAC PDU with a 3-bit MSG_SEQ (0–7)
and a matching ACK_SEQ. When ACK_REQ=1 the transmitter
holds a copy and retransmits with the same sequence number until acknowledged or
the maximum attempt count is exhausted.
The receiver maintains a sliding window of 4 consecutive sequence numbers for duplicate detection — a retransmission delivers the ACK without re-presenting the payload to Layer 3. Up to 4 regular PDUs can be outstanding simultaneously.
Signaling can only be carried at full rate (9600 bps). Sub-rate frames carry primary traffic only.
| Timer | Value | Purpose |
|---|---|---|
| T1m | 400 ms | Regular PDU retransmit timeout |
| T2m | 200 ms | Max MS acknowledgment time (regular PDU) |
| T4m | 2.2 s | MSG_SEQ reuse cooldown on paging channel |
| T75m | 120 ms | Mini PDU retransmit timeout |
| T76m | 60 ms | Max MS acknowledgment time (mini PDU) |
| N1m | 13 | Max transmissions of a regular PDU |
| N15m | 17 | Max transmissions of a mini PDU |
SIP Gateway & Transcoding
Full EVRC↔G.711 bridge with adaptive jitter buffering and SIP trunk support
fallback_to_wav is set.
Identity & Registration
IMSI encoding, paging slot computation, and six registration trigger types
| Type | Trigger | Parameter |
|---|---|---|
| Power-up | Mobile turns on | POWER_UP_REG |
| Power-down | Mobile turns off | POWER_DOWN_REG |
| Timer-based | Periodic interval expires | REG_PRD |
| Zone-based | Mobile enters new SID/NID/zone | TOTAL_ZONES, ZONE_TIMER |
| Parameter-change | System parameters changed since last reg | PARAMETER_REG |
| Distance-based | Mobile moved beyond threshold | REG_DIST |
PGSLOT = hash(IMSI_M_S1, IMSI_M_S2) mod 2048
Hash defined in C.S0005-E §2.6.7.1. Result: slot 0–2047. Slot cycle index (SCI) controls wake-up frequency — higher SCI means longer sleep, lower paging latency at the cost of battery life.
Management Plane
Eight gRPC services exposing full protocol visibility and operator control
| Service | Endpoint | Role |
|---|---|---|
| ManagementFacadeService | :17016 | System overview · aggregated event stream |
| BtsManagementService | :17016 | Radio metrics · IQ capture · power-control diagnostics |
| BscManagementService | :17016 | Mobiles · channels · access/paging/traffic streams |
| MscManagementService | :17017 | Initiate/list calls · MSC voice gateway policy |
| PcfManagementService | :17016 | Packet-data radio-edge sessions · data-call actions |
| PdsnManagementService | :17016 | Packet-core sessions · packet trace capture |
| HlrService | :17016 | Subscriber CRUD · identity resolution |
| SmscService | :17016 | SMS history · delivery state · submissions |
Browser clients receive Server-Sent Event streams from the web server — they do not open raw gRPC connections. The facade aggregates events from BTS, BSC, MSC, and packet-core nodes into a unified stream.
Implementation Status
What runs today vs. what's on the roadmap
- ✓Voice MO/MT (EVRC SO3/17/68/73)
- ✓SMS MO/MT — PostgreSQL SMSC
- ✓Packet data SO7/SO33
- ✓BTS/BSC Abis split architecture
- ✓MSC A1/A2p fully networked
- ✓SIP voice gateway (EVRC↔G.711)
- ✓800 Hz closed-loop power control
- ✓RC1 + RC3 traffic channels
- ✓Web dashboard with SSE streaming
- ✓F-SCH TX chain
- ✓HLR / SMSC persistence layer
- ✓gRPC management plane (8 services)
- ○MRC multi-path combining
- ○Inbound SIP → mobile (MT calls)
- ○RFC 2833 DTMF relay
- ○F-DCCH dedicated control channel
- ○RC2 / RC4 / RC5–RC8
- ○F-SCH channel allocation
- ○R-SCH reverse supplemental
- ○Turbo coding for high-rate SCH
- ○R-EACH enhanced access channel
- ○Separate PCF/PDSN processes
- ○A8/A9 UDP socket transport
- ○A10/A11 UDP socket transport
Activity Log
Live protocol trace — a complete MO call from access to voice
R-ACH Reverse Access — mobile originates F-PCH Forward Paging — network pages/assigns R-TCH / F-TCH Traffic channels · Walsh code shown Origination MO call setup with service option + digits ECAM Extended Channel Assignment — Walsh + RC PMRM Pilot Measurement Report — FER + Ec/Io seq·ack MSG_SEQ · ACK_SEQ for LAC ARQ FER Frame Error Rate — amber row = error detected SO3 EVRC service option · RC3 = 9.6 kbps forward