Control Panel
This document describes the OmniMSC web-based control panel, a real-time monitoring and management interface built with Phoenix LiveView. The control panel is accessible at http://<host>:4000 and provides live visibility into subscribers, calls, connections, routing, CDRs, and system health.
All pages auto-refresh via WebSocket push. Most pages refresh every 5 seconds; the Active Calls page refreshes every 2 seconds. No manual page reload is required. The auto-refresh toggle on each page allows pausing updates when inspecting a particular record.
For endpoint configuration (bind address, port), see Configuration Reference. For the REST API, see API Reference.
Dashboard
The dashboard is the main landing page, providing an at-a-glance summary of the entire MSC.
Summary Cards
The top row displays six real-time counters:
| Card | Description |
|---|---|
| Subscribers | Number of subscribers currently registered in the VLR |
| Active Calls | Number of active CC FSM call transactions |
| Active SMS | Number of in-progress SMS transactions |
| RAN Connections | Count of BSCs and RNCs with ESTABLISHED SCTP associations |
| STP Link Status | M3UA ASP state toward the STP (ACTIVE, INACTIVE, DOWN) |
| System Uptime | Elapsed time since application start |
SS7 Links Table
Displays the status of all configured SS7 signalling links, including M3UA ASP state and traffic mode.
Known BSCs Table
Lists each BSC by name, point code, cell count, and SCTP association state.
SIP Peers Table
| Column | Description |
|---|---|
| Name | Peer logical name |
| Address | Peer IP address and SIP port |
| Calls | Current active call count on this peer |
| Status | Health state badge (Up, Down, Unknown) |
Media Gateways Table
Lists configured media gateways with name, address, protocol (MGCP or Megaco), and reachability status.
Recent Events Feed
A scrolling feed of the most recent telemetry events, each tagged with an event type badge (CALL, LU, PEER, INFO) and UTC timestamp. Events are pushed in real time as they occur.
Subscribers
The Subscribers page provides a searchable list of all VLR subscriber records. Enter an IMSI or MSISDN (partial match supported) in the search box to filter the list in real time.
Subscriber List Columns
| Column | Description |
|---|---|
| IMSI | International Mobile Subscriber Identity |
| MSISDN | Mobile Station ISDN Number |
| TMSI | Temporary Mobile Subscriber Identity allocated by the VLR |
| LAC | Location Area Code of the subscriber's current cell |
| State | VLR registration state |
| Auth | Authentication status |
| LU | Location Update completion status |
Expandable Subscriber Detail
Clicking a subscriber row expands a detailed view organised into the following sections.
Identity
| Field | Description |
|---|---|
| IMSI | International Mobile Subscriber Identity |
| MSISDN | Mobile Station ISDN Number |
| TMSI | Temporary Mobile Subscriber Identity |
| IMEI | International Mobile Equipment Identity (if available) |
| HLR Number | Address of the subscriber's home HLR |
Location and State
| Field | Description |
|---|---|
| LAC | Location Area Code |
| CI | Cell Identity |
| Serving BSC | Name of the BSC currently serving this subscriber |
| RAN Type | Radio access type (GERAN-A, UTRAN-Iu, or SGs) |
| Usage Count | Number of active use count tokens held by this subscriber's MSC-A |
| Expires | VLR record expiry timestamp |
| State | Current subscriber state in the VLR |
| Roaming | Whether the subscriber is marked as roaming |
| SGs | SGs association state (if registered via MME for CSFB) |
Authentication
| Field | Description |
|---|---|
| Algorithm | Authentication algorithm in use (COMP128v1, COMP128v3, Milenage) |
| Tuples | Number of remaining authentication triplets |
| UMTS Quintuplet | Whether UMTS authentication quintuplets are available |
Service Profile
Displays the circuit-switched services received from the HLR via MAP Insert Subscriber Data, including bearer service and teleservice subscriptions.
Supplementary Services
Lists all provisioned supplementary services with status badges:
| Service | Description |
|---|---|
| BAOC | Barring of All Outgoing Calls |
| BOIC | Barring of Outgoing International Calls |
| BOIC-exHC | Barring of Outgoing International Calls except to Home Country |
| BAIC | Barring of All Incoming Calls |
| BIC-Roam | Barring of Incoming Calls when Roaming |
| CFU | Call Forwarding Unconditional |
| CFB | Call Forwarding on Busy |
| CFNRy | Call Forwarding on No Reply |
| CFNRc | Call Forwarding on Not Reachable |
| CW | Call Waiting |
| HOLD | Call Hold |
| MPTY | Multi-Party |
| CLIP | Calling Line Identification Presentation |
| CLIR | Calling Line Identification Restriction |
Each service displays an active/inactive status badge and, where applicable, the forwarded-to number and condition parameters.
MSC-A Connection
Displays the current MSC-A FSM state for any active connection associated with this subscriber, including the state name, active use count tokens, and elapsed time in state.
Connections
The Connections page provides visibility into all signalling links, RAN connections, and SIP peers.
STP Link (M3UA ASP)
| Field | Description |
|---|---|
| Local IP | Local SCTP bind address |
| Remote | STP remote address and port |
| Association ID | SCTP association identifier |
| Status | M3UA ASP state badge (ACTIVE, INACTIVE, DOWN) |
All signalling transport uses SCTP (Stream Control Transmission Protocol) for reliable, multi-homed delivery per RFC 4960.
Known BSCs
| Column | Description |
|---|---|
| Point Code | BSC SS7 point code |
| Global Title | BSC global title address (if configured) |
| Last Reset | Timestamp of the most recent BSSMAP RESET exchange with this BSC |
SIP Peers
| Column | Description |
|---|---|
| Name | Peer logical name |
| Address | Peer IP address and SIP port |
| Transport | Protocol in use (UDP, TCP, or TLS) |
| Active Calls | Current number of active calls to this peer |
| Capacity | Maximum concurrent channels configured for this peer |
| Last OPTIONS | Timestamp of the most recent successful OPTIONS keepalive response |
| Status | Health state badge (Up, Down, Unknown) |
Active Calls
The Active Calls page displays a live table of all CC FSM call transactions currently in progress.
Call Table Columns
| Column | Description |
|---|---|
| Call Ref | Unique call reference number |
| Direction | MO (Mobile Originating) or MT (Mobile Terminating) badge |
| IMSI | Subscriber IMSI |
| Calling | Calling party number (A-number) |
| Called | Called party number (B-number) |
| State | CC FSM state with colour-coded badge |
| Duration | Elapsed time since call seizure |
| Codec | Negotiated speech codec |
| BSC/RNC | Name of the serving BSC or RNC |
Expandable Call Detail
Clicking a call row expands a detailed view with two panels.
Call Details
| Field | Description |
|---|---|
| Call Ref | Unique call reference |
| Direction | MO or MT |
| CC FSM State | Current state of the Call Control finite state machine |
| IMSI | Subscriber IMSI |
| MSISDN | Subscriber phone number |
| IMEI | Mobile equipment identity |
| Calling Party | A-number as presented on the signalling interface |
| Called Party | B-number as presented on the signalling interface |
Timing and Resources
| Field | Description |
|---|---|
| Duration | Elapsed call duration |
| Seizure Time | UTC timestamp of call setup start |
| Answer Time | UTC timestamp of call answer (blank if not yet answered) |
| Basic Service | Bearer service or teleservice associated with the call |
| Active CC Timer | Currently running CC protocol timer (if any) |
| BSC/RNC | Name of the serving BSC or RNC handling the radio side |
Routes and Trunks
The Routes and Trunks page provides three tabbed views for managing call routing configuration at runtime.
Route Table Tab
Displays all prefix-based routing rules with search filtering by prefix or destination type.
| Column | Description |
|---|---|
| Prefix | Number prefix (empty string indicates the catch-all default route) |
| Destination Type | Badge indicating route type: EMRG, SIP, SIP+FO, LOCAL, ISUP, TRANSIT, GMSC |
| Details | Destination-specific information such as peer name or trunk group |
| Priority | Numeric priority value (higher values take precedence) |
| Actions | Edit and Delete buttons for each route |
The Add Route button opens a modal form supporting all destination types. Route changes take effect immediately without requiring a restart.
For detailed routing concepts and configuration, see Routing Configuration.
ISUP Trunks Tab
Displays configured ISUP trunk groups with circuit availability and call counts.
SIP Peers Tab
Displays SIP peer status with address, transport, codec support, channel capacity, and active call counts.
SMS
The SMS page lists all active SMS transaction FSMs, showing transaction ID, subscriber IMSI, direction (MO or MT), transaction state, and SMS Centre address. Completed transactions are removed from the list automatically.
CDRs
The CDR Statistics page provides visibility into the Charging Data Record subsystem.
Summary Counters
| Counter | Description |
|---|---|
| Records in File | Number of CDR records written to the current output file |
| Pending in Buffer | Number of CDR records buffered in memory awaiting the next write cycle |
| Active Calls Tracked | Number of calls with open (not yet finalised) CDR records |
Writer Status
| Field | Description |
|---|---|
| Current File Path | Filesystem path of the active CDR output file |
| Records Written | Total records written to the current file |
| Buffer Pending | Records queued in the write buffer |
Sequence Numbers
Per-record-type sequence counters track the monotonically increasing sequence number for each CDR category:
| Record Type | Description |
|---|---|
| LU HLR | Location Update toward HLR |
| LU VLR | Location Update in VLR |
| MO Call | Mobile Originating voice call |
| MT Call | Mobile Terminating voice call |
| MO SMS | Mobile Originating short message |
| MT SMS | Mobile Terminating short message |
| Roaming | Roaming event records |
Pool
The Pool page is accessible when MSC pool mode is enabled. It displays the status of all MSC pool members, including member name, point code, NRI range, health state (Up, Down, or Draining), and last successful health probe timestamp. A subscriber distribution chart shows the NRI allocation across pool members.
For pool configuration and NRI-based routing, see MSC Pool and NRI.
System
The System page provides detailed information about the BEAM VM, memory allocation, MSC identity, transport links, and supervision tree health.
BEAM VM
| Field | Description |
|---|---|
| OTP Release | Erlang/OTP major version |
| Processes | Current process count and configured limit |
| Ports | Open port count |
| Atoms | Atom table size |
| Schedulers | Number of online schedulers |
| Uptime | BEAM VM uptime since boot |
Memory
| Field | Description |
|---|---|
| Total | Total memory allocated by the BEAM VM |
| Processes | Memory consumed by Erlang/Elixir processes |
| ETS | Memory consumed by ETS tables |
| Binary | Memory consumed by binary reference-counted data |
| Atom | Memory consumed by the atom table |
| System | Memory consumed by the runtime system (non-process) |
MSC Configuration
Displays the active MSC identity parameters:
| Field | Description |
|---|---|
| Name | MSC logical name |
| Point Code | Local SS7 point code |
| Global Title | MSC global title address |
| Allowed A5 | Permitted A5 ciphering algorithms for GERAN |
SCTP Transport
| Field | Description |
|---|---|
| Link | Transport link name |
| Local IP | Local SCTP bind address |
| Remote | Remote STP address and port |
| Status | SCTP association state badge |
Supervision Tree Health
Lists all children of the top-level OmniMSC supervisor (the count is computed dynamically), each displayed with:
| Field | Description |
|---|---|
| PID | Erlang process identifier |
| Type | Process type (worker or supervisor) |
| Status | Health badge (Running, Restarting, or Stopped) |
This view is useful for verifying that all subsystems are operational after startup or following a fault recovery event.