Skip to content

Deploying Yeti-Switch

Introduction

Yeti-Switch is an open-source class 4 softswitch designed for VoIP service providers, carriers, and enterprises. It provides carrier-grade call routing, real-time billing, and comprehensive management features for building voice networks.

Key highlights of Yeti-Switch:

  • Class 4 Switching: High-performance SIP-based call routing
  • Real-Time Billing: CDR generation and rating in real-time
  • LCR Routing: Least Cost Routing with quality metrics
  • Multi-Tenant: Support for multiple customers and vendors
  • Load Balancing: Distribute calls across multiple gateways
  • Codec Transcoding: Media handling and codec conversion
  • Web Interface: Comprehensive management dashboard
  • API Access: REST API for integration and automation

This guide walks through deploying Yeti-Switch on Klutch.sh using Docker.

Why Deploy Yeti-Switch on Klutch.sh

Deploying Yeti-Switch on Klutch.sh provides several advantages:

Scalable Infrastructure: Handle growing call volumes with container scaling.

Management Access: Administer your switch from anywhere with HTTPS access.

Persistent Data: CDRs and configuration persist with Klutch.sh volumes.

Reduced Complexity: Focus on your voice business, not infrastructure management.

Prerequisites

Before deploying Yeti-Switch on Klutch.sh, ensure you have:

Deploying Yeti-Switch on Klutch.sh

    Create Your Repository

    Create a new GitHub repository with a Dockerfile:

    FROM debian:bullseye-slim
    # Install dependencies
    RUN apt-get update && apt-get install -y \
    wget \
    gnupg2 \
    && wget -qO - https://yeti-switch.org/key.gpg | apt-key add - \
    && echo "deb http://yeti-switch.org/debian bullseye main" > /etc/apt/sources.list.d/yeti.list \
    && apt-get update \
    && apt-get install -y yeti-web \
    && apt-get clean
    ENV RAILS_ENV=production
    EXPOSE 3000
    CMD ["bundle", "exec", "puma", "-C", "config/puma.rb"]

    Push to GitHub

    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.

    Deploy PostgreSQL Database

    Yeti-Switch requires PostgreSQL. Deploy a database instance first.

    Create a New App

    Create a new app for the Yeti-Switch web interface and connect your GitHub repository.

    Configure HTTP Traffic

    Set the traffic type to HTTP with port 3000.

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    DATABASE_URLYour PostgreSQL connection string
    SECRET_KEY_BASEGenerate a secure random key
    RAILS_ENVproduction

    Attach Persistent Volume

    Add a persistent volume for configuration and logs.

    Deploy Your Application

    Click Deploy to build and launch the Yeti-Switch web interface.

    Configure Your Switch

    Access the web interface to configure routing, billing, and gateway settings.

Additional Resources

Conclusion

Yeti-Switch on Klutch.sh provides a powerful platform for building VoIP infrastructure. Its carrier-grade features and comprehensive management interface make it suitable for service providers and enterprises needing reliable voice routing and billing.