Kamailio – build large platforms for VoIP and realtime communications

Kamailio is an open source implementation of a SIP Signaling Server. SIP is an open standard protocol specified by the IETF. This is an industrial-strength, free server for realtime communication, based on the Session Initiation Protocol (SIP RFC3261).

The software is designed to permit Realtime Communications such as IP telephony and presence infrastructures up to large scale. With embedded support for WebSockets/WebRTC, HTTP, XSRP and XMLrpc as well as Json-rpc it’s a modern server, up to date with current standards on IPv4/IPv6 and TLS security.

Kamailio’s performance and robustness allows it to serve millions of users and accommodate needs of very large operators. With a low-cost dual-CPU, the Kamailio server is able to power IP telephony services in an area as large as the Bay Area during peak hours.

Features include:

  • Robust and Performant SIP (RFC3261) Server flavour:
    • Registrar server.
    • Location server.
    • Proxy server.
    • SIP Application server.
    • Redirect server.
  • Flexibility:
    • Small footprint – suitable for embedded devices – the binary file is small size, functionality can be stripped/added via modules.
    • Plug&play module interface – ability to add new extensions, without touching the core, therefore assuring a great stability of core components.
    • Modular architecture – core, internal libraries and module interface to extend the server’s functionality.
    • Extension repository – overall more than 150 modules are included in the Kamailio source tree.
  • SIP Routing Capabilities:
    • Stateless and transactional stateful SIP Proxy processing.
    • Serial and parallel forking.
    • NAT traversal support for SIP and RTP traffic.
    • Load balancing with many distribution algorithms and failover support.
    • Flexible least cost routing.
    • Routing failover.
    • Replication for High Availability (HA).
  • Transport Layers:
    • Support for communication via UDP, TCP, TLS and SCTP.
    • IPv4 and IPv6.
    • Transport layer gatewaying (IPv4 to IPv6, UDP to TLS, a.s.o.).
    • SCTP multi-homing and multi-streaming.
    • WebSocket for WebRTC.
  • Asynchronous Processing:
    • Asynchronous TCP handling.
    • Asynchronous SIP message processing.
    • Asynchronous inter-process message queues communication system.
    • Distributed message queue.
  • Secure Communication:
    • Digest SIP User authentication.
    • Authorization via ACL or group membership.
    • IP and Network authentication.
    • TLS support for SIP signaling.
    • Transparent handling of SRTP for secure audio.
    • TLS domain name extension support.
    • Authentication and authorization against database (MySQL, PostgreSQL, UnixODBC, BerkeleyDB, Oracle, text files), RADIUS and DIAMETER.
  • IP and DNS:
    • Support for SRV and NAPTR DNS lookups.
    • SRV DNS failover.
    • DNSsec support.
    • ENUM support.
    • internal DNS caching system – avoid DNS blocking.
    • IP level Blacklists.
    • Multi-homed and multi-domain support.
    • Topology hiding – hide IP addresses in SIP headers to protect your network architecture.
  • Accounting:
    • Event based accounting.
    • Configurable accounting data details.
    • Multi-leg call accounting.
    • Storage to database, Radius or Diameter.
    • Prepaid engine.
  • External Interaction via:
    • RPC control interface – via XMLRPC, JSONRPC, UDP or TCP.
    • RabbitMQ and NSQ connectors.
  • Rich Communication Services:
    • SIP SIMPLE Presence Server (rich presence).
    • Presence User Agent.
    • XCAP client capabilities.
    • Embedded XCAP Server.
    • Presence DialogInfo support – SLA/BLA.
    • Instant Messaging.
    • Embedded MSRP relay.
  • Monitoring and Troubleshooting:
    • SNMP – interface to Simple Network Management Protocol.
    • Config file step-by-step debugger.
    • Remote control via XMLRPC.
    • Internal statistics exported via RPC and SNMP.
    • Flexible debug and error message logging system – log custom messages including any header or pseudo-variable and parts of SIP message structure.
  • Extensibility APIs:
    • Perl Programming Interface – embed your extensions written in Perl.
    • Java SIP Servlet Application Interface – write Java SIP Servlets to extent your VoIP services and integrate with web services.
    • Lua Programming Interface.
    • JavaScript Programming Interface.
    • Managed Code (C#) Programming Interface.
    • Python Programming Interface.
    • Java Programming Interface.
    • Generic Event API via TCP connections.
  • Supports Multiple Database Backends:
    • (MySQL, PostgreSQL, SQLite, UnixODBC, BerkeleyDB, Oracle, text files) and other database types which have unixodbc drivers.
    • Connections pool.
    • Different backends can be used simultaneously (e.g., accounting to Oracle and authorization against MySQL).
    • Connectors for Memcached, Redis, MongoDB and Cassandra no-SQL backends.
  • Interconnectivity:
    • Straightforward interconnection with PSTN gateways.
    • Gateway to sms or xmpp and other IM services.
    • Interoperability with SIP enabled devices and applications such as SIP phones (Snom, Cisco, etc.), Media Servers (Asterisk, FreeSwitch, etc).
  • IMS:
    • Diameter support and authentication.
    • I-CSCF, P-CSCF, S-CSCF.
    • Charging, QOS, ISC.

Website: www.kamailio.org
Support: Doucmentation, GitHub, Twitter
Developer: Kamailio developers
License: GNU GPL

Kamailio is written in C. Learn C with our recommended free books and free tutorials.

Return to VoIP Home Page


Popular series
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
Linux Around The WorldLinux Around The World showcases events and usergroups that are relevant to Linux enthusiasts.
AudioSurveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal.
Saving Money with LinuxSaving Money with Linux looks at how you can reduce your energy bills running Linux.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.