[Kamailio-Users] kamailio 1.5 and beyond
Henning Westerholt
henning.westerholt at 1und1.de
Fri Aug 29 14:44:31 CEST 2008
Hi all,
i want to share some thoughts where i think the priorities for the next major
release(s) of Kamailio should be. This is the continuation of the work i (and
many others) have done for the previous releases, but i thought it makes sense
to summarize it a bit on a higher (abstraction) level.
1. Refactoring and cleanup
We still have quite a lot of old code in our repository, which is no longer
working or obsolete. Some implementations uses way to much gotos, or macros
that are several pages long. This makes important parts of the core and
modules harder to understand and maintain then necessary. Especially in the
area of utility functions there is still to much duplicated code.
proposed actions:
- identification and removal of no longer working code in the core and modules
- identification and unification of redundant (duplicated) code in core and
modules to one implementation
- identification and removal of obselete code parts in core and modules.
- refactoring of code to use less gotos and macros
2. User and developer documentation
With regards to user documentation quite a lot of work has been done in the
past releases. But with the developer documentation, especially in certain
modules, there is still plenty of content missing. As the involvement of
individuals and companies can change, documentation is necessary to ensure a
continued maintenance of the code.
proposed actions:
- conversion of already existing documentation to doxygen format
- add a short doxygen module definition to every module, explaining the
purpose
- add a short doxygen file definition to every file, explaining the purpose
- extend doxygen docs in important areas like the core and modules like TM
- autogeneration of database related module documentation from the XML scheme
definitions
3. Consolidation in core and modules
At the moment we've 85 modules in our repository. Some modules implement only
one or two functions, which makes no real sense with regards to the
maintainance overhead that comes with it. 24 of the modules are using database
access and 7 implement database interfaces. There is no clear boundary in some
areas of the core and modules, this hinders the further development of the
server.
proposed actions:
- integrate several modules that share responsibilities and not implement that
much functionality on their own into one
- autogeneration of module interface and database infrastructure code from the
XML database scheme definitions
- identify obselete module functions that can be done easily with
pseudo-variables now. Remove these functions.
- move certain core parts that do not need to be there into modules, making
the core smaller and more flexible
- identify core APIs which are used from modules, evaluate eventual
generalisations to make the modules less dependent from the actual core
implementation
4. Quality assurance
The complexity of several modules, and the special dependencies that some of
them carry increase the work to test the server and reproduce bugs. Without
proper test coverage maintenance work is slowed down and flexibility is lost.
All "easy" bugs that get caught automatically will not reach the user,
increasing the quality.
proposed actions:
- extend available test suite to cover more of core and modules
- continue maintenance of available infrastructure for build tests (build bot,
debian package autobuilder), evaluate extensions to increase coverage
All this work will be done as in the past in an open and accountable way on
the developer list. For bigger changes a request for comment will be posted
in advance on this list. If existing functionality is deprecated, then this
RFC will be also posted to the user list. If some functionality is moved or
changed than this will be documented in the wiki (porting docs) as usual.
I understand some changes will be probably add work on your side, in porting,
configuration adjustments and the like. But i think this is necessary to
ensure the further development of the Kamailio project, and to be able to
deal with new challenges that will come up in the future.
Any input and help with this regards to this individual tasks is of course
much appreciated. In the end the success of the project depends in the future
(like it did in the past) on your support. Without your involvement in
contributions, discussions and bug reports i would be only to a much lesser
extend involved in this project.
Thank you,
Henning Westerholt
--
Henning Westerholt - Development Consumer Products / DSL Core
1&1 Internet AG, Ernst-Frey-Str. 9, 76135 Karlsruhe, Germany
More information about the sr-users
mailing list