User Tools

Site Tools


devel:kamailio-5.0-design

This is an old revision of the document!


Kamailio v5.0 Design

After 15 years of development, it is time for Kamailio v5.0.

Configuration File

Exporting Functions To Embedded Interpreters

  • define and implement an export interface from modules to embedded interpreters to automatically add new functions to embedded interpreters, in a similar fashion as for adding functions to configuration file

Routing Logic In Embedded Interpreters Scripting

  • writing the routing logic only in a scripting language supported via embedded interpreters
  • eventually setting core parameters, loading modules and setting modules' parameters are still done using the kamailio configuration file but all routing blocks should be possible to be written in an embedded language
  • routing logic in an embedded language should allow reloading at runtime without kamailio restart

Source Tree Structure

It was discussed in the past:

  • source code files should be relocated to have a better structure for include headers, core files, modules and internal libraries as well as utilities

Build System

Revising the build system based on Makefiles.

Alternatives to analyze:

  • configure
  • cmake

Continuous Integration

Unit Test Framework

Reviving the exiting unit testing or selecting another framework.

Minimal Unit Tests

Defining a minimum set of automatic tests that needs to be provided by each module:

  • a minimal config for loading the module, to be sure it doesn't have missing linking symbols
  • can be done with a config as simple as:
loadmodule "foo.so"

request_route {
  ;
}
  • or can require setting some module parameters or even loading other modules
devel/kamailio-5.0-design.1456353271.txt.gz · Last modified: 2016/02/24 23:34 by miconda