Skip to main content

REST API

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

MethodPathDescription
GET/api/subscribersList 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}/actionsExecute an action on a subscriber, such as initiating a detach, forcing re-authentication, or triggering a location update.
POST/api/subscribers/{id}/ssManage supplementary services for a subscriber, including activation, deactivation, and interrogation of call barring, call forwarding, and other services.

Calls

MethodPathDescription
GET/api/callsList 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

MethodPathDescription
GET/api/smsList active SMS transactions with transaction ID, direction, subscriber, state, and SMS Centre address.

Routes

MethodPathDescription
GET/api/routesList all entries in the route table, including prefix, destination type, priority, and destination-specific parameters.
POST/api/routesAdd a new route to the route table. The route takes effect immediately without restart.
DELETE/api/routesDelete a route from the route table by prefix and destination type.
GET/api/routes/lookupLook up the route that would be selected for a given called party number. Useful for verifying routing behaviour without placing a call.

SIP Peers

MethodPathDescription
GET/api/sip/peersList 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).

Media Gateways

MethodPathDescription
GET/api/mgwList configured media gateways with name, address, protocol (MGCP or Megaco), and reachability status.

RAN and STP

MethodPathDescription
GET/api/ran/connectionsList active RAN connections (SCCP connection-oriented sessions) with connection ID, subscriber IMSI, BSC/RNC, and state.
GET/api/ran/bscsList known BSCs with point code, global title, cell count, and last BSSMAP RESET timestamp.
GET/api/stpGet STP link status, including M3UA ASP state, SCTP association details, and traffic counters.

Paging

MethodPathDescription
POST/api/pagingInitiate a paging request for a subscriber by IMSI or MSISDN. Sends BSSMAP PAGING to the appropriate BSCs.
GET/api/pagingList pending paging requests with subscriber identity, target LAC, paging cause, and elapsed time.

Advice of Charge

MethodPathDescription
POST/api/aocSend 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

MethodPathDescription
POST/api/silentInitiate a silent call or silent SMS toward a subscriber. Used for lawful intercept and network testing purposes.

Handover Cells

MethodPathDescription
GET/api/handover/cellsList cells configured as handover targets, including cell identity, LAC, BSC, and handover priority.
POST/api/handover/cellsAdd a cell to the handover target list with cell identity, LAC, and priority parameters.

System

MethodPathDescription
GET/api/healthHealth check endpoint. Returns a simple status indicator suitable for load balancer probes.
GET/api/statusSystem status including BEAM VM statistics, memory allocation, supervisor health, active alarm count, and MSC configuration summary.
GET/metricsPrometheus metrics scrape endpoint. Returns all OmniMSC telemetry counters and gauges in Prometheus exposition format. See Metrics and Monitoring.

Response Format

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.