⬢ Geo-intelligence · extruded State risk, cargo hubs, freight corridors
Drag rotate · Shift/right-drag pan · Scroll zoom · Double-click a State to fly in
Map filters
Selection intelligence
Click an incident beam, a State or a hub on the map to see intelligence here.
Hotspot clusters (≤ 40 km)
Boundaries: embedded, simplified district/State GeoJSON (udit-001/india-maps-data, Census-2011-based, updated). Not certified by Survey of India; verify against official outline maps ↗ before any formal use. Hubs and corridor alignments are approximate and indicative. Works offline.
Case management · chemical road emergencies
Receive → classify → advise → update ERSS
Incident
State / district
Received (IST)
Event
Cargo
Level
Status
Accept
⌕
Road tanker identification schematic
Click a marker
Select a marker on the tanker to see what the caller should look for and the questions to ask.
Caller interview script
Ask in this order
National chemical-transport incident database · analytics
Filter, investigate and export cases from participating State/UT 112 PSAPs. Every figure, bar and cell drills to its records.
BROWSER DATABASE
Daily incoming calls by severity
Stacked, IST days
When do incidents happen? Weekday × hour (IST)
Chemical Pareto · top cargo
Bars = cases · line = cumulative share
Calls by State / UT
Classification L1–L5
Case status
Time to accept (minutes)
SLA 2 min
Event type
Master calls register
C-DAC incident ID
Received (IST)
State / district
Level
Status
Chemical / issue
Accept
Standalone HTML stores records in this browser's local storage. Run python3 server.py for the shared local SQLite database. Do not enter real emergency or personal data into an unapproved demo.
Sealed case archive · evidence for legal proceedings
Every closed case is sealed as one bundle: all tickets, inbound & outbound calls with recordings, photos, documents, site status, C-DAC updates, timeline and audit log — with SHA-256 for every file and a hash chain across bundles. Verify any bundle at any time.
TAMPER-EVIDENT
L1–L5 operator action matrix
Suggested; adapt to approved SOP
Crisis-group hierarchy · Chemical Accidents (EPPR) Rules, 1996
Regulatory framework · road transport of hazardous goods
Emergency numbers & escalation
⬢ Live response architectureRedrawn automatically from the running system every 20 s · click any block for details · coloured lamps = live status
🔗 How a Smartflo call is hooked to its ERSS ticket · design
Hooks A–E in priority order
📦 Dual-channel intake → one case packet · Tata Smartflo calls + ERSS tickets
Live counts · click a block
Call routing & surge control · Nicer Globe national control room (cloud contact centre)
Live counts · last 24 h · click a block
112 integrationNG control roomSurge / volume controlResponders
Isometric system tiers
State-wise API heartbeat and connection health
The backend checks one State/UT API every second in rotation — every link is re-checked every 36 seconds. Configure real endpoints in integrations.json → state_api_endpoints; unconfigured States are shown as SIMULATED.
📦 Intake packets across 36 State/UT integrations · three sections
☎ call only · 🎫 ticket only · ☎+🎫 call plus ticket
All 36 State / UT endpoints
State / UT
Code
Region
Link
Last success (IST)
Latency
Network topology · tilted ring
Packets animate on live links
All 36 jurisdictions · language assistance & local risk
Languages indicative, not comprehensive
Message sequence · C-DAC ERSS ⇄ LCS NG
Proposed contract
Inbound · C-DAC → NG
Incoming events should be accepted by a secured backend, validated, de-duplicated by source + incident ID, then pushed to the browser by WebSocket or server-sent events.
Status update · NG → C-DAC
Use the exact C-DAC status keys. The backend substitutes managed credentials and submits to the approved endpoint. This prototype only prepares JSON.
Suggested LCS backend contract
POST /api/cdac/inboundReceive validated webhook payload from an authorized source
GET /api/incidentsCurrent cases and authorized State mapping
POST /api/incidents/:id/statusValidate and queue a status update to C-DAC
GET /api/integrations/healthReal monitoring signals for all 36 integrations
GET /api/eventsAuthenticated SSE/WebSocket stream for live incoming calls
POST /api/incidents/:id/ackRecord operator acceptance of the referral
POST /api/ingest/ticketImplemented. ERSS / State API tickets (EMERGENCY_CALL JSON) · header X-LCS-Key
POST /api/ingest/smartfloImplemented. Tata Smartflo webhooks (JSON or form) · ringing/answered/ended/CDR · X-LCS-Key
POST /api/packets/link · /unlinkImplemented. Operator confirms or separates a call ↔ ticket match
GET /api/eventsImplemented. Server-sent events: live push of new tickets, calls and merges
Proposed internal interfaces, not claims about existing C-DAC endpoints. Treat authId/authCode as secrets: never send them to the browser; verify origin, rate-limit, and keep an immutable audit trail. Implemented today by server.py: GET/POST /api/cases, GET /api/analytics.
C-DAC ERSS 112 — one API per State / UT
Receiving: each State's C-DAC system calls its own URLs with its own client id and secret. Reverse API: where this portal sends status updates (API #2), media (API #6) and status checks (API #5) for that State. Stored in the database; passwords, secrets and authCodes are encrypted and never shown again.
Receiving APIs
State / UT
Receiving URLs (give these to C-DAC)
Client id
Client secret
authId / authCode
Allowed addresses
Last received
Loading…
Register a State's Reverse API
Secret fields: leave blank to keep what is stored.
Registered States
State / UT
API URL
User id
Credentials
Sending
Last test
Tata Smartflo DID lines per State / UT
Calls to a State's DID are tagged to that State; calls from a ticket go out on the ticket's State line, with the primary number as caller ID. Each State may have its own Click-to-Call Support key (otherwise the key for all State lines is used).
Register DID numbers
Number
Label
Primary (caller ID)
All State lines
State / UT
DID numbers
C2C key
Tokens & API links
Every API address and token the portal uses lives here, in the database. Tokens and passwords are encrypted (AES-256-GCM, key protected by Windows DPAPI) and can only be replaced or removed, never read back. Only the database connection string stays in the server's environment.
Group
Setting
Current
New value
Loading…
Incident location
Highlighted = incident district · drag rotate · scroll zoom
🔗 Quick tag · call ⇄ ticket
Click a call, click its ticket, press Enter. Manual tags are recorded with your name.