Getting Started with IMS Core¶
Quick Start¶
Prerequisites¶
- Go 1.23 or later
- Docker or Podman
- Kubernetes cluster (for K8s deployment)
- Ansible (for Ansible deployment)
Build¶
This will build the IMS Core container image with tag ims-core:local.
Run Locally¶
Or manually:
docker run -d \
--name ims-core-local \
-p 5060:5060/udp \
-p 5060:5060/tcp \
-p 8080:8080 \
-p 9443:9443 \
-e LOG_LEVEL=debug \
ims-core:local
Configuration¶
Key environment variables:
LOG_LEVEL: Log level (debug, info, warn, error)IMS_DOMAIN: IMS domain name (default: ims.local)ENABLE_SBC: Enable SBC/IBCF (default: true)ENABLE_HSS: Enable HSS (default: true)ZERO_TRUST_MODE: Enable Zero Trust Mode (default: false)SBC_TOPOLOGY_HIDING: Enable topology hiding (default: true)SBC_DOS_PROTECTION: Enable DoS protection (default: true)
Zero Trust Mode¶
To enable Zero Trust Mode:
API Endpoints¶
- Health:
http://localhost:8080/health - Metrics:
http://localhost:9443/metrics - Subscribers:
http://localhost:8080/api/v1/subscribers - Registrations:
http://localhost:8080/api/v1/registrations/:impi
SIP Endpoints¶
- UDP:
0.0.0.0:5060 - TCP:
0.0.0.0:5060 - TLS:
0.0.0.0:5061(when TLS enabled)
Kubernetes Deployment¶
Using Manifests¶
Using Ansible¶
Testing¶
Test SIP Message¶
Use sipgrep or sipsak to send test SIP messages:
# Register
sipsak -U -s sip:alice@ims.local -a alice -w secret123 sip:ims.local:5060
# INVITE
sipsak -U -s sip:alice@ims.local -a alice -w secret123 -M -B "sip:bob@ims.local" sip:ims.local:5060
Test API¶
# Health check
curl http://localhost:8080/health
# List subscribers
curl http://localhost:8080/api/v1/subscribers
# Get subscriber
curl http://localhost:8080/api/v1/subscribers/alice@ims.local
Next Steps¶
- Review Architecture Hierarchy for detailed architecture
- Configure Zero Trust Mode for production
- Set up persistent storage for HSS
- Configure TLS/SRTP for secure SIP
- Integrate with external systems