Skip to main content

Web UI Operations Guide

Table of Contents

  1. Overview
  2. Accessing the Control Panel
  3. P-CSCF Management
  4. I-CSCF Management
  5. S-CSCF Management
  6. Diameter Peer Management
  7. Hash Table Operations
  8. Logs Viewing
  9. Monitoring and Metrics

Overview

The OmniCall CSCF Web UI provides a comprehensive control panel for real-time monitoring and management of all CSCF components (P-CSCF, I-CSCF, S-CSCF). The interface is built on Phoenix LiveView and provides:

  • Real-time visibility into registrations, active calls, and system state
  • Hash table management for performance-critical in-memory data structures
  • Diameter peer monitoring and control
  • Prometheus metrics for system monitoring
  • Live log viewing for troubleshooting

Architecture

The control panel communicates with CSCF backend instances to:

  • Query user registrations and location data
  • Inspect active dialogs (calls)
  • Manage Diameter peers
  • View and manipulate hash tables
  • Access Initial Filter Criteria (IFC) configuration

Accessing the Control Panel

Default Access

The control panel is accessible via HTTP on the CSCF server:

http://<cscf-server>:4000/

Default Port: 4000 (configurable in ControlPanel.Supervisor)

Configuration

The control panel requires CSCF host configuration in config/config.exs or config/runtime.exs:

config :cscf, :cscf_hosts,
pcscf: [
{host: "10.4.12.165", port: 9060, label: "P-CSCF 1"}
],
icscf: [
{host: "10.4.12.166", port: 9060, label: "I-CSCF 1"}
],
scscf: [
{host: "10.4.12.167", port: 9060, label: "S-CSCF 1"}
]

The control panel provides navigation tabs for each CSCF component:

  • P-CSCF - /pcscf - Registration contacts and hash tables
  • I-CSCF - /icscf - S-CSCF list, NDS domains, sessions
  • S-CSCF - /scscf - Registrations, dialogs, IFC management
  • Diameter - /diameter - Diameter peer status and control
  • Logs - /logs - Live log viewing

P-CSCF Management

URL: /pcscf

Features

The P-CSCF panel displays registered contacts and hash table information from P-CSCF instances.

Registered Contacts Tab

Displays all current IMS registrations visible to the P-CSCF:

ColumnDescription
IMSISubscriber IMSI or Contact identifier
StateRegistration state (registered, unregistered)
ExpiresTime until registration expires
PathSIP Path header for routing

Operations:

  • Click on row to expand and view detailed contact information including:
    • Full AoR (Address of Record)
    • UE IP address
    • Path details
    • Statistics (max slots, records)

Hash Tables Tab

Manage P-CSCF hash tables. See Hash Table Operations below.

Real-time Updates

The P-CSCF view automatically refreshes every 5 seconds to show current registration status.

I-CSCF Management

URL: /icscf

Features

The I-CSCF panel provides monitoring of I-CSCF operations including S-CSCF selection and session tracking.

S-CSCF List Tab

Displays all configured S-CSCF servers known to the I-CSCF:

  • ID: S-CSCF identifier
  • Name: S-CSCF FQDN
  • Capabilities: Number of supported capabilities

NDS Domains Tab

Shows trusted NDS (Network Domain Security) domains configured on the I-CSCF.

Sessions Tab

Displays active I-CSCF sessions including:

  • Call-ID: SIP Call-ID
  • S-CSCF Candidates: List of S-CSCF servers considered for assignment
    • S-CSCF name
    • Selection score
    • Age (time since candidate was added)

Hash Tables Tab

Manage I-CSCF hash tables. See Hash Table Operations below.

S-CSCF Management

URL: /scscf

The S-CSCF panel is the most feature-rich, providing comprehensive registration, dialog, and IFC management.

List Registrations Tab

Browse all active registrations with pagination:

Features:

  • Pagination controls: Offset and limit for large registration databases
  • Registration details for each IMPU:
    • Public user identity (IMPU)
    • Registration state
    • Slot number
    • Contact details with User-Agent and expiry
    • Call-ID

Quick Actions for each registration:

  • Lookup: View detailed IMPU information
  • Dump IFC: View Initial Filter Criteria for the user
  • Test IFC: Test IFC matching for simulated calls
  • Deregister: Administratively remove registration

