Last week we had the 2nd annual Kamailio Developers Meeting hosted by Sipgate in Dusseldorf, Germany:

16 people were at the event in various roles.

Giacomo Vacca published on his blog a good summary of what happened there:

Henning Westerholt published on his blog a few pictures of the two days and the evening event:

This year we had a lot of discussions, as well as work done on multiple planes, not only Kamailio code. So I am trying to list here some of the conclusions for future development, the technical aspects of the meeting, so everyone is aware and can provide feedback.

1) Effective work was done on:
  • kamailio code
  • kamailio rpm packaging
  • kamailio tools (kamctl)
  • kamailio release process
  • kamailio project keys (to be used to sign the packages)
2) Documentation

2.a) Wiki

  • it was somehow a rough consensus to move the wiki content to github,
    along with changing the format from dokuwiki markdown to the
    standard/github markdown. This should enable people to make pull
    requests so developers or community members can review and aprove new
    content. It also makes it easier to contribute using existing github
    account, now the kamailio.org/wiki is requiring to make a dedicated
    account, which many prefer not to do it.
  • the presentation can be done either by using mkdocs to generate html files hosted on kamailio.org or using the github provided wiki portal.

2.b) Docs for variables and transformations

  • there was a proposal to move them in the documentation the modules
    that export them, there are pros and cons, needs more discussions. Now
    they are in the wiki, so this probably has to resume after deciding on 2.a).
3) Kamailio Modules

3.a) replication (dmq) – several participants discussed about
negotiations between nodes to take active role on some cases (e.g.,
active dialogs)

3.b) api integration – quite some interest in JSON-based API routing,
concluding in extending rtjson to cover more use cases

3.c) security – have options to restrict the use of TLS1.3 or newer

4) Kamailio Releases
  • v5.3.2 was released during the event, allowing to document the process
  • work to automatise the process is planned, then eventually assign
    teams for taking cares of releases from specific branches
5) Kamailio Testing
  • existing docker-based testing framework should be extended and
    integrated in CD/CI pipeline
6) Kamailio packages

6.a) rpms

  • rpm.kamailio.org has been prepared and is expected to take over the
    opensuse build service for building rpms and hosting them. Expected to
    provide support for hosting many kamailio versions in the same release
    series so one can do downgrade to older releases. Also, there is work in
    progress to provide nightly builds.

6.b) debs

  • work is planned to offer many kamailio versions in the same release
    series
7) Kamailio tools
  • kamctl/kamdbctl should be obsoleted in favour of kamcli, which offers
    a better framework for input validation and output formatting, as well
    as better portability, no longer depending on shell interpreter
8) Various discussions
  • KEMI exports from C point of view and how to combine the
    documentation for modules and their kemi exports
  • move code from internal libraries to core or specific modules (to be discussed further)
  • how to make Kamailio friendlier in virtualized environments (ended up
    in the need of making the use of advertised address a bit more dynamic)
  • project organising topics – to be approached separately
  • next events – Fosdem – someone should submit a proposal to present
    about Kamailio
9) Long term goals

We speak here more or less about Kamailio 6.0 …

  • change the behaviour of the native config interpreter to be consistent with the other programming languages in terms of handling the response code (change what is now: the evaluation of negative value to false and positive value to true and the hidden return 0 to exit)
  • make the pool of processes more generic, so they can handle traffic from more sockets (being sip traffic or something else) — this should make better use of resources, as some sockets might be less busy that others

I hope I covered the important topics, if I remember something else, I will reply on this thread. Or maybe other participants can contribute missing topics.

Should anyone have comments or suggestions on the above topics, or new ones, let’s discuss on sr-users mailing lists because it impacts the long term use of Kamailio.

Overall, there were 2 very intensive days, however in a friendly and relaxed environment offered by Sipgate. Extremely useful discussions, not only about Kamailio, but about RTC ecosystem. At the evening social network event event, a couple of external people joined, some of them presenting very interesting use cases of Kamailio.

Many thanks to all participants that allocated time and resources to come to Dusseldorf, as well as to the companies that covered expenses for participants.

Thanks for flying Kamailio!