OpenSource-Hub
R

Routr

1.7k stars·开发工具·已提供 SHA-256 校验码,下载后可自行核对文件完整性

轻量级云原生 SIP 服务器,为电信运营商提供可靠、可编程的 SIP 路由能力。

智能下载

前往项目主页

该项目暂未提供安装包,请直接访问源代码仓库

云原生 SIP 服务器,让通话路由像代码一样可编程。

核心功能

  • 可编程路由:通过自定义处理器和中间件动态调整路由逻辑
  • 云原生部署:原生支持 Docker 和 Kubernetes (Helm)
  • 多租户与 ACL:基于域的多租户隔离和访问控制
  • 负载均衡与亲和性:针对 Asterisk/FreeSWITCH 等媒体服务器的智能路由
  • 多种数据源:支持 JSON/YAML 文件、Postgres、Redis 作为配置与位置服务

避坑指南

  • 需要正确设置 EXTERNAL_ADDRS 环境变量为服务器公网 IP,否则 SIP 信令可能无法正确路由。2. 默认使用内置 PostgreSQL,生产环境建议替换为外部数据库。3. 需要基本 SIP 协议知识才能理解路由配置。4. 暂不支持 STIR/SHAKEN(通话身份认证),正在开发中。

适用场景

  • 通信服务提供商搭建 SIP 中继平台
  • 企业内部 VoIP 系统替换传统 PBX
  • 云电话系统需要可编程路由和弹性扩展
  • 集成商为媒体服务器(Asterisk/FreeSWITCH)做统一入口和负载均衡

详细介绍

Routr 是一款轻量级的 SIP 代理、位置服务器和注册器,专为电信运营商、通信服务提供商和集成商设计。它采用云原生、Kubernetes 就绪的架构,提供可编程路由、多租户支持,并能对 Asterisk、FreeSWITCH 等媒体服务器进行负载均衡。主要功能包括会话亲和性、基于域的访问控制列表、可配置路由策略(域内、域入站、域出站、对等出站),支持 TCP/UDP/TLS/WS/WSS 传输协议,以及多种数据源(JSON/YAML 文件、Postgres、Redis)。提供 gRPC API、Node.js SDK 和命令行工具进行管理。可通过 Docker、Kubernetes(Helm Chart)或 Gitpod 快速部署。采用 MIT 开源协议,社区活跃在 GitHub 和 Discord。

常见问题与排障 (1)

故障排除
为什么Routr One会失败并提示'pg_ctl: directory is not a database cluster directory'?

位于 /var/lib/postgresql/data 的 Postgres 数据目录尚未初始化。运行 'initdb -D /var/lib/postgresql/data' 来创建数据库集群,或者确保您使用的是官方 Postgres Docker 镜像(例如 postgres:15),该镜像会在首次启动时自动初始化。对于 Routr One,在您的 docker-compose.yml 中包含一个带有命名卷以实现数据持久化的 Postgres 服务,并验证目录权限。

来源 Issue #296

标签

sipproxytelephonykubernetescloud-native

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

步骤1:确保已安装 Docker,然后在终端执行:docker run -p 51908:51908 -p 5060:5060/udp -e EXTERNAL_ADDRS=你的IP地址 fonoster/routr-one:latest

4

步骤2:等待容器启动(约1分钟),使用 docker ps 确认状态为 Up

5

步骤3:使用 CLI 或 gRPC 客户端连接服务器,开始配置域名和路由

安装指引
  1. 步骤1:确保已安装 Docker,然后在终端执行:docker run -p 51908:51908 -p 5060:5060/udp -e EXTERNAL_ADDRS=你的IP地址 fonoster/routr-one:latest
  2. 步骤2:等待容器启动(约1分钟),使用 docker ps 确认状态为 Up
  3. 步骤3:使用 CLI 或 gRPC 客户端连接服务器,开始配置域名和路由
文件完整性

暂未获取到校验码

该项目暂未在 GitHub Release 页面提供 SHA-256 校验码

SHA256 校验码

暂无校验码

建议从 GitHub Releases 页面直接下载,并自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

如果需要卸载,只需停止并删除容器:docker stop <容器ID> && docker rm <容器ID>。若使用了 Helm 部署,执行 helm uninstall my-release --namespace routr 并删除命名空间 kubectl delete namespace routr。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议MIT
最后更新2026-06-27 01:40:21
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

1 FAQ

相似推荐