Skip to content

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

    Create Your Repository

    Create a new GitHub repository for your SIP3 deployment. Add a Dockerfile:

    FROM sip3io/sip3-hoof:latest
    ENV SERVER_PORT=8080
    ENV MONGO_URI=mongodb://mongodb:27017/sip3
    ENV 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 1

    Push 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:

    • Select HTTP as the traffic type
    • Set the internal port to 8080

    Set Environment Variables

    Add the following environment variables:

    VariableValue
    MONGO_URIYour MongoDB connection string
    INFLUXDB_URIYour InfluxDB connection string
    SERVER_PORT8080

    Attach Persistent Volumes

    Add the following volumes for data persistence:

    Mount PathRecommended SizePurpose
    /data100+ GBCall data and recordings
    /config1 GBConfiguration 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:

  1. Deploy MongoDB instance (or use managed service)
  2. Create database and user for SIP3
  3. Configure connection string in environment variables

InfluxDB Setup

Configure InfluxDB for time-series metrics:

  1. Deploy InfluxDB instance
  2. Create database for SIP3 metrics
  3. 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=true
ENV PCAP_INTERFACE=eth0
ENV SALTO_HOST=your-salto-host

Configuration Options

Configure capture behavior:

OptionDescription
PCAP_INTERFACENetwork interface to capture
PCAP_FILTERBPF filter for packet selection
SALTO_HOSTAddress 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:

  1. Navigate to alert configuration
  2. Set MOS threshold (e.g., below 3.5)
  3. Configure notification method
  4. 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:

  1. Access dashboard builder
  2. Add visualization widgets
  3. Configure data sources
  4. 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-31
Authorization: Bearer YOUR_API_TOKEN

Webhook Integration

Receive real-time events:

  1. Configure webhook endpoint
  2. Select event types
  3. Set up authentication
  4. 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

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.