Liberada la versión 5.2 de Kamailio - Proxy SIP

Acaba de ser liberada la versión 5.2 del Proxy SIP Kamilio. Esta es actualización mayor que lleva muchos cambios y novedades interesantes. La primera por importancia son las mejorías presentes en el Framework KEMI (Kamailio Embedded Interface) que ahora soporta más lenguajes de programación y más funciones.

Una paréntesis para entender mejor que es y para que sirve KEMI. En Kamilio el archivo de configuración (kamailio.cfg) es donde se realizan las siguientes operaciones:

  • definición de parámetros globales

  • carga de módulos

  • definición de los parámetros de los módulos

  • lógica de enrutamiento a través de distintos tipos de rutas; entre ellas:

    • request_route

    • reply_route

    • branch_route

    • failure_route

El interprete del archivo de configuración corre solamente una vez cuando se inicia el Proxy SIP. Esto significa que cualquier cambio se realice a nivel de script, para que sea aplicado, necesita un reinicio de Kamailio.

KEMI permite escribir la lógica de enrutamiento de Kamailio utilizando un lenguaje de programación; actualmente los lenguajes soportados son:

  • JavaScript

  • Lua

  • Python

  • Python3

  • Ruby

  • Squirrel

Esto permite desarrollar bloques de script sin tener que acudir a la sintaxis estándar del archivo de configuración de Kamilio y al mismo tiempo recargar la configuración sin tener que reiniciar el Proxy SIP. El corazón de Kamilio vuelve disponibles toda una serie de funciones que luego se pueden utilizar en los script escritos en los diferentes lenguajes de programación. ¿Cómo se carga el script en el archivo de configuración de Kamailio?. Un ejemplo (para el lenguaje LUA) sería:

loadmodule "app_lua.so"

modparam("app_lua", "load", "/path/to/script.lua")

cfgengine "lua"

primero se carga el modulo, luego se indica donde se encuentra el archivo que contiene la configuración y se indica el tipo de lenguaje utilizado. Encuentran más información en la siguiente pagina.

Volviendo al tema de la actualización, otros cambios importantes:

  • el modulo DISPATCHER ha sido completamente rediseñado para mejorar la lógica de balanceamiento de carga

  • ahora es posible utilizar como base de datos Redis en lugar de MySQL/PostGres

  • es posibles gestionar el transcoding implementado últimamente en RTPEngine

Si lo quieren probar, hay una guía de instalación disponible. Más información en el sitio oficial del proyecto.