Routr logo

Routr

  •  0 ratings
In category: Communication / SIP

About Routr

A lightweight sip proxy, location server, and registrar for a reliable and scalable SIP infrastructure.

  •   495  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: 2,225  
  •   1,000  
  •   116  
  •  Latest commit: Feb 11, 2023  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about Routr

Routr (v2)

Contribute with Gitpod Discord Code Of Conduct GitHub Twitter Follow

Routr is a lightweight sip proxy, location server, and registrar that provides a reliable and scalable SIP infrastructure for telephony carriers, communication service providers, and integrators.

Community

We are building Routr in the open. The best to communicate with us via GitHub Discussions.


Special Announcement:

We now have a Discord Channel
There we plan to discuss roadmaps, feature requests, and more
Join us today


Twitter: @fonoster

Issue tracker: Use the GitHub issue tracker for the various Routr repositories to file bugs and features request. If you need support, please send your questions to the routr-users mailing list rather than filing a GitHub issue.

Please do not ask individual project members for support. Use the channels above instead, where the whole community can help you and benefit from the solutions provided. Please contact us for Commercial Support if you need more than community support.

Features

Routr's main features are:

  • [x] Common SIP Server functions; Proxy, Registrar, Location Service
  • [x] Programmable Routing
  • [x] Load balancing strategies against Media Servers like Asterisk and FreeSWITCH
  • [x] Session Affinity
  • [x] Multi-Tenant/Multi-Domain with Domain level Access Control List
  • [ ] Region-based routing
  • [x] Configurable routing strategies; Intra-Domain, Domain Ingress, Domain Egress, and Peer Egress
  • [x] No single point of failure
  • [x] Transport: TCP, UDP, TLS, WS, WSS
  • [x] In-memory and Redis Location Service
  • [x] JSON and YAML files as a data source
  • [x] Postgres as a data source
  • [x] Server management with the gRPC API
  • [x] NodeSDK
  • [x] Command-Line Tool
  • [ ] Web Application
  • [ ] Endpoint Authentication with JWT (For web phones)
  • [x] RTPEngine Middleware
  • [ ] Support for STIR/SHAKEN
  • [ ] Helm Chart for Kubernetes Deployments

To learn more, read the documentation. 📚

Give a Star! ⭐

If you like this project or plan to use it in the future, please give it a star. Thanks 🙏

Example configuration

Consider a situation where you want to deploy the server and send all PSTN traffic to a conference room in Asterisk. For such a scenario, you must configure a Peer to present your feature server and a Number to route calls from the PSTN.

First, start by creating a Peer configuration for your Asterisk server similar to the following one:

apiVersion: v2draft1
kind: Peer
ref: peer-01
metadata:
  name: Asterisk (Media Server)
spec:
  aor: backend:conference
  username: asterisk
  credentialsRef: credentials-01
  loadBalancing:
    withSessionAffinity: true
    algorithm: least-sessions

Notice that the loadBalancing section sets the withSessionAffinity to true. We need session affinity to ensure that all calls related to the conference arrive on the same Asterisk server. Every Asterisk server that registers using the asterisk username will be grouped under the backend:conference Address of Record (AOR).

Next, we need to tell Routr to map all inbound calls from a given Number to the conference room in Asterisk. For that, we use the aorLink and sessionAffinityHeader on the desired Number. Here is an example:

apiVersion: v2draft1
kind: Number
ref: number-01
metadata:
  name: "(706)604-1487"
  geoInfo:
    city: Columbus, GA
    country: USA
    countryISOCode: US
spec:
  trunkRef: trunk-01
  location:
    telUrl: tel:+17066041487
    aorLink: backend:conference
    sessionAffinityHeader: X-Room-Id
    extraHeaders:
      # Appends the X-Room-Id header to all inbound calls
      - name: X-Room-Id
        value: jsa-shqm-iyo

The last scenario is one of the many possible scenarios you can accomplish with Routr (v2). Please spend some time getting familiar with the configuration files.

Deployment

Instant Server deployment with Docker and Compose

For a quick demo of Routr, follow the next two steps:

➊ Clone the repository and run the server

git clone https://github.com/fonoster/routr
docker-compose up 

➋ Connect to Routr using Zoiper or another softphone

In the config/resources, you will find the domains.yaml and agents.yaml files. Those files contain the configuration to run a simple local network with two SIP Agents (John and Jane).

Deploying in development mode with Gitpod

Routr's one-click interactive deployment will familiarize you with the server in development mode.

Open in Gitpod

Kubernetes

Deploying Routr in Kubernetes is coming soon.

Bugs and Feedback

For bugs, questions, and discussions, please use the Github Issues

Contributing

For contributing, please see the following links:

Sponsors

We're glad to be supported by respected companies and individuals from several industries.

Find all our supporters here

Become a Github Sponsor

Authors

License

Copyright (C) 2022 by Fonoster Inc. MIT License (see LICENSE for details).

Comments (0)

Please login to join the discussion on this project.

Routr Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

pCloud Lifetime

Popular Projects

FluxBB

in Social Networks and Forums
 33k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Libreddit

in Social Networks and Forums
 7k    0    1    0  

CasaOS

in Self-hosting Solutions
 5k    0    0    0  

Dashboard

in Personal Dashboards
 5k    0    0    0  

Audiobookshelf

in Audio Streaming
 5k    0    1    0  

Mediagoblin

in Photo and Video Galleries
 4k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Tube Archivist

in Automation
 3k    0    1    0  

OneDev

in Project Management
 2k    0    0    0  

iodine

in Proxy
 2k    0    0    0  

Alf.io

in Booking and Scheduling
 2k    0    0    0  

sysPass

in Password Managers
 1k    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

Yeti-Switch logo
Yeti-Switch cover

Yeti-Switch

Transit class4 softswitch(SBC) with integrated billing and …

Kazoo logo
Kazoo cover

Kazoo

KAZOO is an open-source, highly scalable software platform …

Freepbx logo
Freepbx cover

Freepbx

Web-based open source GUI that controls and manages Asteris…