OpenSource-Hub
R

Routr

1.7k stars·Developer Tools·SHA-256 checksum verified

A lightweight, cloud-native SIP server that provides reliable and programmable SIP routing for telephony carriers and communication providers.

Smart Download

Visit Project Homepage

No installer available yet — head to the source repository

Cloud-native SIP server that makes call routing programmable and Kubernetes-ready.

Core Features

  • Programmable routing via custom processors and middleware
  • Cloud-native deployment with Docker and Kubernetes (Helm)
  • Multi-tenant with domain-level ACLs
  • Load balancing and session affinity for media servers like Asterisk/FreeSWITCH
  • Multiple data sources: JSON/YAML files, Postgres, Redis

What It Can't Do

  • Must set EXTERNAL_ADDRS to the server's public IP for correct SIP routing. 2. Built-in PostgreSQL is for development; use external DB in production. 3. Requires basic SIP knowledge. 4. STIR/SHAKEN support is not yet available (in development).

Use Cases

  • SIP trunking platform for communication service providers
  • Enterprise VoIP system replacing legacy PBX
  • Cloud phone system requiring programmable routing and auto-scaling
  • Unified ingress and load balancing for media servers (Asterisk/FreeSWITCH)

Detailed Introduction

Routr is a lightweight SIP proxy, location server, and registrar designed for telephony carriers, communication service providers, and integrators. It offers a cloud-native, Kubernetes-ready architecture with programmable routing, multi-tenancy, and load balancing against media servers like Asterisk and FreeSWITCH. Key features include session affinity, domain-level ACLs, configurable routing strategies (Intra-Domain, Domain Ingress, Domain Egress, Peer Egress), support for TCP/UDP/TLS/WS/WSS transports, and multiple data sources (JSON/YAML files, Postgres, Redis). It provides a gRPC API, Node.js SDK, and CLI for management. Routr can be deployed via Docker, Kubernetes (Helm chart), or Gitpod for development. It is open source under the MIT license and has an active community on GitHub and Discord.

Troubleshooting & FAQ (1)

Troubleshooting
Why does Routr One fail with 'pg_ctl: directory is not a database cluster directory'?

The Postgres data directory at /var/lib/postgresql/data has not been initialized. Run 'initdb -D /var/lib/postgresql/data' to create the database cluster, or ensure you are using the official Postgres Docker image (e.g., postgres:15) that automatically initializes on first start. For Routr One, include a Postgres service in your docker-compose.yml with a named volume for data persistence, and verify the directory permissions.

GitHub Issue #296

Tags

sipproxytelephonykubernetescloud-native

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: Ensure Docker is installed, then run: docker run -p 51908:51908 -p 5060:5060/udp -e EXTERNAL_ADDRS=YOUR_IP fonoster/routr-one:latest

4

Step 2: Wait for the container to start (about 1 minute), check status with docker ps

5

Step 3: Connect with CLI or gRPC client and start configuring domains and routes

Install Guide
  1. Step 1: Ensure Docker is installed, then run: docker run -p 51908:51908 -p 5060:5060/udp -e EXTERNAL_ADDRS=YOUR_IP fonoster/routr-one:latest
  2. Step 2: Wait for the container to start (about 1 minute), check status with docker ps
  3. Step 3: Connect with CLI or gRPC client and start configuring domains and routes
File Integrity

Checksum not available

This project has not published a SHA-256 checksum on its GitHub Release page

SHA256 Checksum

No checksum available

Download directly from GitHub Releases and verify file integrity yourself

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

To uninstall, stop and remove the container: docker stop <container-id> && docker rm <container-id>. For Helm deployments, run helm uninstall my-release --namespace routr and then delete the namespace: kubectl delete namespace routr.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseMIT
Last Updated2026-06-27 01:40:21
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

1 FAQ

Similar Projects