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:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Understanding of VoIP and SIP protocols
Deploying Yeti-Switch on Klutch.sh
Create Your Repository
Create a new GitHub repository with a Dockerfile:
FROM debian:bullseye-slim
# Install dependenciesRUN 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:
| Variable | Value |
|---|---|
DATABASE_URL | Your PostgreSQL connection string |
SECRET_KEY_BASE | Generate a secure random key |
RAILS_ENV | production |
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
- Yeti-Switch Official Website
- Yeti-Switch Documentation
- Yeti-Switch GitHub Organization
- Klutch.sh Persistent Volumes
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.