User Location Tab

Query and inspect user location data:

  • View raw user location status from S-CSCF
  • IMPU Lookup form: Query specific public user identity
  • Displays complete registration details including contacts, state, and metadata

Dialogs Tab

Manage active call sessions (dialogs):

ColumnDescription
Dialog IDh_entry:h_id identifier
Call-IDSIP Call-ID
FromCalling party URI
ToCalled party URI
StateDialog state

Operations:

  • End Dialog: Terminate specific call (sends BYE)
  • End All: Terminate all active calls (with confirmation)

IFC Tab

Initial Filter Criteria tools for service triggering management:

Dump IFC

Retrieve and display all IFC rules for a given IMPU:

  • Public identity
  • Private identity
  • Service profile count
  • Filter Criteria for each service profile:
    • Priority (execution order)
    • Default handling (SESSION_CONTINUED vs SESSION_TERMINATED)
    • Application Server name
    • REGISTER inclusion flags
    • Trigger Point details:
      • Condition type (DNF or CNF)
      • Service Point Triggers (SPTs):
        • METHOD, HEADER, SESSION_CASE, REQUEST_URI, etc.
        • Negation flags

The IFC display includes:

  • Color-coded priority badges
  • Expandable trigger point logic explanations
  • DNF (Disjunctive Normal Form) = OR of ANDs
  • CNF (Conjunctive Normal Form) = AND of ORs

Test IFC

Test which Application Servers would be triggered for a simulated session:

Input:

  • URI (subscriber public identity)
  • Direction (originating or terminating)
  • Method (INVITE, REGISTER, MESSAGE, SUBSCRIBE)
  • Request URI (destination)

Output:

  • Registration status
  • Matching IFC count
  • List of triggered Application Servers with IFC index

Hash Tables Tab

Manage S-CSCF hash tables. See Hash Table Operations below.

Diameter Peer Management

URL: /diameter

Features

Monitor and control Diameter peer connections (Cx, Rx, Ro interfaces).

Summary Information

Dashboard displays:

  • Realm: Diameter realm
  • Identity: Diameter Origin-Host
  • Peer Count: Number of configured peers
  • Workers: CDP worker count
  • Queue Length: Pending transactions
  • Connect Timeout: Connection timeout (seconds)
  • Transaction Timeout: Transaction timeout (seconds)
  • Accept Unknown Peers: Policy flag

Peer List

Table of all Diameter peers:

ColumnDescription
FQDNPeer fully-qualified domain name
StateConnection state (I_Open, Closed, etc.)
StatusEnabled or Disabled
Last UsedTime since last transaction
ApplicationsNumber of supported Diameter applications

Operations:

  • Enable Peer: Activate disabled peer
  • Disable Peer: Deactivate peer (with confirmation)
  • Click on row: Expand to view supported applications

Application Mapping

The control panel automatically maps Diameter Application IDs to 3GPP interface names:

  • Cx/Dx (16777216:10415) - IMS Subscription/Authorization
  • Sh/Dh (16777217:10415) - User Data Access
  • Rx (16777236:10415) - IMS Media Plane Control
  • Ro (16777238:10415/0) - Online Charging
  • Gx (16777224:10415) - Policy Control
  • S6a/S6d (16777251:10415) - LTE/EPC MME-HSS
  • And many more (see source: diameter_live.ex)

Real-time Updates

Diameter peer status automatically refreshes every 5 seconds.

Hash Table Operations

Overview

CSCF components use in-memory hash tables for performance-critical data. The control panel provides visibility and management of these tables.

Available Hash Tables

Tables vary by CSCF type. Common examples:

Hash TableCSCFPurpose
imei_msisdnP-CSCFEmergency callback mapping
service_routesP-CSCFCached service routes
authS-CSCFAuthentication vectors
VariousAllComponent-specific caching

Hash tables are in-memory data structures used for performance-critical operations.

Viewing Hash Tables

Access: Navigate to any CSCF panel → Hash Tables tab

  1. View list of all hash tables with statistics:

    • Table name
    • Item count
    • Size
  2. Select table to view entries

  3. Sort by name, items, or size

Viewing Hash Table Contents

