Hello,
based on some of the plans for Kamailio 5.0 (https://www.kamailio.org/wiki/devel/kamailio-5.0-design), I started the implementation for the support to allow writing the active routing logic at runtime (respectively what are now the routing blocks) in other embedded languages than the native kamailio.cfg interpreter. Of course, besides a lot more extensive set of functions and expressions coming with the well established scripting languages, this way will allow reloading the logic without kamailio restart.
I already committed the foundation for it, currently the request_route{} and reply_route{} can be implemented in Lua, relying on app_lua module. Lua was selected for first experiments given that I have some past experience with it, but other languages such as Perl, Python will hopefully follow soon, once the framework gets to a stable design.
I wrote some initial docuentation on the wiki:
- https://www.kamailio.org/wiki/devel/config-engines
Would be helpful if people with experience on the other supported embedded languages will join the effort to design the framework to suit those languages, as well as other developers and community members to start exporting C functions.
Also, there are some other things to decide on, listed in the to-do section, where suggestions/assistance are appreciated:
- https://www.kamailio.org/wiki/devel/config-engines#to-do
Many of them probably will be approached during the planned IRC devel meeting next week:
- https://www.kamailio.org/wiki/devel/irc-meetings/2016a
Any feedback is welcome!
Cheers, Daniel