What is Routr?
What is Routr?
Routr is a programmable SIP proxy, location server, and registrar. It is built as a set of gRPC services: EdgePort handles SIP connections, the Message Dispatcher routes each message, and Processors and Middlewares decide what happens to it. You extend Routr by writing your own processors and middlewares in any language with gRPC support.Routr is the signaling engine behind Fonoster. See the architecture for how the pieces fit together.
Is Routr a media server?
Is Routr a media server?
No. Routr handles SIP signaling only. It doesn’t play prompts, record, mix, or transcode audio.Use Routr in front of media servers such as Asterisk or FreeSWITCH: it registers your phones, routes calls to and between them, and spreads load across several media servers. It complements them; it doesn’t replace them. See Load balancing Asterisk.For WebRTC clients, the RTPRelay middleware drives an RTPEngine instance that bridges WebRTC and SIP media. RTPEngine carries the media, not Routr.
What does Routr depend on?
What does Routr depend on?
The core services have no external dependencies. The Location Service keeps registrations in memory by default.Add these as you need them:
- Redis to share registrations across several Location Service instances, and for the
least-sessionsload-balancing algorithm. See Scale with Redis. - PostgreSQL for the API Server’s
pgdatabackend. The all-in-onefonoster/routr-oneimage bundles it; the Helm chart deploys it for you. The YAML backend (simpledata) needs no database. - RTPEngine only if you need WebRTC.
How does Routr compare with Kamailio and OpenSIPS?
How does Routr compare with Kamailio and OpenSIPS?
Like Kamailio and OpenSIPS, Routr is a programmable SIP server. The difference is the architecture. Routr splits the server into separate services that talk over gRPC, and only EdgePort holds SIP state. You scale each service on its own, for example by adding Location Service or processor replicas, and you can replace any component with your own implementation, such as a custom authentication middleware.You write routing logic as regular code (TypeScript, or any gRPC language) rather than in a server-specific configuration language.
What happens to calls if an EdgePort goes away?
What happens to calls if an EdgePort goes away?
EdgePort is the only stateful service: it holds the SIP connections and transactions of the endpoints connected to it. If it stops, those endpoints re-register through another EdgePort. Routr doesn’t move in-flight calls to another EdgePort. See EdgePort cooperation and Deployment topologies.
Which languages is Routr written in?
Which languages is Routr written in?
EdgePort and Requester, which handle SIP, are written in Java. The other services (Dispatcher, Location Service, Connect, API Server, Registry, and the middlewares) are written in TypeScript for Node.js.
Is Routr certified for SIP Connect?
Is Routr certified for SIP Connect?
No. The Connect processor implements the PBX portion of SIP Connect 1.1, but it isn’t certified.
What license does Routr use?
What license does Routr use?
Routr is released under the MIT license.