An open-source IMS alternative to Kamailio and OpenSIPS

  • Home
  • /
  • An open-source IMS alternative to Kamailio and OpenSIPS

Why another SIP engine

Kamailio and OpenSIPS carry a large share of the world’s phone calls. They are mature, fast, and proven over two decades. Most open-source IMS deployments today are built on one of them, and for many teams that is still the right choice.

We built SIPhon after years of running those platforms ourselves. The protocol logic they implement is sound. What we wanted to change is how you work with it: the language you write call logic in, how you test it, and how a B2BUA fits next to a proxy.

SIPhon is our open-source SIP proxy, B2BUA and IMS engine. It is MIT-licensed, and it is the foundation our own carrier-grade IMS runs on.

What is different

Kamailio / OpenSIPSSIPhon
Core languageCRust
Call logicNative routing script, with optional embedded languagesPython, as ordinary functions with decorators
ConfigurationModule parameters in the routing scriptOne YAML file
Changing logicReload or restart, depending on the changeHot-reload on save
B2BUAProxy first, B2BUA through add-on modulesProxy and B2BUA in the same binary, same scripting model
LicenseGPLMIT

A memory-safe core removes a whole class of crashes and security bugs from the signalling path. Python for call logic means your routing code can be unit tested, debugged and reviewed like any other software, by engineers who have never seen a SIP routing script.

What it covers for IMS

SIPhon provides the core IMS call session control functions (P-CSCF, I-CSCF and S-CSCF) on a standards-based SIP stack with UDP, TCP, TLS, WebSocket and SCTP transports. Around that it includes:

  • IMS AKA authentication and IPsec security associations towards the handset
  • Diameter Cx and Sh towards the HSS, Rx towards policy control, Ro and Rf for charging
  • Initial filter criteria and ISC routing to application servers
  • Media anchoring, call recording (SIPREC) and lawful intercept interfaces
  • CDR generation, Prometheus metrics and HEP tracing

The concepts map directly from Kamailio and OpenSIPS. If you know t_relay() and save("location"), you will recognise request.relay() and registrar.save().

When to stay where you are

If you have a stable Kamailio or OpenSIPS deployment and a team that knows it well, there is no reason to move for its own sake. Both projects have a far larger community, more modules, and a longer production history than SIPhon.

SIPhon is the better starting point when you are building something new, when you need proxy and B2BUA behaviour together (an SBC, a gateway, an application server), or when you want call logic your whole engineering team can read and test.

How we use it

Our carrier-grade IMS is built on SIPhon and runs in live operator networks. The engine is open for anyone to inspect; the carrier-grade layer on top is our commercial product.