This document describes the OmniMSC REST API, which provides programmatic access to subscriber data, active calls, routing configuration, SIP peers, media gateways, RAN connections, and system status. The API listens on port 8444 and serves an auto-generated OpenAPI 3 (OAS3) specification.
For the web-based control panel, see Control Panel. For routing concepts referenced by the route endpoints, see Routing Configuration.
OpenAPI Documentation
OmniMSC automatically generates an OpenAPI 3 specification from the API router. The interactive Swagger UI is available at http://<host>:8444/schema and provides a browsable, testable interface for all endpoints.
Endpoints
All endpoints are served under the /api path prefix. Request and response bodies use JSON encoding.
Subscribers
| Method | Path | Description |
|---|
| GET | /api/subscribers | List VLR subscribers. Supports optional query parameters for filtering by IMSI or MSISDN (partial match). |
| GET | /api/subscribers/{id} | Retrieve full detail for a single subscriber, including identity, location, authentication state, service profile, and supplementary services. |
| DELETE | /api/subscribers/{id} | Purge a subscriber record from the VLR. Triggers MAP PurgeMS toward the HLR. |
| POST | /api/subscribers/{id}/actions | Execute an action on a subscriber, such as initiating a detach, forcing re-authentication, or triggering a location update. |
| POST | /api/subscribers/{id}/ss | Manage supplementary services for a subscriber, including activation, deactivation, and interrogation of call barring, call forwarding, and other services. |
Calls
| Method | Path | Description |
|---|
| GET | /api/calls | List all active CC FSM call transactions, including call reference, direction, parties, state, and duration. |
| GET | /api/calls/{id} | Retrieve full detail for a single call, including timing, codec, serving BSC/RNC, and CC FSM state history. |
| DELETE | /api/calls/{id} | Release an active call. Initiates network-side disconnect and BSSMAP CLEAR COMMAND. |
SMS
| Method | Path | Description |
|---|
| GET | /api/sms | List active SMS transactions with transaction ID, direction, subscriber, state, and SMS Centre address. |
Routes
| Method | Path | Description |
|---|
| GET | /api/routes | List all entries in the route table, including prefix, destination type, priority, and destination-specific parameters. |
| POST | /api/routes | Add a new route to the route table. The route takes effect immediately without restart. |
| DELETE | /api/routes | Delete a route from the route table by prefix and destination type. |
| GET | /api/routes/lookup | Look up the route that would be selected for a given called party number. Useful for verifying routing behaviour without placing a call. |
SIP Peers
| Method | Path | Description |
|---|
| GET | /api/sip/peers | List all configured SIP peers with address, transport, status, active calls, and capacity. |
| GET | /api/sip/peers/{name} | Retrieve full detail for a single SIP peer, including codec list, OPTIONS keepalive state, and call statistics. |
| PUT | /api/sip/peers/{name} | Update a SIP peer's configuration (address, port, transport, codecs, max channels, OPTIONS interval). |
| Method | Path | Description |
|---|
| GET | /api/mgw | List configured media gateways with name, address, protocol (MGCP or Megaco), and reachability status. |
RAN and STP
| Method | Path | Description |
|---|
| GET | /api/ran/connections | List active RAN connections (SCCP connection-oriented sessions) with connection ID, subscriber IMSI, BSC/RNC, and state. |
| GET | /api/ran/bscs | List known BSCs with point code, global title, cell count, and last BSSMAP RESET timestamp. |
| GET | /api/stp | Get STP link status, including M3UA ASP state, SCTP association details, and traffic counters. |
Paging
| Method | Path | Description |
|---|
| POST | /api/paging | Initiate a paging request for a subscriber by IMSI or MSISDN. Sends BSSMAP PAGING to the appropriate BSCs. |
| GET | /api/paging | List pending paging requests with subscriber identity, target LAC, paging cause, and elapsed time. |
Advice of Charge
| Method | Path | Description |
|---|
| POST | /api/aoc | Send an Advice of Charge message to a subscriber during an active call. Supports AoCI (information) and AoCE (charging) per 3GPP TS 24.086. |
Silent Call and SMS
| Method | Path | Description |
|---|
| POST | /api/silent | Initiate a silent call or silent SMS toward a subscriber. Used for lawful intercept and network testing purposes. |
Handover Cells
| Method | Path | Description |
|---|
| GET | /api/handover/cells | List cells configured as handover targets, including cell identity, LAC, BSC, and handover priority. |
| POST | /api/handover/cells | Add a cell to the handover target list with cell identity, LAC, and priority parameters. |
System
| Method | Path | Description |
|---|
| GET | /api/health | Health check endpoint. Returns a simple status indicator suitable for load balancer probes. |
| GET | /api/status | System status including BEAM VM statistics, memory allocation, supervisor health, active alarm count, and MSC configuration summary. |
| GET | /metrics | Prometheus metrics scrape endpoint. Returns all OmniMSC telemetry counters and gauges in Prometheus exposition format. See Metrics and Monitoring. |
All endpoints return JSON responses. Successful requests return the requested data in a top-level object or array. Error responses include a JSON object with an error field containing a human-readable message and, where applicable, a code field with a machine-readable error identifier.
List endpoints support pagination via page and page_size query parameters. The response includes a meta object with total, page, and page_size fields.
Subscriber and call detail responses include nested objects for related data (identity, location, authentication, timing) matching the structure described in the Control Panel subscriber detail and call detail sections.