Click on a table to inspect all entries:

  • Key: Hash table key
  • Value: Stored value
  • Actions: Delete button

Managing Hash Entries

Delete Single Entry

  1. Select hash table
  2. Locate the entry
  3. Click Delete button (trash icon)
  4. Confirm action

Result: Entry removed from hash table

Flush Entire Table

  1. Select hash table
  2. Click Clear Table button
  3. WARNING: Confirms before clearing ALL entries
  4. Confirm action

Result: All entries removed from table

Caution: Flushing tables can cause temporary service disruption:

  • imei_msisdn flush: Emergency callbacks may fail until re-registration
  • auth flush: In-progress authentication challenges will fail
  • service_routes flush: Next request will route via I-CSCF discovery

Logs Viewing

URL: /logs

Features

View application logs in real-time from the control panel.

Features (implementation in ControlPanel dependency):

  • Live log streaming
  • Log level filtering
  • Search and filtering capabilities

Monitoring and Metrics

Prometheus Integration

OmniCall CSCF exposes Prometheus metrics for monitoring and alerting.

Metrics Endpoint:

http://<host>:9090/metrics

Each CSCF host (P-CSCF, I-CSCF, S-CSCF) exposes metrics on port 9090. Configure Prometheus to scrape all hosts for complete visibility.

For a complete reference of all P-CSCF, I-CSCF, and S-CSCF metrics see the Metrics Reference.

Available Metrics

The following metrics are exposed by the OmniCall CSCF control panel application. For CSCF component metrics (SIP, Diameter, IMS, etc.), see the Metrics Reference.

VM Metrics

  • vm_memory_total - Total Erlang VM memory (bytes)
  • vm_memory_processes_used - Memory used by processes (bytes)
  • vm_memory_binary - Binary memory (bytes)
  • vm_memory_ets - ETS table memory (bytes)
  • vm_total_run_queue_lengths_total - Total run queue length
  • vm_system_counts_process_count - Process count
  • vm_system_counts_atom_count - Atom count
  • vm_system_counts_port_count - Port count

Phoenix HTTP Metrics

  • phoenix_endpoint_stop_duration - HTTP request duration (milliseconds)
  • phoenix_router_dispatch_stop_duration - Router dispatch duration (milliseconds)

LiveView Metrics

  • phoenix_live_view_mount_stop_duration - LiveView mount duration (milliseconds)

CSCF Backend Integration Metrics

  • cscf_backend_request_count - Backend RPC request count
    • Tags: host, command, result
  • cscf_backend_request_duration - Backend RPC duration (milliseconds)
    • Tags: host, command
  • cscf_backend_error_count - Backend RPC error count
    • Tags: host, error_type

Grafana Dashboards

Current Status: Metrics are exposed via Prometheus endpoint. Pre-built Grafana dashboards are not currently included but can be created using the available metrics.

Recommended Dashboard Panels:

  • Backend RPC latency by command
  • Registration count trends
  • Dialog count trends
  • Backend error rates
  • Erlang VM memory usage
  • LiveView mount performance

Integration

Configure Prometheus to scrape metrics from all CSCF hosts:

scrape_configs:
- job_name: 'cscf_pcscf'
static_configs:
- targets: ['pcscf1.example.com:9090', 'pcscf2.example.com:9090']

- job_name: 'cscf_icscf'
static_configs:
- targets: ['icscf1.example.com:9090', 'icscf2.example.com:9090']

- job_name: 'cscf_scscf'
static_configs:
- targets: ['scscf1.example.com:9090', 'scscf2.example.com:9090']

Best Practices

Operational Guidelines

Monitoring:

  • Monitor Prometheus metrics for system health
  • Watch for backend RPC errors
  • Track Erlang VM memory growth

Hash Table Management:

  • Avoid flushing tables in production unless absolutely necessary
  • Monitor table size growth for potential memory issues
  • Use selective deletion instead of full table flush

Troubleshooting:

  • Use Live Logs for real-time debugging
  • Check Diameter peer status before investigating registration failures
  • Verify CSCF backend connectivity if control panel shows errors

Performance:

  • Control panel auto-refresh is 5 seconds by default
  • Large registration lists use pagination to avoid performance issues
  • Hash table operations are read-heavy; minimize write operations during peak hours