Casos de Éxito: RTPEngine mask y transcoding – Parte 2

En esta segunda parte veremos como configurar Kamailio para que utilice distintos RTPEngine para la parte media de las llamadas y que al mismo tiempo balancee la carga entre todos.

 

Este tipo de configuración se puede realizar de dos formas:

 

  • utilizando un parámetro de la configuración del modulo de RTPEngine de Kamailio

  • utilizando la base de datos kamailio y más en especifico la tabla rtpengine

 

En el primer caso el parámetro que nos interesa es:

 

rtpengine_sock (string)

 

y la configuración es bastante sencilla; se indican todos los servidores RTPEngine que se van a utilizar separados por un espacio y, si se quiere, asignando un peso a cada uno de ellos. Unos ejemplos:

 

modparam("rtpengine", "rtpengine_sock", "udp:192.168.1.1:12221 udp:192.168.1.2:12222")

 

en este caso se utilizarán dos RTPEngine que estarán a la escucha, uno sobre la IP 192.168.1.1, puerto 12221 y otro sobre la IP 192.168.1.2, puerto 12222. Ambos estarán a la escucha sobre el protocolo de trasporte UDP.

 

Del lado de la configuración de RTPEngine el parámetro que nos interesa es:

 

-n 192.168.1.1:12221

-n 192.168.1.2:12222

 

para el primero y el segundo servidor respectivamente. Otro ejemplo utilizando el peso sería:

 

modparam("rtpengine", "rtpengine_sock", "udp:192.168.1.1:12221=2 udp:192.168.1.2:12222=1")

 

el primero tendrá peso 2 y el segundo peso 1. Esto quiere decir que de 3 llamadas, dos serán gestionadas por el RTPEngine con peso 2 y una por el RTPEngine con peso 1.

 

Otra configuración que se puede realizar es configurar los servidores RTPEngine en grupos y luego decidir en el script de enrutamiento que grupo utilizar para una determinada llamada, ejemplo:

 

  • grupo 1 para llamadas internas

  • grupo 2 para llamadas salientes

 

La configuración sería algo parecido:

 

modparam("rtpengine", "rtpengine_sock", "1 == udp:192.168.1.1:12221 udp:192.168.1.2:12222")

modparam("rtpengine", "rtpengine_sock", "2 == udp:192.168.1.3:12221")

 

Luego en el script de enrutamiento, antes de llamar la función rtpengine_manage, que se utiliza para activar RTPEngine, se pone la siguiente función:

 

set_rtpengine_set(setid[, setid])

 

donde se indica un grupo principal y uno secundario (si se necesita).

 

Si utilizamos la base de datos, los campos de la tabla rtpengine son:

 

 

 

  • id: numero entero que se genera y se incrementa automáticamente para cada entrada

  • setid: grupo al que pertenecerá el servidor que se está configurando (predefinido 0)

  • url: protocolo de trasporte, ip y puerto donde estará a la escucha el servidor RTPEngine

  • weight: peso asignado al servidor (predefinido 1)

  • disabled: si el servidor está activo o no (predefinido 0 = activo)

  • stamp: una imprenta de tiempo donde se guardará la fecha y hora de configuración de la entrada

 

y en la configuración del modulo habrá que utilizar el parámetro:

 

db_url (string)

 

donde se configurará la URL de conexión a la base de datos de Kamailio. Ejemplo:

 

modparam("rtpengine", "db_url", "mysql://kamailio:password@localhost/kamailio")

 

Una vez realizada la configuración y reiniciado Kamailio, tendremos disponibles unos comandos para realizar una serie de operaciones:

 

kamcmd rtpengine.reload

 

para recargar la configuración de la tabla rtpengine si se está utilizando la base de datos para la configuración de los servidores RTPEngine

 

kamcmd rtpengine.enable

 

para activar/desactivar un servidor RTPENgine

 

kamcmd rtpengine.show all

 

para ver la lista completa de servidores RTPEnngine configurados con los respectivos parámetros. Ejemplo:

 

 

kamcmd rtpengine.ping

 

para enviar un ping al servidor RTPEngine que si no contesta será considerado no activo. Ejemplo:

 

kamcmd rtpengine.ping udp:127.0.0.1:2223

 

 

 

Creo que es todo, les recuerdo que para gestionar los servidores RTPEngine es posible utilizar la utilidad rtpengine-ctl cuya configuración se ha mostrado en esta entrada

 

 

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Casos de Éxito: RTPEngine mask y transcoding – Parte 2" Suscribirse a VozToVoice - Todos los comentarios