Deploying SIP3
Introduction
SIP3 is an open-source VoIP and real-time communication (RTC) troubleshooting platform designed to monitor, analyze, and debug SIP-based communications. It provides comprehensive visibility into call flows, quality metrics, and network issues that affect voice and video communications.
Built for telecommunications professionals and network engineers, SIP3 captures SIP signaling and RTP media streams, correlates them into coherent call sessions, and presents the data through an intuitive web interface. The platform supports high-volume environments and provides real-time alerting for quality degradation.
Key highlights of SIP3:
- Call Flow Visualization: Interactive diagrams showing complete SIP message flows
- Quality Metrics: MOS scores, jitter, packet loss, and latency monitoring
- Real-Time Monitoring: Live dashboard with active call statistics
- Search and Filtering: Find calls by number, IP, codec, or quality metrics
- RTP Analysis: Media stream quality analysis and correlation
- Alerting System: Configurable alerts for quality thresholds
- SRTP Support: Decrypt encrypted media for analysis
- Multi-Protocol: Support for SIP, SDP, RTP, RTCP, and more
- Scalable Architecture: Handle millions of calls per day
- REST API: Programmatic access to all platform features
- Retention Policies: Configurable data retention for compliance
This guide walks through deploying SIP3 on Klutch.sh using Docker, configuring capture agents, and setting up the platform for VoIP troubleshooting.
Why Deploy SIP3 on Klutch.sh
Deploying SIP3 on Klutch.sh provides several advantages for VoIP monitoring:
Simplified Deployment: Klutch.sh automatically builds your SIP3 configuration without complex infrastructure setup.
Persistent Storage: Attach persistent volumes for call data and analytics. Historical records survive container restarts.
HTTPS by Default: Secure access to your monitoring dashboard with automatic SSL certificates.
Scalable Resources: Allocate CPU and memory based on call volume and retention requirements.
GitHub Integration: Store configuration in version control for reproducible deployments.
Always-On Monitoring: 24/7 availability ensures continuous VoIP infrastructure visibility.
Prerequisites
Before deploying SIP3 on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your SIP3 configuration
- Basic familiarity with Docker and containerization concepts
- Understanding of SIP protocol and VoIP infrastructure
- Network access to deploy capture agents on VoIP servers
- (Optional) A custom domain for your SIP3 instance
SIP3 Architecture
SIP3 consists of several components:
- Captain: Capture agent deployed on VoIP servers
- Salto: Processing engine for call correlation
- Hoof: Web interface for visualization
- MongoDB: Database for call records
- InfluxDB: Time-series database for metrics
Deploying SIP3 on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 8080
Create Your Repository
Create a new GitHub repository for your SIP3 deployment. Add a Dockerfile:
FROM sip3io/sip3-hoof:latest
ENV SERVER_PORT=8080ENV MONGO_URI=mongodb://mongodb:27017/sip3ENV INFLUXDB_URI=http://influxdb:8086
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/api/health || exit 1Push to GitHub
Commit and push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “sip3” or “voip-monitoring”.
Create a New App
Within your project, create a new app. Connect your GitHub account and select your repository.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Add the following environment variables:
| Variable | Value |
|---|---|
MONGO_URI | Your MongoDB connection string |
INFLUXDB_URI | Your InfluxDB connection string |
SERVER_PORT | 8080 |
Attach Persistent Volumes
Add the following volumes for data persistence:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/data | 100+ GB | Call data and recordings |
/config | 1 GB | Configuration files |
Deploy Your Application
Click Deploy to start the build process.
Access SIP3 Dashboard
Once deployment completes, access your SIP3 dashboard at the provided URL.
Database Configuration
MongoDB Setup
SIP3 requires MongoDB for storing call records:
- Deploy MongoDB instance (or use managed service)
- Create database and user for SIP3
- Configure connection string in environment variables
InfluxDB Setup
Configure InfluxDB for time-series metrics:
- Deploy InfluxDB instance
- Create database for SIP3 metrics
- Configure connection in environment variables
Capture Agent Deployment
Installing Captain
Deploy capture agents on your VoIP servers:
FROM sip3io/sip3-captain:latest
ENV HOST_MODE=trueENV PCAP_INTERFACE=eth0ENV SALTO_HOST=your-salto-hostConfiguration Options
Configure capture behavior:
| Option | Description |
|---|---|
PCAP_INTERFACE | Network interface to capture |
PCAP_FILTER | BPF filter for packet selection |
SALTO_HOST | Address of Salto processing engine |
Multiple Capture Points
Deploy captains on each VoIP component:
- SIP proxies and B2BUAs
- Media servers
- Session border controllers
- PBX systems
Call Analysis Features
Call Flow Diagrams
Visualize SIP message flows:
- Complete call setup and teardown
- Message timing and delays
- Error response identification
- Retransmission detection
Quality Metrics
Monitor call quality indicators:
- MOS Score: Mean Opinion Score estimation
- Jitter: RTP stream timing variation
- Packet Loss: Lost media packets percentage
- Latency: End-to-end delay measurement
Search and Filtering
Find specific calls quickly:
- Phone number search
- IP address filtering
- Time range selection
- Quality threshold filtering
- Codec filtering
Alerting Configuration
Quality Alerts
Configure alerts for quality issues:
- Navigate to alert configuration
- Set MOS threshold (e.g., below 3.5)
- Configure notification method
- Set alert frequency limits
Error Alerts
Alert on SIP errors:
- 4xx client errors
- 5xx server errors
- Registration failures
- Authentication issues
Notification Methods
Configure alert delivery:
- Email notifications
- Webhook integrations
- Slack/Teams integration
- SMS via webhook
Dashboard Customization
Creating Dashboards
Build custom monitoring views:
- Access dashboard builder
- Add visualization widgets
- Configure data sources
- Set refresh intervals
Available Widgets
Use various visualization types:
- Call volume charts
- Quality trend graphs
- Top talkers lists
- Error rate displays
- Geographic maps
API Integration
REST API Access
Programmatic access to SIP3 data:
GET /api/calls?from=2024-01-01&to=2024-01-31Authorization: Bearer YOUR_API_TOKENWebhook Integration
Receive real-time events:
- Configure webhook endpoint
- Select event types
- Set up authentication
- Process incoming events
Best Practices
Performance Optimization
- Retention Policies: Configure appropriate data retention
- Index Optimization: Ensure proper database indexing
- Capture Filters: Filter unnecessary traffic at capture point
Security Considerations
- Access Control: Limit dashboard access appropriately
- Encryption: Use HTTPS for all communications
- SRTP Keys: Securely manage decryption keys
Scaling Strategies
- Distributed Capture: Deploy multiple captain instances
- Database Scaling: Use replica sets for MongoDB
- Load Balancing: Balance traffic across multiple Salto instances
Troubleshooting
Missing Call Data
- Verify captain is capturing traffic
- Check network interface configuration
- Confirm Salto connectivity
- Review capture filters
Quality Metrics Unavailable
- Ensure RTP capture is enabled
- Verify RTP port range configuration
- Check for NAT/firewall issues
Performance Issues
- Review database performance
- Check storage I/O capacity
- Optimize retention policies
- Scale resources as needed
Additional Resources
- SIP3 Official Website
- SIP3 Documentation
- SIP3 GitHub Organization
- Klutch.sh Persistent Volumes
- Klutch.sh Deployments
Conclusion
Deploying SIP3 on Klutch.sh provides a powerful platform for VoIP troubleshooting and monitoring. With comprehensive call analysis, quality metrics, and alerting capabilities, you can maintain visibility into your communications infrastructure and quickly identify issues affecting call quality. The combination of SIP3’s analysis capabilities with Klutch.sh’s reliable hosting ensures your VoIP monitoring is always available when you need it.