User Tools

Site Tools


devel:kamailio-5.0-design

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devel:kamailio-5.0-design [2016/03/01 09:25]
miconda [Exporting Functions To Embedded Interpreters]
devel:kamailio-5.0-design [2016/05/03 18:33]
miconda
Line 15: Line 15:
 Initial content for this document is listing also ideas popped up during discussions at Fosdem 2016 and Kamailio Development Workshop - among participants: Camille Oudout, Daniel-Constantin Mierla, Federico Cabiddu, Giacomo Vacca, Henning Westerholt, Olle E. Johansson, Torrey Searle, Victor Seva. Initial content for this document is listing also ideas popped up during discussions at Fosdem 2016 and Kamailio Development Workshop - among participants: Camille Oudout, Daniel-Constantin Mierla, Federico Cabiddu, Giacomo Vacca, Henning Westerholt, Olle E. Johansson, Torrey Searle, Victor Seva.
  
-===== Configuration File =====+===== Configuration File Interpreters =====
  
 Goals: Goals:
Line 24: Line 24:
     * reloading routing rules at runtime     * reloading routing rules at runtime
  
-To achieve the above, following sub-sections collects the proposals for configuration file language.+Ongoing implementation that enables writing routing blocks in Lua and Python as alternative to native language is documented at:
  
 +  * [[devel:config-engines|Configuration File Engines]]
  
-==== Exporting Functions To Embedded Interpreters ==== 
- 
-  * define and implement an export interface from modules to embedded interpreters to automatically add new functions to embedded interpreters 
-  * it should be in a similar fashion as for adding functions to configuration file, but without fixup mechanism, so bare string/integer parameters can be provided by embedded interpreters 
- 
-Interface fields: 
- 
-  * submodule name in embedded interpreter 
-  * function name in embedded interpreter 
-  * parameter types 
-  * pointer to c function 
- 
-Example: 
- 
-<code c> 
-// export t_reply(200, "OK") 
- 
-sr_exapi_t mod_exapi[] = { 
-  { "sr.tm", "reply", {PARAM_INT, PARAM_STR, 0}, t_reply }, 
-  { 0, 0, {0}, 0} 
-}; 
-</code> 
- 
-==== 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 ===== ===== Source Tree Structure =====
Line 96: Line 69:
  
 Reviving the exiting unit testing or selecting another framework. Reviving the exiting unit testing or selecting another framework.
 +
 +Available frameworks:
 +
 +  * http://robotframework.org/ (python)
  
 ==== Minimal Unit Tests ==== ==== Minimal Unit Tests ====
devel/kamailio-5.0-design.txt ยท Last modified: 2016/05/03 18:33 by miconda