The blueprint
One system, drawn end to end.
FRMCS.ai as it is actually built — five components, one mission-critical service chain, and a single application catalogue that carries everything from an emergency call to a bogie sensor. Six diagrams, one railway.
Five components, one railway.
A 5G SA core, the FRMCS application plane, a BSS/OSS commerce & operations layer, and a oneM2M IoT platform — independent, standards-anchored, and joined at defined seams.
The train UE attaches over the O-RAN gNB (Uu → N2/N3) to a stateless, spec-grounded core; apps, BSS and IoT ride it at defined reference points.
Order to cab.
One continuous story: an operator orders a service, and a driver ends up with a prioritised emergency call — with provisioning, QoS and billing all real, not mocked.
The provisioning seam writes exactly the subscription the SMF/PCF read; the charging seam books the session as a CDR in the BSS.
The QoS chain that makes priority real.
FRMCS voice, video and data are 3GPP Mission Critical services over the core. An app invokes QoS; the PCF derives the mission-critical 5QI and a pre-emptive ARP; the flow can bump a lower-priority call under congestion.
REC · CCTV · advisory"] -->|"mc*Id + resPrio"| af["AF
TS 29.514"] af --> pcf["PCF
PCC rule"] pcf -->|"5QI 65/67/70
pre-emptive ARP"| smf["SMF
N2 QoS"] smf -->|GBR flow| upf["UPF
QER / meter"] smf -.->|"resources allocated"| af
MCPTT → 5QI 65 · MCVideo → 67 · MCData → 70. ARP priority derives from the reservation priority; pre-emption is policy-driven per flow.
The FRMCS Application Catalogue.
Every railway application — UIC-standard, national (India’s Kavach), or operator/IoT — is a first-class FRMCS category. The communication category is the app definition; the payload standard (MCX, ETCS Subset-037, IEC 61375, Kavach, oneM2M) is just its binding.
(one JSON file)"] cat -->|"category + QoS"| apps["FRMCS apps"] cat -->|"ARP → resPrio"| qos["core MC QoS
5QI / ARP"] cat -->|"per-entry service"| bss["BSS
orderable service"] cat -->|"authorized apps"| provn["provisioning
subscription"]
Adding an app — a national ATP, a sensor feed — is a catalogue row, not code. Its QoS flows through the whole chain automatically.
Sensors and intelligence, blended not merged.
FRMCS defines the prioritised bearer; oneM2M defines the IoT service layer whose traffic uses it. Application AI (obstacle detection, prognostics) is carried by FRMCS; network AI optimises the bearer itself.
obstacle detection"] mda["predictive models"] nwdaf["NWDAF / NAIF
network AI"] end subgraph frmcs["FRMCS transport + apps"] catapps["ATP · TCMS · Critical Advisory ·
CCTV · REC — catalogue QoS"] end cse --> bridge["frmcs-bridge"] rv --> bridge bridge -->|"rides a FRMCS category"| catapps mda -.-> catapps nwdaf -.->|"optimises the bearer"| catapps
Bogie health → sensor → oneM2M → a critical advisory at MC-data QoS. Anti-collision (Kavach) → a vital ATP app; rail-vision informs the SIL-4 chain, it does not become it.
A platform you can run.
The components are wired into one demonstrable system: a scripted order-to-cab scenario, a dispatcher console and a driver cab HMI, a load generator, and live network-function scaling from the operator console.
Reused, not rebuilt: the core operations console, Prometheus metrics on every function, NWDAF analytics, and the BSS operator portal.
The full as-built guide.
Diagrams, file paths, spec clauses and the commit trail for every piece live in the repository’s implementation guide.