Kamailio

From DooxSwitch wiki
Jump to: navigation, search

Kamailio is an Open Source SIP Server released under GPL, able to handle thousands of call setups per second. Among features: asynchronous TCP, UDP and SCTP, secure communication via TLS for VoIP (voice, video), SIMPLE instant messaging and pressence, ENUM, least cost routing, load balancing, routing fail-over, accounting, authentication and authorization against MySQL, Postgres, Oracle, Radius, LDAP, XMLRPC control interface, SNMP monitoring. It can be used to build large VoIP servicing platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers like Asterisk™, or SEMS. The application is written in C for Linux/Unix platforms and focuses on performance, flexibility and security. In addition to C, extensions can be written in Lua, Perl or Python.

On the 28th of July, 2008, due to trademark issues related to OPENSER word, the project changed the name in [1]. The wiki page for the old project name is still available at: OpenSER.

On Nov 04, 2008, Kamailio and ((SIP Express Router)) have started the Router Project.

Latest version: Kamailio v4.2.0 (Oct 16, 2014) - see [2]

Social media

  • Kamailio on twitter [3]
  • Kamailio on [4]

Web links

  • Home page: [5]
  • Home page with old project name: [6]
  • SourceForge.net Project page: [7]
  • SVN Code repository (v0.9.x to v1.5.x): [8]
  • GIT Code repository (v3.0.0+): [9]

Some interesting results:

  • one instance of SIP server with 500 000 online users (mixed users – behind and not NAT routers) – consumed energy 210W
  • one instance of SIP server with 1 000 000 online users (no NAT involved) – consumed energy 190W
  • on a 32-bit machine with 4GB of memory and with 2.5GB reserved for SIP server, the server could support 43 000 simultaneous TLS connections – consumed energy 209W
  • one SIP server instance with 80 000 permanent TCP connections, the SIP server could still handle at least 1000 requests per second and a connection arrival rate of 1000 new connections per second, done for 20 000 new *connections. CPU load generated by the SIP server was from 6% to 8%.


Download

  • Main download page - [10]
  • SVN Repository (0.9.x to 1.5.x) - [11]
  • GIT Repository (3.0.x on) - [12] ([13])

Binary packages for several distributions can be found at:


Features

  • SIP proxy/registrar/redirect server ([18], [19])
  • SIP over UDP
    • MTU fallback support
  • SIP over TCP
    • asynchronous TCP
  • SIP over TLS
    • asynchronous TLS
  • SIP over SCTP
    • multi-streaming
    • multi-homing
  • IPv4 and IPv6
    • multi-homing support
  • Transactional stateful proxy
  • Modular architecture
  • Programmable configuration file
  • ENUM support
  • Call Processing Language (CPL)
  • Gateway to sms or xmpp
  • Authentication, authorization and accounting via Radius or database
  • NAT traversal system
  • Kernel space packet relaying for RTP
  • Least cost routing
  • Load balancing
  • Carrier routing
  • Multiple database backends: MySQL, Postgres, Unixodbc, Oracle, BDB or flat files
  • SIMPLE Presence Server (IETF SIMPLE extensions - rich presence)
  • Dialog Info Presence - SLA/BLA
  • XCAP and RLS
    • embedded XCAP server
  • Presence User Agent
  • Dialog Stateful Proxy
  • Instant Messaging
    • Offline message storage
    • Instant messaging conferencing
  • SNMP support
  • RADIUS support
  • LDAP support
  • Perl Programming Interface
  • Lua Programming Interface
  • Python Programming Interface
  • Java SIP Servlet Application server
  • Number portability
  • XMLRPC control interface
  • Topology hiding
  • Memcached connector
  • Command line interface (cli named sercmd)
  • Support for IMS platforms
  • Support for SIP and MSRP over WebSockets
  • Over 150 modules (extensions)

Documentation

  • Main Documentation Page - [20]
  • Dokuwiki Page - [21]

Modules Documentation

  • v1.0.x Modules' Documentation - [22]
  • v1.1.x Modules' Documentation - [23]
  • v1.2.x Modules' Documentation - [24]
  • v1.3.x Modules' Documentation - [25]
  • v1.4.x Modules' Documentation - [26]
  • v1.5.x Modules' Documentation - [27]
  • v3.0.x Modules' Documentation - [28]
  • v3.1.x Modules' Documentation - [29]
  • v3.2.x Modules' Documentation - [30]
  • v4.0.x Modules' Documentation - [31]
  • v4.1.x Modules' Documentation - [32]
  • v4.2.x Modules' Documentation - [33]

Tutorials


Deploying Kamailio

-=Kamailio Installation Guides =-

Kamailio and Asterisk

Kamailio and FreeSWITCH

Kamailio and NAT

  • ((Kamailio 1.5.x and RTPProxy)) - Kamailio (OpenSER) v1.5.x configuration to do NAT traversal using nathelper and rtpptoxy

Kamailio and RADIUS

  • and RADIUS - tutorial to build VoIP services with ((Kamailio)) and [35]

Kamailio and Web Interfaces


Platforms

Kamailio is known to work on

  • most of Linux flavours (OS used for development is mainly Debian)
  • 64b Linux flavours
  • Embedded linux systems
    • Raspberry PI RPMs available
  • SUN/Solaris
  • FreeBSD
  • OpenBSD
  • NetBSD